DRIFT DETECTION FOR PRODUCT TEAMS

The graph between
roadmap and code.

SpecGraph connects your product intent — product requirements documents, Slack decisions, meeting notes, acceptance criteria — to what engineering actually shipped, and flags the gaps before your users do.

Self-serve plan upgrade waiting for artifacts /100
inspired_by approved_in implemented_by touches contradicts Requirements doc: Self-serve upgrade Decision: CTA in paywall modal Agreed: proration must be shown Self-serve plan upgrade PR #241: Upgrade flow src/components/billing Figma: Upgrade Flow v1
stale decision · implementation follows a superseded decision — CTA shipped in settings only

A live replay of a real analysis — intent on the left, implementation on the right, drift in red.

The spec says one thing.
The code ships another.

Decisions scatter

The real spec lives across requirements documents, Slack threads, and meeting notes. Nobody rereads them before merge.

Drift is silent

No test fails when a requirement is quietly dropped — or when scope quietly grows. CI is green either way.

You find out last

Misalignment surfaces in the sprint demo, the retro, or a support ticket — when it's most expensive to fix.

SpecGraph makes intent checkable: one graph per feature, a drift score, and named findings — before the merge, not after the retro.

One canvas. The whole story.

Features rail, drift graph, and an inspector with concrete findings — every claim traced back to the exact artifact that made it.

specgraph.vercel.app
SpecGraph app: a drift graph connecting a product requirements document, decisions and acceptance criteria to a pull request, with an inspector showing a stale-decision finding and a drift score of 80/100

How it works

01

Add your intent

Paste or import the product requirements document, Slack decision summaries, meeting notes, and acceptance criteria for a feature. Artifacts are living documents — every edit is versioned.

02

Link the implementation

Point SpecGraph at the ticket and the pull request. It extracts what engineering actually built, in language product people understand.

03

See the drift

One graph per feature connects intent to implementation. A drift score and concrete findings show what's missing, what crept in, and which decisions went stale.

Ask Claude. SpecGraph answers.

SpecGraph ships as an MCP server — Claude Code and Claude Desktop query, update, and re-analyze your features mid-conversation. Your roadmap becomes something you can talk to.

Built for the agent era

Coding agents write more of your implementation every week — but they can't read your team's intent. SpecGraph is the new way agents stay current across the product and implementation lifecycle: they read the requirements, check drift after every change, and file decisions back — autonomously.

claude  ·  specgraph mcp connected
you

Has "Self-serve plan upgrade" drifted since the requirements doc changed?

specgraph — get_drift_report("Self-serve plan upgrade") running…
score 72/100 · needs_review · 1 finding · requirements doc changed after last analysis
claude

analyze_feature

Re-run the drift analysis from chat — no tab switch, no copy-paste.

add_artifact

Paste meeting notes to Claude; it files them and flags what went stale.

get_changes

Every answer leads with staleness — what changed since you last looked.

Catch drift before it merges

A drift score below your threshold fails the check — the same analysis, wired into GitHub Actions with one API key.

- uses: ./.github/actions/specgraph-check
  with:
    feature-id: 8f3c…d2a1
    api-key: ${{ secrets.SPECGRAPH_API_KEY }}
    threshold: "70"

Every new account starts with a worked example.

Sign up and explore a fully analyzed sample feature — no setup, no API keys required.

Create your account