WP4: Lifecycle/Closure Semantics Design
Source: docs/audit/LIFEOS_AUTHORITY_AUDIT_RESULT_2026-04-27.md §G (G1-G6), §C-016, STATE-002, OD-AUDIT-002
Status: design packet — DO NOT IMPLEMENT UNTIL CEO APPROVES
Problem
succeeded is currently readable as terminal success, creating a false-closure risk (C-016, BLOCKING). The Target Architecture has useful work-order states but under-specifies the review-return and closure gap.
Decision: succeeded disposition (OD-AUDIT-002)
succeeded is a worker result event, not terminal closure.
| Option |
Effect |
| A: Rename to worker_succeeded |
Makes worker-result intent explicit; low migration effort |
| B: Keep succeeded but add non-terminal documentation |
Preserves state names; doc-only — NOT recommended alone |
| C: Replace succeeded with review_returned |
Aligns with corrected G2 state machine; worker result → review/validation → closure |
Recommended: C — aligns with audit corrected lifecycle. If too aggressive: A as transitional step.
closed requirements
closed = terminal accepted completion state. Not reachable directly from running or review_returned. Requires:
- All required validators/gates passed (or explicitly overridden by valid CEO receipt)
- PR/commit/artifact/test refs for build work
- Review disposition for reviewer-requested changes
- Reconciliation receipt for projection/tracker conflicts (if applicable)
- Open-decision list for unresolved issues
- Valid closure receipt (see below)
Transition path: review_returned → under_validation → closed
Prohibited shortcuts:
running → closed (no review/validation/closure receipt)
review_returned → closed without under_validation
New Schema: closure_receipt.v1
closure_receipt.v1:
receipt_id: string # clr_<ISO timestamp>_<work_order_id>
work_order_id: string
issue_id: string?
previous_state: string
new_state: string # always closed
closed_by: string
closed_by_role: active_coo | ceo_authorized_operator
validators_passed: [string]
approval_refs: [string]
artifact_refs: [string]
pr_refs: [string]
test_result_ref: string?
reviewer_packet_refs: [string]
unresolved_decisions: [string]
reconciliation_ref: string?
state_hash: string # hash of lifecycle state record at closure time
closed_at: datetime
Evidence bundle accompanies receipt: validator receipts, PR/commit refs, test summary, review packets, reconciliation receipts.
Implementation: ClosureReceipt dataclass in runtime/orchestration/coo/closure.py. Stored in artifacts/receipts/closure/.
New Schema: lifecycle_state.v1
Add to artifacts/coo/schemas.md:
lifecycle_state.v1:
work_order_id: string
issue_id: string?
state: string
previous_state: string?
state_version: integer
state_updated_at: datetime
state_updated_by: string
active_coo_id: string
phase: string
policy_version: string
approval_ref: string?
execution_order_ref: string?
attempt_id: string?
workflow_run_id: string?
reviewer_packet_ref: string?
validator_result_refs: [string]
closure_receipt_ref: string?
blocked_reason: string?
needs_decision_owner: string?
state_hash: string
Valid states: intake, triaged, awaiting_approval, ready, dispatched, running, review_returned, under_validation, fixes_requested, blocked, needs_decision, timed_out, superseded, withdrawn, rejected, failed, closed
Terminal states: closed, failed, rejected, withdrawn, superseded
Note: succeeded is NOT in the state list. See §2 for disposition.
Files to create/modify
| File |
Action |
artifacts/coo/schemas.md |
Amend — add lifecycle_state.v1, closure_receipt.v1 |
runtime/orchestration/coo/closure.py |
Create — ClosureReceipt dataclass, validation, evidence bundle |
runtime/orchestration/coo/fsm.py |
Create — FSM definition, transition validator |
runtime/orchestration/coo/state.py |
Create — LifecycleState dataclass, serialisation, state_hash |
runtime/tests/orchestration/coo/test_closure_receipt.py |
Create |
runtime/tests/orchestration/coo/test_lifecycle_state.py |
Create |
runtime/tests/orchestration/coo/test_fsm.py |
Create |
Explicitly out of scope
Full design packet: artifacts/plans/WP4_LIFECYCLE_CLOSURE_DESIGN_2026-04-27.md
Implementation blocked on CEO decision D1 (G-CBS demote) and WP3 approval schema per MAY NOT #7
WP4: Lifecycle/Closure Semantics Design
Source:
docs/audit/LIFEOS_AUTHORITY_AUDIT_RESULT_2026-04-27.md§G (G1-G6), §C-016, STATE-002, OD-AUDIT-002Status: design packet — DO NOT IMPLEMENT UNTIL CEO APPROVES
Problem
succeededis currently readable as terminal success, creating a false-closure risk (C-016, BLOCKING). The Target Architecture has useful work-order states but under-specifies the review-return and closure gap.Decision: succeeded disposition (OD-AUDIT-002)
succeededis a worker result event, not terminal closure.Recommended: C — aligns with audit corrected lifecycle. If too aggressive: A as transitional step.
closed requirements
closed= terminal accepted completion state. Not reachable directly fromrunningorreview_returned. Requires:Transition path:
review_returned → under_validation → closedProhibited shortcuts:
running → closed(no review/validation/closure receipt)review_returned → closedwithoutunder_validationNew Schema: closure_receipt.v1
Evidence bundle accompanies receipt: validator receipts, PR/commit refs, test summary, review packets, reconciliation receipts.
Implementation:
ClosureReceiptdataclass inruntime/orchestration/coo/closure.py. Stored inartifacts/receipts/closure/.New Schema: lifecycle_state.v1
Add to
artifacts/coo/schemas.md:Valid states: intake, triaged, awaiting_approval, ready, dispatched, running, review_returned, under_validation, fixes_requested, blocked, needs_decision, timed_out, superseded, withdrawn, rejected, failed, closed
Terminal states: closed, failed, rejected, withdrawn, superseded
Note:
succeededis NOT in the state list. See §2 for disposition.Files to create/modify
artifacts/coo/schemas.mdruntime/orchestration/coo/closure.pyruntime/orchestration/coo/fsm.pyruntime/orchestration/coo/state.pyruntime/tests/orchestration/coo/test_closure_receipt.pyruntime/tests/orchestration/coo/test_lifecycle_state.pyruntime/tests/orchestration/coo/test_fsm.pyExplicitly out of scope
Full design packet:
artifacts/plans/WP4_LIFECYCLE_CLOSURE_DESIGN_2026-04-27.mdImplementation blocked on CEO decision D1 (G-CBS demote) and WP3 approval schema per MAY NOT #7