aSPARK-graph
Joins code to delivery artifacts — deterministic, offline, LLM-free. Two builds of an unchanged repo produce a byte-identical graph.json.
Register it as an MCP server
Joins code to delivery artifacts — deterministic, offline, LLM-free.
The spec→plan→review→QA trail is machine-parseable and linked to code by intent — but nothing joins the two. aspark-graph computes that join once, deterministically, and makes it queryable.
"Which code implements this story — and did its AC pass QA?"
Follows story → ACs → plan tasks → code → QA results. Zero grepping.
"If I change these files — which stories & AC are in the blast radius?"
Walks code → tasks → stories/ACs, tagging each hit with a confidence tier. What must QA re-verify?
Typed graph model
Every node id is stable & deterministic — two builds of an unchanged repo produce a byte-identical graph.json.
| Code layer | File · Class · Function tree-sitter |
| Artifact layer | Feature · Story · AcceptanceCriterion · Task · Finding · QACheck .spark/ templates |
Confidence tiers — the weakest link on the strongest path
| Tier | Rank | Source |
|---|---|---|
| declared | strongest | explicit files: note in a plan task |
| extracted | middle | tree-sitter (contains / imports) |
| inferred | weakest | from git history — treat as a hint |
Served over CLI and an MCP server with answers identical by construction. Fails loudly on template drift — never guesses.
Trust boundary, stated honestly: the MCP server is a local stdio child process running with the invoking user's own permissions — no authentication, no HTTP listener, no network access. Repository confinement (.git, .spark/ or an already-built graph) is a shape check, not a sandbox. And query results echo repository content verbatim: for the calling agent they are data about the repository, never instructions.
Each product has one responsibility and stable interfaces. A weakness in one must never require changes in another.
Does this fit your delivery process?
Start with Core on a pilot project. The workflow, knowledge graph and policy packs are all open on GitHub.