cursor-ai-toolkit 1.0.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/README.md +148 -0
- package/bin/cli.js +304 -0
- package/commands/context/ask-clarification.md +215 -0
- package/commands/context/context-prune.md +201 -0
- package/commands/context/orchestrate.md +279 -0
- package/commands/context/smart-detection.md +272 -0
- package/commands/learning/generate-memories.md +270 -0
- package/commands/learning/generate-rules.md +175 -0
- package/commands/learning/self-heal.md +233 -0
- package/commands/learning/self-improve.md +229 -0
- package/package.json +35 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Auto-detect AC changes, multiple PRs needed, optimal workflow decisions
|
|
3
|
+
category: AI Self-Improvement
|
|
4
|
+
aliases: [detect, auto-detect]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Smart Detection - Intelligent Workflow Decisions
|
|
8
|
+
|
|
9
|
+
Automatic detection of changes, multiple PRs, and smart decision-making.
|
|
10
|
+
|
|
11
|
+
## 1. AC Change Detection
|
|
12
|
+
|
|
13
|
+
When acceptance criteria changes, I detect and update affected steps.
|
|
14
|
+
|
|
15
|
+
### How It Works
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Compare current AC with what was used for implementation
|
|
19
|
+
1. Fetch current Jira AC
|
|
20
|
+
2. Compare with AC stored when implementation started
|
|
21
|
+
3. Identify what changed
|
|
22
|
+
4. Determine affected steps
|
|
23
|
+
5. Suggest updates
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Detection Output
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
════════════════════════════════════════════════════════════════
|
|
30
|
+
⚠️ ACCEPTANCE CRITERIA CHANGED
|
|
31
|
+
════════════════════════════════════════════════════════════════
|
|
32
|
+
|
|
33
|
+
Original AC (when branch created):
|
|
34
|
+
✅ Display name shown when available
|
|
35
|
+
✅ Tooltip shows original name as title
|
|
36
|
+
✅ Fallback to original name when missing
|
|
37
|
+
|
|
38
|
+
Current AC (just fetched):
|
|
39
|
+
✅ Display name shown when available
|
|
40
|
+
✅ Tooltip shows original name as title
|
|
41
|
+
✅ Fallback to original name when missing
|
|
42
|
+
🆕 Display name should be bold (NEW)
|
|
43
|
+
🆕 Add analytics tracking for display name views (NEW)
|
|
44
|
+
|
|
45
|
+
════════════════════════════════════════════════════════════════
|
|
46
|
+
AFFECTED STEPS
|
|
47
|
+
════════════════════════════════════════════════════════════════
|
|
48
|
+
|
|
49
|
+
The following need updates:
|
|
50
|
+
|
|
51
|
+
1. 📝 Implementation
|
|
52
|
+
- Add bold styling to display name
|
|
53
|
+
- Add analytics tracking
|
|
54
|
+
|
|
55
|
+
2. 📋 How to Test (already posted)
|
|
56
|
+
- Needs update to include new AC items
|
|
57
|
+
|
|
58
|
+
3. 🔍 Self-Review
|
|
59
|
+
- Re-run with new criteria
|
|
60
|
+
|
|
61
|
+
Actions:
|
|
62
|
+
A) Update implementation + How to Test
|
|
63
|
+
B) Update How to Test only (implementation pending)
|
|
64
|
+
C) Ignore (AC change not relevant)
|
|
65
|
+
|
|
66
|
+
Choose: (a/b/c)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Auto-Update How to Test
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# When AC changes, I can auto-update the Jira comment
|
|
73
|
+
jira issue comment add {TICKET_ID} '**How to Test (Updated):**
|
|
74
|
+
|
|
75
|
+
[Previous steps remain valid]
|
|
76
|
+
|
|
77
|
+
**New Items:**
|
|
78
|
+
5. **Verify Bold Styling:**
|
|
79
|
+
- Display name should appear in bold
|
|
80
|
+
|
|
81
|
+
6. **Verify Analytics:**
|
|
82
|
+
- Open browser dev tools → Network tab
|
|
83
|
+
- Confirm tracking event fires on display name view
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
_Updated due to AC changes on {DATE}_'
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 2. Multiple PRs Intelligence
|
|
90
|
+
|
|
91
|
+
When multiple PRs are attached to a ticket, I determine the main one.
|
|
92
|
+
|
|
93
|
+
### Detection Logic
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Priority order for "main PR":
|
|
97
|
+
1. PR with most recent activity
|
|
98
|
+
2. PR with most files changed
|
|
99
|
+
3. PR created by you
|
|
100
|
+
4. PR with "main" or "primary" in title
|
|
101
|
+
5. PR with most review comments (indicates active review)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Detection Output
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
════════════════════════════════════════════════════════════════
|
|
108
|
+
🔗 MULTIPLE PRs DETECTED FOR TICKET-123
|
|
109
|
+
════════════════════════════════════════════════════════════════
|
|
110
|
+
|
|
111
|
+
Found 3 PRs linked to this ticket:
|
|
112
|
+
|
|
113
|
+
| PR | Title | Author | Status | Files | Activity |
|
|
114
|
+
|----|-------|--------|--------|-------|----------|
|
|
115
|
+
| #23043 | [TICKET-123] Display name support | you | Draft | 6 | 2h ago |
|
|
116
|
+
| #23010 | [TICKET-123] Backend integration | backend-dev | Merged | 3 | 3d ago |
|
|
117
|
+
| #22980 | [TICKET-123] Initial prototype | you | Closed | 2 | 1w ago |
|
|
118
|
+
|
|
119
|
+
════════════════════════════════════════════════════════════════
|
|
120
|
+
ANALYSIS
|
|
121
|
+
════════════════════════════════════════════════════════════════
|
|
122
|
+
|
|
123
|
+
🎯 Main PR: #23043 (Display name support)
|
|
124
|
+
Reason: Most recent activity, authored by you, draft status
|
|
125
|
+
|
|
126
|
+
📦 Backend PR: #23010 (already merged)
|
|
127
|
+
Context: Backend changes are complete, frontend depends on this
|
|
128
|
+
|
|
129
|
+
🗑️ Obsolete: #22980 (closed prototype)
|
|
130
|
+
Can be ignored
|
|
131
|
+
|
|
132
|
+
Working with PR #23043. Correct? (y/n)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Smart Context Gathering
|
|
136
|
+
|
|
137
|
+
When multiple PRs exist, I gather context from all:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
From merged PR #23010 (backend):
|
|
141
|
+
- New field: display_name added to API response
|
|
142
|
+
- Optional field, may be null
|
|
143
|
+
|
|
144
|
+
From closed PR #22980 (prototype):
|
|
145
|
+
- Initial approach: inline styling
|
|
146
|
+
- Rejected because: didn't follow component patterns
|
|
147
|
+
|
|
148
|
+
Applied to current PR #23043:
|
|
149
|
+
- Use display_name from backend (#23010)
|
|
150
|
+
- Follow component patterns (learned from #22980)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 3. PR Size Alerts
|
|
154
|
+
|
|
155
|
+
When a PR becomes too large, I suggest splitting.
|
|
156
|
+
|
|
157
|
+
### Thresholds
|
|
158
|
+
|
|
159
|
+
| Metric | Warning | Critical |
|
|
160
|
+
| -------------- | -------- | -------- |
|
|
161
|
+
| Lines changed | > 200 | > 400 |
|
|
162
|
+
| Files changed | > 8 | > 15 |
|
|
163
|
+
| Review time | > 20 min | > 45 min |
|
|
164
|
+
| Teams affected | > 2 | > 3 |
|
|
165
|
+
|
|
166
|
+
### Alert Output
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
════════════════════════════════════════════════════════════════
|
|
170
|
+
⚠️ PR SIZE ALERT
|
|
171
|
+
════════════════════════════════════════════════════════════════
|
|
172
|
+
|
|
173
|
+
PR #23043 is getting large:
|
|
174
|
+
|
|
175
|
+
📊 Lines: 380 (Warning: > 200)
|
|
176
|
+
📁 Files: 12 (Critical: > 8)
|
|
177
|
+
👥 Teams: 3 (@YourOrg/team-a, @YourOrg/team-b, @YourCompany/core-oxide)
|
|
178
|
+
⏱️ Est. Review: ~35 minutes
|
|
179
|
+
|
|
180
|
+
════════════════════════════════════════════════════════════════
|
|
181
|
+
RECOMMENDATIONS
|
|
182
|
+
════════════════════════════════════════════════════════════════
|
|
183
|
+
|
|
184
|
+
1. 🔀 Split by CODEOWNERS (recommended)
|
|
185
|
+
Run: /split-pr 23043
|
|
186
|
+
|
|
187
|
+
2. 📦 Split by feature
|
|
188
|
+
- PR-A: Display name support (core)
|
|
189
|
+
- PR-B: Tooltip updates (UI)
|
|
190
|
+
- PR-C: Analytics (tracking)
|
|
191
|
+
|
|
192
|
+
3. 📝 Keep as-is with detailed description
|
|
193
|
+
Add clear sections explaining each change
|
|
194
|
+
|
|
195
|
+
Choose: (1/2/3) or ignore
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## 4. Process Change Detection
|
|
199
|
+
|
|
200
|
+
When team processes change, I adapt.
|
|
201
|
+
|
|
202
|
+
### What I Monitor
|
|
203
|
+
|
|
204
|
+
- PR template changes
|
|
205
|
+
- CODEOWNERS updates
|
|
206
|
+
- New lint rules
|
|
207
|
+
- Testing requirements
|
|
208
|
+
- Documentation requirements
|
|
209
|
+
|
|
210
|
+
### Adaptation Output
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
════════════════════════════════════════════════════════════════
|
|
214
|
+
🔄 PROCESS CHANGE DETECTED
|
|
215
|
+
════════════════════════════════════════════════════════════════
|
|
216
|
+
|
|
217
|
+
I noticed changes in your project:
|
|
218
|
+
|
|
219
|
+
1. **CODEOWNERS Updated**
|
|
220
|
+
- src/features/checkout/ now owned by @YourOrg/team-a-v2
|
|
221
|
+
- Will use new team for reviews
|
|
222
|
+
|
|
223
|
+
2. **New Lint Rule Added**
|
|
224
|
+
- useRef must have explicit type
|
|
225
|
+
- Will check in self-review
|
|
226
|
+
|
|
227
|
+
3. **PR Template Updated**
|
|
228
|
+
- Now requires "Breaking Changes" section
|
|
229
|
+
- Will include in PR creation
|
|
230
|
+
|
|
231
|
+
Updating my workflow to reflect these changes.
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## 5. Dependency Intelligence
|
|
235
|
+
|
|
236
|
+
Detect when changes depend on other work.
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
════════════════════════════════════════════════════════════════
|
|
240
|
+
🔗 DEPENDENCIES DETECTED
|
|
241
|
+
════════════════════════════════════════════════════════════════
|
|
242
|
+
|
|
243
|
+
Your changes depend on:
|
|
244
|
+
|
|
245
|
+
1. **Backend PR (BE-789)**
|
|
246
|
+
Status: ✅ Merged to staging
|
|
247
|
+
→ Safe to proceed
|
|
248
|
+
|
|
249
|
+
2. **Shared Types (@yourcompany-web/types)**
|
|
250
|
+
Status: ⚠️ PR #22900 pending
|
|
251
|
+
→ May need to wait or use type override
|
|
252
|
+
|
|
253
|
+
3. **Feature Flag (statsig)**
|
|
254
|
+
Status: ✅ Enabled for internal
|
|
255
|
+
→ Can test on internal-com.yourcompany.io
|
|
256
|
+
|
|
257
|
+
Recommendations:
|
|
258
|
+
- Proceed with implementation
|
|
259
|
+
- Test on staging (backend ready)
|
|
260
|
+
- Note type dependency in PR description
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## AI Execution
|
|
264
|
+
|
|
265
|
+
These detections run automatically during `/full-flow`:
|
|
266
|
+
|
|
267
|
+
1. **Before implementation**: Check AC for changes
|
|
268
|
+
2. **During PR creation**: Detect size issues
|
|
269
|
+
3. **When fetching ticket**: Identify multiple PRs
|
|
270
|
+
4. **Throughout**: Monitor process changes
|
|
271
|
+
|
|
272
|
+
I'll alert you when action is needed, otherwise proceed silently.
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Convert learned patterns into persistent Cursor memories
|
|
3
|
+
category: AI Self-Improvement
|
|
4
|
+
aliases: [memories, remember, learn-patterns]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Generate Memories - Persistent Learning
|
|
8
|
+
|
|
9
|
+
Convert session learnings, user preferences, and established patterns into Cursor's memory system for cross-session persistence.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/generate-memories # Review and generate from current session
|
|
15
|
+
/generate-memories --from-session # Extract from this conversation
|
|
16
|
+
/generate-memories --from-rules # Extract key rules as memories
|
|
17
|
+
/generate-memories --list # Show existing memories
|
|
18
|
+
/generate-memories --prune # Remove outdated memories
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## What Gets Memorized
|
|
22
|
+
|
|
23
|
+
### User Preferences
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
"Always use useWatch instead of watch()"
|
|
27
|
+
"Prefer AbortController for async cleanup"
|
|
28
|
+
"Skip Confluence docs in full-flow"
|
|
29
|
+
"Use Tampa Airport for testing"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Project Patterns
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
"This project uses styled-components with S.* namespace"
|
|
36
|
+
"Forms require OXForm wrapper"
|
|
37
|
+
"Design tokens from core-oxide are mandatory"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Common Decisions
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
"Empty string from API = treat as missing"
|
|
44
|
+
"Use biggerThanSmall for mobile breakpoint"
|
|
45
|
+
"Keep originalName for modal title preservation"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Team Conventions
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
"PR size should be < 15 files"
|
|
52
|
+
"Always add How to Test section"
|
|
53
|
+
"Commit messages without ticket prefixes"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Memory Categories
|
|
57
|
+
|
|
58
|
+
| Category | Examples | Persistence |
|
|
59
|
+
| -------------- | ------------------------- | -------------- |
|
|
60
|
+
| **Preference** | "Always X over Y" | Long-term |
|
|
61
|
+
| **Pattern** | "Use this approach for Z" | Long-term |
|
|
62
|
+
| **Context** | "Current project uses..." | Project-scoped |
|
|
63
|
+
| **Temporary** | "Currently working on..." | Session-only |
|
|
64
|
+
|
|
65
|
+
## Output Format
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
════════════════════════════════════════════════════════════════
|
|
69
|
+
MEMORY GENERATION
|
|
70
|
+
════════════════════════════════════════════════════════════════
|
|
71
|
+
|
|
72
|
+
📊 SESSION ANALYSIS
|
|
73
|
+
|
|
74
|
+
Patterns detected in this session:
|
|
75
|
+
1. Used useWatch 5 times (consistent)
|
|
76
|
+
2. Applied AbortController pattern 3 times
|
|
77
|
+
3. Skipped Confluence docs
|
|
78
|
+
4. Used Tampa Airport for all test scenarios
|
|
79
|
+
|
|
80
|
+
Preferences expressed:
|
|
81
|
+
1. "always use useWatch" (explicit)
|
|
82
|
+
2. "keep it simple" (implied)
|
|
83
|
+
3. "no ticket prefixes in commits" (correction)
|
|
84
|
+
|
|
85
|
+
Corrections made:
|
|
86
|
+
1. Changed watch() → useWatch (I was wrong)
|
|
87
|
+
2. Removed hardcoded px values (reminded)
|
|
88
|
+
|
|
89
|
+
════════════════════════════════════════════════════════════════
|
|
90
|
+
PROPOSED MEMORIES
|
|
91
|
+
════════════════════════════════════════════════════════════════
|
|
92
|
+
|
|
93
|
+
📝 NEW MEMORIES TO CREATE
|
|
94
|
+
|
|
95
|
+
1. [Preference] React Hook Form
|
|
96
|
+
"Use useWatch hook instead of methods.watch() to prevent
|
|
97
|
+
unnecessary re-renders in form components."
|
|
98
|
+
|
|
99
|
+
Create? (y/n)
|
|
100
|
+
|
|
101
|
+
2. [Pattern] Async Effect Cleanup
|
|
102
|
+
"All useEffect hooks with async operations must use
|
|
103
|
+
AbortController for cleanup and check signal.aborted
|
|
104
|
+
before setState."
|
|
105
|
+
|
|
106
|
+
Create? (y/n)
|
|
107
|
+
|
|
108
|
+
3. [Preference] Test Locations
|
|
109
|
+
"Use Tampa Airport (TPA) as default location for testing
|
|
110
|
+
car rental flows."
|
|
111
|
+
|
|
112
|
+
Create? (y/n)
|
|
113
|
+
|
|
114
|
+
4. [Preference] Commit Messages
|
|
115
|
+
"Keep commit messages natural and simple. No ticket
|
|
116
|
+
prefixes (fix:, feat:), no Jira IDs, no PR references."
|
|
117
|
+
|
|
118
|
+
Create? (y/n)
|
|
119
|
+
|
|
120
|
+
════════════════════════════════════════════════════════════════
|
|
121
|
+
EXISTING MEMORIES TO UPDATE
|
|
122
|
+
════════════════════════════════════════════════════════════════
|
|
123
|
+
|
|
124
|
+
📝 MEMORY UPDATES
|
|
125
|
+
|
|
126
|
+
1. [Update] "Common review issues in YourCompany codebase"
|
|
127
|
+
Current: Lists 5 issues
|
|
128
|
+
Add: "Empty string from API should be treated as missing"
|
|
129
|
+
|
|
130
|
+
Update? (y/n)
|
|
131
|
+
|
|
132
|
+
════════════════════════════════════════════════════════════════
|
|
133
|
+
OUTDATED MEMORIES
|
|
134
|
+
════════════════════════════════════════════════════════════════
|
|
135
|
+
|
|
136
|
+
⚠️ POTENTIALLY OUTDATED
|
|
137
|
+
|
|
138
|
+
1. "Use Redux for global state"
|
|
139
|
+
Last used: 6 months ago
|
|
140
|
+
Conflict: Project now uses React Query
|
|
141
|
+
|
|
142
|
+
Delete? (y/n)
|
|
143
|
+
|
|
144
|
+
════════════════════════════════════════════════════════════════
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Memory Format
|
|
148
|
+
|
|
149
|
+
Each memory should be:
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
**Title:** {Short descriptive title}
|
|
153
|
+
|
|
154
|
+
**Content:** {One paragraph, max 200 words}
|
|
155
|
+
|
|
156
|
+
- What the preference/pattern is
|
|
157
|
+
- When to apply it
|
|
158
|
+
- Brief rationale (optional)
|
|
159
|
+
|
|
160
|
+
**Scope:**
|
|
161
|
+
|
|
162
|
+
- Global (all projects)
|
|
163
|
+
- Project (this workspace)
|
|
164
|
+
- Temporary (this session)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## AI Execution
|
|
168
|
+
|
|
169
|
+
When user runs `/generate-memories`:
|
|
170
|
+
|
|
171
|
+
### Step 1: Analyze Session
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
1. Review conversation history
|
|
175
|
+
2. Identify patterns (repeated actions)
|
|
176
|
+
3. Extract explicit preferences ("always...", "never...")
|
|
177
|
+
4. Note corrections (I was wrong about...)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Step 2: Categorize
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
1. User Preferences (explicit requests)
|
|
184
|
+
2. Learned Patterns (consistent behavior)
|
|
185
|
+
3. Corrections (mistakes to avoid)
|
|
186
|
+
4. Context (project-specific)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Step 3: Propose Memories
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
1. Draft memory for each finding
|
|
193
|
+
2. Check against existing memories
|
|
194
|
+
3. Identify updates vs new
|
|
195
|
+
4. Identify conflicts
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Step 4: User Approval
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
1. Present each memory
|
|
202
|
+
2. Get y/n approval
|
|
203
|
+
3. Create/update via update_memory tool
|
|
204
|
+
4. Confirm creation
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Integration with Self-Improve
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
211
|
+
│ SELF-IMPROVEMENT LOOP │
|
|
212
|
+
├─────────────────────────────────────────────────────────────┤
|
|
213
|
+
│ │
|
|
214
|
+
│ Session Activity │
|
|
215
|
+
│ ↓ │
|
|
216
|
+
│ Pattern Detection (/self-improve) │
|
|
217
|
+
│ ↓ │
|
|
218
|
+
│ Memory Generation (/generate-memories) │
|
|
219
|
+
│ ↓ │
|
|
220
|
+
│ Cross-Session Persistence (Cursor Memories) │
|
|
221
|
+
│ ↓ │
|
|
222
|
+
│ Future Sessions (Auto-applied) │
|
|
223
|
+
│ │
|
|
224
|
+
└─────────────────────────────────────────────────────────────┘
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Memory Lifecycle
|
|
228
|
+
|
|
229
|
+
### Creation
|
|
230
|
+
|
|
231
|
+
- From explicit user request
|
|
232
|
+
- From repeated patterns
|
|
233
|
+
- From corrections
|
|
234
|
+
|
|
235
|
+
### Usage
|
|
236
|
+
|
|
237
|
+
- Cited when applied: [[memory:ID]]
|
|
238
|
+
- Guides behavior silently
|
|
239
|
+
- Overridden by explicit user instruction
|
|
240
|
+
|
|
241
|
+
### Maintenance
|
|
242
|
+
|
|
243
|
+
- Pruned if contradicted
|
|
244
|
+
- Updated if augmented
|
|
245
|
+
- Deleted if outdated
|
|
246
|
+
|
|
247
|
+
## Best Practices
|
|
248
|
+
|
|
249
|
+
1. **Quality over Quantity**
|
|
250
|
+
- Only memorize genuinely useful patterns
|
|
251
|
+
- Avoid obvious/trivial preferences
|
|
252
|
+
2. **Be Specific**
|
|
253
|
+
|
|
254
|
+
- "Use useWatch for form fields" (good)
|
|
255
|
+
- "Forms are important" (too vague)
|
|
256
|
+
|
|
257
|
+
3. **Include Rationale**
|
|
258
|
+
|
|
259
|
+
- "Use X because Y" is better than just "Use X"
|
|
260
|
+
|
|
261
|
+
4. **Scope Appropriately**
|
|
262
|
+
|
|
263
|
+
- Global: True for all projects
|
|
264
|
+
- Project: Specific to this codebase
|
|
265
|
+
- Session: Just for current task
|
|
266
|
+
|
|
267
|
+
5. **Review Periodically**
|
|
268
|
+
- `/generate-memories --prune` monthly
|
|
269
|
+
- Remove outdated patterns
|
|
270
|
+
- Update evolved practices
|