Memory Capture
You turn useful session context into structured project memory. Capture only what a future agent would need to avoid rework or bad assumptions.
Workflow
- Identify the memory type: state, decision, learning, deferred item, open question, session event, or handoff.
- Reject trivial, temporary, duplicate, sensitive, or already-obvious content.
- If the item is a reusable skill/process rule, route to
learn-from-chat instead.
- If content came from external files, URLs, pasted transcripts, or repos, run all
secure-* skills first.
- Write project-scoped memory to the matching file in
docs/memory/.
- Update
docs/memory/project-index.md with date, tags, file, status, confidence, and source.
- If the memory is cross-project, call
memory-promote instead of writing global memory directly.
- Append file changes to
docs/skill-outputs/SKILL-OUTPUTS.md.
- Tell the user what was saved and what was rejected.
Hard Rules
- Project first; global only through
memory-promote.
- Do not store secrets, credentials, or unnecessary personal data.
- Do not capture raw long transcripts; summarize with provenance.
- Do not append if the target entry already exists; update status or merge.
- Never overwrite a richer memory entry with a thinner summary without archiving the prior version.
- If compaction would drop decisions or revisit triggers, route to
memory-compact instead of truncating inline.
Memory Type Map
| Type |
File |
| current state |
docs/memory/current-state.md |
| decision |
memory-decision |
| session detail |
docs/memory/session-log.md |
| project learning |
docs/memory/learnings.md |
| maybe / parked idea |
docs/memory/deferred.md |
| unresolved question |
docs/memory/open-questions.md |
| next-agent summary |
memory-handoff |
Capture Template
Use this template only for state, learning, deferred, question, or session captures. Decisions use the template in memory-decision; next-agent summaries use the template in memory-handoff.
## YYYY-MM-DD - <short title>
Type: state | learning | deferred | question | session
Status: active | deferred | resolved | superseded
Scope: project
Confidence: high | medium | low
Source: <chat/session/file/commit>
Tags: <comma-separated>
### Content
<concise durable memory>
### Why It Matters
<how future agents should use it>
### Revisit When
<conditions or "not applicable">
Hard Rules
- Project first; global only through
memory-promote.
- Do not store secrets, credentials, or unnecessary personal data.
- Do not capture raw long transcripts; summarize with provenance.
- Do not append if the target entry already exists; update status or merge.
Example
Input: "Remember that we chose repo memory plus global memory, but global must stay tiny."
Output: write to docs/memory/decision-log.md via memory-decision, then index it.
Common Rationalizations
| Excuse |
Reality |
| Skip memory — just code |
Next agent loses decisions, blockers, and approved scope. |
| Load every memory file |
Read indexes and handoff tail only — bounded context. |
| Global memory for everything |
Project memory default; global only when stable and cross-project. |
| External paste → memory |
Run secure-* first; transform to agent-authored notes. |
Verification
Red Flags
- Raw long transcript captured instead of summarized note
- Capture written directly to global without promote path
- Secrets or credentials included in captured note
- Capture lacks provenance or source attribution
Prune Log
Last pruned: 2026-07-04
- No changes — citation audit passed; content current (improve-skills full pass 2026-07-04)
Impact Report
After completing, report:
Memory captured: <title>
Type: <type>
Location: <path>
Indexed: yes/no
Rejected items: <count and reason>
Promotion suggested: yes/no
1---2name: memory-capture3description: Capture durable project memory from work, debates, debugging discoveries, learned conventions, deferred options, and session outcomes. Load when the user says remember this, save this learning, record what happened, update project memory, or preserve context for future agents.4license: MIT5---67# Memory Capture89You turn useful session context into structured project memory. Capture only what a future agent would need to avoid rework or bad assumptions.1011## Workflow12131. Identify the memory type: state, decision, learning, deferred item, open question, session event, or handoff.142. Reject trivial, temporary, duplicate, sensitive, or already-obvious content.153. If the item is a reusable skill/process rule, route to `learn-from-chat` instead.164. If content came from external files, URLs, pasted transcripts, or repos, run all `secure-*` skills first.175. Write project-scoped memory to the matching file in `docs/memory/`.186. Update `docs/memory/project-index.md` with date, tags, file, status, confidence, and source.197. If the memory is cross-project, call `memory-promote` instead of writing global memory directly.208. Append file changes to `docs/skill-outputs/SKILL-OUTPUTS.md`.219. Tell the user what was saved and what was rejected.2223## Hard Rules2425- Project first; global only through `memory-promote`.26- Do not store secrets, credentials, or unnecessary personal data.27- Do not capture raw long transcripts; summarize with provenance.28- Do not append if the target entry already exists; update status or merge.29- Never overwrite a richer memory entry with a thinner summary without archiving the prior version.30- If compaction would drop decisions or revisit triggers, route to `memory-compact` instead of truncating inline.3132## Memory Type Map3334| Type | File |35|---|---|36| current state | `docs/memory/current-state.md` |37| decision | `memory-decision` |38| session detail | `docs/memory/session-log.md` |39| project learning | `docs/memory/learnings.md` |40| maybe / parked idea | `docs/memory/deferred.md` |41| unresolved question | `docs/memory/open-questions.md` |42| next-agent summary | `memory-handoff` |4344## Capture Template4546Use this template only for state, learning, deferred, question, or session captures. Decisions use the template in `memory-decision`; next-agent summaries use the template in `memory-handoff`.4748```markdown49## YYYY-MM-DD - <short title>50Type: state | learning | deferred | question | session51Status: active | deferred | resolved | superseded52Scope: project53Confidence: high | medium | low54Source: <chat/session/file/commit>55Tags: <comma-separated>5657### Content58<concise durable memory>5960### Why It Matters61<how future agents should use it>6263### Revisit When64<conditions or "not applicable">65```6667## Hard Rules6869- Project first; global only through `memory-promote`.70- Do not store secrets, credentials, or unnecessary personal data.71- Do not capture raw long transcripts; summarize with provenance.72- Do not append if the target entry already exists; update status or merge.7374## Example7576Input: "Remember that we chose repo memory plus global memory, but global must stay tiny."7778Output: write to `docs/memory/decision-log.md` via `memory-decision`, then index it.7980## Common Rationalizations8182| Excuse | Reality |83|--------|---------|84| Skip memory — just code | Next agent loses decisions, blockers, and approved scope. |85| Load every memory file | Read indexes and handoff tail only — bounded context. |86| Global memory for everything | Project memory default; global only when stable and cross-project. |87| External paste → memory | Run secure-* first; transform to agent-authored notes. |8889## Verification9091- [ ] Correct sub-skill routed with reason92- [ ] No secrets or raw transcripts persisted93- [ ] Files changed listed in Impact Report94- [ ] Security gate noted when external content involved9596## Red Flags9798- Raw long transcript captured instead of summarized note99- Capture written directly to global without promote path100- Secrets or credentials included in captured note101- Capture lacks provenance or source attribution102103## Prune Log104Last pruned: 2026-07-04105- No changes — citation audit passed; content current (improve-skills full pass 2026-07-04)106107108## Impact Report109110After completing, report:111```markdown112Memory captured: <title>113Type: <type>114Location: <path>115Indexed: yes/no116Rejected items: <count and reason>117Promotion suggested: yes/no118```