@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
|
@@ -23,11 +23,13 @@ git worktree list
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Check the AIDE worktree state file for metadata and status:
|
|
26
|
+
|
|
26
27
|
```bash
|
|
27
28
|
cat .aide/state/worktrees.json
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
**Worktree Status Values:**
|
|
32
|
+
|
|
31
33
|
- `active` - Agent is still working on this worktree
|
|
32
34
|
- `agent-complete` - Agent finished, ready for merge review
|
|
33
35
|
- `merged` - Successfully merged to main
|
|
@@ -35,6 +37,7 @@ cat .aide/state/worktrees.json
|
|
|
35
37
|
**Only merge worktrees with status `agent-complete`.**
|
|
36
38
|
|
|
37
39
|
Example state file:
|
|
40
|
+
|
|
38
41
|
```json
|
|
39
42
|
{
|
|
40
43
|
"active": [
|
|
@@ -106,18 +109,21 @@ When merge conflicts occur, **do not use `-X theirs` or `-X ours`** - these blin
|
|
|
106
109
|
Instead, resolve conflicts intelligently:
|
|
107
110
|
|
|
108
111
|
#### Step 1: Attempt merge and identify conflicts
|
|
112
|
+
|
|
109
113
|
```bash
|
|
110
114
|
git merge feat/<name> --no-edit
|
|
111
115
|
# If conflicts occur, git will list the conflicted files
|
|
112
116
|
```
|
|
113
117
|
|
|
114
118
|
#### Step 2: For each conflicted file, read and analyze
|
|
119
|
+
|
|
115
120
|
```bash
|
|
116
121
|
# Read the file with conflict markers
|
|
117
122
|
cat <conflicted-file>
|
|
118
123
|
```
|
|
119
124
|
|
|
120
125
|
The conflict markers show:
|
|
126
|
+
|
|
121
127
|
```
|
|
122
128
|
<<<<<<< HEAD
|
|
123
129
|
[changes from main branch]
|
|
@@ -136,12 +142,14 @@ Act as an expert code reviewer. For each conflict:
|
|
|
136
142
|
4. **Edit the file** to remove conflict markers and combine both sets of functionality correctly
|
|
137
143
|
|
|
138
144
|
The resolution must:
|
|
145
|
+
|
|
139
146
|
- Remove all conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`)
|
|
140
147
|
- Preserve the functional intent of BOTH changes
|
|
141
148
|
- Be syntactically and semantically correct
|
|
142
149
|
- Maintain code style consistency
|
|
143
150
|
|
|
144
151
|
#### Step 4: Verify and complete
|
|
152
|
+
|
|
145
153
|
```bash
|
|
146
154
|
# Stage the resolved files
|
|
147
155
|
git add <resolved-file>
|
|
@@ -158,20 +166,24 @@ git commit --no-edit
|
|
|
158
166
|
If you **cannot resolve** the conflict (logic is contradictory, tests fail after resolution, or changes are too complex):
|
|
159
167
|
|
|
160
168
|
1. **Abort the merge** to restore clean state:
|
|
169
|
+
|
|
161
170
|
```bash
|
|
162
171
|
git merge --abort
|
|
163
172
|
```
|
|
164
173
|
|
|
165
174
|
2. **Record the failure** using aide messaging:
|
|
166
175
|
```bash
|
|
167
|
-
aide message send --from=resolver --to=orchestrator "CONFLICT: Cannot merge feat/<name> - <brief reason>"
|
|
176
|
+
./.aide/bin/aide message send --from=resolver --to=orchestrator "CONFLICT: Cannot merge feat/<name> - <brief reason>"
|
|
168
177
|
```
|
|
169
178
|
|
|
179
|
+
**Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
|
|
180
|
+
|
|
170
181
|
3. **Skip this branch** and continue with remaining branches
|
|
171
182
|
|
|
172
183
|
4. **Report at completion** - list unmerged branches in the final summary for manual review
|
|
173
184
|
|
|
174
185
|
**Do NOT:**
|
|
186
|
+
|
|
175
187
|
- Force through a broken resolution
|
|
176
188
|
- Use `-X theirs` or `-X ours` to blindly pick one side
|
|
177
189
|
- Get stuck - always abort and report if resolution fails
|
|
@@ -179,6 +191,7 @@ If you **cannot resolve** the conflict (logic is contradictory, tests fail after
|
|
|
179
191
|
#### Example Resolution
|
|
180
192
|
|
|
181
193
|
**Conflict:**
|
|
194
|
+
|
|
182
195
|
```typescript
|
|
183
196
|
<<<<<<< HEAD
|
|
184
197
|
function getUser(id: string): User {
|
|
@@ -193,17 +206,20 @@ function getUser(id: string): User | null {
|
|
|
193
206
|
```
|
|
194
207
|
|
|
195
208
|
**Analysis:**
|
|
209
|
+
|
|
196
210
|
- HEAD: Basic lookup returning User
|
|
197
211
|
- Feature: Added null-safety with explicit null return
|
|
198
212
|
|
|
199
213
|
**Resolution:**
|
|
214
|
+
|
|
200
215
|
```typescript
|
|
201
216
|
function getUser(id: string): User | null {
|
|
202
|
-
const user = db.users.find(u => u.id === id);
|
|
217
|
+
const user = db.users.find((u) => u.id === id);
|
|
203
218
|
return user ?? null;
|
|
204
219
|
}
|
|
205
220
|
```
|
|
206
|
-
|
|
221
|
+
|
|
222
|
+
_Feature branch improved null safety - this is additive, keep it._
|
|
207
223
|
|
|
208
224
|
### 5. Cleanup
|
|
209
225
|
|
|
@@ -281,7 +297,7 @@ git branch --list 'feat/*' | xargs git branch -d
|
|
|
281
297
|
1. **Abort immediately**: `git merge --abort`
|
|
282
298
|
2. **Record the failure**:
|
|
283
299
|
```bash
|
|
284
|
-
aide message send --from=resolver --to=orchestrator "Merge failed: feat/<name> - <reason>"
|
|
300
|
+
./.aide/bin/aide message send --from=resolver --to=orchestrator "Merge failed: feat/<name> - <reason>"
|
|
285
301
|
```
|
|
286
302
|
3. **Continue with remaining branches** - do not block on one failure
|
|
287
303
|
4. **Include in final report** - list all failed branches with reasons
|
package/src/cli/install.ts
CHANGED
|
@@ -33,10 +33,10 @@ function isMcpCommandCurrent(config: ReturnType<typeof readConfig>): boolean {
|
|
|
33
33
|
|
|
34
34
|
const cmd = mcpConfig.command;
|
|
35
35
|
|
|
36
|
-
// Current format: ["
|
|
36
|
+
// Current format: ["bunx", "-y", "@jmylchreest/aide-plugin", "mcp"]
|
|
37
37
|
if (
|
|
38
38
|
cmd.length === 4 &&
|
|
39
|
-
cmd[0] === "
|
|
39
|
+
cmd[0] === "bunx" &&
|
|
40
40
|
cmd[1] === "-y" &&
|
|
41
41
|
cmd[2] === PLUGIN_NAME &&
|
|
42
42
|
cmd[3] === "mcp"
|
package/src/cli/mcp.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MCP subcommand — delegates to aide-wrapper.sh to start the MCP server.
|
|
3
3
|
*
|
|
4
4
|
* This is the entry point used by OpenCode's MCP config:
|
|
5
|
-
* "command": ["
|
|
5
|
+
* "command": ["bunx", "-y", "@jmylchreest/aide-plugin", "mcp"]
|
|
6
6
|
*
|
|
7
7
|
* The wrapper handles binary discovery/download, then exec's `aide mcp`.
|
|
8
8
|
*/
|
package/src/core/session-init.ts
CHANGED
|
@@ -347,6 +347,17 @@ export function buildWelcomeContext(
|
|
|
347
347
|
lines.push(`Project: ${getProjectName(state.cwd)}`);
|
|
348
348
|
lines.push("");
|
|
349
349
|
|
|
350
|
+
lines.push("## Binary Path");
|
|
351
|
+
lines.push("");
|
|
352
|
+
lines.push(
|
|
353
|
+
"The aide CLI is at `.aide/bin/aide`. When running aide commands in Bash:",
|
|
354
|
+
);
|
|
355
|
+
lines.push("- Use full path: `./.aide/bin/aide <command>`");
|
|
356
|
+
lines.push(
|
|
357
|
+
'- Or add to PATH: `export PATH="$PWD/.aide/bin:$PATH" && aide <command>`',
|
|
358
|
+
);
|
|
359
|
+
lines.push("");
|
|
360
|
+
|
|
350
361
|
if (memories.static.global.length > 0) {
|
|
351
362
|
lines.push("## Preferences (Global)");
|
|
352
363
|
lines.push("");
|
package/src/opencode/index.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* "mcp": {
|
|
17
17
|
* "aide": {
|
|
18
18
|
* "type": "local",
|
|
19
|
-
* "command": ["
|
|
19
|
+
* "command": ["bunx", "-y", "@jmylchreest/aide-plugin", "mcp"],
|
|
20
20
|
* "environment": { "AIDE_CODE_WATCH": "1", "AIDE_CODE_WATCH_DELAY": "30s" },
|
|
21
21
|
* "enabled": true
|
|
22
22
|
* }
|