Memory Capture
Save important context to persistent memory using the MCP memory-service.
How to Use
Manual Invocation
/capture "Pinnacle Title invoice is $1,500/month"
/capture "Billy V4 LONGS ONLY - shorts lost $2,226 in backtests" --type decision
/capture "API key stored in /root/.env" --type reference --tags trading,credentials
Automatic Invocation
When you detect important context in conversation (decisions, learnings, client info, etc.),
call this skill SILENTLY without asking the user. Just capture and continue.
Arguments
$ARGUMENTS or $0: The content to capture
--type TYPE: Memory type (decision, pattern, learning, preference, client, gotcha, reference)
--tags TAG1,TAG2: Comma-separated tags for categorization
Memory Types
| Type |
Use When |
decision |
Architectural/technical choices made |
pattern |
Reusable code/workflow patterns discovered |
learning |
New knowledge or insights |
preference |
User preferences and likes/dislikes |
client |
Client names, contacts, business info |
gotcha |
Pitfalls, bugs, things to avoid |
reference |
File paths, API locations, credentials locations |
Execution Steps
- Parse the input: Extract content, type, and tags from arguments
- Auto-classify: Infer type from content if not provided
- Check for duplicates: Search existing memories - if similar exists, it auto-merges
- Store the memory: Use memory_store with metadata (type, tags, timestamp)
- Silent operation: Do NOT notify user - just capture and continue
Capture Philosophy: REMEMBER EVERYTHING
No filtering. No threshold. Capture aggressively.
When in doubt, capture it. Storage is cheap, lost context is expensive.
The semantic deduplication will handle noise - similar memories get merged automatically.
Quality ratings will surface the good stuff over time.
Capture triggers (if ANY match, capture it):
- Decisions (even tentative ones)
- Learnings (even small ones)
- Names, numbers, dates, amounts
- File paths, URLs, API references
- Preferences (even implied ones)
- Errors and how they were fixed
- Patterns noticed
- Questions asked (context for why we explored something)
The only things to skip:
- Pure greetings ("hi", "thanks")
- Confirmations ("ok", "got it", "sure")
- Meta-discussion about the conversation itself
Auto-Classification Rules
If --type not provided, detect from content:
- Contains "decided", "chose", "going with" →
decision
- Contains "learned", "realized", "discovered" →
learning
- Contains "API", "key", "path", "credentials", ".env" →
reference
- Contains "always", "never", "convention", "pattern" →
pattern
- Contains "careful", "watch out", "gotcha", "bug" →
gotcha
- Contains email, phone, "$", "invoice", company name →
client
- Default →
learning
Auto-Tagging Rules
Extract tags from:
- Project names mentioned (botsniper, foodshot, etc.)
- Technology names (python, node, react, etc.)
- Client names (pinnacle, etc.)
- Domain terms (trading, invoice, api, etc.)
Storage Format
Store using mcp__memory-service__memory_store with:
{
"content": "<the memory content>",
"metadata": {
"type": "<memory type>",
"tags": "<comma-separated tags>",
"source": "capture-skill",
"timestamp": "<ISO timestamp>",
"project": "<current working directory if relevant>"
}
}
Example Execution
User says: "The Airtable API token for Pinnacle is stored in Voltaris-Labs/.env"
Auto-capture (silent):
- Detect: Contains "API", "token", ".env" → type:
reference
- Detect: Contains "Pinnacle", "Airtable" → tags:
pinnacle,airtable,credentials
- Store:
content: "Airtable API token for Pinnacle is stored in Voltaris-Labs/.env"
metadata: {type: "reference", tags: "pinnacle,airtable,credentials,api"}
- Continue conversation without mentioning the capture
Deduplication
Before storing, search for similar memories:
memory_search(query="<content summary>", limit=3)
If highly similar memory exists (same topic):
- Update existing memory quality score instead of creating duplicate
- Use memory_update to add new tags if relevant
Quality Feedback
The memory system learns from feedback. When you notice a memory was:
Useful (helped with a task):
mcp__memory-service__memory_quality(action="rate", content_hash="<hash>", rating="1", feedback="Helped with X")
Not useful (irrelevant or wrong):
mcp__memory-service__memory_quality(action="rate", content_hash="<hash>", rating="-1", feedback="Was outdated/wrong")
Quality scores affect search ranking - highly-rated memories appear first.
Integration with MEMORY.md
For HIGH importance memories (client info, critical decisions), also append to MEMORY.md:
- Location:
~/.claude/projects/*/memory/MEMORY.md
- Format: Brief one-liner under appropriate section
- Only for memories that should be instantly visible at session start
1---2name: capture3description: Save important context to persistent memory for future sessions. PROACTIVELY USE THIS when you detect: - Decisions: "let's go with", "decided to", "chose", "went with" - Learnings: "I learned", "turns out", "TIL", "realized", "discovered" - Errors resolved: "fixed", "the problem was", "solution was" - Client info: names, emails, phone numbers, addresses, invoice amounts - Preferences: "I prefer", "I like", "don't like", "always use" - References: API keys locations, file paths, URLs, credentials - Patterns: "pattern", "convention", "always do", "standard approach" - Important commands run worth remembering Do NOT ask permission - just capture silently when these patterns appear.4---5
6# Memory Capture
7
8Save important context to persistent memory using the MCP memory-service.
9
10## How to Use
11
12### Manual Invocation
13```
14/capture "Pinnacle Title invoice is $1,500/month"
15/capture "Billy V4 LONGS ONLY - shorts lost $2,226 in backtests" --type decision
16/capture "API key stored in /root/.env" --type reference --tags trading,credentials
17```
18
19### Automatic Invocation
20When you detect important context in conversation (decisions, learnings, client info, etc.),
21call this skill SILENTLY without asking the user. Just capture and continue.
22
23## Arguments
24
25- `$ARGUMENTS` or `$0`: The content to capture
26- `--type TYPE`: Memory type (decision, pattern, learning, preference, client, gotcha, reference)
27- `--tags TAG1,TAG2`: Comma-separated tags for categorization
28
29## Memory Types
30
31| Type | Use When |
32|------|----------|
33| `decision` | Architectural/technical choices made |
34| `pattern` | Reusable code/workflow patterns discovered |
35| `learning` | New knowledge or insights |
36| `preference` | User preferences and likes/dislikes |
37| `client` | Client names, contacts, business info |
38| `gotcha` | Pitfalls, bugs, things to avoid |
39| `reference` | File paths, API locations, credentials locations |
40
41## Execution Steps
42
431. **Parse the input**: Extract content, type, and tags from arguments
442. **Auto-classify**: Infer type from content if not provided
453. **Check for duplicates**: Search existing memories - if similar exists, it auto-merges
464. **Store the memory**: Use memory_store with metadata (type, tags, timestamp)
475. **Silent operation**: Do NOT notify user - just capture and continue
48
49## Capture Philosophy: REMEMBER EVERYTHING
50
51**No filtering. No threshold. Capture aggressively.**
52
53When in doubt, capture it. Storage is cheap, lost context is expensive.
54
55The semantic deduplication will handle noise - similar memories get merged automatically.
56Quality ratings will surface the good stuff over time.
57
58**Capture triggers (if ANY match, capture it):**
59- Decisions (even tentative ones)
60- Learnings (even small ones)
61- Names, numbers, dates, amounts
62- File paths, URLs, API references
63- Preferences (even implied ones)
64- Errors and how they were fixed
65- Patterns noticed
66- Questions asked (context for why we explored something)
67
68**The only things to skip:**
69- Pure greetings ("hi", "thanks")
70- Confirmations ("ok", "got it", "sure")
71- Meta-discussion about the conversation itself
72
73## Auto-Classification Rules
74
75If `--type` not provided, detect from content:
76- Contains "decided", "chose", "going with" → `decision`
77- Contains "learned", "realized", "discovered" → `learning`
78- Contains "API", "key", "path", "credentials", ".env" → `reference`
79- Contains "always", "never", "convention", "pattern" → `pattern`
80- Contains "careful", "watch out", "gotcha", "bug" → `gotcha`
81- Contains email, phone, "$", "invoice", company name → `client`
82- Default → `learning`
83
84## Auto-Tagging Rules
85
86Extract tags from:
87- Project names mentioned (botsniper, foodshot, etc.)
88- Technology names (python, node, react, etc.)
89- Client names (pinnacle, etc.)
90- Domain terms (trading, invoice, api, etc.)
91
92## Storage Format
93
94Store using mcp__memory-service__memory_store with:
95
96```json
97{
98 "content": "<the memory content>",
99 "metadata": {
100 "type": "<memory type>",
101 "tags": "<comma-separated tags>",
102 "source": "capture-skill",
103 "timestamp": "<ISO timestamp>",
104 "project": "<current working directory if relevant>"
105 }
106}
107```
108
109## Example Execution
110
111User says: "The Airtable API token for Pinnacle is stored in Voltaris-Labs/.env"
112
113Auto-capture (silent):
1141. Detect: Contains "API", "token", ".env" → type: `reference`
1152. Detect: Contains "Pinnacle", "Airtable" → tags: `pinnacle,airtable,credentials`
1163. Store:
117 ```
118 content: "Airtable API token for Pinnacle is stored in Voltaris-Labs/.env"
119 metadata: {type: "reference", tags: "pinnacle,airtable,credentials,api"}
120 ```
1214. Continue conversation without mentioning the capture
122
123## Deduplication
124
125Before storing, search for similar memories:
126```
127memory_search(query="<content summary>", limit=3)
128```
129
130If highly similar memory exists (same topic):
131- Update existing memory quality score instead of creating duplicate
132- Use memory_update to add new tags if relevant
133
134## Quality Feedback
135
136The memory system learns from feedback. When you notice a memory was:
137
138**Useful** (helped with a task):
139```
140mcp__memory-service__memory_quality(action="rate", content_hash="<hash>", rating="1", feedback="Helped with X")
141```
142
143**Not useful** (irrelevant or wrong):
144```
145mcp__memory-service__memory_quality(action="rate", content_hash="<hash>", rating="-1", feedback="Was outdated/wrong")
146```
147
148Quality scores affect search ranking - highly-rated memories appear first.
149
150## Integration with MEMORY.md
151
152For HIGH importance memories (client info, critical decisions), also append to MEMORY.md:
153- Location: `~/.claude/projects/*/memory/MEMORY.md`
154- Format: Brief one-liner under appropriate section
155- Only for memories that should be instantly visible at session start