Confirm native human acceptance and durable lifecycle production delivery

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
tegwick 2026-10-05 00:21:06 +02:00
parent 4351d894f8
commit b48857c2eb
9 changed files with 354 additions and 14 deletions

View file

@ -1,14 +1,15 @@
# informed-decision
Decision lifecycle service for agents and humans: research, retrieve, prepare,
evaluate, register, publish, comment, refine and human acceptance. The target
evaluate, register, publish, comment, refine and human acceptance. The deployed initial
architecture separates a headless foundation from the UI at
`decisions.coulomb.social`; new decisions are runtime data, requiring no
per-decision infrastructure rollout.
See the [product and architecture contract](docs/specs/DecisionLifecycleService.md)
and [delivery workplan](workplans/INFD-WP-0007-decision-lifecycle-service.md).
These define the requested expansion; [SCOPE.md](SCOPE.md) records what exists.
The initial production audience is live and human acceptance is confirmed.
[SCOPE.md](SCOPE.md) records the delivered boundary and remaining work.
A **Decision Memo** carries a question, the context needed to answer it, the
requested act, and a binding between *identity*, *what was shown*, and *what was
@ -42,3 +43,17 @@ This repository renders questions and records answers. It does **not** decide
(`access-engine`), does not own the approval object (`approval-engine`), does
not author approval doctrine (`gate-house`), does not authenticate anyone
(`key-cape`), and does not archive the trail (`audit-core`).
## Production intake and historical fallback
For the admitted State Hub / decision-record audience, register, revise and
publish through the private lifecycle API, request review, then explicitly queue
the returned envelope in the State Hub dispatcher. The human reviews through
the existing protected browser path. See [the deployed release](deploy/lifecycle/README.md).
`tools/create_sitting_approvals.py` / `.sh`, `tools/attach_compact_bindings.py` and
`tools/load_sitting_memos.py` are historical compact-sitting fallback tools. They
are not the normal path for new admitted decisions. Their original attended
custody and approval requirements still apply; do not use them to bypass intake,
uncertain-create handling, policy checks or human binding. Historical batch
runbooks remain provenance, not the current intake workflow.

View file

@ -22,9 +22,11 @@ dispatcher pod recreation retained revision 2, custody and the same receipt.
Missing/crossed-audience/unregistered callers are refused. Independent Audit
Core counts match; prior 24 confirmed submissions were preserved.
Human acceptance of the new lifecycle review is still pending. Broader binding
Human acceptance of source revision 2 is confirmed at 2026-10-04T22:17:19Z,
with an exact presentation/disposition link and independent audit reconciliation.
Broader binding
profiles and browser acceptance remain live tasks in INFD-WP-0007; intake
continuation is INFD-WP-0005. Issuer rotation is separately governed under Platform
initial delivery is completed in INFD-WP-0005. Issuer rotation is separately governed under Platform
RPF-IN-0004. Automatic Hub resolution write-back remains disabled.
Release/cutover procedure: `deploy/lifecycle/README.md`. Native receipts:

View file

@ -164,6 +164,7 @@ recreation retains the same version and single approval receipt; explicit
re-enqueue is replay. Temporary negative-verification resources were deleted.
Human review remains at /review?memo_id=review-0d55a416-178c-46f5-b74b-b9b668390448.
No native human disposition is claimed yet. Evidence and exact pins are retained
Human acceptance is confirmed at 2026-10-04T22:17:19Z and linked to source
revision 2, the exact presentation and independent audit receipts. Evidence and exact pins are retained
in docs/evidence/2026-10-05-lifecycle-cutover/. Issuer rotation is a separate
Platform residual, RPF-IN-0004; it was neither performed nor authorized here.

View file

@ -0,0 +1,45 @@
{
"recorded_at": "2026-10-04T22:20:52.645654+00:00",
"status": "initial-audience-production-accepted",
"cutover_approval_decision": "d2eaa2e9-6d11-4676-a07f-e3b7e59a88e3",
"source_memo": "infd-20261005-lifecycle-production-proof",
"source_version": 2,
"review_memo": "review-0d55a416-178c-46f5-b74b-b9b668390448",
"approval_id": "22b30fe7-c565-46f2-8193-d8875975ad9e",
"presentation_id": "pres-484c0ef3-0a87-4dbf-aa30-05fd21e19c91",
"view_hash": "946bee42ec960377625d0a135935121d64fc6e132e3419adcbcf40770cd6bd6d",
"human_accepted_at": "2026-10-04T22:17:19+00:00",
"submission_state": "confirmed",
"confirmed_submissions_before": 24,
"confirmed_submissions_after": 25,
"independent_audit_counts_match": true,
"lifecycle_pending": 0,
"post_acceptance_restart_outcome_equal": true,
"post_restart_packet_integrity": true,
"requester_projection": {
"mode": "0440",
"read_only": true,
"signed_create_only_exchange": true
},
"authentication_checks": {
"selected_workload": 200,
"missing_bearer": 401,
"intake_audience_on_lifecycle": 401,
"lifecycle_audience_on_intake": 401,
"unregistered_caller_correct_audience": 401
},
"public_checks": {
"healthz": 200,
"readyz": 200,
"v1_decisions": 404,
"v1_memos": 404
},
"temporary_negative_resources_deleted": true,
"new_decisions_required_deployment_change": false,
"remaining_work_records": [
"INFD-WP-0007-T02",
"INFD-WP-0007-T05",
"RPF-IN-0004"
],
"human_reported_error": "Truncated review URL; complete URL successfully read, acknowledged and accepted."
}

View file

@ -0,0 +1,29 @@
{
"dispositions": [
{
"approved_at": "2026-10-04T22:17:19+00:00",
"disposition": {
"actor": {
"kind": "person",
"sub": "uid=platform-root,ou=people,dc=netkingdom,dc=local"
},
"approval_id": "22b30fe7-c565-46f2-8193-d8875975ad9e",
"at": "2026-10-04T22:17:19Z",
"id": "disp-85ddaab7-8c8d-4bf3-8d39-e0e3c28c1c16",
"memo_id": "review-0d55a416-178c-46f5-b74b-b9b668390448",
"memo_version": 1,
"note": null,
"presentation_id": "pres-484c0ef3-0a87-4dbf-aa30-05fd21e19c91",
"reasons": [],
"verb": "accept"
},
"submission_state": "confirmed"
}
],
"review": {
"intake_state": "ready",
"memo_id": "review-0d55a416-178c-46f5-b74b-b9b668390448",
"path": "/review?memo_id=review-0d55a416-178c-46f5-b74b-b9b668390448",
"stale": false
}
}

View file

@ -0,0 +1,29 @@
{
"dispositions": [
{
"approved_at": "2026-10-04T22:17:19+00:00",
"disposition": {
"actor": {
"kind": "person",
"sub": "uid=platform-root,ou=people,dc=netkingdom,dc=local"
},
"approval_id": "22b30fe7-c565-46f2-8193-d8875975ad9e",
"at": "2026-10-04T22:17:19Z",
"id": "disp-85ddaab7-8c8d-4bf3-8d39-e0e3c28c1c16",
"memo_id": "review-0d55a416-178c-46f5-b74b-b9b668390448",
"memo_version": 1,
"note": null,
"presentation_id": "pres-484c0ef3-0a87-4dbf-aa30-05fd21e19c91",
"reasons": [],
"verb": "accept"
},
"submission_state": "confirmed"
}
],
"review": {
"intake_state": "ready",
"memo_id": "review-0d55a416-178c-46f5-b74b-b9b668390448",
"path": "/review?memo_id=review-0d55a416-178c-46f5-b74b-b9b668390448",
"stale": false
}
}

View file

@ -0,0 +1,186 @@
{
"events": [
{
"id": "8bc87458-c042-4e45-883d-d7c189a089f7",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 1,
"kind": "registered",
"at": "2026-10-04T22:07:33.060609+00:00"
},
{
"id": "ef7c9698-8466-45c8-872e-d6375b11bfa7",
"memo_id": "infd-20261005-lifecycle-recovery-notes",
"version": 1,
"kind": "registered",
"at": "2026-10-04T22:07:33.131538+00:00"
},
{
"id": "db6229d0-ed8e-460a-8c56-778f2477244c",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 1,
"kind": "source",
"at": "2026-10-04T22:07:33.201167+00:00"
},
{
"id": "15249473-4736-4f1c-bb6c-d130aeb473c8",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 1,
"kind": "evaluation",
"at": "2026-10-04T22:07:33.254457+00:00"
},
{
"id": "9b51d039-4ded-41b4-b083-178644d25eb4",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 1,
"kind": "comment",
"at": "2026-10-04T22:07:33.300510+00:00"
},
{
"id": "85c3b0aa-46f9-4e96-b8eb-e7c48f70e732",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 2,
"kind": "revised",
"at": "2026-10-04T22:07:33.355967+00:00"
},
{
"id": "9a363333-5891-462a-af39-54e3161b7f6b",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 2,
"kind": "published",
"at": "2026-10-04T22:07:33.401132+00:00"
},
{
"id": "5a2e81e3-70fd-4ad4-8be4-140c5d88a8b8",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 2,
"kind": "review_requested",
"at": "2026-10-04T22:07:33.595603+00:00"
},
{
"id": "240451dc-4ef6-43d6-a5cd-99c098ae0d14",
"memo_id": "infd-20261005-lifecycle-production-proof",
"version": 2,
"kind": "source",
"at": "2026-10-04T22:09:20.847454+00:00"
}
],
"receipts": [
{
"id": "8bc87458-c042-4e45-883d-d7c189a089f7",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.060609+00:00",
"state": "delivered",
"receiver_reference": "audit:8bc87458-c042-4e45-883d-d7c189a089f7"
},
{
"id": "ef7c9698-8466-45c8-872e-d6375b11bfa7",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.131538+00:00",
"state": "delivered",
"receiver_reference": "audit:ef7c9698-8466-45c8-872e-d6375b11bfa7"
},
{
"id": "db6229d0-ed8e-460a-8c56-778f2477244c",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.201167+00:00",
"state": "delivered",
"receiver_reference": "audit:db6229d0-ed8e-460a-8c56-778f2477244c"
},
{
"id": "15249473-4736-4f1c-bb6c-d130aeb473c8",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.254457+00:00",
"state": "delivered",
"receiver_reference": "audit:15249473-4736-4f1c-bb6c-d130aeb473c8"
},
{
"id": "9b51d039-4ded-41b4-b083-178644d25eb4",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.300510+00:00",
"state": "delivered",
"receiver_reference": "audit:9b51d039-4ded-41b4-b083-178644d25eb4"
},
{
"id": "85c3b0aa-46f9-4e96-b8eb-e7c48f70e732",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.355967+00:00",
"state": "delivered",
"receiver_reference": "audit:85c3b0aa-46f9-4e96-b8eb-e7c48f70e732"
},
{
"id": "9a363333-5891-462a-af39-54e3161b7f6b",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.401132+00:00",
"state": "delivered",
"receiver_reference": "audit:9a363333-5891-462a-af39-54e3161b7f6b"
},
{
"id": "5a2e81e3-70fd-4ad4-8be4-140c5d88a8b8",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:07:33.595603+00:00",
"state": "delivered",
"receiver_reference": "audit:5a2e81e3-70fd-4ad4-8be4-140c5d88a8b8"
},
{
"id": "d94d567c-f7e0-48f1-980e-9609d69c5eec",
"class": "informed-decision.memo.posed",
"at": "2026-10-04T22:07:34.878488+00:00",
"state": "delivered",
"receiver_reference": "audit:d94d567c-f7e0-48f1-980e-9609d69c5eec"
},
{
"id": "240451dc-4ef6-43d6-a5cd-99c098ae0d14",
"class": "informed-decision.lifecycle",
"at": "2026-10-04T22:09:20.847454+00:00",
"state": "delivered",
"receiver_reference": "audit:240451dc-4ef6-43d6-a5cd-99c098ae0d14"
},
{
"id": "ev-9880cf77-3141-451b-852c-503610d37fb3",
"class": "informed-decision.presentation",
"at": "2026-10-04T22:16:37.000000+00:00",
"state": "delivered",
"receiver_reference": "audit:ev-9880cf77-3141-451b-852c-503610d37fb3"
},
{
"id": "ev-b1d79a94-66aa-459d-bf10-3aff8c8c2d10",
"class": "informed-decision.presentation",
"at": "2026-10-04T22:17:06.000000+00:00",
"state": "delivered",
"receiver_reference": "audit:ev-b1d79a94-66aa-459d-bf10-3aff8c8c2d10"
},
{
"id": "ev-60bf8da4-429e-4da8-8871-fdea5e8867b3",
"class": "informed-decision.disposition",
"at": "2026-10-04T22:17:19.000000+00:00",
"state": "delivered",
"receiver_reference": "audit:ev-60bf8da4-429e-4da8-8871-fdea5e8867b3"
},
{
"id": "ev-6ad11d46-07a2-4f58-9d2b-6b8af3eafcb4",
"class": "informed-decision.disposition",
"at": "2026-10-04T22:17:19.000000+00:00",
"state": "delivered",
"receiver_reference": "audit:ev-6ad11d46-07a2-4f58-9d2b-6b8af3eafcb4"
}
],
"receiver_counts": {
"audit-core.heartbeat": 2,
"informed-decision.disposition": 2,
"informed-decision.lifecycle": 9,
"informed-decision.memo.posed": 1,
"informed-decision.presentation": 2
},
"local_counts": {
"audit-core.heartbeat": 2,
"informed-decision.disposition": 2,
"informed-decision.lifecycle": 9,
"informed-decision.memo.posed": 1,
"informed-decision.presentation": 2
},
"counts_match": true,
"submissions": {
"confirmed": 25
},
"pending": 0
}

View file

@ -4,7 +4,7 @@ type: workplan
title: "Frictionless decision intake — agents pose memos, only answering is human"
domain: infotech
repo: informed-decision
status: active
status: finished
flavor: implementation
owner: claude
topic_slug: netkingdom
@ -124,7 +124,7 @@ memo, and records the receipt. Replaces OPERATOR step A3.
```task
id: INFD-WP-0005-T06
status: progress
status: done
priority: high
state_hub_task_id: "c03016da-a795-5c5c-b86e-0ce9afc67be6"
```
@ -159,7 +159,7 @@ evidence, notification and gated resolution delivery. Live acceptance remains T1
```task
id: INFD-WP-0005-T08
status: progress
status: done
priority: medium
state_hub_task_id: "ce2b36b4-ef82-53b7-aee7-e0063855370b"
```
@ -188,7 +188,7 @@ Record gate-house's answer in the spec; adjust §5 if doctrine requires it.
```task
id: INFD-WP-0005-T10
status: progress
status: done
priority: low
depends_on: [INFD-WP-0005-T05, INFD-WP-0005-T06]
state_hub_task_id: "e7d98fc0-0e56-50e6-955d-c70209ad4712"
@ -291,3 +291,18 @@ restart and same-envelope replay preserve that one native receipt. T05 is done.
T06/T08/T10 remain in progress for the human browser/acceptance return and final
fallback documentation. Resolution write-back stays disabled. Platform RPF-IN-0004
tracks separately governed issuer rotation proof. No renewed cutover go is needed.
## Initial audience accepted — 2026-10-05
Native human acceptance is confirmed at 2026-10-04T22:17:19Z for approval
22b30fe7-c565-46f2-8193-d8875975ad9e. The selected workload retrieves the exact
source revision, human disposition and confirmation; Audit Core independently
reconciles. The initial intake scope is complete. Manual compact-sitting scripts
are documented as historical fallback only; new admitted decisions use the
lifecycle handoff and private dispatcher without per-record deployment.
Residuals remain live: INFD-WP-0007-T02 owns broader profile/optional Hub
write-back contracts; INFD-WP-0007-T05 owns workspace/overview discovery follow-up.
Platform RPF-IN-0004 owns separately governed issuer rotation proof. Write-back
stays disabled and no extra caller is admitted. No residual is closed by this
workplan's completion.

View file

@ -51,14 +51,16 @@ Define versioned API schemas, application service interfaces, caller/tenant
context, source/evaluation/comment companion records, revision concurrency,
publication audience, idempotency, errors, limits and result retrieval. Resolve
the spec's open identity/publication/source/non-approval binding contracts.
Review against existing schema and engine contracts. Preserve private intake
Review against existing schema and engine contracts. Residual from INFD-WP-0005:
retain separate optional Hub outcome write-back and broader profile contracts;
write-back remains disabled until independently admitted. Preserve private intake
and current review URLs. Produce a reviewed migration and compatibility plan.
## Implement durable headless lifecycle foundation
```task
id: INFD-WP-0007-T03
status: progress
status: done
priority: high
depends_on: [INFD-WP-0007-T02]
state_hub_task_id: "2a206bc2-cb92-539d-9014-9ba71f70277c"
@ -75,7 +77,7 @@ and absence of UI imports. No mirrored approval state.
```task
id: INFD-WP-0007-T04
status: progress
status: done
priority: high
depends_on: [INFD-WP-0007-T03]
state_hub_task_id: "65c760da-de7e-5e85-9817-6f3e2b46c8f9"
@ -96,6 +98,10 @@ depends_on: [INFD-WP-0007-T04]
state_hub_task_id: "a6a7c9a8-760e-52dd-80d3-d36f43f0a86a"
```
Residual from INFD-WP-0005: review overview listing currently remains exact-record
only; define attribute-based discovery with Access Engine while retaining fresh
read/act decisions. The lifecycle workspace already lists published records.
Add discovery, authoring, research/evaluation views, publication audience controls,
discussion, revision comparison and human review through the shared foundation.
Keep agents clearly attributed, acceptance revision-specific and authentication
@ -105,7 +111,7 @@ step-up understandable. Verify existing URLs and old records remain usable.
```task
id: INFD-WP-0007-T06
status: progress
status: done
priority: high
depends_on: [INFD-WP-0007-T04, INFD-WP-0007-T05]
state_hub_task_id: "aa839bea-cc4c-5ee0-85e7-87c881e8e578"
@ -121,7 +127,7 @@ packet before requesting the separately required live rollout approval.
```task
id: INFD-WP-0007-T07
status: progress
status: done
priority: high
depends_on: [INFD-WP-0007-T06]
state_hub_task_id: "25fa4743-5c7e-5609-9872-7c5971ff62bc"
@ -353,3 +359,15 @@ Review memo: review-0d55a416-178c-46f5-b74b-b9b668390448; Approval Engine id:
are settled. Human disposition remains pending; no agent acceptance is claimed.
Evidence: docs/evidence/2026-10-05-lifecycle-cutover/. T07 stays in progress;
broader browser profiles and unresolved spec items remain in T02/T05/T06.
## Native acceptance complete — 2026-10-05
The human accepted at 2026-10-04T22:17:19Z. Native entry correlation:
approval 22b30fe7-c565-46f2-8193-d8875975ad9e, presentation
pres-484c0ef3-0a87-4dbf-aa30-05fd21e19c91, disposition
disp-85ddaab7-8c8d-4bf3-8d39-e0e3c28c1c16, source revision 2.
The selected workload retrieved confirmation; Audit Core counts match and
lifecycle pending is zero. T03/T04/T06/T07 are done for the admitted initial
audience. T02 and T05 remain active for the named broader contracts and UI work.
The first reported review error was a truncated URL missing its final UUID
segment; the complete link passed read, acknowledgment and acceptance checks.