18 lines
792 B
Markdown
18 lines
792 B
Markdown
|
|
# ADR-0005: Safety chain as one proposal-lifecycle workflow
|
||
|
|
|
||
|
|
**Status**: accepted · 2026-09
|
||
|
|
|
||
|
|
**Context**: Every proposal type (bid, invitation, control plan, dispatch plan)
|
||
|
|
must pass rule check → simulation → envelope gate → fresh check → permit.
|
||
|
|
|
||
|
|
**Decision**: One `proposal-lifecycle` workflow implements the state machine for
|
||
|
|
all types. Business workflows end by submitting a Proposal; the lifecycle
|
||
|
|
workflow takes over. Approval resume, timeout escalation, and audit target this
|
||
|
|
single code path.
|
||
|
|
|
||
|
|
**Alternatives**: Inline safety steps in each business workflow — rejected:
|
||
|
|
five slightly-divergent safety chains are how audit gaps are born.
|
||
|
|
|
||
|
|
**Consequences**: Type-specific behavior (which simulation, which policy pack)
|
||
|
|
is data/config on the Proposal, not workflow structure.
|