@jmylchreest/aide-plugin 0.0.26 → 0.0.28
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/package.json +1 -1
- package/skills/code-search/SKILL.md +10 -2
- package/skills/decide/SKILL.md +31 -15
- package/skills/design/SKILL.md +24 -8
- package/skills/implement/SKILL.md +15 -6
- package/skills/memorise/SKILL.md +25 -16
- package/skills/plan-swarm/SKILL.md +11 -2
- package/skills/ralph/SKILL.md +82 -57
- package/skills/swarm/SKILL.md +71 -31
- package/skills/worktree-resolve/SKILL.md +20 -4
- package/src/cli/install.ts +2 -2
- package/src/cli/mcp.ts +1 -1
- package/src/core/session-init.ts +11 -0
- package/src/opencode/index.ts +1 -1
package/package.json
CHANGED
|
@@ -29,6 +29,7 @@ Search for code symbols (functions, classes, methods, types) and find their call
|
|
|
29
29
|
Find functions, classes, methods, interfaces, and types by name or signature.
|
|
30
30
|
|
|
31
31
|
**Example usage:**
|
|
32
|
+
|
|
32
33
|
```
|
|
33
34
|
Search for: "getUserById"
|
|
34
35
|
→ Uses code_search tool
|
|
@@ -40,6 +41,7 @@ Search for: "getUserById"
|
|
|
40
41
|
Find all places where a symbol is called/used.
|
|
41
42
|
|
|
42
43
|
**Example usage:**
|
|
44
|
+
|
|
43
45
|
```
|
|
44
46
|
Who calls "getUserById"?
|
|
45
47
|
→ Uses code_references tool
|
|
@@ -51,6 +53,7 @@ Who calls "getUserById"?
|
|
|
51
53
|
List all symbols defined in a specific file.
|
|
52
54
|
|
|
53
55
|
**Example usage:**
|
|
56
|
+
|
|
54
57
|
```
|
|
55
58
|
What functions are in src/auth.ts?
|
|
56
59
|
→ Uses code_symbols tool
|
|
@@ -62,6 +65,7 @@ What functions are in src/auth.ts?
|
|
|
62
65
|
Check if the codebase has been indexed.
|
|
63
66
|
|
|
64
67
|
**Example usage:**
|
|
68
|
+
|
|
65
69
|
```
|
|
66
70
|
Is the code indexed?
|
|
67
71
|
→ Uses code_stats tool
|
|
@@ -72,7 +76,9 @@ Is the code indexed?
|
|
|
72
76
|
|
|
73
77
|
1. **First, check if codebase is indexed:**
|
|
74
78
|
- Use `code_stats` to verify indexing
|
|
75
|
-
- If not indexed, tell user to run:
|
|
79
|
+
- If not indexed, tell user to run: `./.aide/bin/aide code index`
|
|
80
|
+
|
|
81
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
76
82
|
|
|
77
83
|
2. **Search for symbols:**
|
|
78
84
|
- Use `code_search` with the symbol name or pattern
|
|
@@ -91,18 +97,20 @@ Is the code indexed?
|
|
|
91
97
|
**User:** "Where is the authentication function?"
|
|
92
98
|
|
|
93
99
|
**Assistant action:**
|
|
100
|
+
|
|
94
101
|
1. Use `code_search` with query "auth" or "authenticate"
|
|
95
102
|
2. Show matching functions with file locations
|
|
96
103
|
|
|
97
104
|
**User:** "Who calls authenticateUser?"
|
|
98
105
|
|
|
99
106
|
**Assistant action:**
|
|
107
|
+
|
|
100
108
|
1. Use `code_references` with symbol "authenticateUser"
|
|
101
109
|
2. Show all call sites grouped by file
|
|
102
110
|
|
|
103
111
|
## Notes
|
|
104
112
|
|
|
105
|
-
- Code must be indexed first:
|
|
113
|
+
- Code must be indexed first: `./.aide/bin/aide code index`
|
|
106
114
|
- Indexing is incremental - only changed files are re-parsed
|
|
107
115
|
- Supports: TypeScript, JavaScript, Go, Python, Rust, and more
|
|
108
116
|
- For file watching: `AIDE_CODE_WATCH=1 claude`
|
package/skills/decide/SKILL.md
CHANGED
|
@@ -10,7 +10,7 @@ triggers:
|
|
|
10
10
|
- which option
|
|
11
11
|
- trade-offs
|
|
12
12
|
- pros and cons
|
|
13
|
-
allowed-tools: Bash(aide decision set *)
|
|
13
|
+
allowed-tools: Bash(./.aide/bin/aide decision set *)
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# Decision Mode
|
|
@@ -28,12 +28,14 @@ When facing a significant technical decision, this workflow guides you through s
|
|
|
28
28
|
### Phase 1: IDENTIFY
|
|
29
29
|
|
|
30
30
|
Ask the user to clarify:
|
|
31
|
+
|
|
31
32
|
- What decision needs to be made?
|
|
32
33
|
- What is the context? (new system, migration, constraint?)
|
|
33
34
|
- What are the requirements? (scale, team, timeline?)
|
|
34
35
|
- Are there any hard constraints?
|
|
35
36
|
|
|
36
37
|
**Example questions:**
|
|
38
|
+
|
|
37
39
|
- "What technical decision do you need to make?"
|
|
38
40
|
- "What problem are you trying to solve?"
|
|
39
41
|
- "Are there any constraints I should know about?"
|
|
@@ -41,11 +43,13 @@ Ask the user to clarify:
|
|
|
41
43
|
### Phase 2: EXPLORE
|
|
42
44
|
|
|
43
45
|
Research and propose options:
|
|
46
|
+
|
|
44
47
|
- List 3-5 viable alternatives
|
|
45
48
|
- Include the obvious choices AND less common ones
|
|
46
49
|
- For each option, note what it's best suited for
|
|
47
50
|
|
|
48
51
|
**Output format:**
|
|
52
|
+
|
|
49
53
|
```markdown
|
|
50
54
|
## Options
|
|
51
55
|
|
|
@@ -62,22 +66,25 @@ Research and propose options:
|
|
|
62
66
|
### Phase 3: ANALYZE
|
|
63
67
|
|
|
64
68
|
For each option, evaluate:
|
|
69
|
+
|
|
65
70
|
- **Pros**: What are the benefits?
|
|
66
71
|
- **Cons**: What are the drawbacks?
|
|
67
72
|
- **Fit**: How well does it match the requirements?
|
|
68
73
|
|
|
69
74
|
**Output format:**
|
|
75
|
+
|
|
70
76
|
```markdown
|
|
71
77
|
## Analysis
|
|
72
78
|
|
|
73
|
-
| Option
|
|
74
|
-
|
|
75
|
-
| Option A | Fast, simple | Limited scale
|
|
76
|
-
| Option B | Scalable
|
|
77
|
-
| Option C | Flexible
|
|
79
|
+
| Option | Pros | Cons | Fit |
|
|
80
|
+
| -------- | ------------ | -------------- | --------------------- |
|
|
81
|
+
| Option A | Fast, simple | Limited scale | Good for MVP |
|
|
82
|
+
| Option B | Scalable | Complex setup | Good for growth |
|
|
83
|
+
| Option C | Flexible | Learning curve | Good if team knows it |
|
|
78
84
|
```
|
|
79
85
|
|
|
80
86
|
Consider:
|
|
87
|
+
|
|
81
88
|
- Complexity (implementation, maintenance)
|
|
82
89
|
- Team familiarity
|
|
83
90
|
- Scalability
|
|
@@ -93,6 +100,7 @@ Provide a clear recommendation with rationale:
|
|
|
93
100
|
## Recommendation
|
|
94
101
|
|
|
95
102
|
I recommend **[Option]** because:
|
|
103
|
+
|
|
96
104
|
1. [Primary reason tied to requirements]
|
|
97
105
|
2. [Secondary benefit]
|
|
98
106
|
3. [Risk mitigation]
|
|
@@ -101,6 +109,7 @@ This choice [addresses constraint X] while [enabling future Y].
|
|
|
101
109
|
```
|
|
102
110
|
|
|
103
111
|
Ask for confirmation:
|
|
112
|
+
|
|
104
113
|
- "Does this recommendation align with your goals?"
|
|
105
114
|
- "Would you like to proceed with this decision?"
|
|
106
115
|
- "Any concerns before we record this?"
|
|
@@ -108,31 +117,36 @@ Ask for confirmation:
|
|
|
108
117
|
### Phase 5: CONFIRM
|
|
109
118
|
|
|
110
119
|
Wait for explicit user approval before recording:
|
|
120
|
+
|
|
111
121
|
- User says "yes", "go ahead", "let's do it" → proceed to record
|
|
112
122
|
- User has concerns → address them, refine recommendation
|
|
113
123
|
- User wants different option → adjust and confirm
|
|
114
124
|
|
|
115
125
|
### Phase 6: RECORD
|
|
116
126
|
|
|
117
|
-
Store the decision using the
|
|
127
|
+
Store the decision using the `./.aide/bin/aide decision set` CLI command via Bash:
|
|
118
128
|
|
|
119
129
|
```bash
|
|
120
|
-
aide decision set "<topic-slug>" "<decision summary>" --rationale="<why this was chosen>"
|
|
130
|
+
./.aide/bin/aide decision set "<topic-slug>" "<decision summary>" --rationale="<why this was chosen>"
|
|
121
131
|
```
|
|
122
132
|
|
|
133
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
134
|
+
|
|
123
135
|
**Topic naming:**
|
|
136
|
+
|
|
124
137
|
- Use kebab-case: `auth-strategy`, `database-choice`, `api-design`
|
|
125
138
|
- Be specific: `user-auth-method` not just `auth`
|
|
126
139
|
- Include scope if relevant: `payments-queue-strategy`
|
|
127
140
|
|
|
128
141
|
**Verify** the decision was stored:
|
|
142
|
+
|
|
129
143
|
```bash
|
|
130
|
-
aide decision get "<topic-slug>"
|
|
144
|
+
./.aide/bin/aide decision get "<topic-slug>"
|
|
131
145
|
```
|
|
132
146
|
|
|
133
147
|
## Example Session
|
|
134
148
|
|
|
135
|
-
|
|
149
|
+
````
|
|
136
150
|
User: help me decide how to handle background jobs
|
|
137
151
|
|
|
138
152
|
Claude: [IDENTIFY]
|
|
@@ -183,22 +197,23 @@ Do you want to proceed with this decision?
|
|
|
183
197
|
User: yes, let's go with BullMQ
|
|
184
198
|
|
|
185
199
|
Claude: [RECORD]
|
|
186
|
-
[Calls aide decision set via Bash]
|
|
200
|
+
[Calls ./.aide/bin/aide decision set via Bash]
|
|
187
201
|
|
|
188
202
|
```bash
|
|
189
|
-
aide decision set "background-jobs-queue" "Use BullMQ with Redis for background job processing (emails, webhooks)" --rationale="Native TypeScript support, built-in retries/delays/rate-limiting, Bull Board for visibility, 10K/day well within capacity. Rejected: SQS+Lambda (AWS lock-in, cold starts), DB queue (limited scale), RabbitMQ (over-engineered)"
|
|
190
|
-
|
|
203
|
+
./.aide/bin/aide decision set "background-jobs-queue" "Use BullMQ with Redis for background job processing (emails, webhooks)" --rationale="Native TypeScript support, built-in retries/delays/rate-limiting, Bull Board for visibility, 10K/day well within capacity. Rejected: SQS+Lambda (AWS lock-in, cold starts), DB queue (limited scale), RabbitMQ (over-engineered)"
|
|
204
|
+
````
|
|
191
205
|
|
|
192
206
|
Decision recorded. Future sessions will follow this architectural choice.
|
|
207
|
+
|
|
193
208
|
```
|
|
194
209
|
|
|
195
210
|
## Integration
|
|
196
211
|
|
|
197
|
-
Decisions stored via
|
|
212
|
+
Decisions stored via `./.aide/bin/aide decision set` are:
|
|
198
213
|
1. Persisted in the aide memory database
|
|
199
214
|
2. Injected into future session contexts at startup
|
|
200
215
|
3. Visible to swarm agents (they won't contradict decisions)
|
|
201
|
-
4. Queryable via
|
|
216
|
+
4. Queryable via `./.aide/bin/aide decision get`, `./.aide/bin/aide decision list`, or the MCP tools `decision_get`/`decision_list`
|
|
202
217
|
|
|
203
218
|
## When to Use This Skill
|
|
204
219
|
|
|
@@ -223,3 +238,4 @@ Decisions can be superseded:
|
|
|
223
238
|
1. Run `/aide:decide` again for the same topic
|
|
224
239
|
2. New decision replaces old (history preserved)
|
|
225
240
|
3. Use `mcp__plugin_aide_aide__decision_history` to see evolution
|
|
241
|
+
```
|
package/skills/design/SKILL.md
CHANGED
|
@@ -21,6 +21,7 @@ Output a technical design specification that downstream SDLC stages can consume.
|
|
|
21
21
|
## Purpose
|
|
22
22
|
|
|
23
23
|
Create a structured design document that defines:
|
|
24
|
+
|
|
24
25
|
1. **What** to build (interfaces, types, components)
|
|
25
26
|
2. **How** it fits together (data flow, interactions)
|
|
26
27
|
3. **Why** key decisions were made (rationale)
|
|
@@ -31,6 +32,7 @@ Create a structured design document that defines:
|
|
|
31
32
|
### Step 1: Understand the Request
|
|
32
33
|
|
|
33
34
|
Read the request and identify:
|
|
35
|
+
|
|
34
36
|
- Core functionality required
|
|
35
37
|
- Constraints (tech stack, patterns, performance)
|
|
36
38
|
- Integration points with existing code
|
|
@@ -88,13 +90,15 @@ Request → Controller → Service → Repository → Database
|
|
|
88
90
|
Store architectural decisions for future reference:
|
|
89
91
|
|
|
90
92
|
```bash
|
|
91
|
-
aide decision set "<feature>-storage" "PostgreSQL with JSONB for metadata" \
|
|
93
|
+
./.aide/bin/aide decision set "<feature>-storage" "PostgreSQL with JSONB for metadata" \
|
|
92
94
|
--rationale="Need flexible schema for user preferences"
|
|
93
95
|
|
|
94
|
-
aide decision set "<feature>-auth" "JWT with refresh tokens" \
|
|
96
|
+
./.aide/bin/aide decision set "<feature>-auth" "JWT with refresh tokens" \
|
|
95
97
|
--rationale="Stateless auth, mobile client support"
|
|
96
98
|
```
|
|
97
99
|
|
|
100
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
101
|
+
|
|
98
102
|
### Step 6: Define Acceptance Criteria
|
|
99
103
|
|
|
100
104
|
List specific, testable criteria for the TEST stage:
|
|
@@ -117,58 +121,68 @@ List specific, testable criteria for the TEST stage:
|
|
|
117
121
|
# Design: [Feature Name]
|
|
118
122
|
|
|
119
123
|
## Overview
|
|
124
|
+
|
|
120
125
|
[1-2 sentence summary of what this feature does]
|
|
121
126
|
|
|
122
127
|
## Interfaces
|
|
123
128
|
|
|
124
129
|
### [Interface/Type Name]
|
|
130
|
+
|
|
125
131
|
\`\`\`typescript
|
|
126
132
|
// Interface definition with comments
|
|
127
133
|
\`\`\`
|
|
128
134
|
|
|
129
135
|
## Data Flow
|
|
136
|
+
|
|
130
137
|
[Diagram or description of component interactions]
|
|
131
138
|
|
|
132
139
|
## Key Decisions
|
|
133
140
|
|
|
134
|
-
| Decision | Choice
|
|
135
|
-
|
|
136
|
-
| Storage
|
|
137
|
-
| Auth
|
|
141
|
+
| Decision | Choice | Rationale |
|
|
142
|
+
| -------- | ---------- | --------- |
|
|
143
|
+
| Storage | PostgreSQL | [why] |
|
|
144
|
+
| Auth | JWT | [why] |
|
|
138
145
|
|
|
139
146
|
## Acceptance Criteria
|
|
147
|
+
|
|
140
148
|
- [ ] Criterion 1
|
|
141
149
|
- [ ] Criterion 2
|
|
142
150
|
- [ ] Criterion 3
|
|
143
151
|
|
|
144
152
|
## Files to Create/Modify
|
|
153
|
+
|
|
145
154
|
- `path/to/file.ts` - [purpose]
|
|
146
155
|
- `path/to/test.ts` - [test scope]
|
|
147
156
|
|
|
148
157
|
## Dependencies
|
|
158
|
+
|
|
149
159
|
- [External packages needed]
|
|
150
160
|
- [Internal modules to import]
|
|
151
161
|
|
|
152
162
|
## Out of Scope
|
|
163
|
+
|
|
153
164
|
- [Explicitly excluded items]
|
|
154
165
|
```
|
|
155
166
|
|
|
156
167
|
## Failure Handling
|
|
157
168
|
|
|
158
169
|
### Unclear Requirements
|
|
170
|
+
|
|
159
171
|
1. List specific ambiguities
|
|
160
172
|
2. State assumptions you're making
|
|
161
|
-
3. Record assumptions:
|
|
173
|
+
3. Record assumptions: `./.aide/bin/aide memory add --category=decision "Assumed X because Y"`
|
|
162
174
|
4. Proceed with reasonable defaults
|
|
163
175
|
|
|
164
176
|
### Conflicting Patterns Found
|
|
177
|
+
|
|
165
178
|
1. Document the conflicting patterns
|
|
166
179
|
2. Choose one and record the decision:
|
|
167
180
|
```bash
|
|
168
|
-
aide decision set "<topic>" "<choice>" --rationale="<why this over alternatives>"
|
|
181
|
+
./.aide/bin/aide decision set "<topic>" "<choice>" --rationale="<why this over alternatives>"
|
|
169
182
|
```
|
|
170
183
|
|
|
171
184
|
### Too Large / Too Vague
|
|
185
|
+
|
|
172
186
|
1. Break into smaller, focused designs
|
|
173
187
|
2. Design the core/MVP first
|
|
174
188
|
3. Note future phases in "Out of Scope"
|
|
@@ -176,6 +190,7 @@ List specific, testable criteria for the TEST stage:
|
|
|
176
190
|
## Verification Checklist
|
|
177
191
|
|
|
178
192
|
Before completing design:
|
|
193
|
+
|
|
179
194
|
- [ ] Interfaces are defined with types
|
|
180
195
|
- [ ] Data flow is documented
|
|
181
196
|
- [ ] Key decisions are recorded in aide
|
|
@@ -186,6 +201,7 @@ Before completing design:
|
|
|
186
201
|
## Completion
|
|
187
202
|
|
|
188
203
|
When design is complete:
|
|
204
|
+
|
|
189
205
|
1. Output the full design document
|
|
190
206
|
2. Confirm: "Design complete. Ready for TEST stage."
|
|
191
207
|
|
|
@@ -22,6 +22,7 @@ This is the DEV stage of the SDLC pipeline. Tests already exist from the TEST st
|
|
|
22
22
|
## Prerequisites
|
|
23
23
|
|
|
24
24
|
Before starting:
|
|
25
|
+
|
|
25
26
|
- Tests exist and are failing (from TEST stage)
|
|
26
27
|
- Design/spec is available (from DESIGN stage)
|
|
27
28
|
- You know which files to create/modify
|
|
@@ -44,6 +45,7 @@ go test ./pkg/feature/...
|
|
|
44
45
|
### Step 2: Read the Tests
|
|
45
46
|
|
|
46
47
|
Understand what the tests expect:
|
|
48
|
+
|
|
47
49
|
- What functions/methods need to exist?
|
|
48
50
|
- What are the expected inputs and outputs?
|
|
49
51
|
- What edge cases are covered?
|
|
@@ -87,6 +89,7 @@ go test -v ./pkg/feature/...
|
|
|
87
89
|
```
|
|
88
90
|
|
|
89
91
|
**BLOCKING RULE**: If any test fails:
|
|
92
|
+
|
|
90
93
|
1. Analyze the failure
|
|
91
94
|
2. Fix the issue
|
|
92
95
|
3. Re-run tests
|
|
@@ -125,11 +128,14 @@ git commit -m "feat: implement <feature> - tests passing"
|
|
|
125
128
|
|
|
126
129
|
```typescript
|
|
127
130
|
// Read test expectations
|
|
128
|
-
describe(
|
|
129
|
-
it(
|
|
130
|
-
const user = await service.createUser({
|
|
131
|
+
describe("UserService", () => {
|
|
132
|
+
it("should create user with email and name", async () => {
|
|
133
|
+
const user = await service.createUser({
|
|
134
|
+
email: "test@example.com",
|
|
135
|
+
name: "Test",
|
|
136
|
+
});
|
|
131
137
|
expect(user.id).toBeDefined();
|
|
132
|
-
expect(user.email).toBe(
|
|
138
|
+
expect(user.email).toBe("test@example.com");
|
|
133
139
|
});
|
|
134
140
|
});
|
|
135
141
|
|
|
@@ -181,7 +187,7 @@ func (s *UserService) CreateUser(ctx context.Context, input CreateUserInput) (*U
|
|
|
181
187
|
3. Check design decisions - is implementation matching spec?
|
|
182
188
|
4. Record blocker:
|
|
183
189
|
```bash
|
|
184
|
-
aide memory add --category=blocker "Cannot pass test X: <reason>"
|
|
190
|
+
./.aide/bin/aide memory add --category=blocker "Cannot pass test X: <reason>"
|
|
185
191
|
```
|
|
186
192
|
5. If stuck after 3 attempts, ask for help
|
|
187
193
|
|
|
@@ -199,13 +205,16 @@ func (s *UserService) CreateUser(ctx context.Context, input CreateUserInput) (*U
|
|
|
199
205
|
2. Don't refactor during implement stage
|
|
200
206
|
3. Note concerns for future:
|
|
201
207
|
```bash
|
|
202
|
-
aide memory add --category=issue "Implementation of X could be improved: <how>"
|
|
208
|
+
./.aide/bin/aide memory add --category=issue "Implementation of X could be improved: <how>"
|
|
203
209
|
```
|
|
204
210
|
4. Proceed - refactoring is a separate concern
|
|
205
211
|
|
|
212
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
213
|
+
|
|
206
214
|
## Verification Checklist
|
|
207
215
|
|
|
208
216
|
Before completing:
|
|
217
|
+
|
|
209
218
|
- [ ] All tests pass (not just some)
|
|
210
219
|
- [ ] Build succeeds
|
|
211
220
|
- [ ] Changes are committed
|
package/skills/memorise/SKILL.md
CHANGED
|
@@ -12,7 +12,7 @@ triggers:
|
|
|
12
12
|
- store this
|
|
13
13
|
- for future
|
|
14
14
|
- keep in mind
|
|
15
|
-
allowed-tools: Bash(aide memory add *)
|
|
15
|
+
allowed-tools: Bash(./.aide/bin/aide memory add *)
|
|
16
16
|
---
|
|
17
17
|
|
|
18
18
|
# Memorise
|
|
@@ -23,12 +23,14 @@ Capture important information for future sessions by storing it in the aide memo
|
|
|
23
23
|
|
|
24
24
|
## How to Store
|
|
25
25
|
|
|
26
|
-
Use the
|
|
26
|
+
Use the `./.aide/bin/aide memory add` CLI command via Bash:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
aide memory add --category=<category> --tags=<comma,separated,tags> "<content>"
|
|
29
|
+
./.aide/bin/aide memory add --category=<category> --tags=<comma,separated,tags> "<content>"
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
33
|
+
|
|
32
34
|
## Categories
|
|
33
35
|
|
|
34
36
|
- `learning` - Something discovered about the codebase or tools
|
|
@@ -48,23 +50,27 @@ aide memory add --category=<category> --tags=<comma,separated,tags> "<content>"
|
|
|
48
50
|
## Examples
|
|
49
51
|
|
|
50
52
|
### Simple preference (global - injected at session start)
|
|
53
|
+
|
|
51
54
|
```bash
|
|
52
|
-
aide memory add --category=learning --tags=preferences,colour,scope:global "User's favourite colour is blue"
|
|
55
|
+
./.aide/bin/aide memory add --category=learning --tags=preferences,colour,scope:global "User's favourite colour is blue"
|
|
53
56
|
```
|
|
54
57
|
|
|
55
58
|
### Technical learning (project-specific)
|
|
59
|
+
|
|
56
60
|
```bash
|
|
57
|
-
aide memory add --category=learning --tags=testing,vitest,project:myapp,session:abc12345 "Vitest requires .js extensions for ESM imports even for .ts files. Configure moduleResolution: NodeNext in tsconfig."
|
|
61
|
+
./.aide/bin/aide memory add --category=learning --tags=testing,vitest,project:myapp,session:abc12345 "Vitest requires .js extensions for ESM imports even for .ts files. Configure moduleResolution: NodeNext in tsconfig."
|
|
58
62
|
```
|
|
59
63
|
|
|
60
64
|
### Session summary
|
|
65
|
+
|
|
61
66
|
```bash
|
|
62
|
-
aide memory add --category=session --tags=auth,api,project:myapp,session:abc12345 "Implemented JWT auth with 15min access tokens, 7day refresh tokens in httpOnly cookies. Files: src/auth/jwt.ts, src/middleware/auth.ts, src/routes/auth.ts"
|
|
67
|
+
./.aide/bin/aide memory add --category=session --tags=auth,api,project:myapp,session:abc12345 "Implemented JWT auth with 15min access tokens, 7day refresh tokens in httpOnly cookies. Files: src/auth/jwt.ts, src/middleware/auth.ts, src/routes/auth.ts"
|
|
63
68
|
```
|
|
64
69
|
|
|
65
70
|
### Gotcha (global - applies everywhere)
|
|
71
|
+
|
|
66
72
|
```bash
|
|
67
|
-
aide memory add --category=gotcha --tags=hooks,claude-code,scope:global "Hooks must not write to stderr - Claude Code interprets any stderr as error. Debug logging must go to files only."
|
|
73
|
+
./.aide/bin/aide memory add --category=gotcha --tags=hooks,claude-code,scope:global "Hooks must not write to stderr - Claude Code interprets any stderr as error. Debug logging must go to files only."
|
|
68
74
|
```
|
|
69
75
|
|
|
70
76
|
## Instructions
|
|
@@ -78,7 +84,7 @@ When the user invokes `/aide:memorise <something>`:
|
|
|
78
84
|
- **Session summary** → add `project:<project-name>,session:${CLAUDE_SESSION_ID:0:8}`
|
|
79
85
|
3. Choose appropriate category and descriptive tags
|
|
80
86
|
4. Format the content concisely but completely
|
|
81
|
-
5. Call
|
|
87
|
+
5. Call `./.aide/bin/aide memory add` via Bash to store it
|
|
82
88
|
6. **Verify success** - check exit code is 0 and output contains the memory ID
|
|
83
89
|
7. Confirm what was stored
|
|
84
90
|
|
|
@@ -86,7 +92,7 @@ Keep content concise - aim for 1-3 sentences unless it's a complex session summa
|
|
|
86
92
|
|
|
87
93
|
## Failure Handling
|
|
88
94
|
|
|
89
|
-
If
|
|
95
|
+
If `./.aide/bin/aide memory add` fails:
|
|
90
96
|
|
|
91
97
|
1. **Check error message** - common issues:
|
|
92
98
|
- Database not accessible: ensure aide MCP server is running
|
|
@@ -104,24 +110,26 @@ If `aide memory add` fails:
|
|
|
104
110
|
## Verification
|
|
105
111
|
|
|
106
112
|
A successful memory add returns:
|
|
113
|
+
|
|
107
114
|
```
|
|
108
115
|
Added memory: <ULID>
|
|
109
116
|
```
|
|
110
117
|
|
|
111
118
|
You can verify by searching for the memory:
|
|
119
|
+
|
|
112
120
|
```bash
|
|
113
|
-
aide memory search "<key term from content>" --limit=1
|
|
121
|
+
./.aide/bin/aide memory search "<key term from content>" --limit=1
|
|
114
122
|
```
|
|
115
123
|
|
|
116
124
|
## Scope Tags
|
|
117
125
|
|
|
118
126
|
Use scope tags to control when memories are injected:
|
|
119
127
|
|
|
120
|
-
| Tag
|
|
121
|
-
|
|
122
|
-
| `scope:global`
|
|
123
|
-
| `project:<name>` | Project-specific learnings
|
|
124
|
-
| `session:<id>`
|
|
128
|
+
| Tag | When to Use | Injection |
|
|
129
|
+
| ---------------- | ------------------------------------- | ------------------------ |
|
|
130
|
+
| `scope:global` | User preferences, universal learnings | Every session |
|
|
131
|
+
| `project:<name>` | Project-specific learnings | Sessions in that project |
|
|
132
|
+
| `session:<id>` | Context for this work session | Recent session injection |
|
|
125
133
|
|
|
126
134
|
### Tagging Rules
|
|
127
135
|
|
|
@@ -134,6 +142,7 @@ Get the project name from the git remote or directory name. Session ID is availa
|
|
|
134
142
|
## For Swarm/Multi-Agent
|
|
135
143
|
|
|
136
144
|
Add agent context to tags:
|
|
145
|
+
|
|
137
146
|
```bash
|
|
138
|
-
aide memory add --category=session --tags=swarm,agent:main "Overall task outcome..."
|
|
147
|
+
./.aide/bin/aide memory add --category=session --tags=swarm,agent:main "Overall task outcome..."
|
|
139
148
|
```
|
|
@@ -40,16 +40,19 @@ Do NOT ask questions yet. Build understanding first.
|
|
|
40
40
|
Conduct 2-3 rounds of focused questions. Each round has 2-4 questions. Max 3 rounds total.
|
|
41
41
|
|
|
42
42
|
**Round 1: Scope & Boundaries**
|
|
43
|
+
|
|
43
44
|
- What is in scope vs out of scope?
|
|
44
45
|
- What are the success criteria?
|
|
45
46
|
- Are there any constraints (time, tech, compatibility)?
|
|
46
47
|
|
|
47
48
|
**Round 2: Dependencies & Risks**
|
|
49
|
+
|
|
48
50
|
- What shared state or files will multiple stories touch?
|
|
49
51
|
- What could go wrong? What are the risky parts?
|
|
50
52
|
- Are there external dependencies (APIs, services, data)?
|
|
51
53
|
|
|
52
54
|
**Round 3: Acceptance Criteria** (if needed)
|
|
55
|
+
|
|
53
56
|
- How will we know each story is done?
|
|
54
57
|
- What tests should exist?
|
|
55
58
|
- What does "good enough" look like?
|
|
@@ -72,6 +75,7 @@ Output a structured story list. Each story must be:
|
|
|
72
75
|
## Stories
|
|
73
76
|
|
|
74
77
|
### 1. [Story Name]
|
|
78
|
+
|
|
75
79
|
- **Description**: What this story implements
|
|
76
80
|
- **Files**: List of files this story will create or modify
|
|
77
81
|
- **Acceptance Criteria**:
|
|
@@ -81,10 +85,12 @@ Output a structured story list. Each story must be:
|
|
|
81
85
|
- **Notes**: Any special considerations
|
|
82
86
|
|
|
83
87
|
### 2. [Story Name]
|
|
88
|
+
|
|
84
89
|
...
|
|
85
90
|
```
|
|
86
91
|
|
|
87
92
|
**Independence check**: Verify that no two stories modify the same file. If they do, either:
|
|
93
|
+
|
|
88
94
|
1. Merge the stories
|
|
89
95
|
2. Restructure so each story owns its files
|
|
90
96
|
3. Sequence them (one blocks the other)
|
|
@@ -94,14 +100,17 @@ Output a structured story list. Each story must be:
|
|
|
94
100
|
1. **Present the plan** to the user for review
|
|
95
101
|
2. **Store as decision** once approved:
|
|
96
102
|
```bash
|
|
97
|
-
aide decision set "swarm-plan" "<N> stories: <story-1>, <story-2>, ..." \
|
|
103
|
+
./.aide/bin/aide decision set "swarm-plan" "<N> stories: <story-1>, <story-2>, ..." \
|
|
98
104
|
--details='<JSON object>' \
|
|
99
105
|
--rationale="<brief description of scope and approach>"
|
|
100
106
|
```
|
|
101
107
|
3. **Record shared decisions** discovered during planning:
|
|
102
108
|
```bash
|
|
103
|
-
aide decision set "<topic>" "<decision>"
|
|
109
|
+
./.aide/bin/aide decision set "<topic>" "<decision>"
|
|
104
110
|
```
|
|
111
|
+
|
|
112
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
113
|
+
|
|
105
114
|
4. **Instruct the user**: Run `/aide:swarm` to execute the plan
|
|
106
115
|
|
|
107
116
|
## Output Format
|