informed-decision/docs/batches/2026-09-14/OPERATOR.md
tegwick 6a386dd787 Prepare INFD-WP-0002-T03 sitting without a fake bind.
T08 historically bound three SECRETS-WP-0010-T03 memos on this origin.
Live accept is closed: /readyz 503 because audit-core has no ready
endpoints. Compact drafts still lack approval_id. Operator packet and
preflight record the gates; T03 stays wait.

Assistant: grok
Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267
2026-09-14 18:59:49 +02:00

74 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Compact sitting — operator packet (INFD-WP-0002-T03)
Review group: `net-kingdom-admins`.
Surface: https://decisions.coulomb.social/
Contract: `docs/specs/CompactSignoffBatches.md`.
An agent may draft, order, and record evidence. It may not `accept` / `decline` / `seal`.
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.
Those three memos are **not** this sitting. `infd-20260914-c01` asks a different
question (admit native delivery) and must not reuse those approval ids.
## What is closed right now (2026-09-14 16:56 UTC)
Live accept is refused:
- 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-bind-path-probe.json`.
Audit-core owns the hang; this packet does not change that deployment.
## Eight unsigned memos (this sitting)
Open in this order. One question each. No approve-all.
| n | memo_id | Blocking record |
| --: | --- | --- |
| 1 | `infd-20260914-c01` | SECRETS-WP-0010 native delivery |
| 2 | `infd-20260914-c02` | RPF-WP-0035-T02 |
| 3 | `infd-20260914-c03` | NK-WP-0032-T03 |
| 4 | `infd-20260914-c04` | WARDEN-WP-0027-T02 |
| 5 | `infd-20260914-d01` | CUST-WP-0038-T08 |
| 6 | `infd-20260914-d02` | HFACT-WP-0001-T03 |
| 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 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
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.