Qualify wait states in the coordination graph (CUST-WP-0074-T04)
Task nodes carry wait_kind (external | human | both | unqualified, null unless wait): the hub field wins, otherwise derived from needs_human and dependency edges (task-level depends_on, or a workplan dependency row whose target the task cites). Workplan nodes carry blocked_kind (human | external | none, null unless blocked). Task-level depends_on becomes a task -> workplan/task depends_on edge; depends_on edges carry edge_kind commitment (cyan #0891b2), human gates are marked on the node (humanGate, rose #be123c). A needs_human=true query / "Needs human" toggle / --needs-human flag keeps only blocked_kind=human workplans and their human-wait tasks; the parameter survives in the shareable URL and mode switch like include_residuals. Fabric stays a read of State Hub. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 237582@bnt-lap001 Assistant-Session: f2b3d9f1-8fb9-4b9c-bc2b-837ec5dfc826
This commit is contained in:
parent
b47dd43b04
commit
9dbb8f0bcb
7 changed files with 426 additions and 33 deletions
|
|
@ -49,6 +49,26 @@ workplan nodes from `depends_on` and remaining `waits_on` edges.
|
|||
|
||||
Solid blue = indexed `depends_on`. Dashed amber = citation `waits_on`.
|
||||
|
||||
## Qualified waits (CUST-WP-0074)
|
||||
|
||||
Open task nodes carry `wait_kind` (`external` | `human` | `both` |
|
||||
`unqualified`, null unless `status: wait`). The hub's `wait_kind` field wins
|
||||
when present; otherwise `needs_human: true` → `human`, a dependency edge
|
||||
(task-level `depends_on`, or a workplan dependency row whose target the task
|
||||
cites) → `external`, both → `both`, neither → `unqualified`. Workplan nodes
|
||||
carry `blocked_kind` (`human` when any wait task is a human gate, else
|
||||
`external`, else `none`; null unless `status: blocked`).
|
||||
|
||||
Task-level `depends_on` becomes a task → workplan/task `depends_on` edge
|
||||
(`edgeSource: task`). All `depends_on` edges carry `edge_kind: commitment`
|
||||
(cyan `#0891b2`); citation edges carry `edge_kind: citation`. Human gates have
|
||||
no edge target, so the marker is on the node: `humanGate: true`, rose
|
||||
`#be123c` (`WAIT_KIND_COLORS` in `coordination_graph.py`).
|
||||
|
||||
The **Needs human** checkbox / `needs_human=true` query (CLI `--needs-human`)
|
||||
keeps only `blocked_kind: human` workplans and their human-wait tasks — the
|
||||
operator's queue. It survives in the shareable URL like `include_residuals`.
|
||||
|
||||
## Switching views
|
||||
|
||||
The mode selector switches between topology and coordination in the same page.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue