A coding-agent session is not just a chat. Around every edit, the harness runs a pipeline: placement checks, save-time lint, approval reviewers, and agents that spawn on demand. The Harness Flow Graph is the static map of that pipeline — what will run, for any client, before you press enter.
TL;DR
| Need | Where |
|---|---|
| See the pipeline without running it | Product tile |
| Same map in the terminal | pc workflow |
| Same map as an interactive graph | Power Claude → Harness Flow / Design map |
| What this session actually did | Session Flow Explorer — different surface |
The problem: you cannot debug what you cannot see
JSONL session logs tell you what happened after the fact. They do not tell you:
- which PreToolUse matcher fires on
EditvsWritevsBash - which steps are gates (they halt on failure)
- which steps spawn agents
- which host adapters are native, translated, or disabled
If you only have a transcript, you reverse-engineer policy. The Harness Flow Graph is the policy, drawn.
What the Harness Flow Graph is
A static map of the harness pipeline:
- Client entry —
AGENTS.mdand per-host leaves (Claude, Cursor, Copilot, …). - Lifecycle events — PreToolUse, PostToolUse, SessionStart.
- Tool matchers — Edit, Write, Bash, Agent, and the rest of the declared set.
- Steps — format, policy inject, debug, tests, generated-file refresh.
- Gates — fail closed. Placement, approval, lint, PHPStan ignore, policy authoring.
- Agent spawn points — marked, not hidden as “magic later.”
Legend on the public diagram:
- ◆ client
- ▣ event
- ◈ matcher
- · step
- ◇ gate (halts on failure)
- ⊕ agents
- ● end
That is the same vocabulary the terminal view uses.
Three surfaces, one engine
| Surface | Command / place | Use when |
|---|---|---|
| Web | Harness Flow Graph tile | Sharing the map, onboarding, docs |
| Terminal | pc workflow | SSH, CI notes, no GUI |
| VS Code | Harness Flow · 1 · Design map | Clicking nodes, filters, zoom |
How to read it (worked example)
Start at CLIENT ENTRY. Then read top-to-bottom by event.
PreToolUse · Edit
Before an Edit tool runs, the map shows gates such as:
- structure / placement check
- sensitive-edit approval (can spawn reviewers)
- policy-authoring gate
- PHPStan ignore / approval-dir guards
Only after those pass does ▶ tool runs.
If a land or save “mysteriously” blocked, this is the first page to open. The gate name on the map is the gate name in the deny.
PostToolUse · Edit / Write
After the tool, save-time lint is a gate. Then a list of post steps: debug, cache-bust, smoke, knowledge reindex, parity, generated refresh. Those are ordinary steps, not gates, unless marked.
SessionStart
Session boot is its own event: knowledge benchmark, periodic audits, PHPStan registry, CLAUDE.md coverage, bugflag drain, then ✔ session ready.
If a session “never quite boots,” SessionStart on this map is the checklist.
How this is not Session Flow Explorer
| Harness Flow Graph | Session Flow Explorer | |
|---|---|---|
| Time | Before / always | After one run |
| Data | Pipeline manifest | Session transcript + overlays |
| Question | What can run? | What did run? |
| Mode in the UI | 1 · Design map | 2 · What ran and 3 · Path on map |
Walkthrough: How to use Flow Explorer.
How to open it
On this site
- Open Power Claude.
- Jump to Harness graph.
- Read the web diagram. Flip the environment deck (Web / Terminal / VS Code) when the files exist.
In the terminal
pc workflow --view mermaid
In VS Code / code-server
- Open Power Claude.
- Open Harness Flow.
- Stay on 1 · Design map (not “What ran”).
- Use Graph for the DAG, Simple Flow for the human story, List if the canvas is busy.
Honesty notes
- Numbers and node labels on the public diagram come from the committed manifest, not from a marketing illustrator.
- Per-client adapter modes (native / translated / disabled) are real fields. Do not describe a disabled adapter as shipping.
- The public try-it Flow Explorer uses synthetic sessions. Your real transcripts stay local.
Frequently asked questions
Is this a screenshot of VS Code?
The marketing tile includes a web rendering of the same graph. The VS Code panel is interactive. Both come from one generator. If they disagree, that is a bug, not a “stylized” version.
Does this send my repo to Neural-LLM?
No. The site diagram is the public pipeline map. Your project’s live graph is local.
Why would I care if I only use one host?
Because the same Edit/Write/Bash gates run regardless of whether the client is Claude, Cursor, or Codex. The map is how you stop treating “the agent refused” as weather.
What if a node says “undefined ref”?
That is an honest hole in the manifest, not a decorative label. Treat it as work: name the step or remove it.
Can I export it?
Terminal: pc workflow --view mermaid (when your Power Claude version documents that flag). In the explorer UI: Copy export.
Relation to `pc tree`?
pc tree is the session tree (what ran). pc workflow is the harness map (what can run). Do not mix the two in a postmortem.
Related
- How to use Flow Explorer
- Session Flow Explorer
- Cross-session messaging
- Product #harness-flow-graph
- Download · Pricing
Independent third-party software. Not affiliated with Anthropic.