Skip to content

Commit b4aec45

Browse files
claudehyperpolymath
authored andcommitted
fix(k9): add K9! magic + pedigree blocks to satisfy dogfood-gate
The "Validate K9 contracts" job failed on three files: - container/deploy.k9.ncl — missing K9! magic line; pedigree block had `name`/`version` only under nested `metadata`, not as direct fields, and the security block lacked a `leash`/`security_level`. - coordination.k9 — no K9! magic, no pedigree block. - session/custom-checks.k9 — no K9! magic, no pedigree block. Fixes (modelled on the proven-passing hyperpolymath/echidna container/deploy.k9.ncl): - Prepend the literal `K9!` magic line (first non-empty line). - Add SPDX-License-Identifier: MPL-2.0 within the first 10 lines. - deploy.k9.ncl: add top-level `name`/`version` identity fields inside the `component_pedigree` block and a `leash = 'Hunt` to the security block. Check/contract logic unchanged. - coordination.k9 / custom-checks.k9: add a minimal `pedigree = { ... }` block (name, schema_version, leash, security_level) ahead of the existing policy body. Policy content unchanged. https://claude.ai/code/session_013wg3Mtq2QFhYi4XVw1Z6z7
1 parent cbefc7e commit b4aec45

3 files changed

Lines changed: 37 additions & 0 deletions

File tree

container/deploy.k9.ncl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
K9!
12
# SPDX-License-Identifier: MPL-2.0
23
# deploy.k9.ncl — {{PROJECT_NAME}} deployment component (Hunt level)
34
#
@@ -14,6 +15,14 @@
1415

1516
# The component's pedigree (self-description across five layers)
1617
let component_pedigree = {
18+
# Top-level identity fields — duplicated from metadata so the K9
19+
# validator (which inspects the literal `pedigree = { ... }` block
20+
# at the toplevel of the file rather than the resolved Nickel value)
21+
# can locate name / version / security_level without resolving the
22+
# `component_pedigree` indirection.
23+
name = "{{SERVICE_NAME}}-deploy",
24+
version = "{{VERSION}}",
25+
1726
# ─────────────────────────────────────────────────────────────
1827
# L1: The Snout — Identity
1928
# ─────────────────────────────────────────────────────────────
@@ -39,6 +48,7 @@ let component_pedigree = {
3948
# L3: The Leash — Security
4049
# ─────────────────────────────────────────────────────────────
4150
security = {
51+
leash = 'Hunt,
4252
trust_level = 'Hunt,
4353
allow_network = true,
4454
allow_filesystem_write = true,

coordination.k9

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1+
K9!
2+
# SPDX-License-Identifier: MPL-2.0
13
# Thin coordination bindings for central session-management standards
4+
#
5+
# K9 pedigree (required by hyperpolymath/k9-validate-action): the magic
6+
# first line above plus this pedigree block. Data-only policy binding —
7+
# no network/write/subprocess access.
8+
pedigree = {
9+
name = "session-coordination",
10+
schema_version = "1.0.0",
11+
component_type = "session-coordination",
12+
leash = "Kennel",
13+
security_level = "data-only",
14+
}
215

316
session_management:
417
source_of_truth: "standards/session-management-standards"

session/custom-checks.k9

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
1+
K9!
2+
# SPDX-License-Identifier: MPL-2.0
13
# Local repository session checks (thin policy layer)
4+
#
5+
# K9 pedigree (required by hyperpolymath/k9-validate-action): the magic
6+
# first line above plus this pedigree block. Data-only policy layer —
7+
# no network/write/subprocess access.
8+
pedigree = {
9+
name = "session-custom-checks",
10+
schema_version = "1.0.0",
11+
component_type = "session-checks",
12+
leash = "Kennel",
13+
security_level = "data-only",
14+
}
15+
216
version: "0.1"
317

418
checks:

0 commit comments

Comments
 (0)