informed-decision/history/20260909-initial-exploration/decision-memo.example.json
tegwick ee2cca579c Establish INTENT, Stage 1 GOAL, and founding workplan
Claim ownership of the browser-facing approver UI that approval-engine
deliberately does not contain. approval-engine's INTENT names an approvals
inbox under Non-Goals, and docs/keycape-service-registrations.md records that
the human approver client's client_id and callback URI "must come from its
owner once it exists" — leaving key-cape's KEY-WP-0013-T02 blocked on an
unassigned component.

- INTENT.md: Decision Memo concept, the binding/awareness split and the two
  hashes, ownership and non-ownership against the named estate repositories,
  and a provisional PEP-shaped layer placement flagged for a gate-house ruling
  rather than asserted.
- GOAL.md: Stage 1 is the L3 approval approver surface — the narrowest real
  consumer with a live blocking dependency — plus the written answer to who
  owns the approver UI.
- workplans/INFD-WP-0001: founding documents, the gate-house layer/ownership
  ruling, the four specs (PRD, UseCaseCatalog, ArchitectureBlueprint,
  EvidenceModel), schema and canonicalizer promotion out of history/ with the
  isolation vectors under test, the key-cape client registration, and a
  walking skeleton that includes return and discuss.

history/ is preserved unmodified as provenance.

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 10:47:36 +02:00

150 lines
5.1 KiB
JSON

{
"id": "01K4Q8Z3R7V2N6K9M1P5T8W4XC",
"version": 2,
"schema_version": "0.2.0",
"status": "awaiting_actor",
"depth": 2,
"title": "Accept ADR-0042: event-sourced billing ledger",
"question": "Do you formally accept ADR-0042 as the billing architecture for prod?",
"requested_act": "accept",
"binding_level": "aes",
"locale": "en",
"created_at": "2026-09-08T14:02:11Z",
"updated_at": "2026-09-09T07:18:44Z",
"submitted_at": "2026-09-08T15:10:00Z",
"due_at": "2026-09-12T16:00:00Z",
"requester": {
"id": "01K4Q8A1B2C3D4E5F6G7H8J9K0",
"kind": "person",
"display_name": "Lea Hoffmann",
"role": "staff engineer",
"identifiers": [
{ "scheme": "email", "value": "lea.hoffmann@example.com" },
{ "scheme": "idp:oidc-sub", "value": "auth.example.com|a8f21c" }
]
},
"parties": [
{
"id": "01K4Q8MANDATE000000000001",
"kind": "person",
"display_name": "Bernd Worsch",
"role": "principal engineer / ADR acceptor",
"mandate": {
"id": "01K4Q8MANDATE00000000000A",
"scope": "Accept architecture decision records for billing and payments",
"policy_ref": "https://policy.example.com/adr-acceptance"
}
}
],
"brief": "Replace nightly batch invoicing with an append-only event ledger. Replay is the source of truth for invoices. Dual-run for 60 days. Rollback: freeze the ledger and revert the read model to the last nightly snapshot.",
"consequences": "On-call owns replay tooling. Finance reporting moves from SQL warehouse tables to a projection job. No in-place updates of posted invoices.",
"packet": [
{
"id": "01K4Q8DOC0000000000000001",
"role": "primary",
"filename": "ADR-0042.md",
"media_type": "text/markdown",
"language": "en",
"bytes": 12880,
"hash": { "alg": "sha256", "hex": "6b1c0f8a9d2e4c7b8a1f0e3d5c6b7a8f9e0d1c2b3a4f5e6d7c8b9a0f1e2d3c4b" },
"storage_uri": "s3://decisions/adr/0042.md",
"version": 2,
"is_to_be_signed": true,
"label": "ADR-0042"
}
],
"highlights": [
{
"id": "01K4Q8HL00000000000000001",
"item_id": "01K4Q8DOC0000000000000001",
"severity": "critical",
"locator": {
"kind": "markdown_heading",
"heading": "Consequences / rollback"
},
"title": "Rollback is operationally expensive",
"note": "Accepting this ADR commits on-call to ledger freeze drills before go-live.",
"required_ack": true,
"author_id": "01K4Q8A1B2C3D4E5F6G7H8J9K0",
"created_at": "2026-09-08T14:20:00Z",
"source": "requester"
}
],
"route": {
"mode": "sequential",
"steps": [
{
"id": "01K4Q8STEP000000000000001",
"ordinal": 1,
"kind": "review",
"assignee": {
"id": "01K4Q8MANDATE000000000002",
"kind": "role",
"display_name": "Billing domain reviewer"
},
"required_verbs": ["acknowledge"],
"status": "completed",
"completed_at": "2026-09-08T17:40:00Z"
},
{
"id": "01K4Q8STEP000000000000002",
"ordinal": 2,
"kind": "schlusszeichnung",
"assignee": {
"id": "01K4Q8MANDATE000000000001",
"kind": "person",
"display_name": "Bernd Worsch"
},
"required_verbs": ["accept", "return", "escalate"],
"min_binding_level": "aes",
"status": "active",
"due_at": "2026-09-12T16:00:00Z"
}
],
"current_step_ids": ["01K4Q8STEP000000000000002"]
},
"thread": [
{
"id": "01K4Q8MSG0000000000000001",
"author_id": "01K4Q8MANDATE000000000002",
"body": "Rollback drill date is missing. Acceptable if added before go-live.",
"created_at": "2026-09-08T17:39:12Z"
}
],
"presentations": [
{
"id": "01K4Q8PRES000000000000001",
"actor_id": "01K4Q8MANDATE000000000001",
"memo_version": 2,
"opened_at": "2026-09-09T07:10:00Z",
"ui_release": "informed-decision@0.3.1",
"locale": "en",
"viewport": "brief",
"packet_hashes": [
{
"item_id": "01K4Q8DOC0000000000000001",
"hash": { "alg": "sha256", "hex": "6b1c0f8a9d2e4c7b8a1f0e3d5c6b7a8f9e0d1c2b3a4f5e6d7c8b9a0f1e2d3c4b" }
}
],
"highlight_ids": ["01K4Q8HL00000000000000001"],
"highlight_set_hash": { "alg": "sha256", "hex": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" },
"brief_hash": { "alg": "sha256", "hex": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" },
"view_hash": { "alg": "sha256", "hex": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" },
"acked_highlight_ids": ["01K4Q8HL00000000000000001"],
"auth_context": {
"method": "passkey",
"assurance": "substantial",
"idp": "https://auth.example.com"
}
}
],
"dispositions": [],
"relations": [
{ "kind": "supersedes", "to": "01K4Q8OLDADR0000000000001", "note": "Supersedes ADR-0011 batch invoicing" }
],
"legal": {
"form_requirement": "none",
"retention_years": 10,
"classification": "internal"
}
}