@yemi33/minions 0.1.334 → 0.1.335
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/CHANGELOG.md +5 -0
- package/engine/ado.js +6 -0
- package/engine/github.js +6 -0
- package/engine/playbook.js +8 -0
- package/package.json +1 -1
- package/playbooks/build-and-test.md +1 -1
- package/playbooks/implement-shared.md +2 -2
- package/playbooks/implement.md +2 -2
- package/playbooks/plan-to-prd.md +2 -2
- package/playbooks/review.md +2 -2
- package/playbooks/test.md +1 -1
- package/playbooks/verify.md +1 -1
- package/playbooks/work-item.md +1 -1
package/CHANGELOG.md
CHANGED
package/engine/ado.js
CHANGED
|
@@ -146,6 +146,12 @@ async function pollPrStatus(config) {
|
|
|
146
146
|
pr.reviewStatus = newStatus === PR_STATUS.MERGED ? 'approved' : 'pending';
|
|
147
147
|
log('info', `PR ${pr.id} reviewStatus: waiting → ${pr.reviewStatus} (${newStatus})`);
|
|
148
148
|
}
|
|
149
|
+
// Clear stale build status — checks won't be polled after close
|
|
150
|
+
if (pr.buildStatus && pr.buildStatus !== 'none') {
|
|
151
|
+
delete pr.buildStatus;
|
|
152
|
+
delete pr.buildFailReason;
|
|
153
|
+
delete pr._buildFailNotified;
|
|
154
|
+
}
|
|
149
155
|
await engine().handlePostMerge(pr, project, config, newStatus);
|
|
150
156
|
}
|
|
151
157
|
}
|
package/engine/github.js
CHANGED
|
@@ -152,6 +152,12 @@ async function pollPrStatus(config) {
|
|
|
152
152
|
pr.reviewStatus = newStatus === PR_STATUS.MERGED ? 'approved' : 'pending';
|
|
153
153
|
log('info', `PR ${pr.id} reviewStatus: waiting → ${pr.reviewStatus} (${newStatus})`);
|
|
154
154
|
}
|
|
155
|
+
// Clear stale build status — checks won't be polled after close
|
|
156
|
+
if (pr.buildStatus && pr.buildStatus !== 'none') {
|
|
157
|
+
delete pr.buildStatus;
|
|
158
|
+
delete pr.buildFailReason;
|
|
159
|
+
delete pr._buildFailNotified;
|
|
160
|
+
}
|
|
155
161
|
await engine().handlePostMerge(pr, project, config, newStatus);
|
|
156
162
|
}
|
|
157
163
|
}
|
package/engine/playbook.js
CHANGED
|
@@ -293,6 +293,14 @@ function renderPlaybook(type, vars) {
|
|
|
293
293
|
log('warn', `Playbook "${type}": substituted values contain unresolved {{...}} patterns (potential self-reference): ${selfRefVars.join(', ')}`);
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
+
// Warn when a substituted value itself contains {{...}} patterns (potential self-reference)
|
|
297
|
+
const selfRefVars = Object.entries(allVars)
|
|
298
|
+
.filter(([, val]) => /\{\{\w+\}\}/.test(String(val)))
|
|
299
|
+
.map(([key]) => key);
|
|
300
|
+
if (selfRefVars.length > 0) {
|
|
301
|
+
log('warn', `Playbook "${type}": substituted values contain unresolved {{...}} patterns (potential self-reference): ${selfRefVars.join(', ')}`);
|
|
302
|
+
}
|
|
303
|
+
|
|
296
304
|
// Warn on variables that resolved to empty string
|
|
297
305
|
const emptyVars = Object.entries(allVars)
|
|
298
306
|
.filter(([, val]) => String(val) === '')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.335",
|
|
4
4
|
"description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
|
|
5
5
|
"bin": {
|
|
6
6
|
"minions": "bin/minions.js"
|
|
@@ -102,7 +102,7 @@ Structure your report exactly like this:
|
|
|
102
102
|
|
|
103
103
|
## Auto-file Work Items on Failure
|
|
104
104
|
|
|
105
|
-
If the build
|
|
105
|
+
If the build or tests fail, create a work item so another agent can fix it. Write a JSON entry to the project's work queue:
|
|
106
106
|
|
|
107
107
|
```bash
|
|
108
108
|
# Read existing items, append new one, write back
|
|
@@ -17,7 +17,7 @@ Implement PRD item **{{item_id}}: {{item_name}}**
|
|
|
17
17
|
|
|
18
18
|
This is part of a **shared-branch plan**. Other agents may have already committed work to this branch before you. Your job is to build on top of their work.
|
|
19
19
|
|
|
20
|
-
## Git Workflow (
|
|
20
|
+
## Git Workflow (Shared Branch)
|
|
21
21
|
|
|
22
22
|
Your worktree is already set up. Pull latest before starting:
|
|
23
23
|
|
|
@@ -54,7 +54,7 @@ git push origin {{branch_name}}
|
|
|
54
54
|
|
|
55
55
|
## Build and Verify
|
|
56
56
|
|
|
57
|
-
After implementation
|
|
57
|
+
After implementation:
|
|
58
58
|
1. Build the project using the repo's build system (check CLAUDE.md, package.json, README)
|
|
59
59
|
2. Verify the build succeeds with your changes AND all prior commits on this branch
|
|
60
60
|
3. If the build fails:
|
package/playbooks/implement.md
CHANGED
|
@@ -58,7 +58,7 @@ Do NOT remove the worktree — the engine handles cleanup automatically.
|
|
|
58
58
|
|
|
59
59
|
## Build and Demo Rule
|
|
60
60
|
|
|
61
|
-
After implementation
|
|
61
|
+
After implementation:
|
|
62
62
|
1. Build the project using the repo's build system (check CLAUDE.md, package.json, README)
|
|
63
63
|
2. Start if applicable
|
|
64
64
|
3. Include the browser URL and run instructions in the PR description
|
|
@@ -71,7 +71,7 @@ After building, verify the build succeeded. If the build fails:
|
|
|
71
71
|
|
|
72
72
|
## Test Validation (MANDATORY before PR)
|
|
73
73
|
|
|
74
|
-
Before creating a PR,
|
|
74
|
+
Before creating a PR, run the project's test suite and ensure all existing tests pass:
|
|
75
75
|
|
|
76
76
|
1. Find the test command by reading the project's own documentation — check CLAUDE.md, agent.md, README, or package.json scripts in the project root. Every project defines its own conventions.
|
|
77
77
|
2. Run the full test suite using whatever command the project specifies
|
package/playbooks/plan-to-prd.md
CHANGED
|
@@ -18,7 +18,7 @@ A user has provided a plan. Analyze it against the codebase and produce a struct
|
|
|
18
18
|
3. **Break the plan into discrete, implementable items** — each should be a single PR's worth of work
|
|
19
19
|
4. **Estimate complexity** — `small` (< 1 file), `medium` (2-5 files), `large` (6+ files or cross-cutting)
|
|
20
20
|
5. **Order by dependency** — items that others depend on come first
|
|
21
|
-
6. **Use unique item IDs** — generate a short uuid for each item (e.g. `P-a3f9b2c1`).
|
|
21
|
+
6. **Use unique item IDs** — generate a short uuid for each item (e.g. `P-a3f9b2c1`). Do not use sequential `P001`/`P002` — IDs must be globally unique across all PRDs to avoid collisions
|
|
22
22
|
7. **Identify open questions** — flag anything ambiguous in the plan that needs user input
|
|
23
23
|
|
|
24
24
|
## Output
|
|
@@ -83,7 +83,7 @@ When using `parallel`:
|
|
|
83
83
|
|
|
84
84
|
Rules for items:
|
|
85
85
|
- IDs must be `P-<uuid>` format (e.g. `P-a3f9b2c1`) — globally unique, never sequential
|
|
86
|
-
- **`status`
|
|
86
|
+
- **`status` is always `"missing"`** — do not set `done`, `complete`, `implemented`, or any other value, even if you observe active PRs or completed work in the codebase. Status is exclusively engine-managed after the PRD is written. Pre-setting any other status causes items to be silently skipped by the engine and breaks dependency resolution for all downstream items.
|
|
87
87
|
- **`project` field is REQUIRED** — set it to the project name where the code changes go (e.g., `"OfficeAgent"`, `"office-bohemia"`). Cross-repo plans must route each item to the correct project. The engine materializes items into that project's work queue.
|
|
88
88
|
- `depends_on` lists IDs of items that must be done first
|
|
89
89
|
- Keep descriptions actionable — an implementing agent should know exactly what to build
|
package/playbooks/review.md
CHANGED
|
@@ -38,7 +38,7 @@ Branch: `{{pr_branch}}`
|
|
|
38
38
|
|
|
39
39
|
## Post Review — Comment AND Vote on PR
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Do both of the following:
|
|
42
42
|
|
|
43
43
|
### Step 1: Leave a detailed review comment
|
|
44
44
|
|
|
@@ -61,7 +61,7 @@ This vote is visible to human reviewers in the PR UI and helps them understand t
|
|
|
61
61
|
If you encounter merge conflicts (e.g., the PR shows conflicts):
|
|
62
62
|
1. Note the conflict in your review comment. Do NOT attempt to resolve — flag it for the author.
|
|
63
63
|
|
|
64
|
-
##
|
|
64
|
+
## Do not run git checkout on the main working tree. Use `git diff` and `git show` only.
|
|
65
65
|
|
|
66
66
|
## Signal Completion
|
|
67
67
|
|
package/playbooks/test.md
CHANGED
|
@@ -37,7 +37,7 @@ This is a **test/build/run task**. Your goal is to build, run, test, or verify s
|
|
|
37
37
|
|
|
38
38
|
## Run Command (IMPORTANT)
|
|
39
39
|
|
|
40
|
-
When the build succeeds and the task involves running a server or app,
|
|
40
|
+
When the build succeeds and the task involves running a server or app, output a ready-to-paste run command using **absolute paths** so the user can launch it from any terminal. Format it exactly like this:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
43
|
## Run Command
|
package/playbooks/verify.md
CHANGED
|
@@ -218,7 +218,7 @@ For each project worktree:
|
|
|
218
218
|
- If a project doesn't build, still document what SHOULD be testable once fixed
|
|
219
219
|
- Do NOT fix code — only report issues
|
|
220
220
|
- Leave all worktrees in place for the user to inspect
|
|
221
|
-
-
|
|
221
|
+
- Start the application **detached** so it keeps running after your process exits
|
|
222
222
|
- Use absolute paths everywhere so the user can copy-paste commands
|
|
223
223
|
- E2E PRs are for review only — do NOT auto-complete or merge them
|
|
224
224
|
|
package/playbooks/work-item.md
CHANGED
|
@@ -53,7 +53,7 @@ Write your findings to: `{{team_root}}/notes/inbox/{{agent_id}}-{{item_id}}-{{da
|
|
|
53
53
|
**Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
|
|
54
54
|
|
|
55
55
|
## Rules
|
|
56
|
-
-
|
|
56
|
+
- Do not checkout branches in the main working tree — use worktrees
|
|
57
57
|
- Use the repo host's MCP tools for PR creation — check available MCP tools before starting
|
|
58
58
|
- Use PowerShell for build commands on Windows if applicable
|
|
59
59
|
- If you discover a repeatable workflow, output it as a ```skill block (the engine auto-extracts it to ~/.claude/skills/)
|