mind explain

Ask any symbol why it exists

One command returns the decision behind the line — the rationale, the commit SHA, the author, and the date it shipped.

commitmind · ~/work/payments-service⎇ main · a1f3c2d
mind explain resolving a symbol to the decision behind it — rationale, commit SHA, author, and date
Context that compounds

Your past self's context
becomes your present context.

The decision you made last Tuesday is the context your next session starts with — no re-deriving, no re-reading. And when you're on a team, your reasoning becomes theirs too. No meeting. No Loom. No ADR doc no one reads.

Decide once
Resolve an ambiguity once and every future session — yours and your team's — inherits it.
Zero re-litigation
Never relearn why you picked Postgres FTS over Elastic.
Drop into any repo
Prime to the current state of a codebase — even your own from six months ago — in seconds.
EM
Erin
Tuesday, 2:14pm
decision · committed
$ commitmind note
"Using OAuth PKCE for SSO parity"
committed to the decision graph
JN
Jun
Thursday, 9:02am · 2 days later
surfaced automatically
AI "Should we use session cookies?"
Your team already decided: OAuth PKCE.
↳ from @erin's decision · Tue
Learnings

You get sharper every session.

A session-end worker reads what just happened, summarizes it, and proposes durable lessons. Your next session gets them injected at startup — top-K relevant — so you stop repeating the same mistakes and your AI stops suggesting them.

Session summary · 2m ago
candidates ready
What happened
Wired LearningsReconciler full-sync; mirrored the P4a pattern across cachestore + daemon. 7 commits, all green. User caught a status-filter mismatch during dogfood.
Candidate learnings · 3
01
LearningsReconciler bulk-replace must filter status='active' to match cloud — caught by user during dogfood.
incident
02
Per-project FTS5 table needs an explicit schema-version pin to survive bulk-replace eviction.
schema
03
Goose migration 022 reused an id from a deleted file — verify with git log -- pkg/cachestore/migrations.
gotcha
Auto-injected at next prime · top-K relevantSave all·Edit
Code intelligence

Refactor without fear.
Your AI knows every call site.

Tree-sitter symbol index across Go, Python, TypeScript, JavaScript, Java, Rust, PHP, and Ruby. Send the right symbol with the right context — not the whole file.

xref("Foo")
Where processPayment lives — exact file, line, signature. Your AI never has to grep.
xref("file::Foo")
Just the function body, not the 2,000-line file around it. Often a 100× context cut.
xref("Foo<")
Every call site across the repo (trailing `<` = callers). Refactor with the call graph, not with hope.
Symbol-level staleness
Knowledge tied to a function survives unrelated edits. Stale only when that function actually changes.
Ready?

Give every agent
your team's engineering brain.

Works with Claude Code · Codex · OpenCode · any MCP client
Local by default Git-anchored decisions Project-scoped MCP-compatible