Complete GH-WP-0001-T04 authority context contract
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a05e30-2884-71b0-98d7-7edd16ae737b
This commit is contained in:
parent
6076d5d9ba
commit
75ce37207f
5 changed files with 409 additions and 2 deletions
|
|
@ -170,6 +170,8 @@ gate-house asserts an invariant
|
||||||
| [`INTENT.md`](INTENT.md) | why this repository exists; the re-cut in full |
|
| [`INTENT.md`](INTENT.md) | why this repository exists; the re-cut in full |
|
||||||
| [`SCOPE.md`](SCOPE.md) | in scope / out of scope |
|
| [`SCOPE.md`](SCOPE.md) | in scope / out of scope |
|
||||||
| [`spec/ActiveSecretsManagementCanon_v0.3.md`](spec/ActiveSecretsManagementCanon_v0.3.md) | the working canon — invariants, controls, profiles, assurance tests |
|
| [`spec/ActiveSecretsManagementCanon_v0.3.md`](spec/ActiveSecretsManagementCanon_v0.3.md) | the working canon — invariants, controls, profiles, assurance tests |
|
||||||
|
| [`docs/contracts/authority-context.md`](docs/contracts/authority-context.md) | normative authority-context vocabulary consumed by access-engine |
|
||||||
|
| [`docs/adr/`](docs/adr/) | architecture decisions for Gate House doctrine and contracts |
|
||||||
| [`ArchitectureBlueprint.md`](ArchitectureBlueprint.md) | architecture; **predates the re-cut and is being revised** |
|
| [`ArchitectureBlueprint.md`](ArchitectureBlueprint.md) | architecture; **predates the re-cut and is being revised** |
|
||||||
| [`decisions/decisions.md`](decisions/decisions.md) | decision records — start with GH-DEC-2026-001 |
|
| [`decisions/decisions.md`](decisions/decisions.md) | decision records — start with GH-DEC-2026-001 |
|
||||||
| [`history/`](history/) | reference notes; the 2026-08-28 review is the origin of the current shape |
|
| [`history/`](history/) | reference notes; the 2026-08-28 review is the origin of the current shape |
|
||||||
|
|
|
||||||
83
docs/adr/ADR-001-canonical-authority-context-contract.md
Normal file
83
docs/adr/ADR-001-canonical-authority-context-contract.md
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
# ADR-001 — Canonical authority context contract
|
||||||
|
|
||||||
|
**Repository:** gate-house
|
||||||
|
**Status:** accepted
|
||||||
|
**Date:** 2026-09-01
|
||||||
|
**Workplan:** GH-WP-0001-T04
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
Gate House owns the vocabulary of an agentic authority request, while
|
||||||
|
access-engine is NetKingdom's only policy decision point. The surviving
|
||||||
|
`ArchitectureBlueprint.md` material named the required concepts, but left them
|
||||||
|
inside an obsolete canonical authorization-request example that also portrayed
|
||||||
|
Gate House as an in-path service.
|
||||||
|
|
||||||
|
Without a standalone contract, consumers can collapse identity roles, infer an
|
||||||
|
operating mode, treat caller-supplied context as verified fact, or implement
|
||||||
|
incompatible field meanings. Conversely, prescribing an access-engine API or
|
||||||
|
executable policy schema here would recreate the Staff/Engine boundary error
|
||||||
|
resolved by GH-DEC-2026-001.
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
Gate House publishes
|
||||||
|
[`authority-context.v1`](../contracts/authority-context.md) as a logical claims
|
||||||
|
contract.
|
||||||
|
|
||||||
|
The contract defines eight claims:
|
||||||
|
|
||||||
|
1. principal;
|
||||||
|
2. actor;
|
||||||
|
3. runtime identity;
|
||||||
|
4. tenant;
|
||||||
|
5. environment;
|
||||||
|
6. mandate;
|
||||||
|
7. task;
|
||||||
|
8. operating mode.
|
||||||
|
|
||||||
|
It defines their meanings, source and binding expectations, mode-specific
|
||||||
|
requiredness, fail-closed conditions, evidence obligations, and versioning.
|
||||||
|
|
||||||
|
The contract is deliberately not a wire format, token, API, policy package, or
|
||||||
|
runtime resolver. Access-engine owns those representations and the
|
||||||
|
deterministic interpretation of the context alongside verified identity
|
||||||
|
claims, action, resource, approval, posture, and other policy inputs.
|
||||||
|
|
||||||
|
No field grants authority by being present. Caller assertion and authoritative
|
||||||
|
evidence must remain distinguishable, and security-critical resolution failure
|
||||||
|
fails closed.
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
- Access-engine has a stable semantic target without Gate House taking a
|
||||||
|
runtime position.
|
||||||
|
- Identity, tenancy, zone, and mandate sources remain owned by their respective
|
||||||
|
authorities; this contract only says what access-engine must be able to
|
||||||
|
express and bind.
|
||||||
|
- Transport-specific schemas may differ, but their mappings must preserve the
|
||||||
|
logical claims and invariants.
|
||||||
|
- New authorization-significant claims, modes, or semantic changes require a
|
||||||
|
new contract version and Gate House review.
|
||||||
|
- The obsolete Blueprint example remains historical input until GH-WP-0001-T05
|
||||||
|
revises that document; this contract is the current authority-context record.
|
||||||
|
|
||||||
|
## Alternatives rejected
|
||||||
|
|
||||||
|
### Publish a Gate House `/authorize` schema
|
||||||
|
|
||||||
|
Rejected because Gate House is Staff and holds no request-time position.
|
||||||
|
Owning an endpoint or executable decision schema here would contradict
|
||||||
|
GH-DEC-2026-001 and INV-02.
|
||||||
|
|
||||||
|
### Let each consumer infer the vocabulary
|
||||||
|
|
||||||
|
Rejected because principal/actor collapse, mode ambiguity, and unverified
|
||||||
|
caller context are precisely the semantic failures the doctrine must prevent.
|
||||||
|
|
||||||
|
### Put every claim into a credential
|
||||||
|
|
||||||
|
Rejected because credentials are implementation artifacts of authorization,
|
||||||
|
not the source of authority. The context need only remain linked across the
|
||||||
|
authoritative systems and decision evidence.
|
||||||
|
|
||||||
82
docs/adr/ADR-002-principal-actor-runtime-identity-model.md
Normal file
82
docs/adr/ADR-002-principal-actor-runtime-identity-model.md
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
# ADR-002 — Principal, actor, and runtime identity model
|
||||||
|
|
||||||
|
**Repository:** gate-house
|
||||||
|
**Status:** accepted
|
||||||
|
**Date:** 2026-09-01
|
||||||
|
**Workplan:** GH-WP-0001-T04
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
Agentic execution introduces at least three identity questions:
|
||||||
|
|
||||||
|
- on whose behalf does authority originate;
|
||||||
|
- who is directly attempting the action;
|
||||||
|
- which concrete workload instance will execute it.
|
||||||
|
|
||||||
|
A single `subject`, `user`, or service-account field cannot answer all three.
|
||||||
|
Collapsing them permits invisible impersonation, obscures delegation, makes a
|
||||||
|
reusable service identity look like a concrete runtime, and prevents evidence
|
||||||
|
from showing whether a human, agent, or workload actually acted.
|
||||||
|
|
||||||
|
The roles can sometimes resolve to the same underlying subject in a direct,
|
||||||
|
non-delegated operation. That does not make the roles synonymous.
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
Principal, actor, and runtime identity are separate semantic roles throughout
|
||||||
|
authority input and decision evidence:
|
||||||
|
|
||||||
|
- **Principal** is the human, organization, workload, or system on whose behalf
|
||||||
|
authority originates.
|
||||||
|
- **Actor** is the entity directly attempting the action and authenticating as
|
||||||
|
itself.
|
||||||
|
- **Runtime identity** is the concrete workload instance performing execution.
|
||||||
|
|
||||||
|
Implementations must preserve the three roles independently and bind each to
|
||||||
|
the appropriate authoritative evidence. They must not fill one missing role by
|
||||||
|
copying another, use impersonation to hide the actor, or replace a concrete
|
||||||
|
runtime identity with a reusable actor/service name.
|
||||||
|
|
||||||
|
In Assistant mode, the active supervising human is principal and the agent is
|
||||||
|
actor. In Autonomous mode, the autonomous actor has an independent identity,
|
||||||
|
and its principal relationship is established through the organizational
|
||||||
|
context and governed mandate. Both modes identify the concrete runtime.
|
||||||
|
|
||||||
|
Delegation preserves the originating principal and authenticates the actor as
|
||||||
|
itself. Delegated and child authority attenuate; identity linkage never widens
|
||||||
|
the authority ceiling.
|
||||||
|
|
||||||
|
The roles need not all be embedded in one token. They must remain verifiably
|
||||||
|
linked across identity, authorization, credential issuance, execution, and
|
||||||
|
decision evidence.
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
- Policies can distinguish who benefits, who requests, and which workload
|
||||||
|
executes.
|
||||||
|
- Assistant actions remain attributable to both the supervising human and the
|
||||||
|
assisting agent.
|
||||||
|
- Autonomous actors cannot rely on a borrowed human identity or a shared
|
||||||
|
generic machine identity to erase accountability.
|
||||||
|
- Runtime replacement or replay can be evaluated separately from actor
|
||||||
|
identity.
|
||||||
|
- Existing transports with one subject field need an explicit mapping or an
|
||||||
|
extension before they can conform to `authority-context.v1`.
|
||||||
|
|
||||||
|
## Alternatives rejected
|
||||||
|
|
||||||
|
### One canonical subject
|
||||||
|
|
||||||
|
Rejected because it erases delegation and cannot represent the agentic chain
|
||||||
|
without overloading one identifier.
|
||||||
|
|
||||||
|
### Principal and actor only
|
||||||
|
|
||||||
|
Rejected because a stable actor identity does not identify the concrete
|
||||||
|
workload instance that executed a particular action.
|
||||||
|
|
||||||
|
### Treat runtime identity as audit-only metadata
|
||||||
|
|
||||||
|
Rejected because runtime identity can be security-relevant policy input and
|
||||||
|
must be bound before a positive decision when policy depends on it.
|
||||||
|
Reconstructing it after execution is too late to enforce the boundary.
|
||||||
233
docs/contracts/authority-context.md
Normal file
233
docs/contracts/authority-context.md
Normal file
|
|
@ -0,0 +1,233 @@
|
||||||
|
# Authority context contract
|
||||||
|
|
||||||
|
**Repository:** gate-house
|
||||||
|
**Consumer:** access-engine (currently flex-auth)
|
||||||
|
**Status:** normative for GH-WP-0001-T04
|
||||||
|
**Version:** authority-context.v1
|
||||||
|
**Date:** 2026-09-01
|
||||||
|
**Records:** [ADR-001](../adr/ADR-001-canonical-authority-context-contract.md), [ADR-002](../adr/ADR-002-principal-actor-runtime-identity-model.md)
|
||||||
|
|
||||||
|
This contract defines the context an agentic authority request must be able to
|
||||||
|
express. Gate House owns the vocabulary and its invariants. Access-engine owns
|
||||||
|
the request representation, authoritative resolution, policy evaluation, and
|
||||||
|
decision.
|
||||||
|
|
||||||
|
The contract is a logical claims contract, not a wire format, token format, API,
|
||||||
|
or executable schema. Conforming transports may represent it differently, but
|
||||||
|
must preserve these meanings and relationships.
|
||||||
|
|
||||||
|
## Boundary
|
||||||
|
|
||||||
|
Authority context is one input to an authorization decision. It is composed
|
||||||
|
with:
|
||||||
|
|
||||||
|
- verified identity claims from the estate's identity authorities;
|
||||||
|
- the requested action, resource, and normalized parameters;
|
||||||
|
- applicable policy, approval, posture, quotas, budgets, and authority ceiling;
|
||||||
|
- authoritative tenant, environment, and resource facts.
|
||||||
|
|
||||||
|
No authority-context field grants authority by its presence. In particular, a
|
||||||
|
declared principal, mandate, task, or operating mode is not proof that the
|
||||||
|
declaration is valid. Access-engine must bind or resolve security-relevant
|
||||||
|
claims to authoritative evidence before using them in a positive decision.
|
||||||
|
|
||||||
|
Gate House does not receive this context in-path, resolve it, or render a
|
||||||
|
decision.
|
||||||
|
|
||||||
|
## Logical envelope
|
||||||
|
|
||||||
|
`authority-context.v1` has this logical shape:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
schema_version: authority-context.v1
|
||||||
|
request_id: req-01JQY6M4N6V5
|
||||||
|
|
||||||
|
authority_context:
|
||||||
|
principal:
|
||||||
|
id: user:alice@example
|
||||||
|
kind: human
|
||||||
|
actor:
|
||||||
|
id: agent:release-assistant
|
||||||
|
kind: agent
|
||||||
|
runtime_identity:
|
||||||
|
id: spiffe://netkingdom/prod/release-assistant/7f91
|
||||||
|
tenant:
|
||||||
|
id: tenant:acme
|
||||||
|
environment:
|
||||||
|
id: production
|
||||||
|
mandate: null
|
||||||
|
task:
|
||||||
|
id: release:payments:7.2.1
|
||||||
|
kind: release
|
||||||
|
operating_mode: assistant
|
||||||
|
```
|
||||||
|
|
||||||
|
The surrounding authorization request carries evidence for these claims. The
|
||||||
|
logical separation is intentional:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
verified_identity_claims:
|
||||||
|
principal: identity-claim-ref:human-session-779381
|
||||||
|
actor: identity-claim-ref:agent-session-22
|
||||||
|
runtime_identity: identity-claim-ref:workload-attestation-7f91
|
||||||
|
```
|
||||||
|
|
||||||
|
The `identity-claim-ref:*` values are illustrative references, not a prescribed
|
||||||
|
format. Identity-claim schemas and issuers are owned by the identity estate,
|
||||||
|
not by this contract.
|
||||||
|
|
||||||
|
## Claims
|
||||||
|
|
||||||
|
| Claim | Meaning | Authority source or binding requirement |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `principal` | Human, organization, workload, or system on whose behalf authority originates. | Bound to verified identity, an authenticated delegation, or an authoritative relationship such as a mandate. |
|
||||||
|
| `actor` | Entity directly attempting the action. | Bound to the authenticated actor identity. A caller-supplied alias is insufficient. |
|
||||||
|
| `runtime_identity` | Concrete workload instance performing execution. | Bound to verified workload identity or attestation. It is not a reusable service name. |
|
||||||
|
| `tenant` | Security and organizational domain in which the action occurs. | Resolved against authoritative tenant and resource facts. Caller declaration alone is insufficient. |
|
||||||
|
| `environment` | Governed operational environment containing the target. | Resolved from authoritative resource or zone facts. Free-form caller labels are insufficient. |
|
||||||
|
| `mandate` | Versioned reference to the standing organizational authorization defining why an autonomous actor exists. | Required and authoritatively resolved in Autonomous mode. It is neither a credential nor a grant. |
|
||||||
|
| `task` | Stable reference to the bounded unit of work for which authority is requested. | Bound to the workflow or orchestration record where one exists. Human-readable text alone must not widen authority. |
|
||||||
|
| `operating_mode` | Security regime under which the request runs: `assistant` or `autonomous`. | Declared explicitly and checked against session, identity, and mandate evidence. It must not be inferred merely to make a request pass. |
|
||||||
|
|
||||||
|
Identifiers are opaque, stable identifiers in the namespace of their owning
|
||||||
|
system. Display names and mutable labels may accompany them, but must not
|
||||||
|
replace them in policy or decision evidence.
|
||||||
|
|
||||||
|
`kind` values classify the identifier; they do not imply permissions. The
|
||||||
|
canonical principal kinds are `human`, `organization`, `workload`, and
|
||||||
|
`system`. The canonical actor kinds are `human`, `agent`, `workload`, and
|
||||||
|
`system`. A transport may use a controlled extension, but access-engine must
|
||||||
|
not give an unknown kind authorization significance until policy recognizes it.
|
||||||
|
|
||||||
|
## Requiredness by operating mode
|
||||||
|
|
||||||
|
The contract concerns agentic authority requests. Both modes require explicit
|
||||||
|
context rather than reconstructing it later from logs.
|
||||||
|
|
||||||
|
| Claim | Assistant | Autonomous |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `principal` | Required; the actively supervising human principal. | Required; the organization, workload, or system on whose behalf the mandate exists. |
|
||||||
|
| `actor` | Required; the assisting agent, distinct in role from the human principal. | Required; the autonomous actor with its own identity. |
|
||||||
|
| `runtime_identity` | Required for the concrete agent workload/session. | Required for the concrete workload instance. |
|
||||||
|
| `tenant` | Required for tenant-scoped action; otherwise an explicit estate-defined non-tenant scope is required. | Same. |
|
||||||
|
| `environment` | Required. | Required. |
|
||||||
|
| `mandate` | Optional; it must not replace live human supervision or authorize continuation after disconnect. | Required, including an immutable version or revision when mandates are mutable. |
|
||||||
|
| `task` | Required. | Required and bounded by the mandate. |
|
||||||
|
| `operating_mode` | Required; exactly `assistant`. | Required; exactly `autonomous`. |
|
||||||
|
|
||||||
|
An omitted tenant is not a wildcard. A non-tenant request must carry an
|
||||||
|
explicit scope defined by estate policy; access-engine decides whether that
|
||||||
|
scope is recognized.
|
||||||
|
|
||||||
|
## Identity-role invariants
|
||||||
|
|
||||||
|
Principal, actor, and runtime identity are separate semantic roles even when a
|
||||||
|
non-delegated operation legitimately gives two roles the same underlying
|
||||||
|
subject. Conforming implementations must:
|
||||||
|
|
||||||
|
1. preserve all three roles independently in policy input and decision
|
||||||
|
evidence;
|
||||||
|
2. never copy the actor into a missing principal field, or the reverse;
|
||||||
|
3. never replace runtime identity with a reusable actor or service identifier;
|
||||||
|
4. represent delegation without impersonation: the principal remains visible
|
||||||
|
while the actor authenticates as itself;
|
||||||
|
5. ensure delegated or child authority does not exceed the authority available
|
||||||
|
to its parent;
|
||||||
|
6. treat a mismatch between a declared role and authoritative identity evidence
|
||||||
|
as a denial condition.
|
||||||
|
|
||||||
|
The model does not require every credential or token to carry every role. It
|
||||||
|
requires the roles to remain linked across identity, authorization, credential
|
||||||
|
issuance, execution, and decision evidence so the chain can be reconstructed.
|
||||||
|
|
||||||
|
## Operating-mode invariants
|
||||||
|
|
||||||
|
### Assistant
|
||||||
|
|
||||||
|
- A verified, active human session supplies the principal.
|
||||||
|
- The agent remains identifiable as actor and by runtime identity.
|
||||||
|
- Ending or losing the human session must not change the mode to Autonomous.
|
||||||
|
- A mandate, if present, cannot substitute for active supervision.
|
||||||
|
- A continuation requiring privilege after supervision ends requires a new
|
||||||
|
Autonomous request under a governed mandate and independent identity.
|
||||||
|
|
||||||
|
### Autonomous
|
||||||
|
|
||||||
|
- The actor uses an independent identity; no borrowed human credential may
|
||||||
|
stand in for it.
|
||||||
|
- The request names an explicit, current mandate and a task within it.
|
||||||
|
- The mandate resolves to a named owner, authority ceiling, environment and
|
||||||
|
resource bounds, lifecycle, and termination path.
|
||||||
|
- Runtime, concurrency, credential TTL, and applicable change-dynamics bounds
|
||||||
|
are separate policy inputs or mandate facts; naming the mandate does not
|
||||||
|
satisfy them by itself.
|
||||||
|
|
||||||
|
A mode transition is governance-sensitive. It is not an update to an in-flight
|
||||||
|
context object and must not be implemented as fallback behavior.
|
||||||
|
|
||||||
|
## Resolution and failure semantics
|
||||||
|
|
||||||
|
For a protected operation, access-engine must fail closed when:
|
||||||
|
|
||||||
|
- a required claim is absent, malformed, or uses an unsupported contract
|
||||||
|
version;
|
||||||
|
- an identity role cannot be bound to verified identity evidence;
|
||||||
|
- authoritative and caller-supplied values conflict;
|
||||||
|
- tenant, environment, mandate, or task resolution is security-critical and
|
||||||
|
unavailable or stale beyond policy;
|
||||||
|
- an Autonomous mandate is absent, expired, revoked, ambiguous, or does not
|
||||||
|
cover the task;
|
||||||
|
- Assistant supervision is absent or no longer active;
|
||||||
|
- the operating mode is unknown or inconsistent with the evidence;
|
||||||
|
- resolving delegation would widen authority or erase the principal/actor
|
||||||
|
distinction.
|
||||||
|
|
||||||
|
`DEFER` may be used only for non-security-critical enrichment. It is not a
|
||||||
|
fallback for missing evidence needed to decide a protected operation.
|
||||||
|
|
||||||
|
Unknown extension claims have no authorization effect until this contract and
|
||||||
|
access-engine policy recognize them. A consumer must not silently reinterpret
|
||||||
|
a known claim or treat an unknown value as a wildcard.
|
||||||
|
|
||||||
|
## Decision evidence
|
||||||
|
|
||||||
|
For each decision, the evidence must retain:
|
||||||
|
|
||||||
|
- the contract version and request identifier;
|
||||||
|
- the resolved values of all eight authority-context claims;
|
||||||
|
- the authoritative source or evidence reference used for each
|
||||||
|
security-relevant resolution;
|
||||||
|
- the declared and evaluated operating mode;
|
||||||
|
- mandate and task versions where applicable;
|
||||||
|
- any conflict, omission, or stale-input reason contributing to a non-grant
|
||||||
|
decision;
|
||||||
|
- the access-engine policy identifier and version that interpreted the context.
|
||||||
|
|
||||||
|
This is an attribution and reconstruction obligation, not a claim that an
|
||||||
|
archive proves an event was emitted. Audit completeness remains the emitting
|
||||||
|
system's obligation.
|
||||||
|
|
||||||
|
## Versioning
|
||||||
|
|
||||||
|
- `authority-context.v1` fixes the meanings of the eight claims and the two
|
||||||
|
operating-mode values.
|
||||||
|
- Additive metadata may be transported without changing the version only when
|
||||||
|
it cannot affect authorization under v1.
|
||||||
|
- A semantic change, new mode, changed requiredness, or new claim intended to
|
||||||
|
affect authorization requires a new contract version and Gate House review.
|
||||||
|
- Access-engine must reject unsupported major versions for protected
|
||||||
|
operations; it must not guess at compatibility.
|
||||||
|
|
||||||
|
## Conformance statements
|
||||||
|
|
||||||
|
An access-engine representation conforms when it can demonstrate that:
|
||||||
|
|
||||||
|
- every logical claim maps to an unambiguous input field;
|
||||||
|
- authoritative evidence is distinguishable from caller assertion;
|
||||||
|
- the requiredness and failure rules above are enforced;
|
||||||
|
- principal, actor, and runtime identity remain separate through decision
|
||||||
|
evidence;
|
||||||
|
- Assistant and Autonomous requests cannot silently fall back into one
|
||||||
|
another;
|
||||||
|
- no claim in this contract grants authority without deterministic policy.
|
||||||
|
|
||||||
|
|
@ -6,7 +6,7 @@ domain: infotech
|
||||||
repo: gate-house
|
repo: gate-house
|
||||||
status: active
|
status: active
|
||||||
state_hub_workstream_id: "2ec4cf1a-a73f-5793-9738-8d8019cccca8"
|
state_hub_workstream_id: "2ec4cf1a-a73f-5793-9738-8d8019cccca8"
|
||||||
updated: "2026-08-28"
|
updated: "2026-09-01"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Foundation
|
# Foundation
|
||||||
|
|
@ -67,7 +67,7 @@ the standard from `proposed` to `accepted` once the three have answered.
|
||||||
|
|
||||||
```task
|
```task
|
||||||
id: GH-WP-0001-T04
|
id: GH-WP-0001-T04
|
||||||
status: todo
|
status: done
|
||||||
priority: high
|
priority: high
|
||||||
state_hub_task_id: "7903d142-9763-5b3f-839d-2a1599130a2b"
|
state_hub_task_id: "7903d142-9763-5b3f-839d-2a1599130a2b"
|
||||||
```
|
```
|
||||||
|
|
@ -78,6 +78,13 @@ access-engine consumes as input claims alongside verified identity claims.
|
||||||
Record it as ADR-001 and ADR-002. This is the deliverable that makes the
|
Record it as ADR-001 and ADR-002. This is the deliverable that makes the
|
||||||
doctrine consumable rather than descriptive.
|
doctrine consumable rather than descriptive.
|
||||||
|
|
||||||
|
Done — `docs/contracts/authority-context.md` publishes
|
||||||
|
`authority-context.v1` as the logical claims contract, with mode-specific
|
||||||
|
requiredness, authoritative binding, fail-closed, evidence, and versioning
|
||||||
|
rules. `docs/adr/ADR-001-canonical-authority-context-contract.md` and
|
||||||
|
`docs/adr/ADR-002-principal-actor-runtime-identity-model.md` record the contract
|
||||||
|
boundary and the three-role identity model.
|
||||||
|
|
||||||
```task
|
```task
|
||||||
id: GH-WP-0001-T05
|
id: GH-WP-0001-T05
|
||||||
status: todo
|
status: todo
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue