Declare ops-mason's NetKingdom layer in INTENT.md frontmatter.
Staff, role pep-shaped, stated in ops-mason's own voice (security-layer-model §11, GH-DEC-2026-017). Direct OpenBao and Kubernetes contacts in the shipped executors are declared as §5.3 gaps; the §6.4 stance map is recorded as a dated declared gap (review 2026-12-21). No sidecar, no standard version. 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
This commit is contained in:
parent
1189d12dc3
commit
0ff263a0b2
1 changed files with 122 additions and 0 deletions
122
INTENT.md
122
INTENT.md
|
|
@ -1,3 +1,125 @@
|
|||
---
|
||||
# NetKingdom security layer declaration (net-kingdom security-layer-model, §11).
|
||||
#
|
||||
# This frontmatter IS ops-mason's declaration, stated in its own voice. The
|
||||
# 2026-08-28 review note in the body, the §4 catalog row, and correspondence
|
||||
# from gate-house and access-engine are statements ABOUT ops-mason and are not
|
||||
# the declaration (§11). INTENT.md governs; no layer.yaml sidecar is written
|
||||
# (GH-DEC-2026-017 §1). No standard version appears anywhere in this block
|
||||
# (GH-DEC-2026-017 §5, A12 r2 per GH-DEC-2026-020): the layer is a standing
|
||||
# property of the repository.
|
||||
#
|
||||
# Worked out from ops-mason's own character against §3, not copied from §4:
|
||||
# every construction plan is drafted and self-reviewed by an agent and gated by
|
||||
# a founder decision -- judgment, not a deterministic function of input state.
|
||||
# Its artifacts are construction plans, executive summaries and build records
|
||||
# (specifications, decisions, tasks). That is Staff (§3.4). It holds no state
|
||||
# another layer reads at runtime: what it builds lives in OpenBao and the
|
||||
# cluster, its audit log is its own. Phase 4 causes protected side effects --
|
||||
# it writes OpenBao policies and auth roles, mints and delivers AppRole
|
||||
# secret_ids, and applies Kubernetes objects -- so it is PEP-shaped (§6.4).
|
||||
# This agrees with §4's row. The finding is below the layer line: the shipped
|
||||
# executors contact Tooling directly, which the 2026-08-28 review note says
|
||||
# ops-mason does not do. Those contacts are declared here as §5.3 gaps --
|
||||
# tracked non-conformance, not a claim of conformance.
|
||||
layer: Staff
|
||||
role: pep-shaped
|
||||
repository: ops-mason
|
||||
declared_by: INTENT.md
|
||||
declared_at: "2026-09-21"
|
||||
ruling: GH-DEC-2026-017
|
||||
|
||||
# §6.4 obligation 3 / §13.1 -- DECLARED GAP, not a published map. ops-mason's
|
||||
# stance is undecided rather than merely unpublished: its builds are gated by a
|
||||
# founder approval of a construction plan, not by an access-engine decision
|
||||
# record, so there is no engine outage for a stance to govern until ops-mason
|
||||
# decides whether its build path consults access-engine at all. Publishing a
|
||||
# fail-closed map today would describe behaviour the code does not have.
|
||||
pep_stance:
|
||||
status: declared-gap
|
||||
path: null
|
||||
blocked_on: >-
|
||||
Undecided whether phase-4 builds consult access-engine (§6.4 obligation 1)
|
||||
or remain founder-approval-gated only; a stance map is only meaningful once
|
||||
that is settled.
|
||||
review: "2026-12-21"
|
||||
|
||||
# §11: every direct Tooling contact, one entry each. Empty would be a claim.
|
||||
tooling_contacts:
|
||||
- id: openbao-structure-build
|
||||
shape: "5.3"
|
||||
module: src/ops_mason/executor.py
|
||||
symbol: build_approle_kv_lane, build_kubernetes_kv_lane
|
||||
tooling: OpenBao
|
||||
operation: "bao policy write; bao write auth/approle/role/*, auth/kubernetes/role/*"
|
||||
write: true
|
||||
capability: "Create policies and auth roles for an approved construction plan (structure only, never secret values)"
|
||||
intended_owner: secrets-engine
|
||||
blocked_on: >-
|
||||
No engine exposes a policy / auth-role construction surface; ops-mason
|
||||
runs the bao CLI under a scoped, time-boxed ops-mason-build token.
|
||||
review: "2026-12-21"
|
||||
- id: openbao-approle-credential-delivery
|
||||
shape: "5.3"
|
||||
module: src/ops_mason/executor.py
|
||||
symbol: build_approle_kv_lane
|
||||
tooling: OpenBao
|
||||
operation: "bao read auth/approle/role/*/role-id; bao write -f auth/approle/role/*/secret-id"
|
||||
write: true
|
||||
capability: "Mint and deliver an AppRole role_id/secret_id to the consumer, write-only, never logged"
|
||||
intended_owner: secrets-engine
|
||||
blocked_on: >-
|
||||
No engine exposes credential issuance for AppRole lanes; secrets-engine
|
||||
owns credential lifecycle but fronts no issuance API today.
|
||||
review: "2026-12-21"
|
||||
- id: openbao-custody-metadata-read
|
||||
shape: "5.1"
|
||||
module: scripts/custody-inventory.py
|
||||
symbol: bao
|
||||
tooling: OpenBao
|
||||
operation: "bao kv list; bao kv metadata get"
|
||||
write: false
|
||||
capability: "Inventory credential paths and their descriptions without reading any value"
|
||||
intended_owner: secrets-engine
|
||||
blocked_on: "No engine exposes a custody inventory query."
|
||||
review: "2026-12-21"
|
||||
- id: kubernetes-plane-apply
|
||||
shape: "5.3"
|
||||
module: src/ops_mason/kubernetes_plane.py
|
||||
symbol: preflight, verify, apply
|
||||
tooling: Kubernetes
|
||||
operation: "kubectl get / auth can-i / apply (server dry-run, then apply) of an allowlisted, digest-pinned bundle"
|
||||
write: true
|
||||
capability: "Build small source-pinned security planes (namespaces, service accounts, network policies)"
|
||||
intended_owner: null
|
||||
blocked_on: >-
|
||||
Kubernetes is not catalogued in §4, so no engine is named as its owner.
|
||||
ops-mason reads the cluster as Tooling by character (§3.2) and declares
|
||||
the contact rather than treating it as out of scope; raised with
|
||||
gate-house as a catalog question.
|
||||
review: "2026-12-21"
|
||||
- id: bao-session-grant
|
||||
shape: "5.2"
|
||||
module: scripts/bao-session.sh
|
||||
symbol: login, grant, revoke
|
||||
tooling: OpenBao
|
||||
operation: "Operator OIDC login; mint a scoped, bounded token under the operator's own session"
|
||||
write: true
|
||||
capability: "Hand an agent session a task-scoped ops-mason-build token instead of the operator's session"
|
||||
supplied_authority: none
|
||||
note: >-
|
||||
Runs under the operator's own authority and narrows it; ops-mason holds
|
||||
no standing credential of its own.
|
||||
|
||||
non_tooling_clients:
|
||||
- module: ops-warden registry/routing/catalog.yaml (git contribution)
|
||||
target: ops-warden
|
||||
rationale: "A proposed catalog entry is a repository commit, not a runtime call."
|
||||
- module: State Hub (session protocol)
|
||||
target: state-hub
|
||||
rationale: "Not catalogued in §4; coordination only, no security state."
|
||||
---
|
||||
|
||||
# INTENT
|
||||
|
||||
> **NetKingdom layering review — 2026-08-28.** This repository's role was reviewed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue