@yemi33/minions 0.1.586 → 0.1.588

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 CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.588 (2026-04-08)
4
+
5
+ ### Other
6
+ - refactor: extract shared playbook rules to shared-rules.md
7
+
3
8
  ## 0.1.586 (2026-04-08)
4
9
 
5
10
  ### Fixes
package/bin/minions.js CHANGED
@@ -705,11 +705,15 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
705
705
  } else if (cmd === 'dash' || cmd === 'dashboard') {
706
706
  ensureInstalled();
707
707
  // If dashboard is already running, just open the browser
708
- const http = require('http');
708
+ const net = require('net');
709
709
  const dashPort = 7331;
710
- const probe = http.get(`http://localhost:${dashPort}/api/status`, (res) => {
711
- res.resume();
712
- // Dashboard is running — open browser
710
+ const sock = new net.Socket();
711
+ let handled = false;
712
+ sock.setTimeout(1000);
713
+ sock.on('connect', () => {
714
+ sock.destroy();
715
+ if (handled) return;
716
+ handled = true;
713
717
  const url = `http://localhost:${dashPort}`;
714
718
  console.log(`\n Dashboard already running: ${url}\n`);
715
719
  try {
@@ -717,11 +721,18 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
717
721
  execSync(openCmd, { stdio: 'ignore', windowsHide: true });
718
722
  } catch {}
719
723
  });
720
- probe.on('error', () => {
721
- // Dashboard not running — start it
724
+ sock.on('error', () => {
725
+ if (handled) return;
726
+ handled = true;
722
727
  delegate('dashboard.js', rest);
723
728
  });
724
- probe.setTimeout(2000, () => { probe.destroy(); delegate('dashboard.js', rest); });
729
+ sock.on('timeout', () => {
730
+ sock.destroy();
731
+ if (handled) return;
732
+ handled = true;
733
+ delegate('dashboard.js', rest);
734
+ });
735
+ sock.connect(dashPort, '127.0.0.1');
725
736
  } else if (engineCmds.has(cmd)) {
726
737
  delegate('engine.js', [cmd, ...rest]);
727
738
  } else {
@@ -216,6 +216,12 @@ function renderPlaybook(type, vars) {
216
216
  return null;
217
217
  }
218
218
 
219
+ // Inject shared rules (apply to all playbooks)
220
+ try {
221
+ const sharedRules = fs.readFileSync(path.join(PLAYBOOKS_DIR, 'shared-rules.md'), 'utf8');
222
+ if (sharedRules) content += '\n\n' + sharedRules;
223
+ } catch { /* optional — shared rules file may not exist */ }
224
+
219
225
  // Inject pinned context (always visible to agents) — capped at 4KB
220
226
  let pinnedContent = '';
221
227
  try { pinnedContent = fs.readFileSync(path.join(MINIONS_DIR, 'pinned.md'), 'utf8'); } catch { /* optional */ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.586",
3
+ "version": "0.1.588",
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"
package/playbooks/ask.md CHANGED
@@ -37,7 +37,6 @@ Write your answer to `{{team_root}}/notes/inbox/{{agent_id}}-answer-{{task_id}}-
37
37
  Keep it concise but complete. Write for a senior engineer who wants the real answer, not fluff.
38
38
 
39
39
  ### 4. Status
40
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
41
40
 
42
41
  ## Rules
43
42
  - Do NOT modify any code unless the question explicitly asks you to.
@@ -147,4 +147,3 @@ Replace `<SHORT DESCRIPTION OF FAILURE>` and `<PASTE THE BUILD/TEST ERROR OUTPUT
147
147
 
148
148
  Leave the worktree in place at `{{project_path}}/../worktrees/bt-{{pr_number}}` — the user needs it to review the running app. The engine will clean it up after the PR is merged or closed.
149
149
 
150
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
@@ -50,7 +50,6 @@ Do NOT create additional worktrees — the engine handles worktree management.
50
50
  If the task is purely exploratory (no deliverable requested), skip this step.
51
51
 
52
52
  ### 6. Status
53
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
54
53
 
55
54
  ## Working Style
56
55
 
package/playbooks/fix.md CHANGED
@@ -64,4 +64,3 @@ Before pushing your fix, run the project's test suite:
64
64
 
65
65
  Your task is complete once you have: (1) pushed the fix, (2) created or updated the PR, and (3) confirmed tests pass. Do NOT continue exploring unrelated code or making additional improvements. Stop immediately after the fix is verified.
66
66
 
67
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
@@ -73,4 +73,3 @@ After implementation:
73
73
 
74
74
  ## Signal Completion
75
75
 
76
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
@@ -64,7 +64,6 @@ Do NOT remove the worktree — the engine handles cleanup automatically.
64
64
 
65
65
  Your task is complete once you have: (1) pushed your branch, (2) created the PR, and (3) confirmed the build passes. Do NOT continue exploring, refactoring, or adding features beyond the task description. Stop immediately after the PR is created and verified.
66
66
 
67
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
68
67
 
69
68
  ## Build and Demo Rule
70
69
 
@@ -102,4 +102,3 @@ Rules for items:
102
102
 
103
103
  ## Signal Completion
104
104
 
105
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
package/playbooks/plan.md CHANGED
@@ -93,7 +93,6 @@ High-level design decisions and rationale.
93
93
 
94
94
  ## Signal Completion
95
95
 
96
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
97
96
 
98
97
  ## Team Notes
99
98
  {{notes_content}}
@@ -71,4 +71,3 @@ If you encounter merge conflicts (e.g., the PR shows conflicts):
71
71
 
72
72
  Your task is complete once you have: (1) posted your review comment on the PR, and (2) cast your vote. Do NOT continue reading unrelated files or performing additional analysis. Stop after voting.
73
73
 
74
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
@@ -0,0 +1,7 @@
1
+ ## Engine Rules (apply to all tasks)
2
+
3
+ - Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
4
+ - Do NOT remove worktrees — the engine handles cleanup automatically.
5
+ - Do NOT checkout branches in the main working tree — use worktrees or `git diff`/`git show`.
6
+ - Read `notes.md` for team rules and decisions before starting.
7
+ - If you discover a repeatable workflow, output it as a ```skill block (the engine auto-extracts it).
package/playbooks/test.md CHANGED
@@ -63,6 +63,5 @@ Include:
63
63
  - The run command (absolute paths, copy-pasteable from any terminal)
64
64
  - Localhost URL if applicable
65
65
 
66
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
67
66
 
68
67
  Do NOT remove worktrees — the engine handles cleanup automatically.
@@ -150,4 +150,3 @@ Use subagents only for genuinely parallel, independent tasks (e.g., building sep
150
150
  - Use absolute paths everywhere so the user can copy-paste commands
151
151
  - E2E PRs are for review only — do NOT auto-complete or merge them
152
152
 
153
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
@@ -50,7 +50,6 @@ Keep branch names lowercase, use hyphens, max 60 chars.
50
50
 
51
51
  Write your findings to: `{{team_root}}/notes/inbox/{{agent_id}}-{{item_id}}-{{date}}.md`
52
52
 
53
- **Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
54
53
 
55
54
  ## Rules
56
55
  - Do not checkout branches in the main working tree — use worktrees