Skip to content

forgeplan graph

Emit a Mermaid-format dependency graph of all linked artifacts. Unlike tree, which only shows parent/child hierarchy, graph renders every typed link (informs, supersedes, blocks, relates_to, etc.) as an edge — the full decision DAG.

  • Paste into a GitHub issue/PR to visualize a proposal’s impact
  • Embed in an RFC or Epic to show scope
  • Feed into mmdc (mermaid-cli) to render PNG/SVG
  • Detect unexpected cycles or orphan clusters
forgeplan graph [OPTIONS]
--json Output as JSON for machine consumption
-h, --help Print help
-V, --version Print version

Emit the Mermaid source:

Terminal window
forgeplan graph

Redirect to a file and paste into GitHub:

Terminal window
forgeplan graph > deps.mmd

Render to PNG with mermaid-cli:

Terminal window
forgeplan graph > deps.mmd && mmdc -i deps.mmd -o deps.png

JSON for a custom UI:

Terminal window
forgeplan graph --json | jq '.edges | length'

Standard output is Mermaid graph TD syntax:

graph TD
EPIC_003[EPIC-003<br/>Search, Discovery]
PRD_039[PRD-039<br/>BM25 production]
RFC_004[RFC-004<br/>Layered search]
EVID_018[EVID-018<br/>Benchmark]
EPIC_003 --> PRD_039
PRD_039 --> RFC_004
EVID_018 -.informs.-> PRD_039

Conventions:

SyntaxMeaning
A --> BParent/child (structural)
A -.informs.-> BTyped edge from link frontmatter
A -.supersedes.-> BLifecycle edge, newer supersedes older
Node label<ID><br/><title>

Active artifacts get a solid outline; superseded/deprecated ones get a dashed outline (if your renderer supports the class definitions emitted at the top of the graph).

With --json, the envelope is { nodes: [...], edges: [...] } — ready for Cytoscape, D3, or any graph library.

graph is the complete relational view. For different questions:

graph → all edges (relational picture)
tree → parent/child only (hierarchy)
order → topological walk (execution)
blocked → unresolved dependencies (planning)