Close FLEX-WP-0029 second edition; correct cadence.yaml; block human/external-gated workplans
FLEX-WP-0029: publish the second stance-register edition across five rows (a third scope axis, not a converging two — tenant-engine scopes on engine-reachability, not security-zone), record Finding 1 as resolved by gate-house doctrine rather than by either side, and note Finding 3 as still open in secrets-engine's file. First edition marked superseded, not amended. SCOPE.md's G3 gap closed accordingly. FLEX-WP-0031: correct cadence.yaml to declare one heartbeat per rare load-bearing class instead of a single combined class (tests pass unchanged). Acknowledged audit-core's AUDIT-IN-0006 reply on T02 and recorded its corrections; the remaining work (drain, reconciliation, PVC rollout, G2 closure) stays wait/blocked pending the founder's attended OpenBao mint and gate-house's atomicity ruling, so the workplan moves to blocked. FLEX-WP-0027: marked blocked — the sole remaining task needs the operator's own signed-in account, an irreducible human action. FLEX-WP-0020: recorded net-kingdom's T04 update (NK-WP-0039-T02 done, runtime.yaml digests current) and replied with no objection to their ADR-0015 values-pointer proposal for the drifted runtime.yaml reference. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 250108@bnt-lap001 Assistant-Session: bab3d5bd-b0bb-42d0-bf80-94ed6fc2b08a
This commit is contained in:
parent
f208c1da06
commit
92981698d8
8 changed files with 264 additions and 21 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "The decision record has a declared emission guarantee and nothing that delivers it"
|
||||
domain: infotech
|
||||
repo: flex-auth
|
||||
status: active
|
||||
status: blocked
|
||||
flavor: implementation
|
||||
owner: claude
|
||||
topic_slug: netkingdom
|
||||
|
|
@ -14,7 +14,7 @@ related_workplans:
|
|||
- FLEX-WP-0030
|
||||
- FLEX-WP-0019
|
||||
created: "2026-09-21"
|
||||
updated: "2026-09-23"
|
||||
updated: "2026-09-27"
|
||||
state_hub_workstream_id: "84f5d9fe-b4c9-584a-b964-efe3e48af095"
|
||||
---
|
||||
|
||||
|
|
@ -82,6 +82,25 @@ which `senders.py` forbids for a load-bearing source. warden route has no
|
|||
catalog lane for audit-core sender tokens, and audit-core was asked to name one.
|
||||
Waiting on audit-core.
|
||||
|
||||
2026-09-27: audit-core replied (`AUDIT-IN-0006`, thread `6044ed35`), accepted
|
||||
with corrections: `may_read` must be `false`, not `true` (a writer already
|
||||
counts its own sources without it); `tenants: ["*"]` accepted on the stated
|
||||
justification; per-class heartbeats and the `cadence.yaml` correction accepted
|
||||
(done, see T05); each registration must also carry an `emission_cadence`
|
||||
declaration (info-tech-canon wire schema 0.1, contract digest
|
||||
`b08b4d95fc4b0bd3`) with `allow` as expected-rate, or its rate is only
|
||||
declared and not evaluated. Two envelope corrections land before submission:
|
||||
the heartbeat event needs its own `correlation_id` (no decision id exists for
|
||||
it), and `occurred_at` needs an explicit offset. The atomicity ruling
|
||||
(whether the `FLEX-DEC-2026-018` failure-path release is a `completeness_trade`)
|
||||
is referred to `gate-house` by audit-core, not decided here — flex-auth agreed
|
||||
in reply to wait for that referral. The token lane is an attended OpenBao mint
|
||||
in the founder's terminal (same path `tenant-engine` used,
|
||||
`AUDIT-WP-0010-T02`); `ops-warden` has no catalog lane for it yet and will add
|
||||
one when registration opens. flex-auth acknowledged all of this in reply.
|
||||
Still `wait`: the mint needs the founder, and `ops-warden`'s catalog entry is
|
||||
not yet in place.
|
||||
|
||||
## 3. Durable outbox and the release rule
|
||||
|
||||
```task
|
||||
|
|
@ -118,11 +137,19 @@ Done 2026-09-23:
|
|||
|
||||
```task
|
||||
id: FLEX-WP-0031-T05
|
||||
status: todo
|
||||
status: wait
|
||||
priority: high
|
||||
state_hub_task_id: "14bd6648-11da-53d7-a512-027005bd4772"
|
||||
```
|
||||
|
||||
2026-09-27: `cadence.yaml`'s heartbeat declaration corrected — it now names one
|
||||
class per rare load-bearing event (`deny`, `redact`, `not_applicable`,
|
||||
`audit_only`) instead of a single combined `flex-auth.decision.heartbeat`
|
||||
class. `go build`/`go test ./...` pass unchanged. The remaining scope — the
|
||||
actual per-class heartbeat sender and the drain to `POST /v1/events` — is
|
||||
correctly blocked on T02's sender registration with `audit-core`; the task
|
||||
stays `wait` rather than in progress here.
|
||||
|
||||
- Emit a daily `audit-core.heartbeat` event per rare class, with `data.class`
|
||||
set to the class, following audit-core's `stream_findings` shape.
|
||||
- Correct `cadence.yaml`, which still names a single
|
||||
|
|
@ -136,11 +163,21 @@ state_hub_task_id: "14bd6648-11da-53d7-a512-027005bd4772"
|
|||
|
||||
```task
|
||||
id: FLEX-WP-0031-T06
|
||||
status: todo
|
||||
status: wait
|
||||
priority: high
|
||||
state_hub_task_id: "bf92a951-3b69-59dd-8907-f6748c91a264"
|
||||
```
|
||||
|
||||
2026-09-27: reconciliation compare needs `audit-core`'s `GET /v1/reconciliation`,
|
||||
which does not exist until T02's sender is registered. The profile checker
|
||||
(`net-kingdom/tools/emission-cadence-profile`) is runnable locally but needs a
|
||||
`--contract-schema` for the decision-record cadence contract that is not yet
|
||||
published in this repo or referenced by any sibling's invocation found —
|
||||
inventing one here would be exactly the kind of schema flex-auth should
|
||||
publish deliberately, not improvise for a validation run. The PVC chart change
|
||||
is explicitly a production change needing the founder's go-ahead and was left
|
||||
undone. Stays `wait`.
|
||||
|
||||
- Compare committed counts per class and window with audit-core's
|
||||
`GET /v1/reconciliation`. Divergence is a finding, and undrained events count
|
||||
as lag, not divergence.
|
||||
|
|
@ -154,11 +191,15 @@ state_hub_task_id: "bf92a951-3b69-59dd-8907-f6748c91a264"
|
|||
|
||||
```task
|
||||
id: FLEX-WP-0031-T04
|
||||
status: todo
|
||||
status: wait
|
||||
priority: medium
|
||||
state_hub_task_id: "423b3090-1b72-58fd-9353-5c907c7683bb"
|
||||
```
|
||||
|
||||
2026-09-27: closing G2 requires the silence-finding gate, which requires T05's
|
||||
sender and T06's reconciliation to actually exist. Both are blocked on T02
|
||||
(external, `audit-core`). Stays `wait`.
|
||||
|
||||
Change `cadence.yaml` `state` to emitting, move G2 out of the gap table with the
|
||||
evidence, and tell `gate-house`, `audit-core` and `kings-guard`. Gate: a silence
|
||||
finding is observed on a deliberately withheld heartbeat in a non-production
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue