Files
Project-M/.claude/skills/dots-dev/references/memory-protocol.md
T
Luis Gonzalez a5af81c8a8 Commit dots-dev skill into repo for cross-machine portability
Move the dots-dev skill from machine-local ~/.claude/skills/ into the
repo at .claude/skills/dots-dev/ so it travels with a clone. Update the
CLAUDE.md per-machine setup note to reflect that the skill no longer
needs manual placement; unity-mcp-skill and native memory/ stay local.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 11:58:37 -07:00

3.4 KiB

Memory & Documentation Protocol

How /dots-dev reads and writes knowledge. Four layers, each with a distinct job. The in-repo vault is the single source of human-facing, cross-machine truth; everything else serves or accelerates it.

The four layers

Layer Holds Interface Crosses machines?
In-repo Obsidian vault <repo>/Docs/Vault/ Design docs, decision records, session logs, roadmap — the canonical human-facing record obsidian-cli skill (read/create/search); Obsidian REST MCP optional Yes (committed to git)
basic-memory MCP Semantic + wikilink-graph recall over the same vault files (so the agent finds knowledge without grepping) basic-memory MCP tools Yes (indexes the committed vault)
serena MCP C# symbol-level code navigation (find_symbol, references, edit-by-symbol) of a growing codebase serena MCP tools N/A (derived from code)
Native Claude memory Machine-local facts, feedback, working-style; the per-project memory/ dir + MEMORY.md + CLAUDE.md Write tool / memory files No — local to each machine

Cross-machine rule: anything that must be true on both your Mac and Windows machines goes in the vault (or CLAUDE.md, which is also committed). Native memory/ is convenience only — never the sole home of a decision or design fact.

Which tool when

  • "Where is X defined / who calls it?" → serena find_symbol / references. Fall back to Glob/Grep if serena's C# LSP stalls on the Unity solution.
  • "What did we decide about Y / how does system Z work conceptually?"basic-memory recall, then obsidian-cli to read the doc.
  • "Find the literal string/asset GUID"Grep/Glob.
  • "What's the current DOTS/Netcode API for…?" → context7 (NOT memory). See context7-libraries.md.
  • "What conventions/preferences apply here?"CLAUDE.md + native memory.

Session bookends (non-negotiable for non-trivial work)

Start — scan (read-only):

  1. CLAUDE.md (repo root).
  2. Vault map of content + latest session log (07_Sessions/<year>/).
  3. Open decision records (_Decisions/ status: proposed) + roadmap/backlog.
  4. basic-memory recall on the goal's nouns; native MEMORY.md + memory/.

End — update (Phase 8):

  1. Session log written to the vault (obsidian-cli).
  2. Firm decisions → decision records, back-referenced from the log.
  3. Touched design docs edited in place (wikilink, don't duplicate into the log).
  4. Durable knowledge → basic-memory note in the vault; machine-local facts → native MEMORY.md.

If the operator says "skip the protocol", still write a one-line stub session log so the gap is visible, and record the preference as a native feedback memory.

Fallbacks

  • No obsidian-cli configured → direct Read/Write on <repo>/Docs/Vault/** (it's plain markdown; Obsidian/basic-memory pick up changes on next index).
  • basic-memory down → obsidian-cli search + Grep over the vault.
  • serena C# unavailableGlob/Grep, or claude-context (local LanceDB) if it was added as the documented fallback.

Setup pointer

The vault scaffold, the basic-memory/serena .mcp.json entries (using ${CLAUDE_PROJECT_DIR}), and CLAUDE.md are created by the one-time project setup task, not by this skill. If this skill runs and the vault or memory MCPs are missing, it notes the gap and points to that setup task.