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: []