Preparing the page
Public context is loading before any interactive tool code.
Preparing the page
Public context is loading before any interactive tool code.
Check an explicit process graph for usable starts, exits, branches and reachable paths, then build a local SVG preview with editable Mermaid source.
Your checked result will appear here.
The start, endpoints, reachability and decision labels are checked as one graph. Only then does the local renderer arrange the process, including declared retry connections that return to an earlier level.

The builder reads explicit JSON records, not prose. A branch appears only when its source, target and phrase are present.
Use unique lowercase IDs, distinct visible labels and one of four supported node kinds.
Each edge points from one declared ID to another; self-links and duplicate connections are rejected.
Every decision needs two to four outgoing branches with different phrases.
Every node must be reachable from the start and retain some path to a terminal end.
The shipped order-reservation fixture has two decisions. One can return to validation, while its alternative stops the request.
{
"title": "Order reservation flow",
"direction": "TD",
"nodes": [
{ "id": "start", "label": "Receive request", "kind": "start" },
{ "id": "validate", "label": "Validate order", "kind": "step" },
{ "id": "available", "label": "Stock available?", "kind": "decision" },
{ "id": "reserve", "label": "Reserve stock", "kind": "step" },
{ "id": "retry", "label": "Retry lookup?", "kind": "decision" },
{ "id": "complete", "label": "Reservation complete", "kind": "end" },
{ "id": "stopped", "label": "Request stopped", "kind": "end" }
],
"edges": [
{ "from": "start", "to": "validate" },
{ "from": "validate", "to": "available" },
{ "from": "available", "to": "reserve", "label": "yes" },
{ "from": "available", "to": "retry", "label": "no" },
{ "from": "reserve", "to": "complete" },
{ "from": "retry", "to": "validate", "label": "retry" },
{ "from": "retry", "to": "stopped", "label": "stop" }
]
}Receive request
↓
Validate order
↓
Stock available?
├─ yes → Reserve stock → Reservation complete
└─ no → Retry lookup?
├─ retry ↺ Validate order
└─ stop → Request stoppedObserved: 7 nodes · 7 edges · 2 steps · 2 decisions · 2 ends · 1 loop · 5 levels
{ "from": "available", "to": "retry" }Decision exits require unique labels, so the graph is not emitted.
The node kind controls its shape and permitted number of exits, not its business meaning.
Exactly one rounded start is required. It accepts no incoming edge and has one outgoing edge.
A rectangular step has exactly one outgoing edge, preventing an unlabeled fork from masquerading as a task.
A diamond has two to four outgoing edges. Each branch carries a different supplied label.
At least one terminal end is required, and an end cannot point onward to another node.
A valid route diagram says what the manifest permits. It does not show what a system or team actually did.
Confirm that the current policy or runbook contains every declared branch and outcome.
Use logs, traces, tests or direct observation to learn which routes execute and where they fail.
Attach timings, rates and volumes only when a named data source supports them.
Call out exceptions and manual handoffs that the bounded chart intentionally leaves outside scope.
The checks establish drawable graph structure, not execution, timing, success or completeness.