Exploration
The graph is not a black box that only briefs your agent. You can interrogate it directly: why is this here? what breaks if I touch that? what did we decide about X?
Beneath the decisions, patterns, and progress entries sits a combined knowledge + code graph — in this repository, 802 edges: 45 hand-made reasoning links plus 757 derived from anchors, tag overlap, and git co-change, spanning 67 code nodes. The commands below are how you walk it.
"Why is this here?" — engrams decision search
What you run:
engrams decision search "ontology"
engrams decision search "policy engine" --snippets --limit 5
engrams decision search "workspace isolation" --all What you get: full-text search across every decision the project has ever
logged, in milliseconds. --snippets adds highlighted match context,
--limit (default 10) controls how many results come back, and
--all includes superseded decisions — the ones that were later replaced, with
the lineage intact.
Why it's valuable: "what did we decide about X?" is the question that usually spawns a thirty-minute archaeology dig through chat history and commit messages. Here it's one query, and the answer carries its rationale and status — including whether it's still true.
"What breaks if I touch this?" — engrams graph
What you run:
engrams graph stats # the shape of the graph
engrams graph central --limit 10 # what everything depends on (PageRank)
engrams graph clusters # connected components
engrams graph neighbors --node decision:44 --depth 2 # local blast radius
engrams graph chain --node decision:22 --rel depends_on # what revisiting X cascades into
engrams graph path --from decision:44 --to decision:45 # how two things connect What you get:
stats— node/edge counts, density, components, orphans, and degree stats. The one-glance answer to "how mature is this graph?"central— PageRank centrality ranking (--typerestricts to one node type). The nodes everything else leans on; touch them carefully.clusters— the connected components, so you can see which subsystems of reasoning hang together and which are islands.neighbors— every node within--depthhops of a node, optionally restricted to one--reltype. The immediate blast radius of a change.chain— transitive closure over a canonical transitive relationship (supersedes,depends_on,part_of,refines). Literally the "what breaks if I revisit X" query: follow the chain and see everything downstream.path— the shortest path between any two nodes. When two pieces of the project seem unrelated, this shows the reasoning that connects them.
Why it's valuable: code tells you what depends on a module. The graph
tells you what depends on a decision — which patterns were built on it, which
later decisions refined it, which work assumed it. Before you reverse a three-week-old
call, graph chain shows you exactly what you're implicitly reversing with it.
"Give me the record" — engrams export
What you run:
engrams export # dumps to ./engrams_export
engrams export --path ./docs/adr # somewhere reviewable What you get: the entire database serialized to clean, structured Markdown files — decisions, patterns, progress, context — ready to commit to git.
Why it's valuable: the record becomes reviewable, diffable, and
collaborative. Architectural decisions show up as Markdown in PRs; teammates pull and
engrams import to sync their local database. The graph stops being a file on
your machine and becomes part of the repository's history.
engrams graph rebuild recomputes derived
edges from anchors, tag overlap, and git co-change, and engrams graph ingest
incrementally adds co-change edges as you commit — so exploration gets richer the longer
the project runs, without anyone maintaining links by hand.
Keep exploring
- For You — the human's relationship with the advisor
- Briefing — start every session oriented
- Enforcement — standards enforced before violations land
- The Advisor — how the graph you're exploring came to be