claude-recall 0.3.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +2 -1
- package/.claude/skills/memory-management/SKILL.md +208 -0
- package/.claude/skills/memory-management/references/capture-examples.md +305 -0
- package/.claude/skills/memory-management/references/devops-patterns.md +227 -0
- package/.claude/skills/memory-management/references/troubleshooting.md +342 -0
- package/README.md +191 -30
- package/dist/mcp/memory-capture-middleware.js +108 -7
- package/dist/mcp/tools/memory-tools.js +110 -0
- package/dist/services/preference-extractor.js +190 -2
- package/package.json +2 -2
- package/scripts/postinstall-claude-md.js +94 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "claude-recall-memory-management"
|
|
3
|
+
description: "Automatic memory capture and retrieval for Claude Recall MCP - ensures you never repeat yourself"
|
|
4
|
+
allowed-tools: "mcp__claude-recall__*"
|
|
5
|
+
version: "0.5.0"
|
|
6
|
+
priority: "highest"
|
|
7
|
+
license: "MIT"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Claude Recall Memory Management
|
|
11
|
+
|
|
12
|
+
This Skill teaches Claude Code how to use Claude Recall's persistent memory system effectively. It ensures automatic capture of project context, devops workflows, and user preferences.
|
|
13
|
+
|
|
14
|
+
## Core Principle: Never Repeat Yourself
|
|
15
|
+
|
|
16
|
+
**The user should NEVER have to repeat preferences or explain what worked/didn't work.**
|
|
17
|
+
|
|
18
|
+
## Memory Types (Priority Order)
|
|
19
|
+
|
|
20
|
+
1. **DevOps** (Priority 0 - HIGHEST) - Project-specific workflows
|
|
21
|
+
- Git conventions, testing approaches, build processes
|
|
22
|
+
- Development environment setup
|
|
23
|
+
- Architecture decisions, tech stack choices
|
|
24
|
+
|
|
25
|
+
2. **Corrections** (Priority 1) - User explicitly fixed mistakes
|
|
26
|
+
- "No, do this instead" statements
|
|
27
|
+
- Overrides previous approaches
|
|
28
|
+
|
|
29
|
+
3. **Preferences** (Priority 2) - User coding style, tool choices
|
|
30
|
+
- Code style, framework preferences
|
|
31
|
+
- File organization, naming conventions
|
|
32
|
+
|
|
33
|
+
4. **Success/Failure** (Priority 3) - What worked and what didn't
|
|
34
|
+
- Successful implementations to repeat
|
|
35
|
+
- Failed approaches to avoid
|
|
36
|
+
|
|
37
|
+
## When to Search Memories (BEFORE ANY TASK)
|
|
38
|
+
|
|
39
|
+
**CRITICAL**: Before file operations, decisions, or implementations, ALWAYS search memories:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
mcp__claude-recall__search("[task keywords] devops preferences success failure correction")
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Search Examples:
|
|
46
|
+
|
|
47
|
+
**Before creating authentication:**
|
|
48
|
+
```
|
|
49
|
+
mcp__claude-recall__search("authentication devops testing git")
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Before writing tests:**
|
|
53
|
+
```
|
|
54
|
+
mcp__claude-recall__search("testing tdd location framework")
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Before deployment tasks:**
|
|
58
|
+
```
|
|
59
|
+
mcp__claude-recall__search("deploy build docker git workflow")
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### What Search Finds Automatically:
|
|
63
|
+
|
|
64
|
+
- **DevOps workflows**: Git branching, testing rules, deployment steps
|
|
65
|
+
- **Preferences**: User's stated coding style, tool choices
|
|
66
|
+
- **Successes**: Past approaches that worked well
|
|
67
|
+
- **Failures**: Past approaches that failed (avoid these!)
|
|
68
|
+
- **Corrections**: User fixes (HIGHEST PRIORITY - user explicitly said "no, do this")
|
|
69
|
+
|
|
70
|
+
## When to Store Memories
|
|
71
|
+
|
|
72
|
+
### Automatic Capture (v0.5.0+)
|
|
73
|
+
|
|
74
|
+
Claude Recall now **automatically captures** these patterns:
|
|
75
|
+
|
|
76
|
+
**DevOps Patterns** (Priority 0 - captured automatically):
|
|
77
|
+
- ✅ "This is a [project type]" → Project purpose
|
|
78
|
+
- ✅ "Built with [tech stack]" → Tech stack
|
|
79
|
+
- ✅ "We develop on [environment]" → Dev environment
|
|
80
|
+
- ✅ "Always [X] before [Y]" → Workflow rules
|
|
81
|
+
- ✅ "Use [X] for [Y]" → Tool choices
|
|
82
|
+
- ✅ "Tests go in [location]" → Testing conventions
|
|
83
|
+
- ✅ "Follow TDD" → Development approach
|
|
84
|
+
|
|
85
|
+
**Project Info** (captured automatically):
|
|
86
|
+
- ✅ "Tenant ID is X" → Configuration
|
|
87
|
+
- ✅ "API endpoint: X" → Endpoints
|
|
88
|
+
- ✅ "Our database is X" → Infrastructure
|
|
89
|
+
|
|
90
|
+
**Preferences** (captured automatically):
|
|
91
|
+
- ✅ "I prefer TypeScript" → Language preference
|
|
92
|
+
- ✅ "Always use Jest" → Tool preference
|
|
93
|
+
- ✅ "Never use semicolons" → Code style
|
|
94
|
+
|
|
95
|
+
### Manual Storage Required For:
|
|
96
|
+
|
|
97
|
+
Use `mcp__claude-recall__store_memory` for:
|
|
98
|
+
|
|
99
|
+
**Complex multi-step workflows:**
|
|
100
|
+
```
|
|
101
|
+
mcp__claude-recall__store_memory({
|
|
102
|
+
content: "Deployment process: 1) Run tests 2) Build Docker 3) Push to ECR 4) Update k8s",
|
|
103
|
+
metadata: { type: "devops", category: "deployment" }
|
|
104
|
+
})
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Lessons learned from failures:**
|
|
108
|
+
```
|
|
109
|
+
mcp__claude-recall__store_memory({
|
|
110
|
+
content: "Session-based auth failed in production due to distributed sessions - use JWT instead",
|
|
111
|
+
metadata: { type: "failure", lesson: "use_stateless_auth" }
|
|
112
|
+
})
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**User corrections to your work:**
|
|
116
|
+
```
|
|
117
|
+
mcp__claude-recall__store_memory({
|
|
118
|
+
content: "CORRECTION: Tests go in __tests__/ not tests/",
|
|
119
|
+
metadata: { type: "correction", priority: "highest" }
|
|
120
|
+
})
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Check What's Captured
|
|
124
|
+
|
|
125
|
+
To see what memories have been automatically captured:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
mcp__claude-recall__get_recent_captures({ limit: 10 })
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This helps you verify that important project context was stored.
|
|
132
|
+
|
|
133
|
+
## Example Workflow
|
|
134
|
+
|
|
135
|
+
### First Time (User States Preference)
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
User: "I prefer Python for scripts"
|
|
139
|
+
[Auto-captured as preference]
|
|
140
|
+
|
|
141
|
+
User: "We use TDD for all new features"
|
|
142
|
+
[Auto-captured as devops workflow_rule, priority 0]
|
|
143
|
+
|
|
144
|
+
User: "This is a teleprompter tool for interviews"
|
|
145
|
+
[Auto-captured as devops project_purpose, priority 0]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Second Time (First Use)
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
User: "Create a test script"
|
|
152
|
+
|
|
153
|
+
Step 1: Search memories
|
|
154
|
+
mcp__claude-recall__search("script test python")
|
|
155
|
+
Finds: "I prefer Python for scripts" + "We use TDD"
|
|
156
|
+
|
|
157
|
+
Step 2: Create test_script.py with TDD approach
|
|
158
|
+
|
|
159
|
+
Step 3: User approves → Store success
|
|
160
|
+
mcp__claude-recall__store_memory({
|
|
161
|
+
content: "Created test script with Python + TDD - SUCCESS",
|
|
162
|
+
metadata: { type: "success", task: "test_script" }
|
|
163
|
+
})
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Third Time (Automatic Application)
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
User: "Create a build script"
|
|
170
|
+
|
|
171
|
+
Step 1: Search memories
|
|
172
|
+
mcp__claude-recall__search("script build python tdd")
|
|
173
|
+
Finds:
|
|
174
|
+
- "I prefer Python for scripts" (preference)
|
|
175
|
+
- "We use TDD" (devops)
|
|
176
|
+
- "Created test script with Python + TDD - SUCCESS" (validates approach)
|
|
177
|
+
|
|
178
|
+
Step 2: Create build.py with tests automatically
|
|
179
|
+
User doesn't have to repeat preferences! ✓
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Best Practices
|
|
183
|
+
|
|
184
|
+
1. **Search broadly** - Include task type + language + workflow keywords
|
|
185
|
+
2. **Trust the learning loop** - Automatic capture handles most cases
|
|
186
|
+
3. **Store manually** for complex multi-step processes
|
|
187
|
+
4. **Check captures** periodically with `get_recent_captures`
|
|
188
|
+
5. **Correct immediately** - If output is wrong, tell me and it gets highest priority
|
|
189
|
+
|
|
190
|
+
## Troubleshooting
|
|
191
|
+
|
|
192
|
+
**If memories aren't being found:**
|
|
193
|
+
1. Check search query keywords - be broad
|
|
194
|
+
2. Verify memory exists: `mcp__claude-recall__get_recent_captures`
|
|
195
|
+
3. Search without type filters to see all results
|
|
196
|
+
|
|
197
|
+
**If automatic capture missed something:**
|
|
198
|
+
1. Use manual storage for that specific item
|
|
199
|
+
2. The pattern may not have matched - broader trigger words help
|
|
200
|
+
|
|
201
|
+
**For more examples:**
|
|
202
|
+
- Load `references/devops-patterns.md` for DevOps memory examples
|
|
203
|
+
- Load `references/capture-examples.md` for manual storage templates
|
|
204
|
+
- Load `references/troubleshooting.md` for common issues
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
**Remember**: This Skill ensures the learning loop works automatically. Your job is to search memories BEFORE tasks and trust the automatic capture for most cases.
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# Manual Memory Capture Examples
|
|
2
|
+
|
|
3
|
+
This document provides templates for manually storing memories when automatic capture isn't sufficient.
|
|
4
|
+
|
|
5
|
+
## When to Use Manual Storage
|
|
6
|
+
|
|
7
|
+
Use `mcp__claude-recall__store_memory` when:
|
|
8
|
+
- Complex multi-step workflows need to be documented
|
|
9
|
+
- Lessons learned from failures
|
|
10
|
+
- User corrects your work
|
|
11
|
+
- Nuanced context that patterns might miss
|
|
12
|
+
|
|
13
|
+
## Success Examples
|
|
14
|
+
|
|
15
|
+
### Basic Success
|
|
16
|
+
```javascript
|
|
17
|
+
mcp__claude-recall__store_memory({
|
|
18
|
+
content: "Created authentication with JWT tokens - SUCCESS",
|
|
19
|
+
metadata: { type: "success", task: "authentication" }
|
|
20
|
+
})
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Success with Context
|
|
24
|
+
```javascript
|
|
25
|
+
mcp__claude-recall__store_memory({
|
|
26
|
+
content: "Implemented push-to-talk with pyaudio instead of continuous VAD - SUCCESS. Much better performance and user control.",
|
|
27
|
+
metadata: {
|
|
28
|
+
type: "success",
|
|
29
|
+
task: "audio_capture",
|
|
30
|
+
improvement: "performance + ux"
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Success with Technical Details
|
|
36
|
+
```javascript
|
|
37
|
+
mcp__claude-recall__store_memory({
|
|
38
|
+
content: "Fixed memory leak by moving PyAudio initialization outside the loop - SUCCESS. Memory usage dropped from 500MB to 50MB.",
|
|
39
|
+
metadata: {
|
|
40
|
+
type: "success",
|
|
41
|
+
task: "performance",
|
|
42
|
+
metric: "10x memory reduction"
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Failure Examples
|
|
48
|
+
|
|
49
|
+
### Basic Failure
|
|
50
|
+
```javascript
|
|
51
|
+
mcp__claude-recall__store_memory({
|
|
52
|
+
content: "Session-based authentication failed in distributed environment - use stateless JWT instead",
|
|
53
|
+
metadata: { type: "failure", avoid: "session_auth_distributed" }
|
|
54
|
+
})
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Failure with Root Cause
|
|
58
|
+
```javascript
|
|
59
|
+
mcp__claude-recall__store_memory({
|
|
60
|
+
content: "Continuous VAD approach failed - too CPU intensive, poor UX. Root cause: processing audio every frame. Solution: Use push-to-talk instead.",
|
|
61
|
+
metadata: {
|
|
62
|
+
type: "failure",
|
|
63
|
+
root_cause: "continuous_processing",
|
|
64
|
+
solution: "push_to_talk"
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Failure with Lesson Learned
|
|
70
|
+
```javascript
|
|
71
|
+
mcp__claude-recall__store_memory({
|
|
72
|
+
content: "Tried mock audio files for testing but they don't match real mic behavior. Lesson: Need actual microphone for audio tests, can't fully mock.",
|
|
73
|
+
metadata: {
|
|
74
|
+
type: "failure",
|
|
75
|
+
lesson: "use_real_hardware_for_audio_tests"
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Correction Examples
|
|
81
|
+
|
|
82
|
+
### Basic Correction
|
|
83
|
+
```javascript
|
|
84
|
+
mcp__claude-recall__store_memory({
|
|
85
|
+
content: "CORRECTION: Tests go in __tests__/ directory, not tests/",
|
|
86
|
+
metadata: { type: "correction", priority: "highest" }
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Correction with Rationale
|
|
91
|
+
```javascript
|
|
92
|
+
mcp__claude-recall__store_memory({
|
|
93
|
+
content: "CORRECTION: Use 4 spaces for indentation, not tabs. Reason: Project convention for Python files.",
|
|
94
|
+
metadata: {
|
|
95
|
+
type: "correction",
|
|
96
|
+
priority: "highest",
|
|
97
|
+
language: "python"
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Correction Overriding Previous Approach
|
|
103
|
+
```javascript
|
|
104
|
+
mcp__claude-recall__store_memory({
|
|
105
|
+
content: "CORRECTION: Don't use Docker for local development, use virtual environment instead. Docker adds unnecessary complexity for this project.",
|
|
106
|
+
metadata: {
|
|
107
|
+
type: "correction",
|
|
108
|
+
priority: "highest",
|
|
109
|
+
overrides: "docker_local_dev"
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## DevOps Workflow Examples
|
|
115
|
+
|
|
116
|
+
### Deployment Process
|
|
117
|
+
```javascript
|
|
118
|
+
mcp__claude-recall__store_memory({
|
|
119
|
+
content: `Deployment workflow:
|
|
120
|
+
1. Create feature branch from main
|
|
121
|
+
2. Run tests locally: npm test
|
|
122
|
+
3. Create PR with conventional commit message
|
|
123
|
+
4. Wait for CI (lint + test + build)
|
|
124
|
+
5. Get 2 code review approvals
|
|
125
|
+
6. Squash merge to main
|
|
126
|
+
7. GitHub Actions auto-deploys to staging
|
|
127
|
+
8. QA approval required for production
|
|
128
|
+
9. Promote to prod: kubectl apply -f k8s/prod/`,
|
|
129
|
+
metadata: {
|
|
130
|
+
type: "devops",
|
|
131
|
+
category: "deployment",
|
|
132
|
+
steps: 9,
|
|
133
|
+
tools: ["github-actions", "kubernetes"]
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Testing Strategy
|
|
139
|
+
```javascript
|
|
140
|
+
mcp__claude-recall__store_memory({
|
|
141
|
+
content: `Testing strategy:
|
|
142
|
+
- Unit tests: Jest, 80% coverage minimum
|
|
143
|
+
- Integration tests: Supertest for API
|
|
144
|
+
- E2E tests: Playwright for UI
|
|
145
|
+
- Run order: unit → integration → e2e
|
|
146
|
+
- CI runs all, but devs can run unit tests locally`,
|
|
147
|
+
metadata: {
|
|
148
|
+
type: "devops",
|
|
149
|
+
category: "testing_strategy",
|
|
150
|
+
tools: ["jest", "supertest", "playwright"]
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Git Branching Strategy
|
|
156
|
+
```javascript
|
|
157
|
+
mcp__claude-recall__store_memory({
|
|
158
|
+
content: `Git workflow (GitFlow variant):
|
|
159
|
+
- main: production-ready code
|
|
160
|
+
- develop: integration branch
|
|
161
|
+
- feature/*: new features (from develop)
|
|
162
|
+
- bugfix/*: bug fixes (from develop)
|
|
163
|
+
- hotfix/*: emergency production fixes (from main)
|
|
164
|
+
- Merge: feature → develop → main
|
|
165
|
+
- Release: tag main with semver`,
|
|
166
|
+
metadata: {
|
|
167
|
+
type: "devops",
|
|
168
|
+
category: "git_workflow",
|
|
169
|
+
strategy: "gitflow"
|
|
170
|
+
}
|
|
171
|
+
})
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Project Knowledge Examples
|
|
175
|
+
|
|
176
|
+
### API Configuration
|
|
177
|
+
```javascript
|
|
178
|
+
mcp__claude-recall__store_memory({
|
|
179
|
+
content: "API configuration: Base URL https://api.example.com/v1, Auth header: Bearer token, Rate limit: 100 req/min",
|
|
180
|
+
metadata: {
|
|
181
|
+
type: "project-knowledge",
|
|
182
|
+
category: "api_config"
|
|
183
|
+
}
|
|
184
|
+
})
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Database Setup
|
|
188
|
+
```javascript
|
|
189
|
+
mcp__claude-recall__store_memory({
|
|
190
|
+
content: "Database: PostgreSQL 15 on RDS. Connection pooling: 20 connections. Migrations: Alembic. Backup: Daily at 2 AM UTC.",
|
|
191
|
+
metadata: {
|
|
192
|
+
type: "project-knowledge",
|
|
193
|
+
category: "database"
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Environment Variables
|
|
199
|
+
```javascript
|
|
200
|
+
mcp__claude-recall__store_memory({
|
|
201
|
+
content: `Required environment variables:
|
|
202
|
+
- DATABASE_URL: postgres connection string
|
|
203
|
+
- REDIS_URL: redis://localhost:6379
|
|
204
|
+
- JWT_SECRET: from 1Password
|
|
205
|
+
- AWS_REGION: us-east-1
|
|
206
|
+
- LOG_LEVEL: info (prod) or debug (dev)`,
|
|
207
|
+
metadata: {
|
|
208
|
+
type: "project-knowledge",
|
|
209
|
+
category: "env_vars"
|
|
210
|
+
}
|
|
211
|
+
})
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Complex Decision Examples
|
|
215
|
+
|
|
216
|
+
### Architecture Decision
|
|
217
|
+
```javascript
|
|
218
|
+
mcp__claude-recall__store_memory({
|
|
219
|
+
content: `Decided on microservices architecture:
|
|
220
|
+
- User Service: authentication, profiles
|
|
221
|
+
- Product Service: catalog, inventory
|
|
222
|
+
- Order Service: cart, checkout, payments
|
|
223
|
+
- Communication: Event bus (RabbitMQ)
|
|
224
|
+
- API Gateway: Kong
|
|
225
|
+
- Reason: Team scaling, independent deployment`,
|
|
226
|
+
metadata: {
|
|
227
|
+
type: "devops",
|
|
228
|
+
category: "architecture",
|
|
229
|
+
pattern: "microservices",
|
|
230
|
+
decision_date: "2025-01-15"
|
|
231
|
+
}
|
|
232
|
+
})
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Technology Choice
|
|
236
|
+
```javascript
|
|
237
|
+
mcp__claude-recall__store_memory({
|
|
238
|
+
content: `Chose TypeScript over JavaScript:
|
|
239
|
+
- Type safety reduces runtime errors
|
|
240
|
+
- Better IDE support
|
|
241
|
+
- Easier refactoring
|
|
242
|
+
- Team already familiar
|
|
243
|
+
- Strict mode enabled for all files`,
|
|
244
|
+
metadata: {
|
|
245
|
+
type: "devops",
|
|
246
|
+
category: "tech_choice",
|
|
247
|
+
language: "typescript"
|
|
248
|
+
}
|
|
249
|
+
})
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Preference Override Examples
|
|
253
|
+
|
|
254
|
+
### Updating Previous Preference
|
|
255
|
+
```javascript
|
|
256
|
+
mcp__claude-recall__store_memory({
|
|
257
|
+
content: "FROM NOW ON: Use Vitest instead of Jest for new projects. Vitest is faster and has better ESM support.",
|
|
258
|
+
metadata: {
|
|
259
|
+
type: "preference",
|
|
260
|
+
category: "testing_framework",
|
|
261
|
+
overrides: "jest",
|
|
262
|
+
reason: "performance"
|
|
263
|
+
}
|
|
264
|
+
})
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Changing Workflow
|
|
268
|
+
```javascript
|
|
269
|
+
mcp__claude-recall__store_memory({
|
|
270
|
+
content: "UPDATED WORKFLOW: Now we're using trunk-based development instead of GitFlow. Feature flags for incomplete features. Direct commits to main allowed with CI passing.",
|
|
271
|
+
metadata: {
|
|
272
|
+
type: "devops",
|
|
273
|
+
category: "git_workflow",
|
|
274
|
+
overrides: "gitflow",
|
|
275
|
+
change_date: "2025-01-15"
|
|
276
|
+
}
|
|
277
|
+
})
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Template for Any Memory
|
|
281
|
+
|
|
282
|
+
```javascript
|
|
283
|
+
mcp__claude-recall__store_memory({
|
|
284
|
+
content: "[Clear, concise description of what you learned/decided]",
|
|
285
|
+
metadata: {
|
|
286
|
+
type: "[devops|preference|success|failure|correction|project-knowledge]",
|
|
287
|
+
category: "[specific category]",
|
|
288
|
+
// Optional fields:
|
|
289
|
+
priority: "[highest|high|medium|low]",
|
|
290
|
+
overrides: "[what this replaces]",
|
|
291
|
+
tools: ["tool1", "tool2"],
|
|
292
|
+
confidence: 0.85,
|
|
293
|
+
// Any other relevant context
|
|
294
|
+
}
|
|
295
|
+
})
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## Best Practices
|
|
299
|
+
|
|
300
|
+
1. **Be specific** - "Created auth with JWT" is better than "Made login work"
|
|
301
|
+
2. **Include context** - Why did it work? What was the problem?
|
|
302
|
+
3. **Add metadata** - Helps future searches find relevant memories
|
|
303
|
+
4. **Use consistent types** - Stick to the standard types (devops, preference, etc.)
|
|
304
|
+
5. **Override explicitly** - If changing previous decision, note what it overrides
|
|
305
|
+
6. **Include tools/versions** - Helps when debugging version-specific issues
|