structured decisions. not flat recall.
this is not a generic memory product. perfect memory is a decision graph — it captures what your AI agent decided, why it chose what it chose, and how each decision got superseded over time.
generic memory tools (Mem0, Zep, Letta) store conversation facts and recall them. that's useful for chatbots; it's not what a guardian does. a guardian remembers the provenance of every choice so the team — or the next AI session — can revisit a decision with full context, not just the conclusion.
you don't ask your agent to remember things. the agent calls memory_record proactively the moment a conversation produces a locked choice, a constraint, a scope decision, or a convention adoption. it calls memory_query at session start and before non-trivial choices. the trigger contract lives in the tool descriptions and the setup-sync template — every MCP-aware editor reads them each session.
five primitives.
small surface area on purpose. each primitive captures or queries one aspect of the decision graph.
Capture a decision the moment a conversation produces one. AI-initiated — the agent calls this without being asked when the user accepts a choice, declares a constraint, makes a scope call, or adopts a convention. Rationale + structured context get stored alongside an SHA-256 content hash.
Semantic search over decision rationales using pgvector + OpenAI embeddings. "How do we handle auth?" returns the original decisions even if they were filed as "JWT vs session-cookie strategy". Called proactively at session start and before any non-trivial choice.
Decisions don't die — they get replaced by later ones. Mark the supersession explicitly. The lineage chain stays intact so you can always walk back to "what was the first decision that led here?".
Walk the supersession graph backwards from any decision. Bounded at 64 hops. Useful when revisiting an architecture choice that's been re-decided three times — see the whole chain.
Hook landing-pad for Claude Code SessionEnd / Compact events — belt-and-braces capture for sessions that move too fast for in-flight recording. v1 returns a hint; record decisions individually for now. Server-side LLM extraction lands later.
audit-readiness baked in.
three design choices that lay the foundation for an audit-grade extension — without rebuilding the engine.
no row is ever updated in place. every change inserts a new version. supersession is explicit.
SHA-256 of canonical JSON on every version. a regulated-mode hash-chain upgrade is additive, not a rebuild.
revoked_at timestamps, never DELETE. enforced retention drops in later as policy, not data recovery.
three tiers planned.
storage-based metering, not tokens. memory's value is cumulative — the longer it runs, the more useful it gets. priced separately from the audit suite.
- +all five primitives, scoped per project_marker
- +pgvector semantic search across your decisions
- +shared between collaborators using the same marker
- +storage cap kicks in when soft-launch ends
- +everything in free, plus headroom for real projects
- +one paid licence — separate from the Audit Suite
- +ships when soft-launch caps need enforcing
- +team-scale storage cap
- +cross-project lineage queries (coming)
- +export the decision graph as a markdown audit trail