Selvedge – an MCP server that captures why AI agents change code
Captures the 'why' behind AI changes live, fixing git blame's inability to show reasoning.

Captures architectural decisions once, every agent reads them automatically via MCP.
Teams and solo developers using Claude, Cursor, or GitHub Copilot for code work
Sourcegraph Cody context enrichment · Aider's codebase embedding · Cursor's codebase understanding
Why you picked that queue over a direct DB write. Why that module has no external dependencies. Why the retry logic is in the client and not the server. That context lives in your head. The moment the session ends, it's gone.
EmCogni Code fixes this. One Go binary. Local MCP server. You annotate decisions as you make them:
#example 1 emcogni note payments --type decision "Async via queue — direct writes caused timeout spikes under load"
#example 2 emcogni note payments --type invariant "Never call external APIs inline — always enqueue"
Any MCP-compatible agent (Claude, Cursor, Copilot) gets that context automatically before touching a file, via get_context tool. EmCogni can also propose context additions via propose_context tool.
Free for local/solo use at emcogni.com.
Team/managed tier coming — shared context across engineers and agents, org-level knowledge base. Waitlist open at the same link.
Curious how others handle this. CLAUDE.md files? Custom RAG? Just re-explaining every session?
Captures the 'why' behind AI changes live, fixing git blame's inability to show reasoning.
It builds a local 'context lake' (SQLite + FTS5) that stitches Slack threads, PRs, tickets and docs to precise code locations so queries like "Why did the payment service deploy fail last week?" return linked commits, messages and files. The local-first approach is a sensible privacy + reliability choice and the bi-directional linking of mentions to file:line is the clearest practical win here. That said, the idea sits in a crowded space—quality of connectors and ranking will determine whether this is indispensable or just another repo-chat tool.
It stitches Slack threads, PRs, tickets and docs into a local "context lake" and can point a mention like handlePayment() straight to the file and related PRs — very practical for debugging and postmortems. The use of SQLite FTS5 for local full-text search plus MCP for a unified context layer is a smart, pragmatic combo; success will hinge on connector reliability and search/ranking quality, not the README.
MCP server pipes context to Claude Code so it stops hallucinating architecture.
Deterministic method retrieval beats embedding baselines on change-surface recall.
Tree-sitter AST compression cuts LLM context tokens 50-70% while preserving API structure.