Answer the exec-path question: the front door reads the ungoverned duplicate.
ops-warden and railiance-platform asked, independently, which OpenBao location `secrets-engine exec --catalog whynot-design-npm-publish` reads. Answered from this repository's own code and catalog with no OpenBao read and no value. It reads `secret/coulomb/whynot-design/npm/publish` — the legacy, ungoverned duplicate. `_fetch_value` concatenates the catalog's `mount` and `path` with no override or fallback, so the proven pilot published from the duplicate and the lowercase `npm_token` field is the field there. ops-warden's front door names this repository as exec_owner, so it currently routes callers at a path no CCR covers. Recorded in SECRETS-WP-0006 with what a move to the governed lane requires, and flagged that the duplicate must not be destroyed until the lane moves. Whether the two locations hold the same value is a value comparison and is not answered here. Also records GH-DEC-2026-017 against SECRETS-WP-0008: INTENT.md governs, the sidecar is derived, the vocabulary is case-insensitive so nothing is re-spelled, and standard_version comes out of layer.yaml once ops-warden updates the reference form this repository copied. 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
e5672846ab
commit
550ba95a67
3 changed files with 162 additions and 1 deletions
|
|
@ -354,6 +354,68 @@ Acceptance:
|
|||
- No fallback from JWT/service-auth failure into bootstrap or AppRole.
|
||||
- Issued delivery sessions continue to self-revoke as in WP-0007-T05.
|
||||
|
||||
### 2026-09-21 GH-DEC-2026-017 — section 11 layer declaration ruled
|
||||
|
||||
Read from `gate-house/decisions/decisions.md`, not from message text.
|
||||
`secrets-engine` is a named affected repository and carries both permitted
|
||||
forms, so all four parts apply here. State Hub decision id
|
||||
`82dd0fea-fabb-4940-92d5-d6e2ea9985f5`.
|
||||
|
||||
What the ruling settles for this repository:
|
||||
|
||||
1. **`INTENT.md` governs.** Our declaration is the `layer: Engine` key in
|
||||
`INTENT.md` frontmatter. `layer.yaml` is a **derived artifact**: it must be
|
||||
marked as derived, must name `INTENT.md` as what it derives from, and must
|
||||
agree with it. Our `layer.yaml` already carries `declared_by: INTENT.md` and
|
||||
a `Voice: INTENT.md (this repository's own declaration, §11)` header comment,
|
||||
so we are among the repositories already treating the sidecar as derived in
|
||||
substance. What is missing is the explicit derived marking the ruling now
|
||||
requires as a field rather than a comment.
|
||||
2. **The §3 vocabulary is case-insensitive and comparison must ASCII case-fold.**
|
||||
Our `INTENT.md` says `Engine` and our `layer.yaml` says `engine`. Under §2 of
|
||||
the ruling that is **conforming**, it was never a disagreement about a layer,
|
||||
and **nothing here is re-spelled**. flex-auth withdrew the casing finding
|
||||
itself (message `962bf395`) and its validator is the thing that changes. We
|
||||
do not touch either file's spelling, and we do not "align" them.
|
||||
3. **The vocabulary is closed with four tokens** — `Taxonomy`, `Tooling`,
|
||||
`Engine`, `Staff`. `Engine` is in it; no action.
|
||||
4. **`standard_version` comes out of the declaration.** Our `layer.yaml` carries
|
||||
`standard_version: "0.7"`. A declaration asserts a standing property and must
|
||||
not carry a standard version; version-scoped state belongs in the derived
|
||||
conformance record, which must name what it derives from and the version or
|
||||
commit it was derived at.
|
||||
|
||||
**Deliberately not done in this session.** The ruling states that
|
||||
`standard_version` is not one repository's habit but **ops-warden's reference
|
||||
form**, which this repository copied along with seven others, and that ops-warden
|
||||
is asked to make the change there rather than each adopter deciding independently.
|
||||
ops-warden is updating that reference form in a parallel session. Inventing our
|
||||
own sidecar shape ahead of it would produce exactly the divergence the ruling
|
||||
exists to close, so we record the requirement and wait for the reference form.
|
||||
|
||||
What `secrets-engine` will need, once the reference form lands:
|
||||
|
||||
- Adopt the reference form's derived-artifact marking in `layer.yaml`, keeping
|
||||
`declared_by: INTENT.md` or whatever field the reference form names for it.
|
||||
- Remove `standard_version: "0.7"` from `layer.yaml`.
|
||||
- Move the version the conformance run was derived at into our derived
|
||||
conformance record, per the reference form's field for it. Our conformance
|
||||
checker is `scripts/check_layer_conformance.py`; it reads `layer.yaml` today
|
||||
and will need to read `INTENT.md` as the governing form, read the sidecar as
|
||||
well, and **report a disagreement between them as a finding** rather than
|
||||
resolve it by precedence. A casing-only difference is not such a disagreement.
|
||||
- Keep `framework:`, `layer:`, `role:` and the substantive §3/§5/§6/§9.6
|
||||
content unchanged. `role:` is explicitly not ruled and stays as it is.
|
||||
- The `Framework:` header comment in `layer.yaml` cites
|
||||
`security-layer-model_v0.7.md` while the ruling is issued against `v0.8`.
|
||||
That is a citation in a comment, not a declaration version, so it is out of
|
||||
scope for part 4 — but it should be refreshed in the same commit so the two
|
||||
are not confused for each other.
|
||||
|
||||
No task is opened here by hand. This is a note against the workplan that already
|
||||
owns `layer.yaml` / `pep-stance.yaml` / INTENT frontmatter staying in one voice;
|
||||
the work lands under that exit criterion when ops-warden's form is published.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
- The published PEP stance is the shipped default and stance application is
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue