Adapt the coordination graph to flavor and indexed depends_on.
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Omit flavor=residual by default, draw hub depends_on first, and keep
citation waits_on as a tagged fallback. Explorer checkbox and CLI
--include-residuals match State Hub include_residuals.

Assistant: grok
Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267
This commit is contained in:
codex 2026-09-14 16:20:24 +02:00
parent 0b0abedbe8
commit 725e440b1e
8 changed files with 410 additions and 39 deletions

View file

@ -5,18 +5,46 @@ open workplans and open tasks into the existing graph explorer so chokepoints
are inspectable.
```bash
# JSON payload
# JSON payload (residuals omitted by default)
railiance-fabric export --format coordination --state-hub http://127.0.0.1:8000
# Include flavor=residual
railiance-fabric export --format coordination --include-residuals --state-hub http://127.0.0.1:8000
# UI (local registry server)
make graph-explorer
# then open
# http://127.0.0.1:8765/ui/graph-explorer?mode=coordination
# optional: &include_residuals=true
```
Nodes: open workplans (`proposed|ready|active|blocked|backlog`) and their
open tasks (`todo|progress|wait`). Edges: `belongs_to` (task → workplan) and
`waits_on` when a wait/human task cites another workplan id in its prose.
## Nodes
`depends_on` frontmatter is almost unused in the fleet (two edges). The
citation edges recover the real wait graph from task text.
Open workplans (`proposed|ready|active|blocked|backlog`) and their open
tasks (`todo|progress|wait`).
`flavor: residual` workplans and their tasks are **omitted by default**.
Unspecified flavor stays visible. The word “residual” in a title is not a
flavor. The explorer checkbox / `include_residuals` query includes them
(parity with State Hub `include_residuals`).
Workplan nodes carry `flavor` / `nodeClass`
(`planning` | `implementation` | `refactoring` | `extension` | `residual` |
`unspecified`).
## Edges (precedence)
1. **Indexed `depends_on`** (`edgeSource: indexed`, `edgeType: depends_on`)
from State Hub workplan `depends_on` (and `/state/deps` when the list
endpoint does not yet carry the field). These do not require a wait note.
2. **Citation `waits_on`** (`edgeSource: citation`) when a wait/human task
cites another workplan id in its prose **and** no indexed `depends_on`
already exists for that pair. Fallback for files not yet backfilled
(`CUST-WP-0072`). Never the reverse: citations do not replace indexed
edges.
3. **`belongs_to`** task → workplan.
Chokepoint size is in-degree of **visible** (by default: non-residual)
workplan nodes from `depends_on` and remaining `waits_on` edges.
Solid blue = indexed `depends_on`. Dashed amber = citation `waits_on`.