@yemi33/minions 0.1.1891 → 0.1.1893

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/docs/index.html CHANGED
@@ -247,31 +247,30 @@ minions update</pre>
247
247
  <div class="arch">
248
248
  <h2>Architecture</h2>
249
249
  <pre>
250
- ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
251
- Γöé ~/.minions/ (central hub) Γöé
252
- Γöé Γöé
253
- Γöé engine.js ΓöÇΓöÇΓöÇΓöÇ 60s tick loop ΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
254
- Γöé Γöé Γöé Γöé
255
- Γöé discover work spawn agents poll PRs/comments Γöé
256
- Γöé Γöé Γöé Γöé Γöé
257
- Γöé ΓöîΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ ΓöîΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÉ Γöé
258
- Γöé Γöé Plans Γöé Γöé Worktrees Γöé Γöé ADO Γöé Γöé
259
- Γöé Γöé PRDs Γöé Γöé (isolated) Γöé ΓöéGitHubΓöé Γöé
260
- Γöé Γöé Items Γöé Γöé per agent Γöé Γöé Γöé Γöé
261
- Γöé ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ Γöé
262
- Γöé Γöé
263
- Γöé dashboard.js ΓöÇΓöÇ port 7331 ΓöÇΓöÇ mission control Γöé
264
- Γöé runtimes/ ΓöÇΓöÇ Claude Code or GitHub Copilot CLI Γöé
265
- Γöé meetings/ ΓöÇΓöÇ multi-agent discussions Γöé
266
- Γöé pipelines/ ΓöÇΓöÇ multi-stage workflows Γöé
267
- Γöé schedules + watches ΓöÇΓöÇ recurring/conditional work Γöé
268
- Γöé notes.md + knowledge/ ΓöÇΓöÇ team memory and KB Γöé
269
- ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
250
+ +-----------------------------------------------------+
251
+ | ~/.minions/ (central hub) |
252
+ | |
253
+ | engine.js ---- 60s tick loop ----+ |
254
+ | | | |
255
+ | discover work spawn agents poll PRs/comments|
256
+ | | | | |
257
+ | +-------+ +-------------+ +--------+ |
258
+ | | Plans | | Worktrees | | ADO / | |
259
+ | | PRDs | | isolated | | GitHub | |
260
+ | | Items | | per agent | +--------+ |
261
+ | +-------+ +-------------+ |
262
+ | |
263
+ | dashboard.js -- port 7331 -- mission control |
264
+ | runtimes/ -- Claude Code or GitHub Copilot CLI |
265
+ | meetings/ -- multi-agent discussions |
266
+ | pipelines/ -- multi-stage workflows |
267
+ | schedules + watches -- recurring/conditional work |
268
+ | notes.md + knowledge/ -- team memory and KB |
269
+ +-----------------------------------------------------+
270
270
  </pre>
271
271
  </div>
272
272
 
273
273
  </div>
274
-
275
274
  <footer>
276
275
  <p>Minions &mdash; built by <a href="https://github.com/yemi33">yemi33</a> &mdash; <a href="https://www.npmjs.com/package/@yemi33/minions">npm</a> &mdash; <a href="https://yemi33.github.io/minions/">Public site</a> &mdash; MIT License &mdash; Claude Code or GitHub Copilot CLI runtime</p>
277
276
  </footer>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1891",
3
+ "version": "0.1.1893",
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"
@@ -63,6 +63,42 @@ List anything that requires human judgment:
63
63
  Cross-project or cross-feature interactions to verify:
64
64
  - e.g., "Service A calls Service B — verify the API contract"
65
65
 
66
+ ## Cross-PR Compatibility Audit
67
+
68
+ Per-pair verdicts (one line per pair, format: `PR-A vs PR-B: independent | A supersedes B | B supersedes A | conflict <description> | order: B before A`). Cite `path:line` for every conflict claim.
69
+
70
+ - PR-#### vs PR-####: <verdict>
71
+ - ...
72
+
73
+ ## Semantic Regression Audit
74
+
75
+ Per-PR verdict for each engine-touching PR (anything under `engine/`, `engine.js`, `dashboard.js`, `bin/`, `dashboard/**`). Format: `PR-####: <safe | risk: <description with path:line citation> | needs human review: <question>>`. Cite call sites, not just the diff.
76
+
77
+ - PR-####: <verdict>
78
+ - ...
79
+
80
+ ## Merge Decisions
81
+
82
+ Required. Read by a human deciding what to merge in what order.
83
+
84
+ ### Recommended merge order
85
+ 1. PR-#### — <reason or `independent`>
86
+ 2. ...
87
+
88
+ ### PRs to close as superseded
89
+ - PR-#### — superseded by PR-####; merging both would <regression description>
90
+ - (or: `none`)
91
+
92
+ ### PRs requiring human decision
93
+ - PR-#### — blocked on <contradiction with PR-#### at file:line>, or <missing CI / other>
94
+ - (or: `none`)
95
+
96
+ If the audit found nothing to decide, replace the three subsections above with the single line:
97
+
98
+ ```
99
+ Merge Decisions: clean — all <N> PRs are pairwise independent and may merge in any order
100
+ ```
101
+
66
102
  ## Known Issues
67
103
  - Build warnings, test failures, merge conflicts, unimplemented items
68
104
 
@@ -49,6 +49,47 @@ For each project with aggregate verification changes, create or update one draft
49
49
 
50
50
  Track each E2E PR in the project's `.minions/pull-requests.json` if it is not already tracked.
51
51
 
52
+ ## Cross-PR Compatibility Audit
53
+
54
+ Before declaring verification complete, audit the plan's PRs against each other — not just against master. A clean E2E build is necessary but not sufficient: two PRs can both compile and pass tests in isolation, both look fine in the merged E2E branch, and still represent contradictory or duplicate intent that will silently regress one of them once merged into master in the wrong order.
55
+
56
+ For each pair of plan PRs, check and record a verdict:
57
+
58
+ 1. **Line-level overlap** — run `git diff --name-only <prA-base>..<prA-head>` and `<prB-base>..<prB-head>`; for any shared file, run `git diff <prA-head> <prB-head> -- <file>` and inspect. If both PRs touch the same line/symbol with different values, name the conflict explicitly (don't trust the auto-merge).
59
+ 2. **Semantic supersession** — does PR-A do everything PR-B does, plus more? If yes, PR-B is superseded; recommend closing it. The classic trap: PR-B adds field X to a list, PR-A adds field X *and* removes dead field Y. Merging B after A reintroduces Y.
60
+ 3. **Contradictory acceptance criteria** — do two plan items prescribe different shapes for the same contract (CLI flag, JSON field, prompt section)? If yes, one must lose; flag for human decision.
61
+ 4. **Order dependency** — does PR-A's diff make sense only after PR-B lands (e.g., PR-A's tests reference a symbol PR-B introduces)? Record the required merge order.
62
+
63
+ For each PR pair, a one-line verdict in the form: `PR-A vs PR-B: independent | A supersedes B | B supersedes A | conflict <description> | order: B before A`. Cite the file:line for any conflict claim. "No conflicts" without per-pair audit evidence is not acceptable.
64
+
65
+ ## Semantic Regression Audit
66
+
67
+ A green E2E build proves the code compiles and the existing tests still pass. It does NOT prove the new behavior is correct or that it doesn't silently break a code path the test suite never exercised. For every plan PR that touches engine code (anything under `engine/`, `engine.js`, `dashboard.js`, `bin/`, `dashboard/**`), do a behavioral audit before approving the merge:
68
+
69
+ 1. **Trace the changed function's call graph one hop out.** For each modified function/exported symbol, run `git grep -n '<symbol>'` across the repo (not just within the PR's diff). For each caller, ask: does the new behavior still satisfy what this caller expects? Cite the caller as `path:line — assumption — still holds? yes/no/unsure`.
70
+ 2. **Identify the silent failure modes.** A change that adds a guard, demotes a fallback, or removes a field has a *what-used-to-happen-here* shadow. Name it. For removals: which call sites read the removed field, and what do they fall back to now? For added guards: what input previously passed and now gets rejected — is that input ever produced legitimately? For demoted fallbacks: which production path relied on the fallback, and is the new primary path actually populated there?
71
+ 3. **Check the test additions cover the new branch, not just the happy path.** A test that only asserts the new behavior on a freshly constructed input is half a test. The other half is: does an *existing* fixture that exercised the old behavior still pass, and does it pass for the right reason (not because the assertion got loosened)? Cite the test by file:line and the fixture it uses.
72
+ 4. **Read the comments in the diff with suspicion.** Comments like "this also handles X" or "the gate at Y skips this path" are claims the agent made. Verify each one by opening Y and confirming the gate actually does what the comment says. If the claim is wrong, the change has a hole.
73
+ 5. **Schema/contract changes deserve a grep across language boundaries.** A field added to a JSON contract in `engine/shared.js` may also be referenced in `dashboard/js/*.js`, `playbooks/*.md`, `test/**`, and any external consumer. Run a literal grep for the field name across the whole tree, not just the PR's touched files.
74
+
75
+ Record one verdict per engine-touching PR in the form: `PR-####: <safe | risk: <description with path:line citation> | needs human review: <question>>`. "Looks fine" without per-call-site evidence is not acceptable. If you cannot complete the audit in the time available, say so explicitly and list the unaudited PRs in the Merge Decisions section under "PRs requiring human decision".
76
+
77
+ ## Merge Decision Note
78
+
79
+ The inbox copy at `{{team_root}}/notes/inbox/verify-{{plan_slug}}.md` MUST include a **Merge Decisions** section with three required subsections, written for a human deciding what to merge in what order:
80
+
81
+ 1. **Recommended merge order** — numbered list of PRs that should land, in the order they should land, with a one-line reason for each ordering constraint (or `independent` if order doesn't matter).
82
+ 2. **PRs to close as superseded** — bullet list of PRs that should be closed without merging, with the superseding PR cited and the regression that would occur if both lands.
83
+ 3. **PRs requiring human decision** — bullet list of PRs blocked on a contradiction the agent could not resolve (cite the contradicting PR and the field/line in dispute), or on missing CI runs that need re-triggering.
84
+
85
+ If the audit finds nothing to decide ΓÇö all PRs are independent, none superseded, none contradictory ΓÇö the section MUST take this exact form instead:
86
+
87
+ ```
88
+ Merge Decisions: clean ΓÇö all <N> PRs are pairwise independent and may merge in any order
89
+ ```
90
+
91
+ A bare "no conflicts found" or an empty Merge Decisions section is not acceptable. The point of this section is to spare the human a second audit; if you skip it, the human has to redo the work you were dispatched to do.
92
+
52
93
  ## Constraints
53
94
 
54
95
  - Do not assume any specific platform, language, framework, shell, build system, mobile app, web app, Android, or iOS target.
@@ -61,6 +102,6 @@ Track each E2E PR in the project's `.minions/pull-requests.json` if it is not al
61
102
 
62
103
  ## When to Stop
63
104
 
64
- Your task is complete once dependency branches are merged, build/test verification has run, the permanent guide is written, the inbox copy is written only if verification succeeded, and E2E PR URLs are included in your final response.
105
+ Your task is complete once dependency branches are merged, build/test verification has run, the cross-PR compatibility audit has produced a per-pair verdict, the semantic regression audit has produced a per-PR verdict for every engine-touching PR, the permanent guide is written with a Merge Decisions section, the inbox copy is written only if verification succeeded, and E2E PR URLs are included in your final response.
65
106
 
66
107
  Include each E2E PR URL and the testing guide path in your final message, for example: `E2E PR created: <url>` and `Testing guide: {{team_root}}/prd/guides/verify-{{plan_slug}}.md`.