@mu-crew/mu 3.3.0 → 3.5.0
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/README.md +45 -31
- package/dist/cli.js +812 -429
- package/dist/cli.js.map +1 -1
- package/dist/extension/mu-pi.js +221 -55
- package/dist/extension/mu-pi.js.map +1 -1
- package/dist/index.d.ts +33 -4
- package/dist/index.js +76 -5
- package/dist/index.js.map +1 -1
- package/docs/VISION.md +5 -1
- package/docs/VOCABULARY.md +4 -1
- package/docs/architecture/dag.md +3 -3
- package/docs/architecture/ops-log.md +26 -7
- package/docs/guide/cleanup.md +19 -0
- package/docs/guide/delegate.md +43 -4
- package/docs/reference/env.md +1 -0
- package/docs/reference/naming.md +18 -0
- package/docs/specs/2026-09-29-task-substates.md +1 -1
- package/package.json +1 -1
- package/prompts/mu-debug.md +8 -0
- package/prompts/mu-sweep.md +8 -0
- package/prompts/mu-until.md +8 -0
- package/prompts/ultrathink.md +2 -1
- package/skills/mu/SKILL.md +70 -31
- package/skills/mu/recipes/adversarial-review.md +27 -19
- package/skills/mu/recipes/{triage.md → backlog-triage.md} +9 -4
- package/skills/mu/recipes/codemode-driver.md +68 -20
- package/skills/mu/recipes/deep-research.md +23 -8
- package/skills/mu/recipes/fan-out.md +15 -11
- package/skills/mu/recipes/findings.md +103 -0
- package/skills/mu/recipes/hypothesis-panel.md +18 -13
- package/skills/mu/recipes/long-run.md +4 -4
- package/skills/mu/recipes/loop-until-done.md +7 -3
- package/skills/mu/recipes/orchestrator-loop.md +44 -27
- package/skills/mu/recipes/plan.md +8 -3
- package/skills/mu/recipes/recovery.md +5 -0
- package/skills/mu/recipes/refute.md +38 -36
- package/skills/mu/recipes/remote-workers.md +7 -2
- package/skills/mu/recipes/review-panel.md +36 -31
- package/skills/mu/recipes/rules-audit.md +30 -17
- package/skills/mu/recipes/tasks-or-calls.md +71 -0
- package/skills/mu/recipes/tournament.md +13 -10
- package/skills/mu/recipes/ultrathink.md +20 -11
- package/skills/mu/recipes/watcher.md +4 -1
- package/skills/mu/recipes/waves.md +6 -5
- package/skills/mu/recipes/worker.md +3 -1
package/README.md
CHANGED
|
@@ -20,9 +20,9 @@ in-progress, and blocked tasks, the log tail, workspaces, and doctor.*
|
|
|
20
20
|
socket inside each agent, so send, state, wait, and abort are exact,
|
|
21
21
|
locally and over ssh. The pane stays pi's normal TUI.
|
|
22
22
|
|
|
23
|
-
mu persists state and coordinates handoffs.
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
mu persists state and coordinates handoffs. Every read path has
|
|
24
|
+
`--json`, and every change goes through a typed CLI verb. See
|
|
25
|
+
[What mu is not](#what-mu-is-not).
|
|
26
26
|
|
|
27
27
|
## Install
|
|
28
28
|
|
|
@@ -71,24 +71,6 @@ For one helper, ask pi to delegate (`mu_delegate` ships with `mu link
|
|
|
71
71
|
pi`), or spawn into the reserved `scratch` workstream:
|
|
72
72
|
`mu agent spawn scout-1 -w scratch`.
|
|
73
73
|
|
|
74
|
-
## mu delegates vs hidden subagents
|
|
75
|
-
|
|
76
|
-
Claude Code, Codex, and pi-subagents delegate to a hidden child process
|
|
77
|
-
and return only its result. A mu delegate is an ordinary agent in a
|
|
78
|
-
pane.
|
|
79
|
-
|
|
80
|
-
| | Hidden subagent | mu delegate |
|
|
81
|
-
| ----------------------- | ------------------------ | ----------- |
|
|
82
|
-
| Visibility | none while it runs | a pane; attach and watch |
|
|
83
|
-
| Steer mid-run | no | `mu agent send`; stop with `mu agent abort` |
|
|
84
|
-
| Keep talking after it answers | no | yes, with `keep: true` |
|
|
85
|
-
| Transcript | collapses into a result | a normal pi session log |
|
|
86
|
-
| If the work grows | re-brief a new agent | same task DAG and workspaces |
|
|
87
|
-
| Cost | light | one pane and one pi process |
|
|
88
|
-
|
|
89
|
-
For many tiny calls, a hidden subagent is lighter. mu bets that seeing
|
|
90
|
-
and steering agent work is worth a pane.
|
|
91
|
-
|
|
92
74
|
## Ultrathink, the mu way
|
|
93
75
|
|
|
94
76
|
Long agent runs fail in two ways: the agent stops at 35 of 50 items and
|
|
@@ -98,19 +80,28 @@ agents, and have other agents try to refute each result before it
|
|
|
98
80
|
counts. Claude Code's ultracode does this with a hidden script. mu does
|
|
99
81
|
it in the open:
|
|
100
82
|
|
|
101
|
-
- **The plan is the DAG.** Every unit,
|
|
83
|
+
- **The plan is the DAG.** Every unit, review gate, finding and round
|
|
102
84
|
is a task before an agent spawns. `mu state` shows 35 of 50 done, so
|
|
103
85
|
nobody can declare victory early.
|
|
104
|
-
- **
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
86
|
+
- **Findings are tasks.** A reviewer records each problem as a task in
|
|
87
|
+
triage ([findings](skills/mu/recipes/findings.md)), and it blocks the
|
|
88
|
+
review until someone accepts it as work or closes it rejected or
|
|
89
|
+
duplicate. The graph holds the whole review.
|
|
90
|
+
- **Checks are calls.** Refuters, claim checkers and judges are
|
|
91
|
+
[delegate calls](skills/mu/recipes/tasks-or-calls.md): fresh agents,
|
|
92
|
+
ideally on another model, whose verdicts land on the task they
|
|
93
|
+
judged. A 50-unit run adds about 50 units, 50 review gates and the
|
|
94
|
+
findings that survive, not a task per check.
|
|
108
95
|
- **Every agent is a pane.** Attach to any worker, reviewer, or judge
|
|
109
96
|
mid-run and steer it.
|
|
110
97
|
- **Nothing lives only in a context window.** Verdicts, evidence, and
|
|
111
98
|
stop rules are task notes. The run survives compaction, crashes, and
|
|
112
99
|
a new orchestrator.
|
|
113
100
|
|
|
101
|
+
Not every review needs a record. Reviewing someone's PR or a doc runs
|
|
102
|
+
as delegates only: findings come back in their answers, and nothing
|
|
103
|
+
lands in the ops log.
|
|
104
|
+
|
|
114
105
|
Ask your orchestrator to *ultrathink* a job, and it follows
|
|
115
106
|
[skills/mu/recipes/ultrathink.md](skills/mu/recipes/ultrathink.md).
|
|
116
107
|
That recipe composes smaller ones you can also use on their own:
|
|
@@ -118,23 +109,46 @@ That recipe composes smaller ones you can also use on their own:
|
|
|
118
109
|
| Recipe | Shape |
|
|
119
110
|
| ------ | ----- |
|
|
120
111
|
| [fan-out](skills/mu/recipes/fan-out.md) | one task per unit, merged as each closes |
|
|
121
|
-
| [adversarial-review](skills/mu/recipes/adversarial-review.md) | a fresh agent tries to reject
|
|
122
|
-
| [refute](skills/mu/recipes/refute.md) | finders,
|
|
112
|
+
| [adversarial-review](skills/mu/recipes/adversarial-review.md) | a review gate per unit: a fresh agent tries to reject it before it ships |
|
|
113
|
+
| [refute](skills/mu/recipes/refute.md) | finders record findings, one refuter call per finding, report from the graph |
|
|
123
114
|
| [hypothesis-panel](skills/mu/recipes/hypothesis-panel.md) | independent theories from separate evidence, each attacked |
|
|
124
115
|
| [tournament](skills/mu/recipes/tournament.md) | competing attempts, judged in pairs |
|
|
125
116
|
| [loop-until-done](skills/mu/recipes/loop-until-done.md) | rounds until a stop rule written up front holds |
|
|
126
|
-
| [triage](skills/mu/recipes/triage.md) | quarantined readers classify, a trusted actor acts |
|
|
117
|
+
| [backlog-triage](skills/mu/recipes/backlog-triage.md) | quarantined readers classify, a trusted actor acts |
|
|
127
118
|
| [deep-research](skills/mu/recipes/deep-research.md) | searchers by angle, one checker per claim, a cited report |
|
|
128
|
-
| [review-panel](skills/mu/recipes/review-panel.md) | one reviewer per angle on a diff
|
|
119
|
+
| [review-panel](skills/mu/recipes/review-panel.md) | one reviewer per angle on a diff; delegates by default, tasks when fixes follow |
|
|
129
120
|
| [rules-audit](skills/mu/recipes/rules-audit.md) | one checker per AGENTS.md rule plus a skeptic; or mine repeated corrections into new rules |
|
|
130
121
|
|
|
131
122
|
In pi, `mu link pi` adds them as commands: `/ultrathink <job>`,
|
|
132
123
|
`/mu-research <question>`, `/mu-review [target]`, `/mu-refute <scope>`,
|
|
133
|
-
`/mu-tournament <task>`,
|
|
124
|
+
`/mu-tournament <task>`, `/mu-rules-audit [check <target> | mine]`,
|
|
125
|
+
`/mu-debug <symptom>`, `/mu-sweep <change>`, and `/mu-until <stop rule>`.
|
|
134
126
|
|
|
135
127
|
All recipes, including the orchestrator loop and remote workers, are
|
|
136
128
|
in [skills/mu/recipes/](skills/mu/recipes/).
|
|
137
129
|
|
|
130
|
+
## What mu is not
|
|
131
|
+
|
|
132
|
+
- **Not a hidden subagent.** Every agent, including a one-off
|
|
133
|
+
`mu_delegate` helper, is an ordinary agent in a pane: attach, steer,
|
|
134
|
+
abort, or keep talking to it. That costs a pane and a pi process per
|
|
135
|
+
agent; for many tiny calls a hidden subagent is lighter. See
|
|
136
|
+
[the comparison](docs/guide/delegate.md#delegates-vs-hidden-subagents).
|
|
137
|
+
- **Not a workflow engine.** No DSL, no hidden plan, no script runner.
|
|
138
|
+
The plan is the task DAG; recipes are instructions an agent follows,
|
|
139
|
+
and every step is a CLI verb.
|
|
140
|
+
- **Not a model router.** mu does not pick models, thinking levels, or
|
|
141
|
+
tools. Pass them in the spawn command (`--cli pi_big`).
|
|
142
|
+
- **Not a chat bus.** Agents coordinate through task notes, claims, and
|
|
143
|
+
the ops log, not messages to each other.
|
|
144
|
+
- **Not a daemon or a service.** No background process, config file, web
|
|
145
|
+
UI, or RPC. State is one SQLite file; sync rides on ordinary commands.
|
|
146
|
+
- **Not a test runner or a judge.** `--evidence` records what an agent
|
|
147
|
+
observed; checking it is the orchestrator's job, and the recipes say how.
|
|
148
|
+
|
|
149
|
+
The full list, with reasons: [VISION § What it is not](docs/VISION.md#what-it-is-not)
|
|
150
|
+
and [ROADMAP § Anti-feature pledges](docs/ROADMAP.md#anti-feature-pledges).
|
|
151
|
+
|
|
138
152
|
## Documentation
|
|
139
153
|
|
|
140
154
|
- [Getting started](docs/guide/getting-started.md): the first
|