maturity-engine/layer.yaml
tegwick 30236955c6 Apply GH-DEC-2026-017: INTENT.md governs, the sidecar is derived, no version
- Remove standard_version from layer.yaml and INTENT.md frontmatter (§5, A12).
- Mark layer.yaml derived: true, derived_from: INTENT.md (§1, A11).
- Checker and tests change in the same commit: standard_version is no longer
  a required key (it is now rejected in either form), the derived marking is
  required, both layer values are checked against the closed four-token
  vocabulary, and the two forms are compared after an ASCII case fold (A9).
  A disagreement surviving the fold is reported as a finding.
- Nothing re-spelled: INTENT.md keeps "Engine", layer.yaml keeps "engine".

Scope check (§9.5 / GH-DEC-2026-017 §4): maturity-engine does not score
layer declarations anywhere. scoring.py grades gap-register conformance
states, and seed gaps concern capabilities, not §11 declarations, so no
non-§4 repository is graded. No scoring change required.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 63291@bnt-lap001
Assistant-Session: 8bd77868-ca68-4f49-bb1e-d539ecc0d703
2026-09-21 07:35:40 +02:00

74 lines
2.8 KiB
YAML

# maturity-engine — NetKingdom security layer declaration
#
# Framework: net-kingdom/canon/standards/security-layer-model_v0.7.md
# Governs: INTENT.md frontmatter (this repository's own voice, §11). This
# file is a DERIVED artifact of it and does not govern
# (GH-DEC-2026-017 §1). No standard version: a layer declaration
# MUST NOT carry one (GH-DEC-2026-017 §5).
# Validate: python3 scripts/check_layer_conformance.py
#
# §11 requires a machine-readable declaration: prose cannot distinguish a
# declaration from a transcribed review. Form adapted from ops-warden's
# reference and kings-guard's no-contact Engine-adjacent shape.
#
# This repository is an Engine (PIP). Computing a level is not a protected
# side effect, so there is no pep_stance path. Catalogued Tooling (OpenBao,
# key-cape) is not contacted. Persistence is this PIP's own SQLite store.
schema_version: "0.1"
framework: netkingdom-security-layer-model
repository: maturity-engine
layer: engine
role: pip
declared_by: INTENT.md
declared_at: "2026-08-29"
derived: true
derived_from: INTENT.md
# §4 catalog entry, transcribed so drift between the catalog and this file is
# visible. The standard is authoritative for the row; this records what we
# understand ourselves to have been assigned.
catalog_entry:
owns:
- graded progression against declared criteria and evidence
- the gap register
- capability readiness
does_not_own:
- authorization decisions
- approval objects
- observation in production
- actuation / containment
# §5 / §11: every direct contact with a Tooling-layer system (a §4 Tooling row).
# Empty is a claim. This is an Engine API over state it owns, not Staff
# reaching into OpenBao.
tooling_contacts: []
# §11 requires non-Tooling clients to be recorded so the check is total.
# Neither target is a §4 Tooling row. Recorded, not policed as §5.
non_tooling_clients:
- id: state-hub-work-records
target: state-hub
layer: not-catalogued
operation: "HTTP to the Custodian State Hub for work records and progress events"
write: true
note: >-
Outside §5 by the v0.5 scope rule: "Tooling-layer system" means a §4
Tooling row, and state-hub is not one. Carries no security authority
and no secret payload.
- id: sqlite-own-store
target: sqlite
layer: not-catalogued
operation: "this PIP's own transactional store (assessments, register, local outbox)"
write: true
note: >-
Engine-owned persistence, not Lifecycle over catalogued Tooling.
Consumers read claims through this engine's API, not by opening the
file. Listed so the client account is total. Review: 2027-02-28
(two intervals from 2026-08-29).
# No PEP stance: this engine does not cause a protected side effect.
declared_shapes:
"5.1": []
"5.2": []
"5.3": []