@yemi33/minions 0.1.1969 → 0.1.1970
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/engine/shared.js +10 -3
- package/package.json +1 -1
- package/prompts/cc-system.md +1 -1
package/engine/shared.js
CHANGED
|
@@ -1959,9 +1959,15 @@ const WORK_TYPE = {
|
|
|
1959
1959
|
// and /api/work-items/retry) refuses to create or re-spawn a project-less WI
|
|
1960
1960
|
// of any type in this set when PROJECTS.length !== 1.
|
|
1961
1961
|
//
|
|
1962
|
-
// Complement of engine.js READ_ONLY_ROOT_TASK_TYPES
|
|
1963
|
-
//
|
|
1964
|
-
//
|
|
1962
|
+
// Complement of engine.js READ_ONLY_ROOT_TASK_TYPES. `docs` is included
|
|
1963
|
+
// (W-mpbgo1wv000gf75b): docs edits run as worktree-requiring dispatches
|
|
1964
|
+
// against the minions repo, so without a project the engine's
|
|
1965
|
+
// resolveProjectRootDir falls back to MINIONS_DIR's parent and can collapse
|
|
1966
|
+
// to a drive root on installs where MINIONS_DIR sits one level below the
|
|
1967
|
+
// filesystem root (e.g. `D:\squad` → `D:\`). Failing fast at HTTP-validate
|
|
1968
|
+
// time is preferable to letting a project-less docs WI land and loop on
|
|
1969
|
+
// WORKTREE_PREFLIGHT. Callers doing minions-repo docs work must pass
|
|
1970
|
+
// `project: "minions"` explicitly.
|
|
1965
1971
|
const WORKTREE_REQUIRING_TYPES = new Set([
|
|
1966
1972
|
WORK_TYPE.FIX,
|
|
1967
1973
|
WORK_TYPE.IMPLEMENT,
|
|
@@ -1970,6 +1976,7 @@ const WORKTREE_REQUIRING_TYPES = new Set([
|
|
|
1970
1976
|
WORK_TYPE.VERIFY,
|
|
1971
1977
|
WORK_TYPE.REVIEW,
|
|
1972
1978
|
WORK_TYPE.DECOMPOSE,
|
|
1979
|
+
WORK_TYPE.DOCS,
|
|
1973
1980
|
]);
|
|
1974
1981
|
|
|
1975
1982
|
const PLAN_STATUS = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1970",
|
|
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/prompts/cc-system.md
CHANGED
|
@@ -146,7 +146,7 @@ curl -s http://localhost:{{dashboard_port}}/api/status
|
|
|
146
146
|
|
|
147
147
|
**Required fields per endpoint** — the server returns `{ error: "..." }` if missing. Common cases:
|
|
148
148
|
- `POST /api/work-items`: `title` REQUIRED. `description` recommended. `project` REQUIRED when multiple projects are configured (server returns the list of known names if you guess wrong). `type` defaults to `implement`; valid values: `fix`, `implement`, `implement:large`, `explore`, `ask`, `review`, `test`, `verify`. Agent hint via `agent` (string) or `agents` (array).
|
|
149
|
-
- Exempt from the `project` requirement (these run rootless or via central paths): `ask`, `explore`, `plan`, `plan-to-prd`, `meeting
|
|
149
|
+
- Exempt from the `project` requirement (these run rootless or via central paths): `ask`, `explore`, `plan`, `plan-to-prd`, `meeting`. (`docs` is intentionally NOT exempt — it's write-capable and lands in `WORKTREE_REQUIRING_TYPES`, so it needs a real project worktree. For minions-repo docs work, pass `project: "minions"` explicitly.) Every other type needs a project worktree, so the server rejects project-less creates with `400 { error, knownProjects }` when ≠1 project is configured.
|
|
150
150
|
- **`meta.keep_processes: true`** — opt-in flag that lets the agent leave specific descendant PIDs running after it exits (default: engine reaps EVERYTHING the agent spawned). **Set this whenever the user's intent is to leave a process alive after the agent finishes** — e.g. "spin up the dev server and exit", "start the watcher and leave it running", "set up my dev env", "keep the emulator open", "launch the daemon for me", "boot the constellation host and disconnect". Don't set it for normal build/test/run-once tasks (`npm test`, `npm run build`, one-shot scripts) — those should be reaped. Also accepts optional `meta.keep_processes_ttl_minutes` (default 60, hard-cap 1440 = 24h). When you set this flag, also make the WI title/description say something like "leave the dev server running" so the agent knows to write `agents/<id>/keep-pids.json` before exiting (the playbook injects the contract automatically when the flag is on). Example: `-d '{"title":"Spin up Constellation dev env and leave server running","type":"implement","project":"constellation","description":"Run bun install + bun run dev. Leave the dev server (port 5173) and Constellation host (port 3001) running after you exit so the user can iterate.","meta":{"keep_processes":true,"keep_processes_ttl_minutes":240}}'`. Inspect / kill kept PIDs anytime via `GET /api/keep-processes` and `POST /api/keep-processes/kill`.
|
|
151
151
|
- **`skipPr: true`** — opt-in flag that tells the engine NOT to enforce the PR-attachment contract for this work item, so the WI can complete `done` without the missing-PR hard-fail. **Set this when the dispatch mutates state OUTSIDE any tracked git repo and therefore cannot produce a PR** — e.g. cleaning `~/.claude/skills/`, editing runtime config under `~/.config/`, resetting the dashboard cache, mutating engine JSON state files (`engine/*.json`) the engine itself owns, or local tooling installs. **Do NOT set it for any task that touches a tracked repo's source** — even one-line diffs in a real repo should produce a PR. Type-selection rule of thumb: prefer `type: "explore"` for genuinely read-only tasks (rootless, no worktree, no PR contract); use `skipPr: true` when the task is write-side mutation but the writes don't land in a git repo. Example: `-d '{"title":"Clean up duplicate skills in ~/.claude/skills","type":"implement","description":"Audit ~/.claude/skills/ and delete the 3 obsolete entries identified in NOTE-mp7gt4iw0004b879. Pure user-machine state outside any git repo, so no PR will be produced.","skipPr":true}'`.
|
|
152
152
|
- **`oneShot: true`** — opt-in flag for one-off human-initiated dispatches that should NOT enroll the discovered PR into the engine's automatic review/fix loop. The PR is still tracked (status + comments are polled normally) but `discoverFromPrs` skips it for review/fix dispatch. **Set this when the user's intent is "do this single action against an existing PR, then stop"** — e.g. "review PR #2533 once", "rebase PR #2540 once and exit", "post a fix-summary comment on PR #2519". Don't set it for normal feature/fix work where the PR should keep cycling through review/fix until merged. Example: `-d '{"title":"One-off review of PR #2533","type":"review","project":"minions","description":"Single review pass on github:yemi33/minions#2533. Do not re-dispatch on subsequent comments.","oneShot":true}'`.
|