Admit list for the informed-decision overview as compact-sitting v3 (FLEX-DEC-2026-017).
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Container Image / build-and-push (push) Successful in 1m14s

list is a separate rule with exact-record scope over the union of the eight
sitting records and the three T03 records, each pinned by approval id, digest and
its own memo version, with a 12-hour MFA window. read and the five acts keep the
v2 rule unchanged — same eight records, same 900-second window — so a list allow
satisfies nothing else.

The operator chose exact-record scope over the consumer's preferred type-wide
scope: the PDP checks no recipient, so type-wide scope with a relaxed window would
have left the consumer's structural match — which the consumer itself says is
not an entitlement — as the only scope. The 12-hour bound replaces the requested
"no bound" so the PDP still states one. The KeyCape stale-timestamp defect is not
worked around; read stays strict.

417 evaluator checks: 168 v2 unchanged, 231 list, 18 proving no act widens to the
T03 records. Also fixes tools/exercise_t03_review_policy.py, which had been
failing since f85479c moved the T03 records to memo version 2 and it still sent
version 1. Test-only.

Not deployed: the pin serving the live review surface changes only with operator
confirmation.

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

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 28468@bnt-lap001
Assistant-Session: c76569b2-6056-4dad-aea4-49cd7a018f5d
This commit is contained in:
tegwick 2026-09-21 23:06:40 +02:00
parent 1a3f2f7d78
commit ad7b7f536a
7 changed files with 1928 additions and 8 deletions

View file

@ -4,7 +4,7 @@ type: workplan
title: "Admit a list action for the informed-decision overview without handing the scope to the consumer"
domain: infotech
repo: flex-auth
status: proposed
status: active
flavor: implementation
owner: claude
topic_slug: netkingdom
@ -83,18 +83,21 @@ surface was admitted by the operator (`FLEX-WP-0027-T01`, `FLEX-WP-0028`).
```task
id: FLEX-WP-0032-T01
status: wait
status: done
priority: high
state_hub_task_id: "f741d47e-50b9-5eb1-81d9-ffec847be77a"
```
Owner: operator decides; `flex-auth` records as a `FLEX-DEC`.
2026-09-21: done. Operator chose **(B) exact-record** and a **12-hour** MFA
window for `list`. Recorded as `FLEX-DEC-2026-017`.
## 2. Compile compact-sitting v3
```task
id: FLEX-WP-0032-T02
status: todo
status: done
priority: high
state_hub_task_id: "a24fc5cf-f663-5338-97da-169af7fb47fb"
```
@ -110,11 +113,17 @@ Owner: `flex-auth`.
- A version bump, per `FLEX-DEC-2026-008`: a widened bar must be visible to the
consumer as a version change.
2026-09-21: done. v3, digest
`sha256:dd40c80c5719851737178097cdee65afac108b54e19c07370e549b860f1a9655`.
The v2 act rule is kept unchanged so its effect cannot drift; `list` is a
separate `else` branch. T03 pins in `examples/informed-decision-sitting/list_only_records.json`,
copied from the T03 package's records.
## 3. Fixtures and the exercise receipt
```task
id: FLEX-WP-0032-T03
status: todo
status: done
priority: high
state_hub_task_id: "984f11f4-6ec9-5f7d-840b-4dee2e121212"
```
@ -130,6 +139,15 @@ sitting checks and T03's 57.
Gate: `flex-auth validate`, `test-policy`, and the exercise scripts green; a
receipt in `docs/evidence/`.
2026-09-21: done. 417 checks (168 v2 unchanged, 231 `list`, 18 no-act-widening),
receipt `docs/evidence/2026-09-21-sitting-review-policy-v3.json`; validate and
three Rego tests green; T03's 57 pass.
Found on the way: `tools/exercise_t03_review_policy.py` had been failing since
`f85479c` moved the T03 records to memo version 2 — it still sent version 1, so
the reproduce command `FLEX-WP-0027-T01` cites was broken. Fixed to read each
record's own version. Test-only; no policy change.
## 4. Publish and hand back
```task