--- id: RAIL-FAB-WP-0030 type: workplan title: "Coordination graph: flavor classes and real depends_on edges" domain: financials repo: railiance-fabric status: proposed owner: grok topic_slug: railiance flavor: extension depends_on: - STATE-WP-0092 - RAIL-FAB-WP-0029 created: "2026-09-14" updated: "2026-09-14" related: - CUST-WP-0072 - COORDINATION-WP-0005 origin: residual-policy origin_ref: the-custodian/history/20260914-open-workplan-chokepoints.md state_hub_workstream_id: "4805eaed-8376-559f-96f5-5d82a8d57928" --- # Coordination graph: flavor classes and real depends_on edges Workplan 3 of 3 for the flavor / `depends_on` change. Fabric remains a **perspective** on State Hub (`RAIL-FAB-WP-0029`). Do not author workplans here. Do not let the explorer become an editor. Until `STATE-WP-0092` lands, keep recovering `waits_on` from task prose. After it lands, prefer indexed `depends_on` edges and treat citation edges as diagnostic fallback. ## Hide residuals in the default coordination view ```task id: RAIL-FAB-WP-0030-T01 status: wait priority: high depends_on: [STATE-WP-0092, RAIL-FAB-WP-0029] state_hub_task_id: "7a852b07-6c2a-5765-a963-f955ef2426cd" ``` `export --format coordination` and `/ui/graph-explorer?mode=coordination` omit `flavor: residual` workplans and their tasks by default. A control includes them (parity with hub `include_residuals`). Unspecified flavor stays visible. Do not infer residual from the word “residual” in titles. Done when a residual node is absent from the default graph and present when included, documented in `docs/coordination-graph.md`. ## Draw depends_on as first-class edges ```task id: RAIL-FAB-WP-0030-T02 status: wait priority: high depends_on: [STATE-WP-0092, RAIL-FAB-WP-0029] state_hub_task_id: "4238ab07-3f46-50e7-8862-bca66e9010a4" ``` Once the hub returns workplan `depends_on`, emit those edges in the coordination export (distinct from `waits_on` citations and `belongs_to`). Style flavor as a node class (planning / implementation / refactoring / extension / residual). Chokepoint sizing should use in-degree of **relevant** nodes by default. Done when the explorer shows hub `depends_on` without requiring a workplan id to appear in a wait note, and the two edge types are legible as different. ## Keep citation recovery as fallback ```task id: RAIL-FAB-WP-0030-T03 status: todo priority: low depends_on: [RAIL-FAB-WP-0029] state_hub_task_id: "43e76e17-e6bb-55ab-8d48-bfbf0b458148" ``` Retain `waits_on` citation parsing for files that have not yet been backfilled (`CUST-WP-0072`). Mark citation-only edges so they are not confused with indexed `depends_on`. No new authoring surface. Done when the docs state the precedence: indexed `depends_on` first, citations as fallback, never the reverse.