Memory layer
Three-tier memory layer for the orchestrator. Routes scratch (file-tier), WHERE (QMD), and WHY (MemPalace) through the existing code-memory-router slash command. Never edits planning files directly. Every WHY-tier promotion goes through the HITL gate.From its SKILL.md
npx -y skills add OthmanAdi/MDDesign --skill memory-layerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.8 KB, as published. Nobody here has run it
Memory Layer
Three-tier wrapper on top of code-memory-router plus a local file-tier scratchpad.
Tiers
| Tier | Purpose | Backend | Lifetime |
|---|---|---|---|
| scratch | Volatile session notes, in-flight findings | .agents/memory/scratch/<topic>.md (file-tier) | Session, until promoted or /mddesign:handoff promote |
| WHERE | Locational queries (where is X, which file, which directory) | QMD via /memory-router | Project lifetime |
| WHY | Decisions, rationale, post-mortems, "we picked X because" | MemPalace drawers via /memory-router | Forever |
Operations
/mddesign:memory save <text> (default tier: scratch)
- Determine the active topic. The active phase id from
task_plan.mdis the default topic. If no plan exists, usegeneral. - Append
<text>plus an ISO timestamp to.agents/memory/scratch/<topic>.md. Create parent directories if needed. - Print confirmation: "Saved to scratch / topic=<topic>".
/mddesign:memory save --tier why <text>
- Print the text to the user with a clear "About to promote to MemPalace WHY tier. Approve? [y/N]" line.
- The PreToolUse hook intercepts the next Bash or
/memory-routerinvocation (named checkpoint:before_mempalace_write). - On approval, invoke
/memory-routerwith the canonical "save to MemPalace" pattern documented in code-memory-router's SKILL.md. Pass the text plus a project tag derived from CWD basename. - On the same approval, append a marker to
.agents/memory/scratch/<topic>.md: "PROMOTED to MemPalace at <timestamp>." The original scratch entry stays in place for the rest of the session for context continuity.
/mddesign:memory recall <query>
Routing rule:
- If the query starts with "where", "which file", "find", "locate", route to WHERE.
- If the query starts with "why", "decision", "history", "what did we decide", route to WHY.
- Otherwise, peek at scratch first; if nothing matches, fall back to WHERE.
Routing target:
- WHERE → invoke
/memory-routerand let the router dispatch to QMD. - WHY → invoke
/memory-routerand let the router dispatch to MemPalace. - scratch → grep
.agents/memory/scratch/**/*.mdfor the query.
Always print the source tier next to each result so the user sees provenance.
Stop hook integration
On Stop, the memory-keeper subagent runs and proposes promotions. This skill is the executor: when memory-keeper returns a list of WHY candidates, this skill drives /mddesign:memory save --tier why for each (each one HITL gated). Anything not promoted stays in scratch and is available for next session if session-handoff is configured.
Core rules
- Never edit
task_plan.md,findings.md, orprogress.mddirectly. Memory is a separate file space. - Never write to MemPalace without HITL approval.
- Never bypass
code-memory-router. If you cannot reach it, fail loudly and tell the user to installcode-memory-router. - Scratch directory is
.agents/memory/scratch/. Never put memory intask_plan.mdorfindings.md.
External dependencies
code-memory-routerskill (the user's, required) — routes WHERE to QMD and WHY to MemPalace- File-tier scratch needs no install
- Claude Memory Tool integration (Anthropic Messages API tool type
memory_20250818) is reserved for v0.2 once it is exposed via MCP for cross-IDE use. v0.1.0 ships file-tier scratch as the substitute that works today on every coding agent.
Example
User runs /mddesign:memory save Decided to use Postgres over SQLite for the memory store, scaling concern.
This skill:
- Reads
task_plan.mdto find the active phase id (e.g.,phase-2-data-model). - Appends to
.agents/memory/scratch/phase-2-data-model.md:## 2026-04-23T10:30:00Z Decided to use Postgres over SQLite for the memory store, scaling concern. - Prints "Saved to scratch / topic=phase-2-data-model"
Later in the session the user says /mddesign:memory recall why postgres. This skill:
- Routes to WHY because of "why" prefix.
- Invokes
/memory-routerto query MemPalace. - If MemPalace returns nothing yet, falls back to grep on
.agents/memory/scratch/**/*.md. - Surfaces the entry above with
[source: scratch]next to it.
On Stop, memory-keeper flags this entry as a WHY candidate. The user approves. This skill promotes via /memory-router. Next session, /mddesign:memory recall why postgres returns from MemPalace with [source: WHY].