# Budget sitting — operator packet (SECRETS-WP-0009-T03) Review group: `net-kingdom-admins`. Surface: https://decisions.coulomb.social/ Contract: `docs/specs/CompactSignoffBatches.md`. Generator: `tools/prepare_budget_batch.py` (re-running rewrites the same bytes). An agent may draft, order, and record evidence. It may not `accept` / `decline` / `seal`. ## One unsigned memo | n | memo_id | Blocking record | | --: | --- | --- | | 1 | `infd-20260921-b01` | SECRETS-WP-0009-T03 spend envelope (`authority_ref` for HFACT-WP-0001 SpendPolicy) | Required acknowledgement: the EUR 100 monthly limit is recorded, not enforced. ## Steps 1. **Create the native approval (attended).** Same contained reader as the 2026-09-14 sitting, with the batch selected explicitly: ```bash tools/create_sitting_approvals.sh --sitting 2026-09-21 \ --receipt 2026-09-21-budget-approval-create.json --expect 1 ``` Check first without credentials: `.venv/bin/python -B tools/create_sitting_approvals.py --dry-run --sitting 2026-09-21 --receipt 2026-09-21-budget-approval-create.json --expect 1`. The receipt at `docs/evidence/2026-09-21-budget-approval-create.json` gives `approval_id` and the engine-computed binding digest. 2. **Flex Auth admission as a visible version change.** In `flex-auth/examples/informed-decision-sitting/policy.md`: `version: v1` → `v2`, add `"memo:infd-20260921-b01"` to `records` with the receipt's `approval_id`, `binding_digest`, `label: "b01"`, the binding from `approval-create-intents.json`, `memo_version: 1`; mirror it in `records.json`. Keep all seven v1 records. Do not add the record before step 1: an empty approval id must never be a policy value. Build the image in CI, bump `values/informed-decision-sitting.yaml` digest, deploy. 3. **Point Informed Decision at v2.** `deploy/sitting-admission.json`: `version: v2`, new `package_digest`. Roll out the review service. 4. **Load and sit.** Attach the live KeyCape subject, load the memo (`tools/load_sitting_memos.py`), and the human accepts at the surface. The accepted approval id is recorded as `authority_ref` in the SpendPolicy.