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
This commit is contained in:
codex 2026-08-29 11:47:56 +02:00
parent 22d88db056
commit fb0c038eb6
5 changed files with 528 additions and 16 deletions

116
INTENT.md
View file

@ -1,3 +1,11 @@
---
layer: Taxonomy
role: null
standard: netkingdom-security-layer-model
standard_version: "0.7"
companion: net-kingdom/SECURITY-COMPANION.md
---
# INTENT
> This file captures **why this repository exists**,
@ -5,6 +13,16 @@
> the **kind of system it is meant to become**.
> It is intentionally **aspirational and stable**, not a description of current implementation.
> **Layer: Taxonomy.** This is the declaration required by NetKingdom Security
> Layer Model v0.7 §11 and the working companion v0.2. It is this
> repository's own voice, not a catalog row about us. `railiance-master` is
> **not** a member of the NetKingdom §4 security-estate catalog. Operations
> belong to Railiance; NetKingdom provides the security and approval
> framework those operations consume. The statute is
> `net-kingdom/canon/standards/security-layer-model_v0.7.md`; the companion
> is `net-kingdom/SECURITY-COMPANION.md`. On disagreement the statute
> governs, and a disagreement is a finding for `gate-house`.
---
## One-liner
@ -47,9 +65,10 @@ Railiance organizes **workload operations**, not merely repositories.
A **workload**, in the Railiance-specific sense, is a managed running
deployable. Human commands, credential patterns, broker actions, approvals,
and infrastructure resources that are not themselves deployables are not
workloads. InfoTechCanon supplies the general landscape vocabulary; this
framework owns the Railiance application: every such workload is operated
through four composable axes.
workloads. That is why an approval object is a NetKingdom engine concept and
never a Railiance axis. InfoTechCanon supplies the general landscape
vocabulary; this framework owns the Railiance application: every such workload
is operated through four composable axes.
| Prefix | Axis | Question |
| --- | --- | --- |
@ -72,6 +91,11 @@ This repository does not define a `rein-*` family. When a rein is installed
and operated as a managed service, it is a workload like any other and is
packaged, executed, and bound through `rapp-*`, `rail-*`, and `reef-*`.
NetKingdom Security Layer Model v0.7 §20 restates these definitions; it does
not author them. Changes to that boundary require this repository's assent
for the axis definitions and `glas-harness`'s assent for the session and
tool-policy seam.
---
## Operating Context
@ -97,19 +121,59 @@ organization. They shape how humans and agents coordinate responsibilities,
reason about workload placement, and evolve operating models without losing the
ability to scale into more mature security and delivery expectations.
Railiance also participates in two wider governance structures:
Railiance also participates in three wider governance structures:
* **InfoTechCanon** owns the general semantic models, standards, and repository
conventions that Railiance adopts. This repository imports those concepts and
applies them to Railiance; it does not redefine the canon by local usage.
* **NetKingdom** owns the security-layer constitution (`security-layer-model`
v0.7 and its working companion). `gate-house` authors the layers, the one
decision point, and the Staff/Engine/Tooling binding rules. This repository
consumes that constitution for how workload operations use identity,
authorization, approval, credential, and evidence services. It does not host
a second decision point, an approval store, a credential plane, or an
evidence archive.
* **`policy-nexus`** owns permanent publication, addressing, history, and
currency for estate policy. This repository remains the source and
ratification home for its architecture decision records. Publication is
generated downstream and never written back here.
That separation matters. Content authority, semantic canon, and publication
infrastructure are related responsibilities, not one responsibility hidden in
three repositories.
That separation matters. Content authority, semantic canon, security-layer
constitution, and publication infrastructure are related responsibilities, not
one responsibility hidden in four repositories.
---
## How Railiance Consumes NetKingdom Security
For any Railiance consumer of NetKingdom security, without exception:
1. Authorization decisions come from `access-engine` and from nowhere else.
2. Approvals are objects in `approval-engine`, consumed as claims.
3. Credentials are materialized by `secrets-engine` **after** a decision, never
as a substitute for one.
4. Evidence goes to `audit-core` under the bound that an archive proves
alteration and truncation after arrival, not omission at source.
5. Anything causing a protected side effect is **PEP-shaped** and owes a
decision record or a recorded unreachable-engine stance, a lifetime on every
allow, and a published stance map.
This repository is **not PEP-shaped**. It defines contracts; it does not cause
protected side effects. Implementation rails, rapps, and reefs that do cause
them inherit those obligations in their own repositories.
**What is not settled**, and must not be guessed here: how the four axes map
onto Taxonomy, Tooling, Engine, and Staff. A `rapp` is the most likely
*resource* a decision is about; a `rail` is where PEP shape is most likely to
live, but a rail is a contract and §6.4 obligations attach to repositories; a
`reef` is adjacent to a security zone without being one; the ownership axis is
adjacent to the principal a decision is rendered for without being equal to it;
and the glas-harness / §3.4 seam is where "tool availability is not permission"
is either enforced or lost. Those five questions need explicit decisions with
the other side's assent. They are not implied by this file.
Admission (whether a binding may run in production) and exposure (who may
reach a listener) remain Railiance axes. They are not authorization decisions.
---
@ -131,6 +195,8 @@ This means:
**separate and composable**
* Adjacent families such as glas-harness `rein-*` remain **named and bounded**,
not absorbed as extra Railiance axes
* NetKingdom security is **consumed through one decision point**, never
re-implemented as a Railiance convenience
* Explorations mature into **stable decisions** before they spread across the
wider repo landscape
* Governing ADRs carry enough ownership, revision, status, and review metadata
@ -201,9 +267,11 @@ They should not be created merely because a named machine exists.
General concepts such as intent, scope, demand, task, governance, evidence,
repository layout, and workload come from InfoTechCanon and estate conventions.
This repo owns their Railiance-specific application: repo-family vocabulary,
workload coverage, composition, admission, exposure, and cross-repo boundary
decisions.
The security-layer constitution — layers, one decision point, Staff/Engine
binding, evidence bounds — comes from NetKingdom. This repo owns the
Railiance-specific application: repo-family vocabulary, workload coverage,
composition, admission, exposure, the interaction boundary with that security
constitution, and cross-repo boundary decisions.
### 11. Author Here; Publish Downstream
@ -219,6 +287,13 @@ what the repository currently owns and achieves. Consumer requests and incoming
proposals are demand signals until reviewed; they do not silently expand scope
or become committed work.
### 13. Consume Security; Do Not Become A Second Decision Point
A registry, schema, cache, or admission rule that resolves whether an actor
may act has decided early. Railiance may package, place, admit, and expose
workloads. It may not render or cache authorization decisions, mint standing
credentials in lieu of a decision, or treat audit silence as non-occurrence.
---
## What This Is (Conceptually)
@ -226,12 +301,16 @@ or become committed work.
This repository is:
* an **architecture-definition home**
* **Taxonomy** of Railiance workload operations — terms, family contracts, and
standards for how workloads are owned, executed, packaged, and bound
* a **repository taxonomy authority**
* a home for **framework-level ADRs and conceptual models**
* the **source repository** for Railiance framework ADRs published through
`policy-nexus`
* a place to define how **workload operations compose** across ownership, rail,
rapp, and reef
* the **assenting owner** of the axis definitions NetKingdom restates at the
operations/security interaction boundary
* a **migration map** from current repo reality toward cleaner framework
structure
@ -241,6 +320,9 @@ This repository is:
This repository is not:
* a member of the NetKingdom §4 security-estate catalog
* an Engine, a PDP, a PIP, an evidence plane, or a credential lifecycle API
* PEP-shaped — it causes no protected side effects
* the infrastructure substrate
* the Kubernetes runtime or workload execution layer
* the shared platform-services layer
@ -248,14 +330,20 @@ This repository is not:
* the application release surface
* the implementation of the ecosystem graph registry
* the general semantic canon owned by InfoTechCanon
* the NetKingdom security-layer constitution owned by `gate-house` and
published as net-kingdom canon
* the permanent policy publication surface owned by `policy-nexus`
* a policy CMS or a second copy of published policy
* a dumping ground for operational runbooks that belong elsewhere
* the glas-harness `rein-*` family, or the owner of agentic session semantics
* a place to invent a fifth repository family for LLM or agentic work
* a place to guess how rails, rapps, reefs, and ownership map onto
Taxonomy, Tooling, Engine, and Staff
A rein deployed as a managed service is a workload on the four Railiance axes.
The harness contract is not this repository's.
The harness contract is not this repository's. A mapping of those axes onto
the NetKingdom layers is an open interaction-boundary question, not an implied
taxonomy.
It is the **place where the framework explains itself**.
@ -270,6 +358,10 @@ This repository is expected to evolve toward:
* stronger **boundary guidance** for new repos and migrations
* a durable distinction between Railiance workload axes and adjacent harness
families such as `rein-*`
* a durable **interaction boundary** with the NetKingdom security-layer model:
consume §20.2; settle §20.3 only by explicit, assented decisions
* machine-readable layer declaration and a total account of non-Tooling
clients, without acquiring Engine or PEP permissions by gradual practice
* better linkage between architecture decisions and `railiance-fabric`
declarations
* publication-ready ADR lifecycle metadata and durable downstream policy links
@ -282,4 +374,4 @@ This repository is expected to evolve toward:
## Guiding Question
> **How can Railiance organize the operation of workloads clearly enough that every new ownership boundary, rail, managed package, and substrate increases capability without increasing ambiguity, even as the ecosystem grows from exploratory operation into production-grade responsibility?**
> **How can Railiance organize the operation of workloads clearly enough that every new ownership boundary, rail, managed package, and substrate increases capability without increasing ambiguity, and without becoming a second security decision point, even as the ecosystem grows from exploratory operation into production-grade responsibility?**

View file

@ -9,6 +9,8 @@ recorded before they are spread across implementation repos.
- [Intent and direction](INTENT.md)
- [Current scope and authority boundaries](SCOPE.md)
- [Reviewed architecture-demand intake](demand/README.md)
- [NetKingdom security-layer alignment review](history/260829-demand-netkingdom-security-layer-alignment.md)
- [RMASTER-WP-0026 — security-layer alignment](workplans/RMASTER-WP-0026-netkingdom-security-layer-alignment.md)
## Current Architecture Baseline

View file

@ -23,6 +23,12 @@ running deployable under rapp coverage (`ADR-0007`); human acts, credentials,
broker actions, and non-deployable infrastructure resources remain outside
that meaning.
This repository now **declares** itself Taxonomy of Railiance workload
operations in `INTENT.md` frontmatter (`layer: Taxonomy`, NetKingdom
security-layer-model v0.7). It is not a row in the NetKingdom §4 catalog.
The machine-readable `layer.yaml` form, a total non-Tooling-client account,
and a framework consumption contract for §20.2 are not yet evidenced here.
The current implementation includes:
- eight accepted framework ADRs covering repository families, rail composition,
@ -48,6 +54,11 @@ not own every implementation implied by them.
ownership or family repository
- Source metadata and lifecycle decisions for this repo's publishable ADRs
- Routing accepted architecture into repo-local implementation work
- Declaring this repository's NetKingdom security layer and the operations
side of the Railiance/NetKingdom interaction boundary
- Framework-level consumption rules for how rails, rapps, and reefs use
`access-engine`, `approval-engine`, `secrets-engine`, and `audit-core`
without hosting those engines here
---
@ -67,6 +78,17 @@ not own every implementation implied by them.
implementation owned by their concrete repositories
- glas-harness `rein-*` harness contracts and agentic session semantics; a
deployed rein is a workload on the four axes, not a fifth Railiance family
- The NetKingdom security-layer constitution owned by `gate-house` and
published as net-kingdom canon
- Authorization decisions (`access-engine`), approval objects
(`approval-engine`), credential materialization (`secrets-engine`), and
evidence custody (`audit-core`)
- PEP stance maps and unreachable-engine behaviour of implementation
repositories; this repo is not PEP-shaped
- A guessed mapping of rail, rapp, reef, or ownership onto Taxonomy,
Tooling, Engine, or Staff — statute §20.3 is unsettled
- Automatic containment or production observation; both are estate-wide
zeros, not this repository's gaps to close
---
@ -75,10 +97,13 @@ not own every implementation implied by them.
| Concern | Authority | Relationship to `railiance-master` |
| --- | --- | --- |
| General semantic models and repository-layout standard | `info-tech-canon` | Imported and applied; not redefined here |
| Security-layer constitution (layers, one PDP, Staff/Engine binding, evidence bounds) | `gate-house` / net-kingdom canon, `security-layer-model` v0.7 | Imported as the consumption constitution; not redefined here |
| Workload-operation axes and coverage | `railiance-master` | Owned here; restated, not authored, by NetKingdom §20 |
| Railiance framework architecture and ADR lifecycle | `railiance-master` | Authored, reviewed, accepted, superseded, or withdrawn here |
| Permanent publication of accepted ADRs | `policy-nexus` | Downstream read-only publication; never a second source of truth |
| Work indexing and coordination | State Hub | Cache/index rebuilt from repo-local workplan files |
| Work indexing and coordination | State Hub | Cache/index rebuilt from repo-local workplan files; a non-catalogued client, not a Tooling contact |
| Runtime implementation | Concrete ownership, rail, rapp, or reef repo | Routed outward after the framework boundary is settled |
| Agentic session and tool-policy seam | `glas-harness` | Adjacent; joint assent required for §20 changes that touch the seam |
The policy publication corpus from this repo is `docs/adr/*.md`. Workplans,
evidence, runbooks, schemas, and general documentation are not policy merely
@ -97,6 +122,8 @@ publication addressing are completed.
rules
- Planning a migration that spans multiple Railiance repositories
- Recording or reviewing a Railiance framework ADR
- Declaring or changing this repository's security layer, or the operations
side of the NetKingdom interaction boundary
## Not Relevant When
@ -105,6 +132,10 @@ publication addressing are completed.
- A workload-specific decision has no framework-wide consequence
- The request is about glas-harness session, tool, or rein-backend semantics
rather than how a deployed rein is packaged, executed, or bound as a workload
- The request is to render an authorization decision, store an approval, mint
a credential, or keep an evidence archive
- The request assumes observation-in-production or automatic containment
exists
- The request is raw demand that has not yet been reviewed for purpose and scope
fit
@ -115,6 +146,14 @@ publication addressing are completed.
- Status: maintained and evolving
- Architecture baseline: four repository axes are materialized and governed by
accepted ADRs and contracts
- Layer declaration: `INTENT.md` frontmatter declares `layer: Taxonomy`
against security-layer-model v0.7; `layer.yaml` and a conformance check are
not yet present
- Security consumption: ADR-0001 through ADR-0008 do not yet encode the
§20.2 rules (one PDP, approvals as claims, credentials after a decision,
evidence bound, PEP-shape of implementation runtimes)
- Admission (ADR-0006) and exposure (ADR-0008) are live Railiance axes and
are not yet demarcated in-repo from authorization decisions
- Validation: rail/rapp/reef schemas and declaration checks are implemented
- Active cross-repo work: OpenBao migration closeout remains partially blocked;
public-listener retraction is in progress while destructive source cleanup
@ -153,7 +192,8 @@ Intentional deviations and omissions:
## How It Fits
- Upstream standards: `info-tech-canon`, `the-custodian` canon, Custodian
workplan conventions
workplan conventions, NetKingdom `security-layer-model` v0.7 and
`SECURITY-COMPANION.md` v0.2 (consumption constitution, not authored here)
- Downstream policy publisher: `policy-nexus` (ADRs only, read-only)
- Downstream architecture consumers: all `railiance-*`, `rail-*`, `rapp-*`, and
`reef-*` repositories
@ -168,6 +208,8 @@ Intentional deviations and omissions:
- Start with: `README.md`, `INTENT.md`, `SCOPE.md`
- Architecture entry points: `docs/repository-axes.md`,
`docs/reef-substrate-model.md`, `docs/adr/`
- NetKingdom alignment review:
`history/260829-demand-netkingdom-security-layer-alignment.md`
- Machine-readable contracts: `schemas/`,
`tools/validate-family-declarations.py`
- Active and historical coordination: `workplans/`, `WORK-RECORDS.md`
@ -202,5 +244,11 @@ keywords: [schema, validation, declaration, rail, rapp, reef]
## Gap to Intent
The remaining alignment work is to complete downstream ADR publication, cleanly
archive completed work without breaking State Hub conventions, and retain a
repeatable canon-consumer review packet as the architecture evolves.
archive completed work without breaking State Hub conventions, retain a
repeatable canon-consumer review packet as the architecture evolves, and close
the NetKingdom security-layer gap recorded in
`history/260829-demand-netkingdom-security-layer-alignment.md` and tracked by
`RMASTER-WP-0026`: a machine-readable layer declaration, a §20.2 consumption
contract, a vocabulary split between admission/exposure and authorization, and
assented answers to the five unsettled axis-to-layer questions. Do not invent
the mapping, host a PDP, or take PEP shape in this repository.

View file

@ -0,0 +1,180 @@
---
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.

View file

@ -0,0 +1,190 @@
---
id: RMASTER-WP-0026
type: workplan
title: "Align railiance-master with the NetKingdom security-layer model"
domain: financials
repo: railiance-master
status: ready
owner: grok
topic_slug: netkingdom-security-layer-alignment
created: "2026-08-29"
updated: "2026-08-29"
---
# RMASTER-WP-0026 - Align railiance-master with the NetKingdom security-layer model
## Goal
Make this repository a conforming Taxonomy home for Railiance workload
operations under NetKingdom Security Layer Model v0.7: declare the layer in a
machine-readable form, record assent to statute §20, bind Railiance consumers
to the §20.2 consumption rules, split admission/exposure from authorization,
and open the five unsettled axis-to-layer questions without guessing them.
Source review: `history/260829-demand-netkingdom-security-layer-alignment.md`.
Statute: `net-kingdom/canon/standards/security-layer-model_v0.7.md`.
Companion: `net-kingdom/SECURITY-COMPANION.md` v0.2.
## Boundaries
- Do not add this repository to the NetKingdom §4 catalog; that is `gate-house`.
- Do not host a PDP, approval store, credential plane, or evidence archive.
- Do not publish a PEP stance map from this repository; it is not PEP-shaped.
- Do not invent a mapping of `rail-*` / `rapp-*` / `reef-*` / `railiance-*`
onto Taxonomy, Tooling, Engine, or Staff. Statute §20.3 is unsettled.
- Do not absorb `glas-harness` session or tool-policy semantics.
- Do not treat observation-in-production or automatic containment as available.
- Do not fold RMASTER-WP-0020 (OpenBao migration) into this workplan.
- `info-tech-canon` remains the general semantic canon; this workplan does not
redefine it.
## T01 - Machine-readable layer declaration
```task
id: RMASTER-WP-0026-T01
status: todo
priority: high
```
Add `layer.yaml` in the kings-guard no-contact shape, pointing at security
layer model v0.7:
- `layer: taxonomy`
- `role` omitted
- `tooling_contacts: []`
- `non_tooling_clients` lists the State Hub progress/work-record client
- no `pep_stance` path
- catalog note: not a §4 row; operations Taxonomy, not NetKingdom security
Taxonomy
`INTENT.md` frontmatter already declares `layer: Taxonomy`. Keep the file and
the frontmatter equal. A conformance script is optional in this task; the
declaration file is the §11 surface.
**Done when:** `layer.yaml` is committed, agrees with `INTENT.md`, and a
reviewer can see there are no Tooling contacts and no PEP claim.
## T02 - Record assent to statute §20
```task
id: RMASTER-WP-0026-T02
status: todo
priority: high
```
Record, in this repository's own voice, that:
- statute §20.1 restates our axis and workload definitions and does not
author them;
- statute §20.2 is accepted as the consumption constitution for every
Railiance consumer of NetKingdom security;
- statute §20.3 remains unset, and this repository will not imply a mapping;
- changes to §20 require our assent for the axis definitions.
Form: a short accepted ADR, or a dated decision note under `docs/adr/` with
publication-grade metadata. Notify `gate-house` / `net-kingdom` so §14 stops
treating this repository as silent.
**Done when:** the assent record exists, is cited from `INTENT.md` or
`SCOPE.md`, and a State Hub message (or equivalent durable notice) has been
sent to `gate-house`.
## T03 - Framework consumption contract
```task
id: RMASTER-WP-0026-T03
status: todo
priority: high
```
Write a framework contract, cited by the T02 ADR or a follow-on ADR, that
Railiance rails, rapps, and reefs consume NetKingdom security as follows:
1. Authorization decisions come from `access-engine` only.
2. Approvals are `approval-engine` objects consumed as claims.
3. Credentials come from `secrets-engine` after a decision.
4. Evidence goes to `audit-core` under the alteration/truncation bound.
5. A runtime that causes a protected side effect is PEP-shaped and owes
statute §6.4 in *its* repository, including a published stance map in the
§13.1 register.
Do not copy engine schemas. Point at the statute and at the owning repos.
Distinguish this contract from ADR-0006 (admission) and ADR-0008 (exposure).
**Done when:** the contract is in `docs/`, an ADR cites it, and SCOPE's
"security consumption" gap no longer says the eight ADRs are silent on §20.2.
## T04 - Split admission, exposure, and authorization
```task
id: RMASTER-WP-0026-T04
status: todo
priority: medium
```
Add a short vocabulary note, preferably in the T03 contract rather than a
fourth ADR, that these three questions stay distinct:
| Question | Owner |
| --- | --- |
| May this binding run in production? | Railiance admission (ADR-0006) |
| Who may reach the listener we control? | Railiance exposure (ADR-0008) |
| May this actor perform this action on this resource? | `access-engine` |
`production-approved` and `exposure: public` MUST NOT be read as
authorization decisions. Compiled admission or exposure data that resolved
whether an actor may act would be statute §6.1 (deciding early).
**Done when:** ADR-0006, ADR-0008, and the T03 contract each point at the
split, and no schema field is renamed unless a later ADR requires it.
## T05 - Track the five unsettled §20.3 questions
```task
id: RMASTER-WP-0026-T05
status: todo
priority: medium
```
Open a durable exploration record (demand files or a single `docs/` note
cited by T02) for the five questions statute §20.3 names, without answering
them:
1. Identity form of a `rapp-*` as a request-claim resource.
2. Whether a `rail-*` contract can carry PEP obligations, given that §6.4
attaches to repositories.
3. Composition of a `reef-*` with a security zone.
4. Relation of the `railiance-*` ownership axis to the principal a decision
is rendered for.
5. The `glas-harness` / statute §3.4 seam: tool policy versus conduit-or-engine
API, where "tool availability is not permission" is either enforced or lost.
Question 5 requires `glas-harness` assent before any ADR. Questions 14
require `gate-house` / engine-owner review before they become framework
decisions. Do not ship a mapping ADR in this workplan.
**Done when:** each question has an owner, a next review date, and a stated
non-answer, and SCOPE lists them as tracked rather than as missing
architecture.
## T06 - Close the SCOPE gap for this alignment
```task
id: RMASTER-WP-0026-T06
status: todo
priority: low
```
After T01T05, refresh `SCOPE.md` Current State and Gap to Intent so they
describe evidenced artifacts rather than the 2026-08-29 starting deficit.
Keep Intent aspirational. Do not mark this workplan finished while T02 and
T03 are open.
**Done when:** SCOPE's security-consumption and layer-declaration bullets
match the files on disk, and this workplan can move to `finished` without
leaving silent follow-on work.
## Sequencing
T01 can proceed immediately. T02 and T03 are the load-bearing pair; T04 may
land inside T03. T05 must not block T02. T06 is last.