STATE-WP-0069 T06: add workplan flow entity and prefer open_workplans
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Introduce flows/workplan.yaml and /flows/workplan/* routes alongside the
legacy workstream flow. Dashboard, README, and MCP flow docs now prefer
open_workplans with open_workstreams fallback until dual-key retirement.
This commit is contained in:
tegwick 2026-07-08 21:26:07 +02:00
parent f596fc27c7
commit 2b83654ac3
12 changed files with 122 additions and 13 deletions

59
flows/workplan.yaml Normal file
View file

@ -0,0 +1,59 @@
id: custodian.workplan.v1
entity_type: workplan
workstations:
- name: proposed
description: Plan exists but needs review against the current repo state.
entry_assertions: []
exit_assertions: []
- name: ready
description: Reviewed and ready to execute.
entry_assertions: []
exit_assertions: []
- name: active
description: Work is underway.
entry_assertions: []
exit_assertions:
- id: dependencies.all_complete
target: dependencies.*.workstation
op: all_eq
value:
- finished
- archived
description: Dependency workplans have reached a closed state.
- name: blocked
description: Work is blocked by incomplete dependencies or missing input.
entry_assertions:
- id: dependencies.any_incomplete
target: dependencies.*.workstation
op: custom
value:
- finished
- archived
description: At least one dependency is not finished or archived.
exit_assertions:
- id: dependencies.all_complete
target: dependencies.*.workstation
op: all_eq
value:
- finished
- archived
description: All dependency workplans have reached finished or archived.
- name: backlog
description: Intentionally parked for later.
entry_assertions: []
exit_assertions: []
- name: finished
description: Work is complete.
entry_assertions:
- id: tasks.all_done
target: tasks.*.status
op: all_eq
value:
- done
- cancel
description: All child tasks are done or canceled.
exit_assertions: []
- name: archived
description: Closed work has been moved out of the active set.
entry_assertions: []
exit_assertions: []