agent-comms
SendMessage recipient validation and worktreePath safety (CWE-59). TRIGGER when: validating a SendMessage `to:` recipient against…
Repo-local file memory under .scaffolding/ (shared/agent/conversation tiers). TRIGGER when: reading or writing .scaffolding/ memory files, or choosing which file tier an insight belongs in. SKIP: vector memory / MCP search and store (use semantic-memory-mcp); distilling
Claude Code
$ npx -y skills add komluk/scaffolding --skill agent-memory --agent claude-code
Codex
$ npx skills add komluk/scaffolding --skill agent-memory -a codex -y
Cursor
$ npx skills add komluk/scaffolding --skill agent-memory -a cursor -y
Gemini CLI
$ npx skills add komluk/scaffolding --skill agent-memory -a gemini-cli -y
GitHub Copilot
$ npx skills add komluk/scaffolding --skill agent-memory -a github-copilot -y
OpenCode
$ npx skills add komluk/scaffolding --skill agent-memory -a opencode -y
Windsurf
$ npx skills add komluk/scaffolding --skill agent-memory -a windsurf -y
name: agent-memory description: "Repo-local file memory under .scaffolding/ (shared/agent/conversation tiers). TRIGGER when: reading or writing .scaffolding/ memory files, or choosing which file tier an insight belongs in. SKIP: vector memory / MCP search and store (use semantic-memory-mcp); distilling conversations (use distill)."
3-tier persistent **file-based** memory under the repo-local `.scaffolding/` directory, for cross-session knowledge accumulation. Vector memory (MCP tools) is covered by the `semantic-memory-mcp` skill.
| Tier | Path | Scope | Written By | Read By | |------|------|-------|------------|---------| | **Shared** | `.scaffolding/agent-memory/shared/KNOWLEDGE.md` | Whole project | Any agent | All agents | | **Agent** | `.scaffolding/agent-memory/agents/{agent-name}/MEMORY.md` | Per agent | Owning agent | Own agent + architect | | **Conversation** | `.scaffolding/conversations/{conversation_id}/agent-memory/context.md` | Per conversation | Any agent in conversation | Agents in same conversation |
The Conversation tier lives under `.scaffolding/conversations/`, which is a symlink to `<share>/projects/<repo-name>/conversations` (shared across machines). Paths are unchanged; always go through the symlink.
No hook or pipeline injects these files into agent context -- they are read on demand (see On First Turn). The conversation tier is the inter-agent handoff: a downstream agent in the same chain reads what an upstream agent recorded there.
Before starting work, read available memory (skip if files don't exist):
1. Read `.scaffolding/agent-memory/shared/KNOWLEDGE.md` 2. Read `.scaffolding/agent-memory/agents/{your-agent-name}/MEMORY.md` 3. If `conversation_id` is provided in task context: Read `.scaffolding/conversations/{conversation_id}/agent-memory/context.md`
Write significant findings to the appropriate tier:
Save here:
Do NOT save:
Save here:
Do NOT save:
Save here:
Do NOT save:
Agents with `Write` in `disallowedTools` (reviewer, gitops) cannot write to `.scaffolding/agent-memory/` directly. These agents should report findings in their output, and writable agents in the same conversation chain can persist them. Architect has `Write` and may write memory files (only `Edit` is disallowed).
File-based memory (this skill) is the **hot** layer — read in full on first turn under a 200-line budget, so keep it lean: stable, high-level facts and pointers only. Push detailed prose and rarely-needed, fuzzy-discoverable knowledge to the **cold** layer (vector store) via the `semantic-memory-mcp` skill — it only surfaces on similarity match and carries no per-turn token cost. Durable source-of-truth facts still get a file here; the cold copy is for natural-language recall.
**Local-only carve-out:** secrets and memory/MCP recovery procedures NEVER go to the cold vector store. Recovery info must stay readable when the store itself is down (a 401 means you cannot query the store to learn how to fix it), and secrets must not be embedded in a remote/shared backend. Keep these as file memory only.
If memory files don't exist, create them with the appropriate header:
# Shared Knowledge <!-- Cross-agent project knowledge. Max 200 lines. -->
# {Agent Name} Memory
<!-- Agent-specific patterns and lessons. Max 200 lines. --># Conversation {conversation_id} Context
<!-- Decisions and findings for this conversation chain. -->Conversation memory is plain files: when a task has a `conversation_id`, read `context.md` yourself (see On First Turn). No database setup is required for conversation-tier memory.
The `/learn` command closes the loop between a finished conversation and the memory tiers above. It distills one conversation into knowledge candidates (via the `distill` skill's Conversation-Scoped Distillation mode) and routes each candidate back into this memory system.
| Candidate kind | Target tier | File | |----------------|-------------|------| | Cross-cutting project fact | Shared | `.scaffolding/agent-memory/shared/KNOWLEDGE.md` | | Domain-specific pattern or lesson | Agent | `.scaffolding/agent-memory/agents/{name}/MEMOR
Spec-driven multi-agent orchestration for Claude Code — pure markdown, zero backend, runs on the stock runtime. 13 agents, 39 skills, 21 commands, 20 hooks, per-phase model tiers, opt-in lifecycle hooks, optional cross-device semantic memory.
SendMessage recipient validation and worktreePath safety (CWE-59). TRIGGER when: validating a SendMessage `to:` recipient against…
RESTful API design standards: resource naming, HTTP methods, status codes, pagination, versioning. TRIGGER when: designing new…
Optimize Claude Code context-window usage for accuracy and cost. TRIGGER when: hitting context limits, structuring prompts for an…
Schema design, index strategy, migration safety, and query analysis. TRIGGER when: designing tables or indexes, writing a…
Knowledge distillation: candidate extraction, confidence scoring, tier routing. Invoked by /learn and the memory-ingest Stop…
Docker multi-stage build templates, image security, and docker-compose patterns. TRIGGER when: writing a Dockerfile, composing…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.