Re-open INFD-WP-0002-T03 live accept; keep the sitting unsigned.

audit-core rollout made origin /readyz 200. Remaining gates are the
T03-only Flex Auth package, no approval:create requester for these
eight acts, and a live KeyCape subject. Attach writes bound copies
from a created receipt; it does not bind.

Assistant: grok
Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267
This commit is contained in:
tegwick 2026-09-15 00:35:14 +02:00
parent 6a386dd787
commit 6289ecbb68
9 changed files with 367 additions and 51 deletions

View file

@ -10,27 +10,33 @@ Do not mark INFD-WP-0002 finished on a partial sitting.
## What is already proven
On 2026-09-14 around 01:06 UTC this origin took **three real human accepts**
for `SECRETS-WP-0010-T03-{apply,verify,exec}`: presentations, required-highlight
acknowledgments, `accept` dispositions, and confirmed approval-engine
submissions are in the review store. That discharges “can a human bind through
this surface?” for T08 historically.
for `SECRETS-WP-0010-T03-{apply,verify,exec}`. That is T08 history, not this
batch. `infd-20260914-c01` must not reuse those approval ids.
Those three memos are **not** this sitting. `infd-20260914-c01` asks a different
question (admit native delivery) and must not reuse those approval ids.
## Live accept reopened (2026-09-14 22:16 UTC)
## What is closed right now (2026-09-14 16:56 UTC)
audit-core `/readyz` was hanging; the Service had no ready endpoints; this
origin refused accept (`/readyz` 503). audit-core `b0e6792` rolled out. Now:
Live accept is refused:
- Origin `/healthz` 200, `/readyz` **200 ready**, `/auth/start` 303 to KeyCape
- Review pod reaches `audit-core.audit-core.svc:8080` healthz/readyz 200
- Preflight: `live_accept=open`, still not `ready_to_sit`
- Origin `/healthz` 200; `/auth/start` 303 to KeyCape (`informed-decision-approver`, PKCE S256).
- Origin `/readyz` **503** `approval_path_not_connected`.
- `audit-core` pod Ready=false; `/readyz` hangs; Service has no ready endpoints;
the review pod gets connection refused talking to `audit-core.audit-core.svc:8080`.
- Accept requires recent audit delivery health. Until that Service has a ready
endpoint, a new sitting cannot submit entries.
Evidence: `docs/evidence/2026-09-14-infd-0002-t03-accept-reopened.json`.
Evidence: `docs/evidence/2026-09-14-infd-0002-t03-bind-path-probe.json`.
Audit-core owns the hang; this packet does not change that deployment.
## What still blocks this sitting
1. **Flex Auth** still admits only the three T03 memo ids
(`FLEX-WP-0027`, `examples/informed-decision-t03`). Compact ids would be
denied. Request shape: `policy-request.md`. Do not expand the T03 mandate
in place.
2. **No `approval:create` requester** whose `binding.actor` matches these
acts. Do **not** reuse `secrets-engine-requester` for WSL2, clock
ownership, mason plan, or warden seal.
3. Drafts still have `approval_id: null` and principal
`pending-human-session`. Live review refuses `missing_act_binding` /
`wrong_recipient`.
4. A human must bind. An agent must not.
## Eight unsigned memos (this sitting)
@ -47,28 +53,18 @@ Open in this order. One question each. No approve-all.
| 7 | `infd-20260914-d03` | MASON-WP-0005 plan |
| 8 | `infd-20260914-d04` | RCLK-WP-0002-T01 |
Drafts still have `approval_id: null` and principal `pending-human-session`.
The live controller refuses those with `missing_act_binding` / `wrong_recipient`.
They are not in the live store.
## After requester, receipts, and policy admission
## After audit-core is Ready
1. Confirm `GET https://decisions.coulomb.social/readyz` returns 200, or run
`uv run python tools/sitting_bind_preflight.py --origin https://decisions.coulomb.social`.
2. For **each** memo, the owning requester creates one `approval-engine` object
with `human_control=true`, required_count 1, no entries. Do **not** reuse
`secrets-engine-requester` for unrelated acts (WSL2 retirement, clock
ownership, mason plan, …).
3. Substitute the operators live KeyCape `sub` for `pending-human-session`.
Carry the native `approval_id` and `binding.digest` on the memo. Do not
invent a digest.
4. Load packet bytes then `save_memo` into the review store (named-memo form,
no inbox).
5. Sign in at the origin. Open `/review?memo_id=infd-20260914-c01` through
`…-d04` in order. Acknowledge the required highlight. Bind that memo. Repeat.
6. Unfinished memos stay in the batch. File-level owning-repo updates are T04
1. `uv run python tools/sitting_bind_preflight.py --origin https://decisions.coulomb.social`
`live_accept` must stay `open`.
2. Owning requester creates eight `human_control=true` objects, required_count 1,
no entries. Carry the native id and `binding.digest`; do not invent a digest.
3. `uv run python tools/attach_compact_bindings.py --principal <exact-keycape-sub> --receipt <created.json>`
writes `bound/` copies. Unsigned drafts stay unsigned.
4. Flex Auth admits a **new** package pinning those eight `memo:` ids to the
native approval id/digest, same identity bar as T03, deny everything else.
5. Load packet bytes then `save_memo` from `bound/` into the review store.
6. Sign in. Open `/review?memo_id=infd-20260914-c01` through `…-d04` in order.
Acknowledge the required highlight. Bind that memo. Repeat.
7. Unfinished memos stay in the batch. File-level owning-repo updates are T04
after a human bind, via `fix-consistency`, never `POST /workplans/`.
A recorded desktop sitting (same order, same highlights, `view_hash` from
`presentation.render` only) is allowed if the Stage 1 UI still cannot take the
group. It is still a human bind. An agent must not complete the form.

View file

@ -22,6 +22,7 @@ Preflight: `uv run python tools/sitting_bind_preflight.py --origin https://decis
Operator packet: `OPERATOR.md`.
T08 already took three human accepts on this origin for `SECRETS-WP-0010-T03-*`.
Those memos are not this sitting. Live accept is currently closed
(`/readyz` 503) because audit-core has no ready Service endpoints.
This sitting stays `draft-unsigned` until a human binds through the surface.
Those memos are not this sitting. Live accept reopened 2026-09-14 22:16 UTC
(`/readyz` 200). This sitting stays `draft-unsigned` until native receipts,
a live KeyCape subject, a new Flex Auth package, and a human bind.
Attach (does not bind): `uv run python tools/attach_compact_bindings.py`.

View file

@ -0,0 +1,37 @@
# Flex Auth policy request — compact sitting
Not admitted. Not a local allow. Not an expansion of the T03 three-record
mandate (`FLEX-WP-0027`, `examples/informed-decision-t03`).
`net-kingdom-admins` may review these eight Decision Memos **only after**
the operator admits a new package that pins exact `memo_id`, `approval_id`
and native `binding.digest`. Until those approval objects exist, this file
is a request shape, not a compilable package.
## Intended allow (same identity bar as T03)
- caller: `system:serviceaccount:informed-decision:review` via TokenReview
- subject: verified human, `tenant:platform`, group `net-kingdom-admins`,
KeyCape AAL2 MFA facts as in the T03 package
- actions: `read`, `acknowledge`, `accept`, `return`, `discuss`, `decline`
- deny every other resource id
- no consume, no approval create, no presentation claim as policy input
## Exact resource ids (approval ids still unknown)
| resource.id | Blocking record |
| --- | --- |
| `memo:infd-20260914-c01` | SECRETS-WP-0010 native delivery |
| `memo:infd-20260914-c02` | RPF-WP-0035-T02 |
| `memo:infd-20260914-c03` | NK-WP-0032-T03 |
| `memo:infd-20260914-c04` | WARDEN-WP-0027-T02 |
| `memo:infd-20260914-d01` | CUST-WP-0038-T08 |
| `memo:infd-20260914-d02` | HFACT-WP-0001-T03 |
| `memo:infd-20260914-d03` | MASON-WP-0005 plan |
| `memo:infd-20260914-d04` | RCLK-WP-0002-T01 |
Do not copy T03 approval ids into this table. Do not serve this list as
policy until a created-receipt supplies `approval_id` and `binding.digest`
for every row.
Owner: flex-auth. This repository drafts; it does not evaluate authorization.

View file

@ -8,6 +8,6 @@
"infd-batch-2026-09-14-decisions"
],
"memo_count": 8,
"bind_path": "INFD-WP-0001-T08 historically proven; live accept closed 2026-09-14T16:56:55Z",
"note": "Unsigned drafts. Do not submit until a human sitting is opened under T03. Live bind substitutes pending-human-session with the authenticated key-cape subject. Probe: docs/evidence/2026-09-14-infd-0002-t03-bind-path-probe.json. Operator packet: OPERATOR.md."
"bind_path": "INFD-WP-0001-T08 historically proven; live accept open 2026-09-14T22:16:07Z; sitting not admitted",
"note": "Unsigned drafts. Live accept reopened after audit-core rollout. Remaining: native approval receipts, live KeyCape subject, new Flex Auth package (not the T03 three-record mandate), then a human sitting. Operator packet: OPERATOR.md."
}