hardened-delivery
Triage -> resume gate -> plan/proof patch -> TDD -> verify/review/acceptance with proof-first repairs.Nodes
Triage triage
agent · triage
x=100 y=100
Resume Gate resume_gate
command
x=300 y=100
Plan plan
agent · architect
x=520 y=100
Plan Guard plan_guard
command
x=760 y=100
Proof Audit proof_audit
agent · reviewer
x=980 y=100
Proof Patch proof_patch
agent · architect
x=980 y=240
Write Tests write_tests
agent · implementer
x=1220 y=40
Red Gate red_gate
command
x=1440 y=40
Capture Scope Baseline capture_impl_scope_baseline
command
x=1660 y=40
Implement implement
agent · implementer
x=1880 y=40
Scope Guard scope_guard
command
x=2100 y=40
Verify verify
command
x=2320 y=40
Review review
agent · reviewer
x=2540 y=40
Acceptance Preflight acceptance_preflight
command
x=2760 y=40
Acceptance acceptance
agent · acceptance
x=2980 y=40
Repair Diagnose repair_diagnose
agent · reviewer
x=2540 y=260
Repair Tests repair_tests
agent · implementer
x=2760 y=260
Finding Red Gate finding_red_gate
command
x=2980 y=260
Repair Plan repair_plan
agent · architect
x=3200 y=260
Repair Plan Guard repair_plan_guard
command
x=3420 y=260
Capture Repair Scope Baseline capture_repair_scope_baseline
command
x=3640 y=260
Repair Implement repair_implement
agent · implementer
x=3860 y=260
Blocked blocked
terminal
x=300 y=300
Done done
terminal
x=3200 y=40
Failed failed
terminal
x=4080 y=260
Edges
triage → blocked
ask user
jq -e '.action == "ask_user"' "$MACHINE_NODE_OUTPUT" >/dev/null
triage → resume_gate
proceed
jq -e '.action == "proceed"' "$MACHINE_NODE_OUTPUT" >/dev/null
resume_gate → plan
fresh
jq -e '.mode == "fresh"' .machine/runtime/ResumeMode.json >/dev/null
resume_gate → verify
resume
jq -e '.mode == "resume"' .machine/runtime/ResumeMode.json >/dev/null
resume_gate → plan
resume replan
jq -e '.mode == "resume_replan"' .machine/runtime/ResumeMode.json >/dev/null
plan → plan_guard
guard
always
plan_guard → proof_audit
ok
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
plan_guard → plan
retry
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null
proof_audit → write_tests
fresh proof ok
jq -e '.status == "pass"' "$MACHINE_NODE_OUTPUT" >/dev/null && jq -e '.mode == "fresh"' .machine/runtime/ResumeMode.json >/dev/null
proof_audit → verify
resume proof ok
jq -e '.status == "pass"' "$MACHINE_NODE_OUTPUT" >/dev/null && jq -e '.mode != "fresh"' .machine/runtime/ResumeMode.json >/dev/null
proof_audit → proof_patch
patch proof
jq -e '.status != "pass"' "$MACHINE_NODE_OUTPUT" >/dev/null
proof_patch → plan_guard
re-audit
always
write_tests → red_gate
prove red
always
red_gate → capture_impl_scope_baseline
red proven
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
red_gate → failed
red bad
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null
capture_impl_scope_baseline → implement
implement
always
implement → scope_guard
scope
always
scope_guard → verify
ok
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
scope_guard → failed
scope fail
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null
verify → review
green
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
verify → repair_diagnose
repair
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null && jq -e '.counters.repair_passes < .limits.max_repair_passes' "$MACHINE_RUN_STATE" >/dev/null
verify → failed
repair cap
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null && jq -e '.counters.repair_passes >= .limits.max_repair_passes' "$MACHINE_RUN_STATE" >/dev/null
review → acceptance_preflight
pass
jq -e '.status == "pass" and .recommended_next_action == "accept" and (.findings | length == 0)' "$MACHINE_NODE_OUTPUT" >/dev/null
review → repair_diagnose
repair
jq -e '.status != "pass" or .recommended_next_action != "accept" or (.findings | length > 0)' "$MACHINE_NODE_OUTPUT" >/dev/null && jq -e '.counters.quality_cycle < .limits.max_quality_cycles' "$MACHINE_RUN_STATE" >/dev/null
review → failed
quality cap
jq -e '.status != "pass" or .recommended_next_action != "accept" or (.findings | length > 0)' "$MACHINE_NODE_OUTPUT" >/dev/null && jq -e '.counters.quality_cycle >= .limits.max_quality_cycles' "$MACHINE_RUN_STATE" >/dev/null
acceptance_preflight → acceptance
ready
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
acceptance_preflight → failed
preflight fail
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null
acceptance → done
accepted
jq -e '.status == "pass" and .recommended_next_action == "accept" and (.open_issues | length == 0) and (.requirements | length > 0) and (.requirements | all(.status == "pass"))' "$MACHINE_NODE_OUTPUT" >/dev/null
acceptance → repair_diagnose
repair
jq -e '.status != "pass" or .recommended_next_action != "accept" or (.open_issues | length > 0) or (.requirements | any(.status != "pass"))' "$MACHINE_NODE_OUTPUT" >/dev/null && jq -e '.counters.quality_cycle < .limits.max_quality_cycles' "$MACHINE_RUN_STATE" >/dev/null
acceptance → failed
quality cap
jq -e '.status != "pass" or .recommended_next_action != "accept" or (.open_issues | length > 0) or (.requirements | any(.status != "pass"))' "$MACHINE_NODE_OUTPUT" >/dev/null && jq -e '.counters.quality_cycle >= .limits.max_quality_cycles' "$MACHINE_RUN_STATE" >/dev/null
repair_diagnose → repair_tests
write repros
always
repair_tests → finding_red_gate
prove failures
always
finding_red_gate → repair_plan
red proven
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
finding_red_gate → repair_tests
fix repros
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null
repair_plan → repair_plan_guard
guard
always
repair_plan_guard → capture_repair_scope_baseline
ok
jq -e '.success == true' "$MACHINE_NODE_RESULT" >/dev/null
repair_plan_guard → repair_plan
patch plan
jq -e '.success == false' "$MACHINE_NODE_RESULT" >/dev/null
capture_repair_scope_baseline → repair_implement
repair
always
repair_implement → scope_guard
scope
always