Project Memory — your repo, remembered

A namespace convention that turns mnueron into a cross-tool, searchable replacement for CLAUDE.md and .cursor/rules.

You already use CLAUDE.md in one repo, .cursor/rules in another, and an AGENTS.md somewhere else. Each is static, single-tool, and starts from scratch when the AI hasn't seen the file. Mnueron solves the same problem with one shared store the AI can already search.

Project Memory is a convention, not a separate product: save a structured "what's in this repo / what's in this project" memory under a repo:<name> or project:<name> namespace. Every AI session that has mnueron MCP wired (Claude Desktop, Cowork, Claude Code, Cursor) can recall it in <100 ms with no LLM call.

Why it matters

The same context that takes a coding agent 10–20 minutes (and 5–15 tool calls) to rebuild from scratch every session — directory layout, build commands, naming conventions, the gotchas you tripped over last time — is a 3 KB memory you save once.

Every session after that, recall returns it. Same store. Same search. No per-IDE config file.

The namespace convention

PatternUse for
repo:<name>A specific codebase (e.g. repo:ai-boilerplate-pro)
project:<name>A bounded effort that may span repos (e.g. project:q4-launch, project:acme-account)
team:<name>Shared context for a team (e.g. coding standards, on-call rotation)

Use whichever fits. The AI's memory_recall is hybrid (keyword + vector), so the namespace label is for organization, not search ranking.

A starter template

Save this shape under repo:<your-repo>:

# Repo map — <name>

## Mounted paths
- Where the repo lives on disk + any platform-specific notes

## Key directories / files
- Source-of-truth files (the items.ts, the schema, the config)
- Files with non-obvious responsibilities

## Conventions
- Migration / naming / commit conventions
- Idempotent patterns (e.g. UPSERT format for docs)

## Gotchas
- The non-obvious thing you tripped over last time
- Encodings, native modules, environment vars that must be set

## Procedural runbooks
- Triggers that map to known runbooks (e.g. "deploy" → "Push to Vercel")

## Related areas not yet explored
- Files you noticed but didn't read — breadcrumbs for next session

The gotchas section is the highest-EV part. Anything that wasted you 10 minutes once should land here so it never wastes 10 minutes again.

Save it

await client.memorySave({
  namespace: "repo:my-app",
  source: "agent-repo-map",
  tags: ["repo-map", "my-app"],
  content: `# Repo map — my-app\n\n...`,
});

Or via MCP from inside an AI session:

memory_save(
  namespace="repo:my-app",
  tags=["repo-map"],
  content="# Repo map — my-app\n..."
)

Recall it

memory_recall(query="my-app repo map", namespace="repo:my-app")

Most AIs with MCP will call recall on their own when they see the working directory matches a known project. You can also drop the recall into your first prompt:

Before answering, recall the repo:my-app namespace and use anything relevant.

What it costs

OperationLLM costWhy
memory_save~$0.000002Embedding-only. A 3 KB repo map is fractions of a cent.
memory_recall$0Pure BM25 + cosine. No LLM in the path.
Optional auto-synopsis~$0.0001gpt-4o-mini summarizing the saved text. Off by default.
Optional fact-extraction~$0.0005Splits the memory into searchable child facts. Useful for large repo maps.

There is no prompt-token cost in the inference sense — the saved memory sits in your Postgres until something searches for it.

How this compares

CLAUDE.md / AGENTS.md.cursor/rulesAider repo mapMnueron Project Memory
Cross-toolNo — Anthropic agents onlyNo — Cursor onlyNo — Aider onlyYes — any MCP client
SearchableNo — full file in contextNo — full file in contextAuto-regenerated each runHybrid search, returns only relevant chunks
DynamicStatic checked-in fileStatic checked-in filePer-session ephemeralUpdated as you learn more
VersionedGit historyGit historyNoneMnueron consolidation flow
Multi-repoOne file per repoOne folder per repoOne per projectSingle store, namespaces

When NOT to use this

  • For team-wide coding conventions that belong in source control, keep using CLAUDE.md — the social signal of "this is checked in" matters. Project Memory is for the things that don't earn a PR but do earn a 10-minute discovery tax every session.

  • For one-off facts ("the meeting is at 3pm Tuesday"), use the default namespace. Project Memory is for things that stay true across many sessions on one project.

What's next

The Project Memory CLI and dashboard surface are on the roadmap (see engine-project-memory in /admin/roadmap):

  • mnueron project init — bootstrap a starter map from your cwd
  • mnueron project show / update — read or edit your saved map
  • /dashboard/projects — list, edit, see last-updated

Until those ship, save and recall via the standard memory API — the convention works today without any new code.


Last updated 2026-05-25

Last updated 2026-05-25edit