145 lines
7.3 KiB
Markdown
145 lines
7.3 KiB
Markdown
|
|
---
|
|||
|
|
derived_from: net-kingdom/canon/standards/security-layer-model_v0.8.md
|
|||
|
|
derived_at_commit: "66eeaba"
|
|||
|
|
derived_at_date: "2026-09-07"
|
|||
|
|
status_marker: >-
|
|||
|
|
DERIVED, DATED REVIEW RECORD. States findings as of 2026-09-07 against v0.8 at
|
|||
|
|
net-kingdom@66eeaba. Not current state, and not a substitute for the standard.
|
|||
|
|
Per §12, read the authoritative artifact.
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Review — security-layer-model v0.8, as text
|
|||
|
|
|
|||
|
|
approval-engine's review round, requested by `gate-house` 2026-09-06. Marked as
|
|||
|
|
a derived, dated artifact per §12's own rule.
|
|||
|
|
|
|||
|
|
## Scope actually read
|
|||
|
|
|
|||
|
|
§5 and subsections, §6 including all of §6.4, §11, §12, §13.1, §14, §15, §16,
|
|||
|
|
§17, and the §18–§20 boundary. §9.7.3 and §15 were reviewed in the earlier
|
|||
|
|
partial round that produced F-A1.
|
|||
|
|
|
|||
|
|
Not read as text: §1–§4, §7, §8, §9.1–§9.2, §9.5–§9.6, §9.8, §10, §18, §20.
|
|||
|
|
Findings below are not an assent to those sections.
|
|||
|
|
|
|||
|
|
## Findings
|
|||
|
|
|
|||
|
|
### F-A2 — §6.4 announces four obligations and states five (substantive)
|
|||
|
|
|
|||
|
|
§6.4 reads "**Four obligations, and they are normative:**" and then lists five
|
|||
|
|
numbered items, 1 through 5.
|
|||
|
|
|
|||
|
|
This is not a typo with cosmetic consequences. v0.7 said "Four obligations" and
|
|||
|
|
listed items 1–4; v0.8 added obligation 5 (*Validation by owning layer*) per
|
|||
|
|
§15 change 3 and left the count sentence untouched.
|
|||
|
|
|
|||
|
|
**Why it matters more than a miscount.** Obligation 5 is the one that carries
|
|||
|
|
correspondence-by-identity, the PIP/PDP separation, the replay-identity
|
|||
|
|
property, and the summary-predicate trust rule. It is the obligation the entire
|
|||
|
|
`GH-DEC-2026-003` / `GH-DEC-2026-005` / `GH-DEC-2026-008` chain rests on, and
|
|||
|
|
the one that binds this engine at issue time.
|
|||
|
|
|
|||
|
|
The failure is concrete: a consumer implementing "the four obligations of §6.4"
|
|||
|
|
has a defensible reading under which it implements 1–4 and omits the one that
|
|||
|
|
governs how it compares an approval to a decision. The count sentence is the
|
|||
|
|
first line an implementer reads and the last thing anyone rechecks.
|
|||
|
|
|
|||
|
|
It has already propagated. gate-house's own message to this repository on
|
|||
|
|
2026-09-06 states "The ruling stands and its four obligations stand" — written
|
|||
|
|
after obligation 5 was added, by the section's author.
|
|||
|
|
|
|||
|
|
Fix: change the word, or state "five" and check whether any other cross-reference
|
|||
|
|
to "§6.4's four obligations" exists in the estate.
|
|||
|
|
|
|||
|
|
### F-A3 — §17's artifact count and ownership status contradict the section's own body (substantive)
|
|||
|
|
|
|||
|
|
Three statements in §17 cannot all be true:
|
|||
|
|
|
|||
|
|
1. "**Four artifacts are therefore required, owned by Taxonomy**" — but the
|
|||
|
|
table's second row is struck through and the body says plainly "**The
|
|||
|
|
decision-record schema is not Taxonomy's.**" So four are required; four are
|
|||
|
|
not Taxonomy's.
|
|||
|
|
2. "**Ownership of the emission-cadence declaration is assigned**" to
|
|||
|
|
`info-tech-canon` and `net-kingdom` (`GH-DEC-2026-004`, both accepted in
|
|||
|
|
their own voice). So a second of the four is also not Taxonomy's.
|
|||
|
|
3. "**Ownership of the remaining three artifacts is still proposed.** The
|
|||
|
|
request-claim and gap-record schemas sit between `info-tech-canon` and
|
|||
|
|
`net-kingdom`…; the decision-record schema is `access-engine`'s, per above."
|
|||
|
|
|
|||
|
|
Statement 3 is internally contradictory: it declares three artifacts' ownership
|
|||
|
|
"still proposed" and then, in the same sentence, settles one of them. By the
|
|||
|
|
section's own account exactly **two** artifacts are unsettled — request-claim
|
|||
|
|
and gap-record — while decision-record is `access-engine`'s and
|
|||
|
|
emission-cadence is assigned by a decision both owners accepted.
|
|||
|
|
|
|||
|
|
This matters because §15 change 10 claims "§17's stale ownership paragraph is
|
|||
|
|
corrected". The correction landed on the emission-cadence paragraph and did not
|
|||
|
|
propagate to the count sentence or the closing status paragraph, so the section
|
|||
|
|
now reads as though ownership is more open than the decisions record. A reader
|
|||
|
|
checking whether the decision-record schema needs an owner will find it listed
|
|||
|
|
among the unsettled.
|
|||
|
|
|
|||
|
|
Fix: state that four artifacts are required and name their owners individually,
|
|||
|
|
and reduce the closing paragraph to the two genuinely unsettled.
|
|||
|
|
|
|||
|
|
### F-A4 — the §19 hole is explained only where a reader is unlikely to look (minor)
|
|||
|
|
|
|||
|
|
Headings run §18 then §20. The explanation — the fitness verdict formerly at §19
|
|||
|
|
moved to `net-kingdom/history/2026-08-29-layering-standard-assessment.md` — is a
|
|||
|
|
bullet late in §16.
|
|||
|
|
|
|||
|
|
The reasoning for moving it is right, and we are not asking for it back: a grade
|
|||
|
|
inside a standard of record does become normative by adjacency. But a reader
|
|||
|
|
scanning the structure sees a gap and cannot tell whether a section was lost in
|
|||
|
|
an edit. A one-line stub at the §18/§20 boundary pointing at the history file
|
|||
|
|
would cost nothing and closes the question where it is actually asked.
|
|||
|
|
|
|||
|
|
## Points reviewed and found sound
|
|||
|
|
|
|||
|
|
Recorded because a review that reports only defects gives no signal about what
|
|||
|
|
was actually examined.
|
|||
|
|
|
|||
|
|
- **§5's carve-out sunset** is the right shape. Naming today's instances (State
|
|||
|
|
Hub, `llm-connect`) *and* tomorrow's (agent memory, tool-call traces, prompt
|
|||
|
|
caches) is what stops the valve becoming permanent, and the three bounding
|
|||
|
|
rules are checkable rather than aspirational.
|
|||
|
|
- **§5's refusal of a fourth "operator" shape** is correct and the reasoning is
|
|||
|
|
the load-bearing part: a permanent operational necessity is a declared gap
|
|||
|
|
whose review keeps returning, and a ceremonial review argues for closing the
|
|||
|
|
gap rather than renaming it.
|
|||
|
|
- **§6.4 obligation 2's negative-caching carve-out** is narrow in the right
|
|||
|
|
places. Requiring the refusal to be recorded against the request refused, and
|
|||
|
|
the cache lifetime published alongside the stance map, prevents a stale deny
|
|||
|
|
being misdiagnosed as policy.
|
|||
|
|
- **§6.4 obligation 3's `unknown` ruling.** The argument that `unknown` is the
|
|||
|
|
cheapest state for an attacker to induce, and that a permissive `unknown`
|
|||
|
|
makes being unclassifiable an escalation requiring no credential, is correct
|
|||
|
|
and is the strongest single paragraph in the version.
|
|||
|
|
- **§11's blocked-clean protection.** Forbidding any downstream scoring from
|
|||
|
|
ranking blocked-clean below a quiet direct client is necessary; without it the
|
|||
|
|
standard punishes the repositories that obeyed it.
|
|||
|
|
- **§13.1's statement that cross-axis aggregation is unavailable.** Stating an
|
|||
|
|
incommensurability rather than manufacturing a zone mapping is the same
|
|||
|
|
refusal-to-translate this engine argued for on `pdp_digest`, and it is right
|
|||
|
|
for the same reason.
|
|||
|
|
- **§12's disclosure that step four is aspiration.** `kings-guard` has never
|
|||
|
|
observed anything in operation, and saying so inside the loop diagram's own
|
|||
|
|
section prevents every downstream argument that assumes an invariant is being
|
|||
|
|
watched.
|
|||
|
|
- **§16's retirement of the archival-custody question.** The reasoning — that
|
|||
|
|
archival custody does not address omission at all, which is the acute risk for
|
|||
|
|
approvals — is correct, and it retires a promise the archive could not cash.
|
|||
|
|
|
|||
|
|
## Verification note
|
|||
|
|
|
|||
|
|
Two candidate findings were dropped after checking rather than reported:
|
|||
|
|
|
|||
|
|
- §15 change 9 says §13.1 "gains three rows" while the register shows five. v0.7
|
|||
|
|
held two rows, so +3 is correct.
|
|||
|
|
- §11 says the §9.1 defect has been corrected "three times" and then "four
|
|||
|
|
times" a few paragraphs later. These count different corrections in sequence
|
|||
|
|
and are consistent.
|
|||
|
|
|
|||
|
|
Both are recorded because the count of findings a review reports is meaningless
|
|||
|
|
without the count it checked and discarded.
|