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:
parent
faae9cb0db
commit
2147bc4d3a
1 changed files with 80 additions and 0 deletions
80
docs/batches/2026-10-14-three-attempts/OPERATOR.md
Normal file
80
docs/batches/2026-10-14-three-attempts/OPERATOR.md
Normal 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue