Two things this week's rulings left owed, both the failure mode those rulings were about. A-16 and A-17, and Core Rules 16 and 17. Two general properties had been stated three times each, always against the instance that produced them and nowhere in general — which is how a property gets found by accident or not at all. That is the defect gate-house corrected in three other repositories this month while carrying it here. A-16, distinguishable routes: where one observable state is reachable by two routes differing in security meaning, the record must say which. Four instances, and they only look like one rule once they are next to each other — an envelope identical whether access-engine issued it or a responder forged it (GH-DEC-2026-010), unknown versus absent in a stance map (-011), a tenant claim directory-asserted versus registration-supplied (-013), erased versus never held on an evidence path (-014). The rule is not that the routes must diverge; usually they must behave identically and safely. It is that a later reader can tell them apart, or a sound check gets read as carrying a property it does not have. A-17, fail-closed transitions: a transitional deviation is admissible only where it fails closed on the case distinguishing it from the conformant state. Written because two requests for transitional relief arrived in one week and were answered oppositely, and the answers would otherwise read as arbitrary rather than as one rule. Both are marked repository-level and explicitly not estate doctrine. Graduation waits on a repository that bears a cost under them having argued them, which is the bar security-layer-model met and these have not. SCOPE.md was still the withdrawn authority-plane framing. It opened by saying gate-house "decides whether a requested action is authorized" and listed deterministic authorization decisions as in scope — the design retired by GH-DEC-2026-001, surviving in a derived document a reader would take as current, with a dead pointer to Blueprint section 3 non-goals that the re-cut removed. Rewritten from current INTENT, including what is not owned here and what would put the repository out of scope. The irony is noted rather than hidden: a derived artifact contradicting its source, in the repository that generalised that failure into statute section 12 after finding six instances in one week elsewhere. rmgr conform clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012viPor8WJNCbV64ipwewrm Assistant: claude-code Assistant-Model: opus Assistant-Process: 1754332@bnt-lap001 Assistant-Session: 9c8ac536-ff5e-46a3-8ab1-a548bde25fc0
458 lines
22 KiB
Markdown
458 lines
22 KiB
Markdown
# Gate House — INTENT
|
|
|
|
**Repository:** `gate-house`
|
|
**Project family:** NetKingdom
|
|
**Layer:** Staff
|
|
**Status:** Re-cut as the security and defence doctrine council
|
|
**Version:** 0.3
|
|
**Date:** 2026-09-10
|
|
**Supersedes:** v0.1 (2026-08-24), which framed Gate House as a deterministic authority plane. See `history/2026-08-28-security-layer-model-and-gate-house-recut.md` for why that framing was withdrawn.
|
|
|
|
## The Mission
|
|
|
|
> **Gate House is the council where NetKingdom's security and defence doctrine is established, documented, taught, and supervised.**
|
|
|
|
It is the headquarters of the operational staff that does the chores of IT
|
|
security in NetKingdom: the place where the conceptual model of the security
|
|
architecture is worked out, written down, taught to the humans and agents who
|
|
have to live by it, and checked against what the estate actually does.
|
|
|
|
A word about the name, because it argues the other way. A gate house sounds
|
|
like the thing requests pass through. It is not. In a real castle the gate
|
|
house is where the guard is quartered, the watch is set, and the porter's rules
|
|
are posted — the rules of entry are decided there, and the gate itself is
|
|
somewhere else, held by someone else. That is exactly the split intended here.
|
|
|
|
> **Gate House does not stand in the gate. It decides what the gate is for, who
|
|
> may be asked to open it, and how we know it held.**
|
|
|
|
---
|
|
|
|
## Where Gate House Sits
|
|
|
|
NetKingdom's IT security is layered by determinism and by the kind of artifact
|
|
each layer produces:
|
|
|
|
| Layer | Character | Artifacts | Members |
|
|
|---|---|---|---|
|
|
| **Aspects / taxonomy** | cross-cutting language | terms, semantic contracts | info-tech-canon |
|
|
| **Tooling** | deterministic infrastructure; consistent, performant, scalable state | data structures, persistence | authelia, lldap, privacy-idea — packaged as key-cape; OpenBao |
|
|
| **Engines** | deterministic APIs for a modeled concept | interfaces, contracts | user-engine, tenant-engine, zone-engine, secrets-engine, access-engine |
|
|
| **Staff** | interactive, non-deterministic; management, operations, change, innovation, controlling | specifications, decisions, workplans, tasks | **gate-house**, ops-mason, ops-warden, kings-guard, whitehat-security |
|
|
|
|
Gate House is Staff. Its outputs are specifications, decisions, workplans, and
|
|
tasks, produced through interaction with assistants and autonomous agents. It
|
|
holds no state that anything else depends on at runtime.
|
|
|
|
The layer model carries one rule, and it is the architectural form of "no
|
|
privilege from cognition":
|
|
|
|
> **Staff never touches tooling directly. It acts only through engine APIs.**
|
|
|
|
This is why kings-guard — agentic, therefore Staff — may contain a threat only
|
|
by calling an engine, never by reaching into OpenBao itself. It is why an
|
|
autonomous coding agent gets no shortcut. And it is checkable: a Staff
|
|
repository holding a direct database or OpenBao client is violating the model.
|
|
|
|
---
|
|
|
|
## Why Gate House Is Not the Decision Point
|
|
|
|
Gate House was seeded as a deterministic authority plane — a policy decision
|
|
point with an `/authorize` API, grant storage, and a revocation service. That
|
|
was wrong, and it was wrong by its own argument:
|
|
|
|
> **A decision point inside Gate House would place the deterministic authority
|
|
> boundary inside the non-deterministic management layer, violating INV-02, "No
|
|
> Privilege from Cognition" — the first invariant this repository exists to
|
|
> defend.**
|
|
|
|
The repository would have been the clearest available counterexample to the
|
|
canon it hosts. NetKingdom already has a policy decision point: `access-engine`
|
|
(currently `flex-auth`). It stays the only one. Gate House writes the doctrine
|
|
that decision point implements, and checks that it did.
|
|
|
|
The boundary, in one line:
|
|
|
|
> **The mandate and the operating mode are Gate House's. The decision is
|
|
> access-engine's. The credential is secrets-engine's. The perimeter is
|
|
> ops-mason's and ops-warden's.**
|
|
|
|
---
|
|
|
|
## Responsibility Boundaries
|
|
|
|
| Component | Layer | Primary responsibility | Relationship to Gate House |
|
|
|---|---|---|---|
|
|
| **info-tech-canon** | Taxonomy | semantic contracts, shared terminology | supplies the vocabulary discipline Gate House writes within |
|
|
| **net-kingdom canon** | Taxonomy | NetKingdom standards of record | receives Gate House's invariants as canon |
|
|
| **key-cape** | Tooling | IAM profile, authentication, federation | establishes authenticated identity |
|
|
| **OpenBao** | Tooling | secret storage, leases, PKI, dynamic engines | protects and issues credential material |
|
|
| **user-engine** | Engine | users, accounts, memberships | supplies subject context |
|
|
| **tenant-engine** | Engine | tenant and organizational boundaries | supplies tenancy context |
|
|
| **zone-engine** | Engine | zone identity and membership | supplies zone membership facts |
|
|
| **secrets-engine** | Engine | credential abstraction, custody, lifecycle | materializes authority as credentials |
|
|
| **access-engine** | Engine | the policy decision — may this actor do this | **the only decision point**; consumes Gate House's authority context and invariants |
|
|
| **ops-mason** | Staff | builds and tears down access routes and perimeters | implements the perimeter doctrine |
|
|
| **ops-warden** | Staff | operational access lanes, stewardship, runbooks | owns the lanes; Gate House owns the doctrine |
|
|
| **kings-guard** | Staff | adaptive defence, observation, containment | supplies posture; bound by the posture asymmetry |
|
|
| **whitehat-security** | Staff | offensive validation | executes Gate House's assurance specifications |
|
|
|
|
A useful shorthand:
|
|
|
|
```text
|
|
info-tech-canon names
|
|
key-cape authenticates
|
|
user/tenant/zone contextualize
|
|
access-engine decides
|
|
secrets-engine provisions
|
|
OpenBao protects
|
|
ops-mason builds
|
|
ops-warden operates
|
|
kings-guard defends
|
|
whitehat-security challenges
|
|
|
|
gate-house establishes the doctrine all of the above are held to
|
|
```
|
|
|
|
Note the two words that must not drift: **ops-warden and ops-mason own access
|
|
lanes** — how a worker reaches a host. **access-engine owns access rules** —
|
|
whether they may. Gate House owns neither, and says so here because the word
|
|
"access" is used for both across the estate.
|
|
|
|
---
|
|
|
|
## What Gate House Owns
|
|
|
|
- **The doctrine.** The Active Secrets Management Canon, its invariants, and
|
|
the argument behind them. Invariants graduate into
|
|
`net-kingdom/canon/standards/` as they stabilize; the working canon lives here.
|
|
- **The authority context schema.** The vocabulary of an agentic authority
|
|
request — principal, actor, runtime identity, tenant, environment, mandate,
|
|
task, operating mode — defined here and consumed by access-engine as input
|
|
claims. Gate House defines what must be *sayable*; access-engine decides what
|
|
it *means* for a given request.
|
|
- **The agentic operating modes.** Assistant and autonomous as distinct
|
|
security regimes, with the requirements attaching to each.
|
|
- **Mandates, authority ceilings, and kill switches** for autonomous actors —
|
|
as a model and a governance obligation, not as a runtime service.
|
|
- **The Change Dynamics Envelope.** How much change the organization is
|
|
prepared to tolerate, expressed so that engines and Staff can bound it.
|
|
- **The MCP and tooling doctrine.** Tool availability is not permission.
|
|
- **The posture contract** with kings-guard, including the asymmetry.
|
|
- **Conformance review.** Whether an actor's authority in practice matches its
|
|
declared mandate and ceiling — the observability of governed authority.
|
|
- **The assurance specifications** T-01…T-10, executed by whitehat-security.
|
|
- **The security curriculum.** What operators, assistants, and autonomous
|
|
agents are expected to understand before they are trusted with authority.
|
|
|
|
## What Gate House Does Not Own
|
|
|
|
Gate House holds no runtime position. It does not own:
|
|
|
|
- the authorization decision, policy evaluation, or any `/authorize` surface;
|
|
- policy engine selection, policy packages, or policy rollout;
|
|
- grant storage, credential issuance, leases, or revocation;
|
|
- identity, tenancy, zone, or user lifecycle;
|
|
- secret storage, PKI, or scanning;
|
|
- anomaly detection, threat intelligence, or behavioral risk inference;
|
|
- access lanes, SSH certificates, tunnels, or host hardening;
|
|
- deployment, reconciliation, or remediation execution;
|
|
- the workplans of other repositories.
|
|
|
|
That last one matters. Work structure belongs to the repository doing the work.
|
|
Gate House sets doctrine and reviews conformance; it does not accumulate other
|
|
repositories' tasks, and an HQ that starts managing the estate's chores has
|
|
become a second decision point wearing management clothes.
|
|
|
|
---
|
|
|
|
## Foundational Principle
|
|
|
|
> **Cognition proposes. Authority disposes. Infrastructure executes.**
|
|
|
|
Read across the layers, that sentence is NetKingdom's layering rule, not only
|
|
its security maxim: Staff proposes, Engines dispose, Tooling executes.
|
|
|
|
## The Core Security Question
|
|
|
|
The doctrine Gate House maintains exists so that, for any privileged action,
|
|
the estate can answer:
|
|
|
|
```text
|
|
WHO principal, actor, runtime identity
|
|
WHERE tenant, environment, zone, resource
|
|
WHAT requested operation
|
|
WHY task, mandate, delegation
|
|
UNDER WHICH policy, approval, posture, quotas, budgets
|
|
UNTIL WHEN TTL / expiry
|
|
→ a deterministic decision, rendered by access-engine, reconstructable afterwards
|
|
```
|
|
|
|
Deterministic does not mean static. Context changes continuously. The rule is
|
|
that the final privilege boundary is enforced by explicit policy rather than
|
|
model judgment, and that the same authoritative input state yields the same
|
|
decision.
|
|
|
|
---
|
|
|
|
## Domain Vocabulary
|
|
|
|
Gate House owns these terms. Other repositories should use them rather than
|
|
synonyms:
|
|
|
|
- **Principal** — the human, organization, workload, or system on whose behalf
|
|
authority originates.
|
|
- **Actor** — the entity directly attempting the action.
|
|
- **Runtime Identity** — the concrete workload instance performing execution.
|
|
- **Mandate** — standing organizational authorization defining what an
|
|
autonomous actor is intended to do.
|
|
- **Delegation** — a scoped transfer of authority that does not collapse
|
|
principal and actor.
|
|
- **Authority Ceiling** — the maximum authority an actor can obtain.
|
|
- **Operating Mode** — assistant or autonomous; a security regime, not a
|
|
deployment detail.
|
|
- **Posture** — a bounded security-state input from a trusted source.
|
|
- **Change Dynamics Envelope** — the tolerated rate, scope, concurrency, and
|
|
duration of change.
|
|
- **Decision Evidence** — the record explaining which policy, identities,
|
|
inputs, and conditions produced a decision.
|
|
|
|
---
|
|
|
|
## Agentic Operating Modes
|
|
|
|
The distinction Gate House exists to keep sharp.
|
|
|
|
### Assistant
|
|
|
|
A human is actively engaged and can observe, redirect, approve, or stop actions
|
|
at human latency. The human remains the principal; the agent remains a visible
|
|
actor. The human's credentials are not dumped into the agent's environment.
|
|
|
|
**A human disconnecting must never silently promote the session into autonomous
|
|
privileged operation.**
|
|
|
|
### Autonomous
|
|
|
|
A scheduled, triggered, or event-driven agent acts without continuous
|
|
supervision. Bounded by policy and governance rather than by human reaction
|
|
time, it requires: unique identity; a named owner; an explicit mandate; an
|
|
authority ceiling; environment and resource bounds; runtime and concurrency
|
|
limits; credential TTL; token, compute, and tool-call budgets; an independent
|
|
kill switch; lifecycle termination; and audit reconstruction.
|
|
|
|
---
|
|
|
|
## Change Dynamics
|
|
|
|
Agentic systems change infrastructure faster than humans can review. The
|
|
envelope names what the organization will tolerate: concurrent mutating actors,
|
|
actions per grant, resources per task, task duration, credential TTL, agent
|
|
chain depth, deployment frequency, destructive-action quota, compute and token
|
|
spend, read/write separation, reversible versus irreversible action classes.
|
|
|
|
Economic budgets are useful blast-radius controls. **They are never
|
|
authorization.**
|
|
|
|
## MCP and Tooling Doctrine
|
|
|
|
MCP is a capability interface, not an authority system. A declared tool means
|
|
the operation exists — nothing more. Invocation still requires a decision from
|
|
access-engine or equivalent resource-side enforcement. Token passthrough is to
|
|
be avoided; downstream authority is separately issued and bound to the correct
|
|
resource.
|
|
|
|
## Posture and King's Guard
|
|
|
|
King's Guard observes, assesses, and publishes bounded posture. Gate House
|
|
defines what a posture *means* for authority, and access-engine renders it.
|
|
|
|
> **Adaptive systems may automatically reduce authority, require stronger
|
|
> authorization, or request containment. They must not probabilistically
|
|
> manufacture additional authority.**
|
|
|
|
## Authority and Credentials
|
|
|
|
Authority and credential material are separate concerns. Gate House's doctrine
|
|
holds that a credential is an implementation artifact of an authorization, not
|
|
its source: access-engine decides, secrets-engine determines how the authority
|
|
is materialized, OpenBao protects and issues the material, and the raw
|
|
credential never enters model context.
|
|
|
|
---
|
|
|
|
## Core Rules
|
|
|
|
The doctrine, in seventeen lines. Gate House authors and maintains these; the
|
|
engines and Staff repositories implement them.
|
|
|
|
1. **No privilege from cognition.**
|
|
2. **Every privileged action crosses a deterministic authority boundary.**
|
|
3. **Tool availability is not permission.**
|
|
4. **Principal and actor remain distinguishable.**
|
|
5. **Assistant and autonomous operation are different security modes.**
|
|
6. **Autonomous agents use independent identities and explicit mandates.**
|
|
7. **Authority is least-privileged, task-, tenant-, environment-scoped, and time-bounded.**
|
|
8. **Delegation attenuates.**
|
|
9. **Security posture may reduce authority but must not expand it.**
|
|
10. **Emergency revocation works without agent cooperation.**
|
|
11. **Agents do not casually modify the policies defining their own authority ceiling.**
|
|
12. **Credentials are ephemeral implementation artifacts of authorization.**
|
|
13. **Audit evidence is protected from the actor being audited.**
|
|
14. **Failure of critical policy or authorization dependencies fails closed.**
|
|
15. **Production guarantees must survive incorrect agent behavior.**
|
|
16. **Where one appearance is reachable by two routes, the record says which route.**
|
|
17. **A transitional deviation is admissible only where it fails closed on the case that distinguishes it from the conformant state.**
|
|
|
|
**On rules 16 and 17, which are newer than the rest.** Both were derived in
|
|
September 2026 from rulings that kept arriving at the same shape, and they are
|
|
stated here because a property recorded only against the instance that produced it
|
|
is found by accident or not at all — the failure this repository has now corrected
|
|
in other repositories three times.
|
|
|
|
**Rule 16** is the more load-bearing. Its instances so far: a stance map where
|
|
`unknown` and `absent` fail closed identically but mean different things
|
|
(`GH-DEC-2026-011`); a `tenant` claim that reads the same whether the directory
|
|
asserted it about the person or a client registration supplied it
|
|
(`GH-DEC-2026-013`); an evidence path where *erased* and *never held* both present
|
|
as a blank (`GH-DEC-2026-014`); and a decision envelope that looks identical
|
|
whether `access-engine` issued it or a responder forged it (`GH-DEC-2026-010`).
|
|
In each, a sound check is read as establishing a property it does not carry,
|
|
because the appearance the check produces is reachable two ways. The rule is not
|
|
that the two routes must behave differently — usually they must behave identically,
|
|
and safely. It is that the **record** must distinguish them, or the safer reading of
|
|
the appearance becomes unavailable to every later reader.
|
|
|
|
**Rule 17** governs what may enter a declared-gap register. It exists because two
|
|
requests for transitional relief arrived in one week and had to be answered
|
|
oppositely without the answers looking arbitrary: `ops-warden`'s dated transitional
|
|
`unknown: fail_open` was declined (`GH-DEC-2026-011`) and `key-cape`'s
|
|
registration-bound tenant was granted (`GH-DEC-2026-013`). The distinguishing
|
|
question is not how careful the design is or how long the transition lasts, but
|
|
which way it fails on the case that separates it from the conformant state. A
|
|
promise that fails open is a permission; a promise that fails closed is a gap; only
|
|
the second is a thing a register can hold.
|
|
|
|
Neither rule has graduated to `net-kingdom/canon/standards/`. They are Gate House
|
|
doctrine at repository level until they have been argued by a repository that bears
|
|
a cost under them — which is how `security-layer-model` earned its acceptance and is
|
|
the bar these have not yet met.
|
|
|
|
**A bound on rule 13, and on every claim that rests on audit.** An append-only
|
|
archive with a verified hash chain proves records were not *altered or truncated
|
|
after arrival*. It cannot prove a record was never sent. A suppressed event
|
|
leaves the chain intact and verification reports intact — and the event an
|
|
adversary most wants missing is the negative one: a revocation, a denial, a
|
|
containment action.
|
|
|
|
So *"the audit record proves it happened"* is unsound. The sound form is *"the
|
|
archive proves the records it holds were not altered or truncated after
|
|
arrival"*. Completeness is the emitting system's obligation, discharged by making
|
|
emission atomic with the state change; no archive can retrofit it. See
|
|
`net-kingdom/canon/standards/security-layer-model_v0.7.md` §9.6, raised by
|
|
`audit-core` against its own principle.
|
|
|
|
This bound is not yet reflected in the Active Secrets Management Canon — control
|
|
§27 and tests T-08 and T-09 are written as though reconstruction from evidence
|
|
were unconditional. Correcting the Canon is outstanding doctrine work.
|
|
|
|
---
|
|
|
|
## Reference Scenarios
|
|
|
|
These are not implementation milestones. They are the situations the estate as
|
|
a whole must handle correctly, and the basis of the assurance specifications
|
|
whitehat-security executes.
|
|
|
|
- **UC-01 — Human-assisted read.** A coding agent requests read-only
|
|
diagnostics. Human principal preserved, agent actor identifiable, no mutation
|
|
authority, tool use auditable.
|
|
- **UC-02 — Autonomous release.** A scheduled agent deploys an approved
|
|
artifact under an explicit mandate, with workload identity, short TTL, no
|
|
policy-modification rights, and full provenance.
|
|
- **UC-03 — Dynamic database access.** Temporary scoped access is authorized,
|
|
materialized as a leased credential, expires automatically, and never reaches
|
|
model context.
|
|
- **UC-04 — Containment.** King's Guard publishes degraded posture; write
|
|
authority is removed deterministically; ops-warden performs authorized
|
|
containment; the audit chain stays intact.
|
|
- **UC-05 — Self-escalation attempt.** An agent tries to widen the policy
|
|
constraining itself. The attempt is denied and becomes high-value security
|
|
telemetry.
|
|
|
|
## The Conformance Loop
|
|
|
|
Doctrine that no engine implements is fiction. Gate House is only real if the
|
|
loop closes:
|
|
|
|
```text
|
|
gate-house asserts an invariant
|
|
↓
|
|
access-engine and the engines implement it
|
|
↓
|
|
whitehat-security tries to break it
|
|
↓
|
|
kings-guard observes it in operation
|
|
↓
|
|
findings return to gate-house as doctrine change
|
|
```
|
|
|
|
Gate House's own health is measured by that loop turning, not by the volume of
|
|
documents it produces.
|
|
|
|
---
|
|
|
|
## What Would Make This Repository Wrong
|
|
|
|
Stated up front, because a repository re-cut on an argument should say what
|
|
would falsify it:
|
|
|
|
- **It becomes a second decision point.** The failure would not announce
|
|
itself; it would arrive as a small convenience — a schema that starts
|
|
resolving, a conformance check that starts gating in-path.
|
|
- **It becomes a paper generator.** Doctrine accumulates, the conformance loop
|
|
never turns, and no engine's behavior can be traced to anything written here.
|
|
- **Nobody adopts the vocabulary.** If access-engine, ops-warden, and
|
|
kings-guard do not speak in principal/actor/mandate/mode, the model is a
|
|
preference rather than a contract.
|
|
- **The modes do not distinguish anything.** If assistant and autonomous
|
|
operation end up with the same controls in practice, the central distinction
|
|
was decoration.
|
|
- **It absorbs other repositories' work.** Workplans for engines start landing
|
|
here.
|
|
|
|
## Success Criteria
|
|
|
|
Gate House is working when:
|
|
|
|
1. human and agent identities remain distinguishable across the estate;
|
|
2. assistant and autonomous sessions demonstrably carry different authority;
|
|
3. no model can grant itself privilege;
|
|
4. protected operations are decided by reproducible policy in access-engine;
|
|
5. authority is narrower and shorter-lived than the actor identity;
|
|
6. secrets are materialized only after authority exists;
|
|
7. posture deterministically restricts authority and never expands it;
|
|
8. autonomous agents can be stopped independently of their own cooperation;
|
|
9. every privileged action can be reconstructed from audit evidence;
|
|
10. the estate remains secure under deliberately incorrect agent behavior;
|
|
11. the conformance loop turns, and doctrine changes as a result.
|
|
|
|
## Long-Term Direction
|
|
|
|
Gate House matures from a working canon into NetKingdom's standing security
|
|
council: the place where the security model is argued out, ratified into
|
|
net-kingdom canon, taught to everyone who operates in the kingdom, and
|
|
continuously tested against what the estate really does.
|
|
|
|
The end state is not a larger secrets manager, and not a control plane. It is
|
|
an estate in which standing secrets and standing authority progressively
|
|
disappear, authorization is explicit, scoped, ephemeral, and explainable — and
|
|
in which someone is responsible for keeping it that way.
|
|
|
|
---
|
|
|
|
## Motto
|
|
|
|
> **Agents decide what to attempt. Engines decide what may cross the boundary.
|
|
> Gate House decides what the boundary is for.**
|