Implemented foundation of task-flow-engine

This commit is contained in:
2026-05-01 22:19:03 +02:00
parent c9695d51b1
commit 5502d1d535
12 changed files with 989 additions and 1 deletions

View File

@@ -0,0 +1,84 @@
id: custodian.capability_request.v1
entity_type: capability_request
workstations:
- name: requested
description: Capability has been requested and awaits routing or acceptance.
entry_assertions: []
exit_assertions: []
- name: routing_disputed
description: Routing decision has been disputed.
entry_assertions:
- id: capability_request.disputable_source
target: previous_workstation
op: any_eq
value:
- requested
description: Only requested items can enter routing dispute.
exit_assertions: []
- name: accepted
description: A provider has accepted the capability request.
entry_assertions:
- id: capability_request.acceptable_source
target: previous_workstation
op: any_eq
value:
- requested
description: Acceptance follows the requested workstation.
exit_assertions: []
- name: in_progress
description: Provider work is underway.
entry_assertions:
- id: capability_request.progress_source
target: previous_workstation
op: any_eq
value:
- accepted
- ready_for_review
description: Work can start after acceptance or return from review.
exit_assertions: []
- name: ready_for_review
description: Capability is ready for requester review.
entry_assertions:
- id: capability_request.review_source
target: previous_workstation
op: any_eq
value:
- in_progress
description: Review follows in-progress work.
exit_assertions: []
- name: completed
description: Capability request has been completed.
entry_assertions:
- id: capability_request.completion_source
target: previous_workstation
op: any_eq
value:
- ready_for_review
description: Completion follows review readiness.
exit_assertions: []
- name: rejected
description: Capability request was rejected.
entry_assertions:
- id: capability_request.rejectable_source
target: previous_workstation
op: any_eq
value:
- requested
- accepted
- in_progress
description: Requested through in-progress items can be rejected.
exit_assertions: []
- name: withdrawn
description: Capability request was withdrawn.
entry_assertions:
- id: capability_request.withdrawable_source
target: previous_workstation
op: any_eq
value:
- requested
- routing_disputed
- accepted
- in_progress
- ready_for_review
description: Non-terminal active items can be withdrawn.
exit_assertions: []

71
flows/contribution.yaml Normal file
View File

@@ -0,0 +1,71 @@
id: custodian.contribution.v1
entity_type: contribution
workstations:
- name: draft
description: Local draft, not yet submitted.
entry_assertions: []
exit_assertions: []
- name: submitted
description: Submitted for acknowledgement.
entry_assertions:
- id: contribution.from_draft
target: previous_workstation
op: any_eq
value:
- draft
description: Submitted contributions originate from draft.
exit_assertions: []
- name: acknowledged
description: Submission has been acknowledged.
entry_assertions:
- id: contribution.from_submitted
target: previous_workstation
op: any_eq
value:
- submitted
description: Acknowledgement follows submission.
exit_assertions: []
- name: accepted
description: Contribution has been accepted for merge.
entry_assertions:
- id: contribution.from_acknowledged
target: previous_workstation
op: any_eq
value:
- acknowledged
description: Acceptance follows acknowledgement.
exit_assertions: []
- name: merged
description: Contribution has been merged.
entry_assertions:
- id: contribution.from_accepted
target: previous_workstation
op: any_eq
value:
- accepted
description: Merge follows acceptance.
exit_assertions: []
- name: rejected
description: Contribution was rejected.
entry_assertions:
- id: contribution.rejectable_source
target: previous_workstation
op: any_eq
value:
- submitted
- acknowledged
description: Only submitted or acknowledged contributions can be rejected.
exit_assertions: []
- name: withdrawn
description: Contribution was withdrawn by its owner.
entry_assertions:
- id: contribution.withdrawable_source
target: previous_workstation
op: any_eq
value:
- draft
- submitted
- acknowledged
- accepted
description: Draft through accepted contributions can be withdrawn.
exit_assertions: []

43
flows/task.yaml Normal file
View File

@@ -0,0 +1,43 @@
id: custodian.task.v1
entity_type: task
workstations:
- name: todo
description: Task is known but not currently underway.
entry_assertions: []
exit_assertions: []
- name: in_progress
description: Task is being actively worked.
entry_assertions:
- id: task.needs_human_false
target: needs_human
op: all_eq
value: false
description: Human intervention is not currently required.
exit_assertions:
- id: task.needs_human_false
target: needs_human
op: all_eq
value: false
description: Human intervention is not currently required.
- name: blocked
description: Task is blocked by a human decision or unavailable input.
entry_assertions:
- id: task.needs_human_true
target: needs_human
op: all_eq
value: true
description: The task requires human intervention.
exit_assertions:
- id: task.needs_human_false
target: needs_human
op: all_eq
value: false
description: Human intervention has been cleared.
- name: done
description: Task is complete.
entry_assertions: []
exit_assertions: []
- name: cancelled
description: Task is intentionally not being completed.
entry_assertions: []
exit_assertions: []

45
flows/workstream.yaml Normal file
View File

@@ -0,0 +1,45 @@
id: custodian.workstream.v1
entity_type: workstream
workstations:
- name: todo
description: Planned but not yet active.
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: completed
description: Dependency workstreams have reached completed.
- name: blocked
description: Work is blocked by incomplete dependencies or missing input.
entry_assertions:
- id: dependencies.any_incomplete
target: dependencies.*.workstation
op: custom
value: completed
description: At least one dependency is not completed.
exit_assertions:
- id: dependencies.all_complete
target: dependencies.*.workstation
op: all_eq
value: completed
description: All dependency workstreams have reached completed.
- name: completed
description: Work is complete.
entry_assertions:
- id: tasks.all_done
target: tasks.*.status
op: all_eq
value:
- done
- cancelled
description: All child tasks are done or cancelled.
exit_assertions: []
- name: archived
description: Completed work has been moved out of the active set.
entry_assertions: []
exit_assertions: []