Project
GATHER STEP
Drawing
01 · PRIMARY
Revision
v4.0 · 05.2026
The code graph for AI coding assistants

Gather context
before the move.

One unified graph across your repos, not a federation of isolated ones. Built for teams running many services as one system.

Spec · Indexed
31 repos · 14,296 files · 216,663 symbols · 484,379 edges · 96,787 cross-repo
Spec · Release
v4.0.4 · PATH-based MCP setup
Spec · Deployment
Local binary · guided MCP setup · Homebrew release automation · nothing leaves your machine
DET-02 · What it does

One knowledge graph across every repo,
surfaced to your AI assistant.

01 / 03
Unified

One graph, every repo.

Not a federation of isolated per-repo indexes. A single knowledge graph that spans the whole workspace.

02 / 03
Cross-repo

Event flows, QA evidence, and PR diffs across services.

Producer-to-consumer event topology, canonical QA evidence, and cross-repo PR surface diffs through shared virtual nodes. Your AI sees the edges between repos, not just inside them.

03 / 03
Right now

Derived from source, not docs.

Re-indexes incrementally on every file save. What the code looks like today, not what a README said two years ago.

Without Gather Step
Sees only the open repo
Guesses at downstream consumers
Re-explores the codebase each session
No deployment, PR, or QA evidence surface
With Gather Step
Sees every repo as one system
Traces producer to consumer across services
Starts with pre-computed structural context
PR deltas, deployment topology, and QA evidence, local-first
DET-03 · The moat

It maps what no other tool maps:
event-driven topology.

Producer-to-consumer graphs across repos. Cross-repo edges meet at shared virtual nodes, so blast radius is a query, not a guess.

DET-03 · Producer-to-consumer schematic
REPO · PRODUCER service-orders @Producer REPO · PRODUCER service-billing kafka.publish() REPO · PRODUCER service-checkout @EventPattern VIRTUAL NODE order.created kafka · topic REPO · CONSUMER service-inventory @MessagePattern REPO · CONSUMER service-notify @EventPattern REPO · CONSUMER service-analytics consumer.on() REPO · CONSUMER service-ledger @CustomEvent PRODUCERS · N=3 CONSUMERS · N=4 Approved · v4.0.4
DET-04 · What actually makes it different

Nine feature groups built for release-grade context.

Partial context is worse than no context. Gather Step keeps topology, proof, storage health, and assistant retrieval in one local workflow.

01 / 09 Flagship

Event-driven topology mapping

Producer-consumer graphs, blast-radius traces, and orphan-topic checks across Kafka, NATS, SQS, Redis Streams, and NestJS.

02 / 09 Onboarding

One-command workspace onboarding

Run `gather-step init` at the workspace root, accept the defaults with Enter, and get config generation, first index, AI context files, and local MCP setup in one guided flow.

03 / 09 Semantic

Framework and data-shape extraction

NestJS, React hooks, routers, Storybook, gateway proxies, Mongoose, TypeORM, Prisma, Drizzle, Bull/BullMQ, and typed field access become graph edges.

04 / 09 Safety gate

Proof-backed contracts and impact

Contract drift, shared API rollout, confirmed/probable downstream repos, and advisory co-change evidence stay separated.

05 / 09 Operations

Release gates, recovery, traces, and migration probes

Release-gate artifacts, PR-oracle scoring, schema recovery, compaction, MCP traces, and copy-paste-safe Mongo probe plans make the graph auditable.

06 / 09 PR review

Cross-repo PR review and deployment topology

Run `gather-step pr-review` against any two refs to get a structured delta report: added/removed routes, exported symbols, payload contracts, event wiring, deployment surfaces, and removal risks — all local, no vendor.

07 / 09 Delivery

Task-shaped packs and AI rule files

Plan, debug, fix, review, and change-impact packs pair with `.claude/rules/`, `CLAUDE.gather.md`, and `AGENTS.gather.md` instead of raw graph dumps.

08 / 09 QA planning

Canonical evidence export for test planning

`qa-evidence` emits stable IDs, closed evidence kinds, structured citations, existing-test signals, feature-flag gaps, and scan truncation markers without writing test cases.

09 / 09 Local-first

Strict schema, no vendor, no telemetry

Generated state is stamped and version-checked across the graph, metadata, and search stores. Every pipeline runs locally; nothing leaves your machine.

DET-05 · Task-shaped, not dump-the-graph

Packs and evidence exports, shaped to the step you're on.

Precision over noise. Six task-shaped exports cover planning, debugging, fixing, review, change impact, and QA evidence; the QA evidence manifest exports the facts a downstream planning tool needs.

plan.pack

Plan pack

Entry points, cross-repo dependency chains, migration siblings, generated probe plans, and affected event surface.

Returns ~8K tokens · shaped for the planning step.
debug.pack

Debug pack

Hotspot history, recent co-changes, ownership, upstream producers, downstream consumers.

Returns ~8K tokens · shaped for the debugging step.
fix.pack

Fix pack

Narrow edit surface, direct callers, likely tests, unresolved gaps, and the smallest safe path to a targeted change.

Returns ~8K tokens · shaped for the implementation step.
review.pack

Review pack

Blast radius for this diff, convention checks, contract drift, cross-repo impact.

Returns ~8K tokens · shaped for the review step.
change-impact.pack

Change-impact pack

Confirmed and probable downstream repos, field-impact gaps, optional payload drift hints, and ranked files for API or contract changes.

Returns ~8K tokens · shaped for rollout planning.
qa-evidence.manifest

QA evidence manifest

Canonical evidence rows, structured citations, existing-test signals, feature-flag gaps, and scan-limit gaps for downstream QA planning.

Emits qa-evidence.v1 · shaped for test planning.
DET-06 · Planning benchmark

Cross-repo planning, in milliseconds, not seconds.

Three planning tasks on the same 31-repo, 14,296-file workspace. Left bar is what a workspace-wide grep walk takes (`rg -l <symbol> | xargs cat`). Right bar is a single Gather Step pack query against the loaded index. Both measured wall-clock on the same machine; medians of three runs.

v4.0.4 · 2026-05-08
End-to-end machine time
28.3× faster
2.55s of unindexed grep, compressed into 0.09s of pack queries on a warm index. Cold first-load adds 1–3 s on top; long-running MCP servers pay it once. Human reading and reasoning time is on top of the manual side, not the Gather Step side.
Frontend hook 26.3× faster
0.79s unindexed grep
0.03s Gather Step pack
Event flow 48.0× faster
1.44s unindexed grep
0.03s Gather Step pack
Shared API 10.7× faster
0.32s unindexed grep
0.03s Gather Step pack
Unindexed grep walk Gather Step pack query
Frontend hook

Trace where a shared frontend auth hook is used.

Unindexed grep0.79s
Gather Step pack0.03s
Event flow

Find every consumer of a Kafka event across services.

Unindexed grep1.44s
Gather Step pack0.03s
Shared API

Plan a change to a cross-repo use-case class.

Unindexed grep0.32s
Gather Step pack0.03s
Repos 31
Files 14.3K
Symbols 216K
Edges 484K
Cross-repo edges 96K
Evidence schema v1
Planning oracle (v4.0.4)

Full 25-scenario suite, every metric at the HIGH ceiling, latency well under release-gate thresholds (p50 ≤ 50 ms, p95 ≤ 300 ms, p99 ≤ 1000 ms).

Scenarios 25 / 25
Coverage 1.000
Top-1 / Top-3 1.000 / 1.000
p50 latency 3 ms
p95 latency 8 ms
p99 latency 15 ms
Methodology. Three planning targets on the same workspace: useAuth (220 referencing files), CommentCreatedEvent (66 files), and CreateTaskUseCase (17 files). For each, the manual baseline runs rg -l <symbol> | xargs cat end-to-end; the Gather Step baseline runs gather-step pack <symbol> against an already-loaded index. Both wall-clock, both medians of three runs, both on the same Apple M5 Pro.
DET-07 · How it relates to what you already use

Complementary, not competitive.

Gather Step does one thing completely: it provides a unified, accurate, always-current knowledge graph of what your system actually looks like. It fits next to the tools your team already ships with.

vs. Memory tools

Memory remembers.
Gather Step tracks truth.

Stores past conversations
They do · we don't
Reflects current code structure
From source, not history
Event flows across repos
Only here
Stale when the codebase changes
Re-indexes on every file save
vs. Greptile · Sourcegraph

Search answers "where?".
Gather Step answers "what breaks?".

Find code by name or pattern
They do · we do
Cross-repo event topology
Not modeled
Producer-to-consumer tracing
Not modeled
Cross-repo PR surface delta
Not built
Deployment-topology indexing
Not modeled
Local-first, no data to vendor
MIT
vs. Single-repo OSS

One unified graph,
not a federation.

Indexes per repo
All do
Cross-repo edges at virtual nodes
Native, day-one
CLAUDE.md for polyrepo systems
System-wide, not per-service
MIT commercial-friendly
No AGPL friction
DET-08 · From zero to evidence-backed work

Init, index, watch, pack, review, export evidence.

No API keys. No account. No data leaves your machine.

01 · INIT

Let it guide workspace setup.

From your workspace root, run `gather-step init` and follow the guided defaults. It discovers repos, writes the config, builds the first index, generates AI context files, and registers local Claude MCP settings.

# from your workspace root
$ cd /path/to/workspace
$ gather-step init
02 · INDEX

Build the cross-repo graph.

A full index walks every configured repo, parses TS / JS / Python / Rust / Go / Java, extracts framework structure, and writes the graph + search + metadata stores under `.gather-step/`. `--auto-recover` rebuilds stale generated state on the fly.

# initial or full reindex
$ gather-step index
03 · WATCH

Keep the graph fresh.

Watch mode incrementally re-indexes on every file save. `init --watch` continues after the first index pass, and `mcp serve --watch` runs the MCP server and watcher in a single process.

# incremental updates while you edit
$ gather-step watch
04 · PACK

Hand the graph to your assistant.

Plan, debug, fix, review, and change-impact packs ship as one structured response. The MCP server makes them callable from Claude Code; the CLI emits the same JSON for any other tool.

# a planning pack for a target symbol
$ gather-step pack planning --target order.created
05 · REVIEW

Review PRs with structural evidence.

Run `gather-step pr-review` before merge to get a cross-repo surface delta: added and removed routes, exported symbols, payload contracts, event wiring, deployment surfaces, and removal risks — without sending code off-machine.

# review a branch against main
$ gather-step pr-review --base main --head feat/my-change
06 · EVIDENCE

Export QA planning evidence.

`qa-evidence` bundles canonical code facts, structured citations, existing-test hints, dynamic flag gaps, and scan-limit gaps for downstream QA planning tools. It stops at evidence, not requirements or test-case prose.

# export facts for QA planning
$ gather-step qa-evidence OrderList --base main --head feat/orders --json
DET-09 · Built for teams, not solo players

Six roles. One graph.

The problems Gather Step solves emerge from teams and scale with team size. It is most valuable when no single engineer can hold the whole system in their head.

Developer

Know the blast radius before you touch the file.

Stop guessing which downstream consumers break when you change a producer.

Tech lead

Externalize the map that only lives in your head.

Cross-repo migrations start with real structural data, not your best recollection.

Code reviewer

See cross-repo impact inside the review.

Twenty changed files; know which ones touch shared contracts and event flows.

QA lead

Start test planning from cited code evidence.

Export stable evidence rows, feature-flag gaps, existing tests, and downstream surfaces before writing scenarios.

New hire

The system map from the code itself.

Routes, services, event flows, and conventions, derived from the code, not stale docs.

Eng manager

Bus-factor as a data point, not a surprise.

Concentration risk across every service, event, and critical consumer, made visible.

Start with your architecture, not a blank prompt

Index your repos.

One unified graph across your repos, not a federation of isolated ones. Built for teams running many services as one system.