railiance-master/history/260829-demand-netkingdom-security-layer-alignment.md
codex fb0c038eb6 docs: align intent and scope with NetKingdom security-layer v0.7
Declare this repository Taxonomy of Railiance workload operations, consume
statute §20 without hosting a PDP, and open RMASTER-WP-0026 for the
machine-readable declaration, consumption contract, and unsettled axis
mapping.

Assistant: grok
Assistant-Session: 01a04c9f-cd6b-7741-bce0-f1d9d1b3c3bc
2026-08-29 11:47:56 +02:00

180 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: RMASTER-DEMAND-2026-08-29-001
type: demand-review
status: accepted
received: "2026-08-29"
reviewed: "2026-08-29"
reviewer: grok
source: operator
consumer: railiance-master maintainers, rail/rapp/reef implementation repos, gate-house, glas-harness
resulting_workplan: RMASTER-WP-0026
standards:
- net-kingdom/canon/standards/security-layer-model_v0.7.md
- net-kingdom/SECURITY-COMPANION.md
---
# Review: align railiance-master with the NetKingdom security-layer model
## Demand signal
The NetKingdom security-layer standard has been finalized as **accepted v0.7**
(2026-08-29) and complemented by **working companion v0.2**. Read the latest
text, adapt `INTENT.md`, update `SCOPE.md`, assess remaining gaps between
intent and current implementation, and open a workplan for the evolution this
repository still owes.
## Consumer purpose
Maintainers and downstream Railiance repositories need to tell, without
reconstructing context from `gate-house` notes:
- which NetKingdom layer this architecture home occupies;
- that operations belong to Railiance and security constitution to NetKingdom;
- which §20 rules every Railiance consumer already owes;
- which axis-to-layer mappings are **not** settled and must not be guessed;
- which implementation work belongs here versus in `access-engine`,
`approval-engine`, `secrets-engine`, `audit-core`, `glas-harness`, or a
concrete rail/rapp/reef.
## Purpose fit
**Strong fit.** `INTENT.md` already names this repository as the Railiance
framework architecture home and, as of 2026-08-29, as the owner of the
workload-operation axes. Statute §20 restates those definitions and asks this
repository to assent to the boundary. Companion §9 is the operative form of
the same paragraph. Aligning intent and scope with that boundary is this
repository's job. Implementing engines, PEPs, or harness session semantics is
not.
## Evidence reviewed
- `net-kingdom/canon/standards/security-layer-model_v0.7.md` (accepted; §2§6,
§11, §16, §20)
- `net-kingdom/SECURITY-COMPANION.md` v0.2 (operative form; §1§2, §9)
- `net-kingdom/docs/adr/ADR-0015` (per-engine rapp packaging; not a layer map)
- `INTENT.md` and `SCOPE.md` before and after this review
- `docs/adr/ADR-0001` through `ADR-0008`
- `docs/repository-axes.md`, `docs/exposure-posture-contract.md`,
`schemas/README.md`
- Reference declarations: `ops-warden/layer.yaml`, `kings-guard/layer.yaml`
- Open work: `RMASTER-WP-0020` (blocked OpenBao migration); finished
`RMASTER-WP-0024`, `RMASTER-WP-0025`
## What the standard requires of this repository
Statute §11: an estate-authored repository declares its layer in its own
`INTENT.md`, in a machine-readable form. A catalog row or a review note about
us is not a declaration. We are **not** in §4, so the declaration is an
adoption of the model for the operations architecture home, answering the
§16 question whether non-security repositories use the same constitution.
Companion §2: frontmatter `layer:` plus prose in our own voice.
Statute §20 / companion §9: consume, do not author:
1. decisions from `access-engine` only;
2. approvals as `approval-engine` objects consumed as claims;
3. credentials from `secrets-engine` after a decision;
4. evidence to `audit-core` under the alteration/truncation bound;
5. protected side effects are PEP-shaped.
Statute §20.3: **do not assume** a mapping of the four axes onto the four
layers. Raising the questions is welcome; guessing is a finding.
Statute §20.4: changes to the interaction boundary require this repository's
assent for axis definitions and `glas-harness` assent for the session seam.
Companion §10: do not plan around observation-in-production or automatic
containment. Both are at zero estate-wide.
## Layer chosen
**Taxonomy**, `role: null`.
The test in companion §1: this repository produces terms, semantic contracts,
and standards for workload operations. It owns no runtime position and no
state another layer depends on. Workplans and tasks exist here as
coordination, not as the product of the framework.
This is Railiance operations taxonomy, not NetKingdom security taxonomy.
`info-tech-canon` remains ecosystem-wide semantics; `net-kingdom` remains
NetKingdom standards of record; this repository remains the owner of
`railiance-*` / `rail-*` / `rapp-*` / `reef-*`. Contest this layer if it is
wrong — companion §2 asks for that correction rather than a polite label.
This repository is **not PEP-shaped**. `validate-family-declarations.py` is a
linter, not a runtime that causes a protected side effect.
## Scope versus intent
| Intent (after this alignment) | Current evidenced scope | Gap |
| --- | --- | --- |
| Declare `layer: Taxonomy` in our own voice | Frontmatter now present in `INTENT.md` | Machine-readable `layer.yaml` and a conformance check, as in the `kings-guard` no-contact form, are missing |
| Total account of non-Tooling clients | State Hub writes exist in practice | Not declared; §5 carve-out still requires listing so the check is total |
| Consume §20.2 for every Railiance consumer | ADR-00010008 are silent on PDP, approval objects, credentials-after-decision, evidence bound, and PEP-shape | Framework consumption contract / ADR not written |
| Admission and exposure stay Railiance axes and are not authorization decisions | ADR-0006 and ADR-0008 exist and do not mention `access-engine` | Vocabulary demarcation contract missing; risk that `production-approved` or `exposure: public` is read as a decision |
| Do not map axes onto layers until assented | No mapping exists (correct restraint) | The five §20.3 questions have no tracked exploration; drift will invent them in implementation repos |
| glas-harness / §3.4 seam is joint | INTENT names reins as adjacent | No joint contract; "tool availability is not permission" has no Railiance-side owner |
| Assent to §20 restatement of our definitions | Not recorded as a decision | Needed so gate-house can cite something other than a review note |
| Do not host a PDP, approval store, credential plane, or evidence archive | True: none of those surfaces exist here | Keep it; principle 13 now states it |
| Do not claim observation or containment | True | Keep it; companion §10 |
| Import NK constitution the way ITC is imported | SCOPE "How It Fits" previously omitted it | Corrected in this pass; remaining work is the consumption contract, not a second canon |
## What is already aligned
- Workload = managed running deployable, with the ADR-0007 coverage rule.
Statute §20.1 restates this; companion §9 copies it. No rewrite of the
object of the architecture is required.
- Four axes and the rein-is-not-a-fifth-axis rule. §20.1 matches the
2026-08-29 INTENT clarification.
- This repo does not implement rails, rapps, reefs, cluster, or platform.
- ADR-0008 private-by-default is an exposure rule, which can remain if it is
explicitly *not* an authorization decision.
- RMASTER-WP-0025 forbade inventing workload identity for non-workloads,
which is why approvals must not become a Railiance axis.
## What must not be done here
- Do not add `railiance-master` to NetKingdom §4. That catalog is
`gate-house`'s.
- Do not write a rail→Engine or rapp→PIP mapping in an ADR until §20.3 is
actually decided with the other side.
- Do not publish a PEP stance map from this repository.
- Do not fold glas-harness session semantics into a Railiance family.
- Do not treat RMASTER-WP-0020 (OpenBao migration) as the layer-alignment
workplan. OpenBao is catalogued Tooling; operating it is a declared-gap
question for the Staff repo that holds the client, not for this Taxonomy
home.
## Necessities for the current implementation
Ordered by what this repository can close without pretending to own an
engine:
1. **Machine-readable declaration.** `layer.yaml` in the kings-guard
no-contact shape: Taxonomy, empty `tooling_contacts`, State Hub listed
under `non_tooling_clients`, no PEP stance path. Optional conformance
script later; the file is the §11 surface.
2. **Recorded assent** to statute §20 as a restatement of our definitions
and as the consumption rules our consumers owe.
3. **Framework consumption contract** (ADR or `docs/` contract cited by an
ADR) that binds rails, rapps, and reefs to §20.2 without copying engine
schemas.
4. **Vocabulary split** among admission (ADR-0006), exposure (ADR-0008), and
authorization (`access-engine`). Three questions, three owners.
5. **Tracked exploration of §20.3**, five questions, no premature answers.
The glas-harness seam is the highest-consequence of the five and needs
that repository's assent.
6. **Notice to `gate-house` / `net-kingdom`** that this repository has
declared Taxonomy in its own voice, so §14's "undeclared non-security
repos" list can stop treating us as silent.
## Disposition
**Accepted** as `RMASTER-WP-0026`.
The work belongs here because it changes this architecture repository's own
interfaces: layer declaration, consumption contract, and the operations side
of an interaction boundary the statute already says we must assent to.
Engine implementation, PEP stance maps of live runtimes, and harness session
semantics are routed outward.