T-JJHY-sdlc-module-graph-emits-structure-and-control-units-as-json
State: planning/proposed · Impact: high · Complexity: medium
SDF and agents need one deterministic read of the module graph. It belongs on the op substrate so a
shell, CI, and SDF get the same answer, the way sdlc capability graph serves the capability
corpus.
Proposed
Section titled “Proposed”sdlc module graph --output json returns both layers. The structural layer is the nodes and edges
from T-N3RW-derive-the-structural-module-graph-from-existing-manifests. The control layer is the
list of control units, each with its planning root and member module ids, plus the unit-to-unit
edges that structural edges crossing a boundary imply. The JSON schema is registered under a stable
id and is the wire contract SDF reads. The text projection prints the control units with their
members.
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: On this repo the op emits every code module, every structural edge, and every control unit with its members, and exits 0.
- AC-2: Each code module appears in exactly one unit’s member list.
- AC-3: The output schema is exported under a stable id and a contract test pins its shape.
- AC-4: Two runs on the same tree are byte-identical.
- AC-5:
--unit <id>narrows the output to one control unit, its members, and the edges that leave it.
Out of scope
Section titled “Out of scope”- Rollups on each unit (T-SX0F-control-unit-outside-view-summary-capabilities-claimed-and).
- Serving it over HTTP (T-S4K4-serve-the-module-graph-to-sdf-through-the-dashboard-api).
Dependencies
Section titled “Dependencies”- T-N3RW-derive-the-structural-module-graph-from-existing-manifests
- T-CY6T-control-units-a-planning-root-is-the-boundary-and-every
Depends on
Section titled “Depends on”T-N3RW-derive-the-structural-module-graph-from-existing-manifests, T-CY6T-control-units-a-planning-root-is-the-boundary-and-every