gate-house ruled the section 3 vocabulary closed at four case-insensitive tokens and named Staff (role pep-shaped unchanged). Both files were changed the same day, as this repository had committed to. INTENT.md now governs. layer.yaml is marked derived from INTENT.md and carries no standard or companion version. The reasoning behind `surface` stays in layer.yaml as history. INFD-IN-0006 is closed. INFD-IN-0007 asks once more how section 3.4's Staff definition fits a deterministic, non-agentic, evidence-holding repository. It is a question only: nothing waits on it. Section 4 answer: yes, as a Staff / pep-shaped / evidence-source row. The emission guarantee is owed per event class: presentation (volume), disposition (rare), stance-application (rare). See docs/section-4-catalog-row.md. 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
200 lines
12 KiB
Markdown
200 lines
12 KiB
Markdown
# Decision request — is §3's layer vocabulary closed, and what is `surface`?
|
|
|
|
> **RULED, 2026-09-21 — `GH-DEC-2026-017`.** The vocabulary is **closed** at four tokens
|
|
> (`Taxonomy`, `Tooling`, `Engine`, `Staff`), comparison is case-insensitive, and the value
|
|
> for this repository is **`Staff`**, with `role: pep-shaped` untouched. That is the second
|
|
> row of §3's table below: *change both files to that value in one commit, same day, with
|
|
> no argument.* Done the same day, in `INTENT.md` (which now governs, per the same ruling)
|
|
> and in `layer.yaml` (now marked derived). The elimination reasoning below is kept as
|
|
> history in `layer.yaml` rather than erased.
|
|
>
|
|
> The ruling also held that this repository was **never a §11 non-conformance** — §11 binds
|
|
> repositories in §4 and this one has no row — and asked, rather than decided, whether it
|
|
> should take one. Answered in `docs/section-4-catalog-row.md`: **yes**.
|
|
>
|
|
> One part of §3's non-conditional request is answered as to the **value** and not as to
|
|
> the **fit**: §3.4's prohibition on Staff holding runtime state another layer depends on
|
|
> is not reached by the ruling. Asked once more as `INFD-IN-0007`. It blocks nothing and
|
|
> the value was applied regardless, as promised.
|
|
>
|
|
> **This document is not edited below this line.** It is the record of what this repository
|
|
> argued before it knew the answer, and it is more useful unretouched.
|
|
|
|
**Intake:** `INFD-IN-0006`
|
|
**To:** `gate-house` (owner of §11 and of the security layer model)
|
|
**Standard:** `net-kingdom/canon/standards/security-layer-model_v0.8.md` (proposed)
|
|
**Prior ruling this builds on:** `GH-DEC-2026-012` (answering `INFD-IN-0001`)
|
|
**Raised by:** the custodian's estate-wide sweep,
|
|
`the-custodian/docs/assessments/2026-09-21-layer-declaration-boundaries.md`,
|
|
extending `flex-auth`'s boundaries review (`FLEX-WP-0030`, 2026-09-20, corrected
|
|
2026-09-21). Not a finding this repository received directly, and not one anyone
|
|
had raised with it before 2026-09-21.
|
|
|
|
> **Derived-artifact note (§12).** This document restates §3, §6.4 and §11 of
|
|
> `security-layer-model_v0.8.md` and quotes `GH-DEC-2026-012`. It is derived from
|
|
> those bodies at `net-kingdom` v0.8 as published 2026-09-09 and
|
|
> `gate-house` `decisions/decisions.md` as of 2026-09-21. Where it and they
|
|
> differ, they govern.
|
|
|
|
---
|
|
|
|
## 1. What was found
|
|
|
|
`informed-decision` declares `layer: surface` in `INTENT.md` frontmatter and in
|
|
`layer.yaml`. §3 of the security layer model enumerates four layers — Taxonomy,
|
|
Tooling, Engines, Staff — and `surface` is not among them. `flex-auth`'s
|
|
conformance validator reads the vocabulary as closed and admits only
|
|
`{Staff, Engine, Tooling}`, so this repository fails it on the **value**.
|
|
|
|
Two facts about the finding, stated so the ruling is not made on a wrong picture:
|
|
|
|
- **This repository is internally consistent.** Both files carry `surface`, in
|
|
the same casing. The nine repositories in B1 of the boundaries review disagree
|
|
with themselves between `INTENT.md` and `layer.yaml`; `informed-decision` is
|
|
not one of them and the precedence question (which form governs) does not
|
|
arise here. Whichever form gate-house rules authoritative, this repository
|
|
gives the same answer.
|
|
- **`informed-decision` has no §4 catalog row.** The standard does not name it.
|
|
It declared its layer ahead of being catalogued, on the strength of §11's
|
|
"who must declare" and `GH-DEC-2026-012`. So the ruling asked for here is not
|
|
only about a word in a file; it is about what row this repository would take
|
|
if §4 were extended to it.
|
|
|
|
## 2. What `surface` was meant to denote
|
|
|
|
`surface` names the **presentation-and-binding tier**: the place where a
|
|
decision rendered elsewhere is shown to a named human, and that human's identity
|
|
is bound to the act — together with the evidence that the presentation actually
|
|
happened. It is the position `INTENT.md` opens on: *"every layer of the
|
|
NetKingdom estate has an owner except the one a human actually touches."*
|
|
|
|
It was not a casual word and it was not a synonym for "frontend". It was written
|
|
on 2026-09-09 in commit `f6376dd`, in this repository's own voice, immediately
|
|
after `GH-DEC-2026-012`, whose R1 ends:
|
|
|
|
> *"Being PEP-shaped does not move a repository out of its layer (§6.4). Its
|
|
> layer is its own to declare in its own voice; this ruling settles its shape,
|
|
> which is what was asked and what was blocking."*
|
|
|
|
That sentence left the layer value to this repository — and left it with a
|
|
vocabulary in which no value was true.
|
|
|
|
**Why not Engine.** `GH-DEC-2026-012` R1 ruled it, in terms: *"It is **not** an
|
|
Engine and takes no catalog row as one. It holds no state another layer reads at
|
|
runtime to reach a verdict, which is the test, and it renders no decision."*
|
|
This repository asked for that ruling and argued for it against itself
|
|
(`docs/gate-house-decision-request-layer-placement.md` §3, the self-dealing
|
|
objection). Declaring `Engine` now would contradict a standing gate-house ruling.
|
|
|
|
**Why not Staff.** §3.4 makes Staff *"interactive and non-deterministic"*,
|
|
working *"through agentic capability"*, producing *"specifications, decisions,
|
|
workplans, and tasks"*. This repository's core artifact is a hash over a
|
|
rendered view: the same approval rendered to the same principal in the same role
|
|
yields the same `view_hash`, asserted by test. Determinism is the standard's
|
|
primary cut (§3), and this falls on the deterministic side. §3.4 also says Staff
|
|
*"MUST NOT hold state that another layer depends on at runtime"* — presentation
|
|
records are exactly state `audit-core` depends on, so a Staff declaration would
|
|
be self-violating on the day it was made. And `AGENTS.md` carries **never let an
|
|
agent bind**: only a human completes a disposition. A repository whose hardest
|
|
rule is that no agent may perform its protected act is a poor fit for the layer
|
|
defined by agentic capability.
|
|
|
|
**Why not Tooling.** §3.2 is *"deterministic infrastructure: data structures,
|
|
persistence, and the consistent, performant, scalable keeping of state."* This
|
|
repository persists nothing another layer reads; `approval-engine` owns the
|
|
approval object and `audit-core` owns the archive. It is a client of both.
|
|
|
|
**Why not Taxonomy.** §3.1 is terms and semantic contracts with *"no runtime
|
|
position"*. This repository is nothing but a runtime position.
|
|
|
|
So `surface` was chosen because each of the four §3 values is **false** of this
|
|
repository, one of them by gate-house's own ruling. Faced with picking a false
|
|
value to satisfy a validator or writing the true word and carrying the finding,
|
|
this repository wrote the true word. That is the same order it used in
|
|
`INFD-IN-0001` — ruling first, architecture second — and the same disposition as
|
|
declaring `GH-DEC-2026-010` an inherited open gap rather than describing the
|
|
decision path as validated.
|
|
|
|
`role: pep-shaped` is a separate key and carries the §6.4 shape. `surface` was
|
|
never intended as a restatement of "PEP" in the layer slot; §6.4 is explicit
|
|
that PEP is a shape and not a layer, and this repository accepted that in full.
|
|
|
|
## 3. This repository's position
|
|
|
|
**`informed-decision` holds that `surface` names a real tier §3 does not
|
|
enumerate.** The argument is the elimination above, and its sharpest form is
|
|
this: `GH-DEC-2026-012` ruled this repository out of Engine, and §3 offers
|
|
nothing else that is true of it. If the vocabulary is closed at §3's four
|
|
values, then a standing ruling and a closed vocabulary together leave this
|
|
repository **no conforming declaration available**. That is the defect the
|
|
standard has now corrected several times in its own text — *"a rule that assigns
|
|
an obligation the holder cannot discharge is the §9.1 defect applied to
|
|
conformance rather than capability"* (§11) — and it would be produced here by
|
|
the interaction of two correct rules rather than by either being wrong.
|
|
|
|
**But this repository does not claim the ruling must go its way, and does not
|
|
ask for §3 to be amended in its favour.** It asks for a ruling, and states now
|
|
what it will do on each answer:
|
|
|
|
| Ruling | What `informed-decision` does |
|
|
| --- | --- |
|
|
| §3's vocabulary is **open**, and `surface` (or a gate-house-chosen name for that tier) is enumerated in a future §3 | Adopt the enumerated spelling in `INTENT.md` and `layer.yaml` in one commit, update `tests/test_layer_conformance.py` to pin it, and take the §4 row that comes with it. |
|
|
| §3's vocabulary is **closed**, and gate-house names which of the four this repository takes | Change both files to that value in one commit, same day, with no argument — and record in `layer.yaml` the reasoning above as the history of what was believed, so the change does not read as if the word had been careless. |
|
|
| §3's vocabulary is **closed** and gate-house declines to name a value | This repository cannot pick one. It would carry an undeclared violation it has no move against, and would rather be told than guess. |
|
|
|
|
**One request attaches to the closed outcome.** If gate-house rules the
|
|
vocabulary closed, this repository asks that the ruling say **which value** and
|
|
**how §3's determinism cut reaches it**, given `GH-DEC-2026-012` R1. Not as a
|
|
condition — the value changes either way — but because the next repository in
|
|
this position will reason from the ruling, and "not Engine, and also Staff" is a
|
|
result that needs its derivation shown. `approval-engine`'s inbox, this
|
|
repository's own existence, and `key-cape`'s blocked `client_id` all came from
|
|
the same gap: the tier a human touches had no owner. A vocabulary that cannot
|
|
name it will produce the gap again.
|
|
|
|
## 4. `surface` is now the only case, and it should be ruled on alone
|
|
|
|
This repository reached, independently and before seeing the correction, the
|
|
observation that `flex-auth`'s validator set `{Staff, Engine, Tooling}` is not
|
|
§3's enumeration — §3 has **four** rows, and `Taxonomy` is the first of them.
|
|
`railiance-master` got there first and with the fuller citation, and the
|
|
custodian's record was corrected on 2026-09-21 to say so, including the sharper
|
|
finding this repository had not reached: §3's table writes `Engines` while §4's
|
|
catalog types eight rows `Engine`, so two faithful conformance runs disagree
|
|
about every engine in the estate.
|
|
|
|
That correction is recorded here rather than re-argued, because it changes what
|
|
this request is. `railiance-master`'s `Taxonomy` fails a validator, not the
|
|
standard. **`surface` is the only surveyed value outside §3 itself**, and it is
|
|
the only one that needs a ruling on whether the vocabulary is closed. The two
|
|
cases do not behave alike and should not be ruled on together — which is what
|
|
the corrected record now says, and this repository agrees with it.
|
|
|
|
One point does carry over into the closed outcome: if §3's vocabulary is ruled
|
|
closed, the closed set should be **written out as declaration values** rather
|
|
than left to be inferred from table row labels. The `Engines`/`Engine`
|
|
divergence shows what happens otherwise, and it is the same shape as the
|
|
case-sensitivity question (boundaries-review question 2) and as B1 — two
|
|
readings of one standard, both faithful.
|
|
|
|
## 5. What this repository has not done
|
|
|
|
It has **not** changed `layer: surface` in either file. Changing it before the
|
|
ruling would pre-empt gate-house on a question gate-house holds, and would
|
|
destroy the evidence of what this repository actually concluded — which, if the
|
|
tier is real, is the thing the ruling needs most. `layer.yaml` now carries a
|
|
pointer to this request so the value is not read as unexamined.
|
|
|
|
## 6. Position summary
|
|
|
|
1. `surface` denotes the presentation-and-binding tier — the runtime a human
|
|
touches, deterministic, holding no state for a verdict, rendering no
|
|
decision, and evidencing what was shown.
|
|
2. It was chosen by elimination against §3, with Engine excluded by
|
|
`GH-DEC-2026-012` R1, and written in this repository's own voice because that
|
|
ruling said the layer was this repository's to declare.
|
|
3. `informed-decision` holds that this is a real tier §3 does not enumerate.
|
|
4. It will change the declared value without argument if gate-house rules the
|
|
vocabulary closed and names the value.
|
|
5. It asks that the ruling, if closed, show its derivation — and that the
|
|
validator's three-value set be corrected to §3's four independently of it.
|