Add operator packet for three-attempt spend sitting infd-20261014-b01

Records why the memo is not visible to the owner (never created, admitted
or loaded) and the attended owner steps. Dry-run and packet digest checks
pass; nothing posted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 358047@bnt-lap001
Assistant-Session: fad68125-297a-449d-bfa7-cf9cdd49ca1d
This commit is contained in:
tegwick 2026-10-15 00:39:13 +02:00
parent faae9cb0db
commit 2147bc4d3a

View file

@ -0,0 +1,80 @@
# Three-attempt spend sitting — operator packet
Memo `infd-20261014-b01` (REINAH-WP-0008-T07): up to three metered Glas
attempts, EUR 10 in total and EUR 5 per attempt, observed-usage settlement,
until 2026-10-31. Drafted in `ee6a65b`. **Not created, admitted or loaded.**
An agent may not create the approval, bind an identity, accept, decline or seal.
## Why the owner sees nothing (2026-10-15)
No hub decision exists for this memo, and the hub has nothing to resolve. The
memo appears only when a review record exists on `decisions.coulomb.social`. On
2026-10-15 none existed: no native approval had been created, no Flex Auth
record admitted it and no review store had loaded it.
File checks passed on 2026-10-15 without credentials or network access:
- `tools/create_sitting_approvals.py --dry-run --sitting 2026-10-14-three-attempts --expect 1 --receipt <unused>`
listed exactly one postable intent, `infd-20261014-b01`, with nothing skipped.
- The packet digest matches the memo
(`sha256:cd6da37f6ee41fd5ade7e282622d3d08788683ffc1ecadaabe527d321ecfe839`).
## Owner path, following the 2026-09-27 precedent `infd-20260927-b02`
1. **Create the approval (attended).** Open a Warden attended-login shell, so
that HOME is under `.warden-attended-login` and `BAO_TOKEN` and
`VAULT_TOKEN` are unset. Forward approval-engine to `127.0.0.1:18281`, then
run:
```bash
~/informed-decision/tools/create_sitting_approvals.sh \
--sitting 2026-10-14-three-attempts --expect 1 \
--receipt 2026-10-15-three-attempt-budget-create.json
```
The receipt lands in `docs/evidence/` with `status: created` and an approval
id. The approval's validity window starts at create time. The 2026-09-27
approval was valid for 24 hours, so finish steps 2–4 promptly.
2. **Admit the exact record in Flex Auth (production policy rollout).** Add the
memo:
- `memo:infd-20261014-b01`
- `approval_id`, taken from the receipt
- `binding_digest`, taken from the receipt
- the five-field binding
to `~/access-engine/examples/informed-decision-sitting/records.json` and to
the mandate set that the deployed compact-sitting package is built from.
Then roll the new package digest out through the owning Helm/Argo workflow,
and update `deploy/sitting-admission.json`. Without this step the review
page refuses the memo.
3. **Bind and load.** Write the bound copy using the live KeyCape subject (for
2026-09-27 this was `uid=platform-root,ou=people,dc=netkingdom,dc=local`):
```bash
cd ~/informed-decision && .venv/bin/python -B tools/attach_compact_bindings.py \
--principal '<live KeyCape subject>' \
--receipt docs/evidence/2026-10-15-three-attempt-budget-create.json \
--sitting 2026-10-14-three-attempts --batches budget
```
Then load `docs/batches/2026-10-14-three-attempts/bound` into the live
review store with `tools/load_sitting_memos.py --db <live store> --bound <dir>`,
using the store's own custody path.
4. **Accept (human only).** Go to
`https://decisions.coulomb.social/review?memo_id=infd-20261014-b01`,
signed in as the platform reviewer with fresh MFA.
5. Record the acceptance receipt in `docs/evidence/`. Rein then uses the
approval id as `authority_ref` for `owner renew` (REINAH-WP-0008-T07 step 4).
## Alternative: the lifecycle intake path
This is the normal path since 2026-10-05 (`deploy/lifecycle/README.md`). It
needs no per-record Flex Auth rollout. A trusted in-cluster workload
(`system:serviceaccount:state-hub:state-hub`) registers, publishes and
requests review, and then explicitly enqueues the envelope in the State Hub
memo dispatcher. The 2026-10-05 dependency-roots sitting is the precedent.
The intake admits only class `decision-record`. The resulting review approval
binds the review record, not the five-field `spend-envelope` binding above, so
the owner must agree that it is valid spend authority before this path is used.