informed-decision/WORK-RECORDS.md
tegwick 08b190928f Revise specs against approval-engine's approver-surface requirements
approval-engine replied to INFD-IN-0001 with docs/approver-surface-requirements.md
(31da1af, 5203f46) and two corrections. Several of my requirements were wrong or
incomplete; revised rather than appended to.

Corrected:
- PR-02 listed only approval:approve. Wrong — the surface also needs
  approval:read to fetch what it renders. As drafted it would have shipped a
  client able to submit an entry it could never display. That changes a
  registration key-cape has already implemented, so it is their call (open
  question A).
- NC-03 implied approval-engine refuses non-human approver entries. It does not;
  only /consume is principal-restricted, and the operator service client holds
  approval:approve. Enforcement of "humans bind, agents draft" is therefore ours
  alone, and is auditable via schema v4's entries[].principal_type — never from
  the shape of subject_id.

Added:
- PR-04 assurance shape. approval-engine persists it verbatim and accepts an
  empty object, so it is the only place MFA survives into the approval record.
  Needs auth method, acr/amr, auth_time, agreed with key-cape.
- PR-05 entitlement. A 200 from the engine is not permission to view; we owe
  access-engine a check before rendering. Consuming a decision, not making one.
- PR-06 response mapping, including 409 duplicate_approver rendered as SUCCESS
  (a browser double-submit is routine and the first entry stands) and 503 as
  fail-closed.
- PR-07 and a matching INTENT wrongness condition: never render `approved` as
  permission to act. That is a PDP in the browser wearing UI copy.
- L-05, L-06 and EvidenceModel 8b: view_hash cannot ride into the entry — the
  POST discards its body by design — so Stage 1 correlates by (approval_id,
  subject, approved_at). DoD-3 is satisfied by the triple, not by a stored hash.

PRD open question 1 is answered by construction: there is no inbox endpoint and
there will not be one, so the approvals-inbox shape is foreclosed upstream.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3W1dQG7GFFM9d94jFx7iR

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1565372@bnt-lap001
Assistant-Session: 16bb2f25-b34c-49ef-8e94-5fec3567a568
2026-09-09 14:20:13 +02:00

1.5 KiB

Work Records — informed-decision

Generated by statehub fix-consistency (CUST-WP-0061-T04, work-record stage 3). Do not edit by hand — edit the source file/block listed for each record and re-run fix-consistency to refresh this index. Archived workplans are omitted; closed decisions/intakes/engagements stay listed so recently-resolved work is still visible. [auto]

Kind ID Status Lane Source
workplan INFD-WP-0001 active workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T01 done workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T02 progress workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T03 done workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T04 done workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T05 todo workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T06 progress workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T07 todo workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
task INFD-WP-0001-T08 todo workplans/INFD-WP-0001-founding-specs-and-approver-ui-ownership.md
intake INFD-IN-0001 open blue intakes/intakes.md