@yemi33/minions 0.1.443 → 0.1.445
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 -1
- package/dashboard.js +1 -1
- package/engine/pipeline.js +2 -2
- package/package.json +1 -1
- package/pipelines/daily-arch-improvement.json +58 -0
- package/pipelines/weekly-bug-audit.json +35 -0
- package/pipelines/weekly-performance-review.json +48 -0
- package/pipelines/weekly-simplify-review.json +47 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.445 (2026-04-06)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- notification dot on Notes & KB sidebar when sweep completes/fails
|
|
7
7
|
|
|
8
|
+
### Fixes
|
|
9
|
+
- remove hardcoded agent assignments from all pipeline JSONs
|
|
10
|
+
- pipeline tasks don't hardcode agent — any available agent picks up work
|
|
11
|
+
|
|
8
12
|
## 0.1.441 (2026-04-06)
|
|
9
13
|
|
|
10
14
|
### Fixes
|
package/dashboard.js
CHANGED
|
@@ -513,7 +513,7 @@ Available action types:
|
|
|
513
513
|
- **delete-schedule**: Delete a scheduled task. Fields: id.
|
|
514
514
|
- **create-meeting**: Start a team meeting. Fields: title (short meeting name), agenda (detailed text — what agents should investigate/debate, numbered items work best), agents (array of agent IDs), rounds (optional, default 3), project (optional).
|
|
515
515
|
- **set-config**: Update engine settings. Fields: setting (setting name), value (new value). Valid settings: autoApprovePlans (bool), autoDecompose (bool), allowTempAgents (bool), maxConcurrent (number), maxTurns (number). Example: { "type": "set-config", "setting": "autoApprovePlans", "value": true }
|
|
516
|
-
- **edit-pipeline**: Update an existing pipeline. Fields: id (pipeline ID), title (optional), stages (optional, JSON array), trigger (optional, { cron: "minute hour dow" } or null for manual).
|
|
516
|
+
- **edit-pipeline**: Update an existing pipeline. Fields: id (pipeline ID), title (optional), stages (optional, JSON array — do NOT set "agent" on stages; the engine routes to any available agent automatically), trigger (optional, { cron: "minute hour dow" } or null for manual).
|
|
517
517
|
- **unpin**: Remove a pinned note. Fields: title (exact title of the pinned note to remove)
|
|
518
518
|
- **archive-plan**: Archive a completed/paused plan. Fields: file (PRD .json or plan .md filename)
|
|
519
519
|
- **reject-plan**: Reject a plan. Fields: file (PRD .json filename), reason (optional)
|
package/engine/pipeline.js
CHANGED
|
@@ -156,7 +156,7 @@ async function executeStage(stage, run, pipeline, config) {
|
|
|
156
156
|
|
|
157
157
|
function executeTaskStage(stage, stageState, run, config) {
|
|
158
158
|
// Create work item(s) for the task
|
|
159
|
-
const items = stage.items || [{ title: stage.title, description: stage.description || '', type: stage.taskType || 'explore'
|
|
159
|
+
const items = stage.items || [{ title: stage.title, description: stage.description || '', type: stage.taskType || 'explore' }];
|
|
160
160
|
const count = stage.count || items.length;
|
|
161
161
|
const wiPath = path.join(__dirname, '..', 'work-items.json');
|
|
162
162
|
const workItems = safeJson(wiPath) || [];
|
|
@@ -172,7 +172,7 @@ function executeTaskStage(stage, stageState, run, config) {
|
|
|
172
172
|
description: item.description || stage.description || '',
|
|
173
173
|
type: item.type || stage.taskType || 'explore',
|
|
174
174
|
priority: item.priority || stage.priority || 'medium',
|
|
175
|
-
|
|
175
|
+
// No hardcoded agent — let engine routing assign any available agent
|
|
176
176
|
status: WI_STATUS.PENDING,
|
|
177
177
|
created: ts(),
|
|
178
178
|
createdBy: 'pipeline:' + run.pipelineId,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.445",
|
|
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"
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "daily-arch-improvement",
|
|
3
|
+
"title": "Daily Architecture & Improvement Pipeline",
|
|
4
|
+
"stages": [
|
|
5
|
+
{
|
|
6
|
+
"id": "anthropic-research",
|
|
7
|
+
"type": "task",
|
|
8
|
+
"taskType": "explore",
|
|
9
|
+
"title": "Weekly Anthropic best practices research",
|
|
10
|
+
"description": "Research the latest Anthropic blog posts and guidance to surface relevant improvements for Minions.\n\nSteps:\n1. Use WebSearch and WebFetch to find recent posts on https://www.anthropic.com/news and https://docs.anthropic.com. Focus on: agent best practices, prompt engineering, multi-agent systems, safety, tool use, and anything relevant to orchestration engines.\n2. Collect the 3-5 most relevant/recent items with key takeaways.\n3. Write findings to `inbox/anthropic-research-{{date}}.md` (one section per finding: title, summary, relevance to Minions).\n\nThis output will be used to inform today's architecture meeting."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "arch-meeting",
|
|
14
|
+
"type": "meeting",
|
|
15
|
+
"title": "Daily Architecture & Bug Review",
|
|
16
|
+
"agenda": "Morning architecture review and improvement planning for the Minions agentic harness.\n\n1. What bugs or reliability issues have surfaced since yesterday?\n2. Which parts of the engine, lifecycle, or dashboard feel fragile or need rework?\n3. Are there architectural improvements worth tackling today (patterns, abstractions, performance, correctness)?\n4. What are the 1-3 highest-leverage improvements to plan for today?\n5. Agree on a focused improvement scope � not too broad, shippable today or tomorrow.\n6. Ripley will have researched the latest Anthropic best practices before this meeting. Review findings in `inbox/` and discuss: do any recommendations apply to Minions? Should any be planned?\n\nOutput: bulleted list of agreed improvements and bugs, prioritised, with rough complexity estimates. This output will be used directly to create a plan.",
|
|
17
|
+
"participants": [
|
|
18
|
+
"all"
|
|
19
|
+
],
|
|
20
|
+
"dependsOn": [
|
|
21
|
+
"anthropic-research"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "arch-review-wait",
|
|
26
|
+
"type": "wait",
|
|
27
|
+
"title": "Review meeting conclusions before planning",
|
|
28
|
+
"description": "Review the architecture meeting conclusions above, then continue to create and dispatch the improvement plan.",
|
|
29
|
+
"dependsOn": [
|
|
30
|
+
"arch-meeting"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "create-and-execute-plan",
|
|
35
|
+
"type": "plan",
|
|
36
|
+
"title": "Create improvement plan from architecture meeting",
|
|
37
|
+
"description": "Based on today's architecture meeting findings, create a focused improvement plan.",
|
|
38
|
+
"dependsOn": [
|
|
39
|
+
"arch-review-wait"
|
|
40
|
+
],
|
|
41
|
+
"autoApprove": true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "executive-summary",
|
|
45
|
+
"type": "task",
|
|
46
|
+
"taskType": "explore",
|
|
47
|
+
"title": "Write executive summary and save to reports",
|
|
48
|
+
"description": "Write a concise executive summary of today's architecture review and the plan that was queued.\n\nSteps:\n1. Read the meeting transcript and plan from previous stages.\n2. Write an executive summary covering: (a) top issues identified, (b) plan created and what it will fix, (c) expected impact.\n3. Save the summary to notes/inbox/ using the writeToInbox pattern (filename: executive-summary-{{date}}.md).\n\nKeep the summary concise — 3-5 bullet points per section, executive-readable.",
|
|
49
|
+
"dependsOn": [
|
|
50
|
+
"create-and-execute-plan"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"trigger": {
|
|
55
|
+
"cron": "0 9 1,2,3,4,5"
|
|
56
|
+
},
|
|
57
|
+
"enabled": true
|
|
58
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "weekly-bug-audit",
|
|
3
|
+
"title": "Weekly Comprehensive Bug Audit",
|
|
4
|
+
"stages": [
|
|
5
|
+
{
|
|
6
|
+
"id": "bug-audit",
|
|
7
|
+
"type": "task",
|
|
8
|
+
"taskType": "explore",
|
|
9
|
+
"title": "Comprehensive bug audit — engine, dashboard, CLI, all modules",
|
|
10
|
+
"description": "Perform a thorough bug audit of the entire Minions codebase (D:/squad). Read every core module and look for real bugs, not style issues.\n\nCover:\n- engine.js — tick logic, spawn chain, orphan detection, concurrency, state transitions\n- dashboard.js — all API handlers, null/undefined guards, race conditions, auth, error paths\n- engine/shared.js, queries.js, lifecycle.js, dispatch.js, consolidation.js, ado.js, github.js, cli.js, preflight.js, scheduler.js, pipeline.js, meeting.js, cooldown.js, llm.js\n- All status/type constant usage — look for raw strings that should use WI_STATUS, WORK_TYPE, etc.\n- Concurrency safety — any safeWrite() on files that need mutateJsonFileLocked()\n- Cross-platform hazards — direct proc.kill(), process.env.HOME, unescaped Windows paths\n- Null/undefined crashes — missing guards before .filter(), .map(), .find() on possibly-null values\n- Logic bugs — off-by-one, wrong condition, incorrect status transitions, stale state reads\n- Error handling gaps — unhandled promise rejections, missing try/catch in tick phases\n- Config access before guard — reading projects[0] without checking projects.length\n\nFor each bug found, record:\n- File and line number\n- Severity: critical / high / medium / low\n- Description of the bug and how it manifests\n- Proposed fix\n\nProduce a structured findings report. Do NOT make any code changes — analysis only."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "audit-review-wait",
|
|
14
|
+
"type": "wait",
|
|
15
|
+
"title": "Review audit findings before planning",
|
|
16
|
+
"description": "Ripley has completed the bug audit. Review the findings in the agent output, then continue to generate the fix plan.",
|
|
17
|
+
"dependsOn": [
|
|
18
|
+
"bug-audit"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "fix-plan",
|
|
23
|
+
"type": "plan",
|
|
24
|
+
"title": "Bug fix plan from weekly audit",
|
|
25
|
+
"description": "Based on the bug audit findings:\n\n{{stages.bug-audit.output}}\n\nWrite a detailed implementation plan to fix the bugs identified. Group related fixes where it makes sense. Each item should be concrete, scoped to specific files/functions, and ordered by severity (critical first). The plan will go to human review before any execution begins — do not auto-approve.",
|
|
26
|
+
"dependsOn": [
|
|
27
|
+
"audit-review-wait"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"trigger": {
|
|
32
|
+
"cron": "0 9 3"
|
|
33
|
+
},
|
|
34
|
+
"enabled": true
|
|
35
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "weekly-performance-review",
|
|
3
|
+
"title": "Weekly Performance Review & Fix Pipeline",
|
|
4
|
+
"stages": [
|
|
5
|
+
{
|
|
6
|
+
"id": "perf-audit",
|
|
7
|
+
"type": "task",
|
|
8
|
+
"taskType": "explore",
|
|
9
|
+
"title": "Performance audit — hangs, blocking ops, async issues",
|
|
10
|
+
"description": "Perform a thorough performance audit of the entire Minions codebase (D:/squad). Read all core modules (engine.js, dashboard.js, engine/*.js, dashboard/*.js) and identify real performance problems.\n\nFocus areas:\n- **Hangs / blocking I/O**: synchronous fs calls (readFileSync, writeFileSync) on the hot path, blocking requires inside functions, synchronous JSON parsing of large files\n- **Lack of optimistic updates**: dashboard API handlers that wait for a full file write before responding, work item mutations that could return immediately and confirm async, UI state that stalls on round-trips\n- **Waiting for API**: serial `await` chains that could be `Promise.all`, ADO/GitHub polling that blocks the tick loop, agent live-stream handlers that await unnecessarily\n- **Async operation issues**: unresolved promise chains, fire-and-forget mutations without error handling, missing concurrency limits on fan-out spawns, tick phases that don't yield between items\n- **Lock contention**: mutateJsonFileLocked calls that hold locks too long or are called unnecessarily in read-only paths\n- **SSE/streaming**: response streams not flushed promptly, missing heartbeat causing client timeouts, large payloads serialized synchronously before first byte sent\n\nFor each issue found, record:\n- File and line number\n- Category: hang / no-optimistic-update / api-wait / async-issue / lock-contention / sse\n- Severity: critical / high / medium / low\n- Description and how it manifests under load or in the UI\n- Proposed fix\n\nProduce a structured findings report. Do NOT make any code changes — analysis only."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "perf-meeting",
|
|
14
|
+
"type": "meeting",
|
|
15
|
+
"title": "Performance Review — agree on fixes",
|
|
16
|
+
"agenda": "Ripley has completed a performance audit of the Minions codebase. Review findings and agree on what to fix.\n\nFindings:\n{{stages.perf-audit.output}}\n\nDiscussion points:\n1. Review each finding — is it a real problem or acceptable tradeoff?\n2. For no-optimistic-update issues: agree on which API endpoints should return immediately vs. wait\n3. For hangs and blocking ops: agree on whether to move to async, use streams, or cache\n4. For async/await chains: agree on where Promise.all parallelisation is safe\n5. Prioritise — critical and high severity first, limit scope to what can ship in one plan\n6. Produce a concrete, ordered list of agreed fixes with rationale and file references",
|
|
17
|
+
"participants": [
|
|
18
|
+
"all"
|
|
19
|
+
],
|
|
20
|
+
"dependsOn": [
|
|
21
|
+
"perf-audit"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "perf-review-wait",
|
|
26
|
+
"type": "wait",
|
|
27
|
+
"title": "Review meeting conclusions before planning",
|
|
28
|
+
"description": "Review the performance meeting conclusions above, then continue to create and dispatch the fix plan.",
|
|
29
|
+
"dependsOn": [
|
|
30
|
+
"perf-meeting"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "perf-plan",
|
|
35
|
+
"type": "plan",
|
|
36
|
+
"title": "Performance fix plan from weekly review",
|
|
37
|
+
"description": "Based on the agreed performance fixes from the meeting:\n\n{{stages.perf-meeting.output}}\n\nWrite a detailed implementation plan for the agreed performance improvements to the Minions codebase. Each item must:\n- Reference the specific file(s) and function(s) to change\n- Describe the before/after behaviour\n- Be independently shippable (one PR per item where possible)\n- Be ordered by severity (critical first)\n\nThe plan will be auto-approved and dispatched to agents immediately.",
|
|
38
|
+
"dependsOn": [
|
|
39
|
+
"perf-review-wait"
|
|
40
|
+
],
|
|
41
|
+
"autoApprove": true
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"trigger": {
|
|
45
|
+
"cron": "0 9 4"
|
|
46
|
+
},
|
|
47
|
+
"enabled": true
|
|
48
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "weekly-simplify-review",
|
|
3
|
+
"title": "Weekly Simplify Review & Improvement Plan",
|
|
4
|
+
"stages": [
|
|
5
|
+
{
|
|
6
|
+
"id": "simplify-analysis",
|
|
7
|
+
"type": "task",
|
|
8
|
+
"taskType": "explore",
|
|
9
|
+
"title": "Simplify analysis � Minions codebase",
|
|
10
|
+
"description": "Perform a thorough simplify review of the entire Minions codebase (D:/squad). Read all core modules (engine.js, dashboard.js, engine/*.js) and identify: redundant code, missed reuse of shared utilities, premature abstractions, magic strings/numbers, copy-paste patterns, functions that could be generalized, and architectural inconsistencies. Produce a structured findings report with specific file:line references and concrete recommendations for each issue. Do NOT make any code changes � analysis and reporting only."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "simplify-meeting",
|
|
14
|
+
"type": "meeting",
|
|
15
|
+
"title": "Weekly Code Quality & Simplification Review",
|
|
16
|
+
"agenda": "Ripley has completed a simplify analysis of the Minions codebase. Review the findings and reach consensus on what to fix.\n\nFindings:\n{{stages.simplify-analysis.output}}\n\nDiscussion points:\n1. Review each finding and assess severity/impact\n2. Debate proposed solutions and tradeoffs\n3. Prioritize � what is worth doing vs. not worth the churn?\n4. Agree on a concrete, scoped set of improvements\n5. Produce a clear list of agreed-upon changes with rationale",
|
|
17
|
+
"participants": [
|
|
18
|
+
"all"
|
|
19
|
+
],
|
|
20
|
+
"dependsOn": [
|
|
21
|
+
"simplify-analysis"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "user-review-wait",
|
|
26
|
+
"type": "wait",
|
|
27
|
+
"title": "Awaiting your sign-off on proposed improvements",
|
|
28
|
+
"description": "Review the meeting conclusions and continue the pipeline when satisfied with the agreed improvements.",
|
|
29
|
+
"dependsOn": [
|
|
30
|
+
"simplify-meeting"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "improvement-plan",
|
|
35
|
+
"type": "plan",
|
|
36
|
+
"title": "Create improvement plan from simplify review",
|
|
37
|
+
"description": "Based on the agreed improvements from the simplify review meeting:\n\n{{stages.simplify-meeting.output}}\n\nWrite a detailed implementation plan for the agreed code quality improvements to the Minions codebase. Each item should be scoped, concrete, and reference specific files and functions. The plan will be submitted for user review before any execution begins.",
|
|
38
|
+
"dependsOn": [
|
|
39
|
+
"user-review-wait"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"trigger": {
|
|
44
|
+
"cron": "0 9 2"
|
|
45
|
+
},
|
|
46
|
+
"enabled": true
|
|
47
|
+
}
|