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?