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.
@@ -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