kings-guard/INTENT.md
tegwick 9daea96c43 Finish KG-WP-0003: stream completeness and live qonto observation
Classify evidence as load-bearing or attributive, draft the emission-cadence
declaration for Taxonomy, treat silence as a stream finding, keep completeness
separate from record richness, forbid immune memory as a state plane, and make
containment proposals reconstructable to their origin. Observe real
qonto-assistant audit events; deny-class completeness stays unknown until the
source publishes a heartbeat.

Assistant: grok
Assistant-Session: 01a05ef1-9e5a-70f2-b0ff-0b05d6b38ae9
2026-09-02 00:11:57 +02:00

15 KiB

layer role standard standard_version declared_by declared_at conformance_state principal_kinds
Staff null net-kingdom/canon/standards/security-layer-model_v0.7.md 0.7 decisions/decisions.md#KG-DEC-2026-001 2026-08-29 blocked-clean
human
agent

INTENT

Layer: Staff. (NetKingdom Security Layer Model net-kingdom/canon/standards/security-layer-model_v0.7.md, accepted, §4 catalog; working form: net-kingdom/SECURITY-COMPANION.md; ratified by gate-house/decisions/decisions.md GH-DEC-2026-001; assented here by decisions/decisions.md KG-DEC-2026-001 on 2026-08-28, against v0.1.)

The declaration is the frontmatter above plus layer.yaml, checked by scripts/check_layer_conformance.py and tested in tests/test_layer_conformance.py. Prose cannot distinguish a declaration from a transcribed review, so those are authoritative and this note is commentary in kings-guard's own voice, as the companion asks.

Catalog entry (v0.7 §4): adaptive defence and judgment; observation of Staff-reachable sources — identity and secret observation pending; proposes containment, which it does not own.

kings-guard is interactive and non-deterministic. Acting at runtime does not make a repository an Engine; being agentic makes it Staff.

The binding rule (§5): Staff never touches Tooling directly. It acts only through Engine APIs. kings-guard holds no direct client for a Tooling-layer system — no database connection, no OpenBao client, no cluster mutation, and no §5.1 diagnostic read or §5.2 conduit either. Under §11 that is blocked-clean: the capabilities needing such a contact sit at zero rather than being taken locally, and §11 rules that this MUST NOT rank below conforming.

Containment is not ours (§9.2). v0.6 moved it off this repository entirely: reduce authority, require step-up, and isolate a workload are authority-changing operations, so they are rendered by an Engine and enforced by a PEP. kings-guard proposes containment; it never performs it. The actuation surface is unowned and held at zero estate-wide, so no argument anywhere may assume containment is automatic.

The agent principal (§3.4). kings-guard is Staff of the agentic kind, and v0.7 binds that principal with four rules this repository offered to accept before they were written. They are adopted here as repository invariants: no standing credential — authority is per task, time-bounded, attributable to the principal acted for; tool use is a §5.2 conduit or an Engine API, and there is no third route — a callable tool means the operation exists, not that this actor may invoke it; agent memory is not a state plane — immune memory, tool-call traces and prompt caches are kings-guard's own and MUST NOT become state another layer depends on at runtime unless catalogued as Tooling; every action is reconstructable as the caller's, bounded by §9.6.

The third rule constrains this repository's own roadmap and is the one to watch: federated immune memory (Direction of Evolution stage 5) is exactly the shape that could drift into a state plane, and it may not.

Posture contract. kings-guard publishes posture; gate-house defines its authority meaning; access-engine renders it. Posture is not a privilege source. The asymmetry is absolute: kings-guard may reduce authority, require step-up, or request containment; it MUST NOT probabilistically manufacture additional authority. Every effector request carries an explicit authority boundary. Under incomplete observation this asymmetry is what bounds the damage: a suppressed event can only cost a tightening that should have happened, never manufacture authority through us (§8, §9.6).

This file captures why this repository exists, the direction it is moving toward, and the kind of system it is meant to become. It is intentionally aspirational and stable, not a description of current implementation.


One-liner

Recursive adaptive defence for complex cloud environments: it declares healthy intent, detects harmful deviation, requests bounded containment through the owning engines, helps restore known-good operation, and retains governed defensive memory.

"Control plane" is Engine-layer vocabulary (layer model §8) and is no longer used here for kings-guard. kings-guard judges and proposes; engines decide and act.


Why This Exists

Modern cloud environments are too dynamic to protect through identity, policy, and perimeter rules alone.

Even when authentication, authorization, and secret custody are well designed, the environment still changes continuously:

  • workloads are rebuilt and redeployed;
  • dependencies shift;
  • operators, agents, and automations act with real authority;
  • tenants share substrates while requiring strong isolation;
  • legitimate identities can become compromised;
  • harmful behavior can emerge from software that still looks formally allowed.

Security therefore needs a layer that does more than authenticate and allow. It must continuously compare declared healthy operation against observed behavior, decide whether the current state is acceptable, and coordinate bounded response when it is not.

This repository exists to provide that adaptive layer.


The Mission

Where we are going.

Kings Guard aims to become a recursive adaptive security system for multi-tenant, multi-operator, and agent-active environments.

It should make security an ongoing control loop:

declare healthy intent
-> establish and attest identity
-> observe actual behavior
-> compare behavior with policy and intended scope
-> assess risk and confidence
-> respond within bounded authority
-> restore known-good operation
-> validate the outcome
-> retain governed security memory

The mature system should:

  • model intended healthy operation explicitly;
  • evaluate trust as temporary, scoped, and continuously reassessed;
  • detect and contain disturbances near their origin;
  • coordinate local and global defensive signals without collapsing tenant boundaries;
  • drive reconstitution and recovery, not only alerting;
  • learn from incidents without normalizing compromise or leaking sensitive tenant data.

Responsibility Boundary

Kings Guard owns the adaptive security assessment and response layer.

Kings Guard owns

  • the model of healthy intent, tolerated variation, and harmful deviation;
  • security phenotype assessment from observed state and behavior;
  • normalized immune observations and signal contracts;
  • posture assessment across compartments, subjects, and resources;
  • bounded response policy for containment, inflammation, quarantine, and reconstitution;
  • recovery validation and governed immune memory;
  • coordination between local autonomous defense and broader federated defense.

Kings Guard does not own

  • primary human, workload, or device identity issuance;
  • login, MFA, token minting, or directory lifecycle;
  • resource authorization policy administration;
  • long-lived secret custody, lease issuance, or secret value delivery;
  • infrastructure provisioning, workload deployment, or platform operations;
  • general work coordination, task management, or live project state.

System boundary

Concern Primary owner Kings Guard responsibility
Identity, authentication, MFA, and verified claims key-cape (Tooling) Consume identity and attestation as security inputs — through user-engine / access-engine, never by connecting to key-cape's components; do not replace identity.
Resource authorization and decision logs access-engine (currently named flex-auth) Contribute posture and risk context; never render or cache an authorization decision — it is the estate's only decision point (layer model §6).
Secret custody, delivery, leases, and rotation OpenBao (Tooling), fronted by secrets-engine (Engine) Consume secret-access evidence through secrets-engine, never through an OpenBao client; do not hold raw secret authority.
Operational SSH certificate issuance and access routing ops-warden Supply posture, evidence, or future response hooks; do not become the SSH issuing lane.
Infrastructure, runtime, and platform execution Railiance repos and workload operators Signal constraints, isolation, and reconstitution needs; do not own deployment mechanics.
Workstream and task coordination state-hub Emit non-secret evidence and integration events where appropriate; do not become a work tracker.

Declared engine gaps

Capabilities kings-guard needs that no engine exposes today. Under the binding rule these are gaps to close in the owning engine, not work to route around. None is a standing licence to reach into Tooling.

These are unowned capabilities, not §5.3 declared contacts: kings-guard makes no direct Tooling contact for any of them. v0.5 §11 added the blocked-clean state for exactly this case, on kings-guard's finding, and ruled that it MUST NOT rank below conforming.

layer.yaml is the authoritative machine-readable form; this table is the human-readable view of it.

capability Needed for intended_owner blocked_on review
Authentication and assurance evidence (token assurance, attestation outcomes, authentication anomalies) exposed as an engine surface identity-drift posture identity layer + audit-coreaccess-engine declined (v0.6 §13); reproposed, not assented no engine surface exists; kings-guard consumes fixtures only 2026-11-28
Secret-use evidence (lease, revocation, mount and rotation metadata) exposed as an engine surface secret-abuse posture secrets-engine no engine surface exists; kings-guard consumes fixtures only 2026-11-28
Actuation surface — reduce authority, require step-up, isolate a workload — as a deterministic engine API carrying a decision record containment kings-guard proposes but does not own access-engine + runtime PEPs; not reviewed (FLEX-DEC-2026-002) ruled an Engine concept held at zero (v0.6 §9.2); recorded here as a dependency, not a kings-guard gap to close 2026-11-28

Until a gap closes, the corresponding posture lane stays advisory and fixture-driven. kings-guard MUST NOT open a direct path to the Tooling system to fill one. If diagnostic read-only observation of Tooling ever becomes unavoidable, the layer model requires it to be declared in this file and treated as a gap to close; no such observation is declared today.


Design Principles

1. Intent before anomaly

Security should first ask whether behavior is compatible with declared healthy operation, not merely whether it is statistically unusual.

2. Trust is temporary

Trust is not a permanent property of an identity, network location, or workload. It is a time-bound judgment derived from identity, provenance, integrity, context, and observed behavior.

3. Local containment first

Defensive action should happen as close as possible to the disturbed compartment, with wider coordination only when impact crosses boundaries.

4. Bounded response over uncontrolled automation

Automated response must be explicitly scoped, reversible where possible, and governed so defense does not become its own source of harm.

5. Recovery is part of security

Detection without reconstitution is incomplete. The system should restore known-good operation and verify that restoration succeeded.

6. Memory must be governed

The system should learn from incidents, but memory must preserve tenant confidentiality, prevent evidence poisoning, and avoid turning compromise into "normal" behavior.

7. Replaceable implementations, stable contracts

Sensors, policy engines, response effectors, and deployment substrates may change. Kings Guard should depend on stable capability contracts rather than one mandatory product stack.


What This Is

Kings Guard is:

  • an adaptive defence concept and implementation home, in the Staff layer;
  • a contract layer for healthy intent, observations, signals, posture, and effectors;
  • a coordination system for detection, containment proposal, recovery, and governed memory;
  • a reference architecture for recursive, compartment-aware cloud defense.

What This Is Not

Kings Guard is not:

  • an actuator — it proposes containment and never performs it (§9.2);
  • a holder of any standing credential (§3.4 rule 1);
  • a state plane for any other layer, its immune memory included (§3.4 rule 3);
  • an identity provider;
  • an authorization registry;
  • a secret store;
  • a SIEM-only alerting surface;
  • a generic deployment/orchestration repository;
  • a justification to weaken tenant isolation in the name of global defense.

Direction of Evolution

The repository should evolve through clear layers:

  1. Canonical model: define the stable vocabulary for security genome, phenotype, observation, signal, effector, tolerance, inflammation, and immune memory.
  2. Assessment loop: provide a minimal service that ingests observations, evaluates posture against declared intent, and produces typed signals — against real emitted events, not only fixtures. §12's fourth step ("kings-guard observes it in operation") is staffed for the qonto-assistant audit stream. Completeness of the stream is part of the judgment, not an assumption about it (§9.6). The deny class still lacks a source-published heartbeat, so completeness is not claimed.
  3. Bounded proposal: emit containment requests — isolation, throttling, revocation, reconstitution — as typed, authority-bounded proposals to the engine that renders them. kings-guard never actuates (§9.2); the actuation surface is an Engine concept and is unowned estate-wide. This stage is complete when the proposals are well-formed and reconstructable, not when anything is contained.
  4. Recovery and validation: prove that known-good restoration can be coordinated and verified, not merely requested.
  5. Federated memory: retain reusable defensive knowledge without exposing tenant-confidential operational detail — and without becoming a state plane. Under §3.4 rule 3 agent memory may not become state another layer depends on at runtime. Immune memory may inform kings-guard's own judgment and may be published as evidence; no engine, PEP, or workload may read it as an input it depends on. If that ever becomes desirable it is a Tooling catalog change under §4, not a quiet integration.

Guiding Question

How can a cloud environment continuously distinguish healthy from harmful behavior, contain damage near its origin, and learn from incidents without centralizing too much trust or harming legitimate operation?