@ionivetech/mugiwara 0.6.3 → 0.6.5
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +49 -2
- package/.cursor-plugin/plugin.json +49 -2
- package/.kimi-plugin/plugin.json +49 -2
- package/.opencode/mugiwara-helpers.mjs +4 -0
- package/.opencode/plugins/mugiwara.mjs +40 -7
- package/AGENTS.md +11 -0
- package/README.md +21 -1
- package/content/agents/zoro-execution.md +1 -1
- package/content/skills/mugiwara-checkpoint/SKILL.md +1 -0
- package/content/skills/mugiwara-execution/SKILL.md +18 -17
- package/content/skills/mugiwara-gates/SKILL.md +1 -0
- package/content/skills/mugiwara-lessons/SKILL.md +1 -0
- package/content/skills/mugiwara-orchestration/SKILL.md +16 -16
- package/content/skills/mugiwara-orchestration/references/check-ins.md +15 -4
- package/content/skills/mugiwara-orchestration/references/closure.md +9 -0
- package/content/skills/mugiwara-orchestration/references/output-contract.md +77 -0
- package/content/skills/mugiwara-pr/SKILL.md +11 -18
- package/content/skills/mugiwara-pr/references/verdict-format.md +31 -0
- package/content/skills/mugiwara-quality/SKILL.md +1 -0
- package/content/skills/mugiwara-resume/SKILL.md +1 -0
- package/content/skills/mugiwara-review/SKILL.md +1 -0
- package/content/skills/mugiwara-workflow/SKILL.md +14 -11
- package/dist/mugiwara.js +42 -22
- package/gemini-extension.json +1 -1
- package/package.json +2 -2
- package/plugin.json +1 -1
- package/references/wave-banners.md +65 -0
- package/scripts/conformance.ts +215 -0
- package/scripts/evidence.sh +17 -4
- package/scripts/gate-selftest.ts +45 -0
- package/scripts/initiative.ts +51 -17
- package/scripts/lane.sh +1 -1
- package/scripts/lib/patterns.sh +8 -2
- package/scripts/savepoint.sh +12 -1
- package/scripts/validate-content.ts +22 -2
- package/src/targets/opencode.ts +35 -6
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
7
|
"description": "The Straw Hat crew for AI agents",
|
|
8
|
-
"version": "0.6.
|
|
8
|
+
"version": "0.6.5"
|
|
9
9
|
},
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "mugiwara",
|
|
13
13
|
"description": "The Straw Hat crew of AI agents and skills: brainstorm, plan, execute, checkpoint, quality, gates, review, security, healing.",
|
|
14
|
-
"version": "0.6.
|
|
14
|
+
"version": "0.6.5",
|
|
15
15
|
"source": "./"
|
|
16
16
|
}
|
|
17
17
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mugiwara",
|
|
3
3
|
"displayName": "Mugiwara",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.5",
|
|
5
5
|
"description": "The Straw Hat crew of AI agents and skills: brainstorm, plan, execute, checkpoint, quality, gates, review, security, healing.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ionivetech"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mugiwara",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "The Straw Hat crew of AI agents and skills: brainstorm, plan, execute, checkpoint, quality, gates, review, security, healing.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "ionivetech"
|
|
@@ -14,5 +14,52 @@
|
|
|
14
14
|
"workflow",
|
|
15
15
|
"multi-agent"
|
|
16
16
|
],
|
|
17
|
-
"skills": "./content/skills/"
|
|
17
|
+
"skills": "./content/skills/",
|
|
18
|
+
"metadata": {
|
|
19
|
+
"skills": [
|
|
20
|
+
"mugiwara-agent-security",
|
|
21
|
+
"mugiwara-backend",
|
|
22
|
+
"mugiwara-brainstorm",
|
|
23
|
+
"mugiwara-checkpoint",
|
|
24
|
+
"mugiwara-claim-audit",
|
|
25
|
+
"mugiwara-context-budget",
|
|
26
|
+
"mugiwara-contract-first",
|
|
27
|
+
"mugiwara-execution",
|
|
28
|
+
"mugiwara-frontend",
|
|
29
|
+
"mugiwara-gates",
|
|
30
|
+
"mugiwara-git",
|
|
31
|
+
"mugiwara-healing",
|
|
32
|
+
"mugiwara-lessons",
|
|
33
|
+
"mugiwara-orchestration",
|
|
34
|
+
"mugiwara-planning",
|
|
35
|
+
"mugiwara-pr",
|
|
36
|
+
"mugiwara-quality",
|
|
37
|
+
"mugiwara-resume",
|
|
38
|
+
"mugiwara-review",
|
|
39
|
+
"mugiwara-root-cause",
|
|
40
|
+
"mugiwara-security",
|
|
41
|
+
"mugiwara-ship",
|
|
42
|
+
"mugiwara-sunset",
|
|
43
|
+
"mugiwara-testcases",
|
|
44
|
+
"mugiwara-workflow",
|
|
45
|
+
"using-mugiwara"
|
|
46
|
+
],
|
|
47
|
+
"agents": [
|
|
48
|
+
"brook-healing",
|
|
49
|
+
"chopper-checkpoint",
|
|
50
|
+
"eval-runner",
|
|
51
|
+
"franky-gates",
|
|
52
|
+
"jinbe-security",
|
|
53
|
+
"luffy-orchestrator",
|
|
54
|
+
"memory-keeper",
|
|
55
|
+
"nami-planner",
|
|
56
|
+
"onboarding-guide",
|
|
57
|
+
"resume-coordinator",
|
|
58
|
+
"robin-reviewer",
|
|
59
|
+
"sanji-quality",
|
|
60
|
+
"skeptic-verifier",
|
|
61
|
+
"usopp-brainstorm",
|
|
62
|
+
"zoro-execution"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
18
65
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "mugiwara",
|
|
3
3
|
"displayName": "Mugiwara",
|
|
4
4
|
"description": "The Straw Hat crew of AI agents and skills: brainstorm, plan, execute, checkpoint, quality, gates, review, security, healing.",
|
|
5
|
-
"version": "0.6.
|
|
5
|
+
"version": "0.6.5",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ionivetech"
|
|
8
8
|
},
|
|
@@ -15,5 +15,52 @@
|
|
|
15
15
|
"workflow",
|
|
16
16
|
"multi-agent"
|
|
17
17
|
],
|
|
18
|
-
"skills": "./content/skills/"
|
|
18
|
+
"skills": "./content/skills/",
|
|
19
|
+
"metadata": {
|
|
20
|
+
"skills": [
|
|
21
|
+
"mugiwara-agent-security",
|
|
22
|
+
"mugiwara-backend",
|
|
23
|
+
"mugiwara-brainstorm",
|
|
24
|
+
"mugiwara-checkpoint",
|
|
25
|
+
"mugiwara-claim-audit",
|
|
26
|
+
"mugiwara-context-budget",
|
|
27
|
+
"mugiwara-contract-first",
|
|
28
|
+
"mugiwara-execution",
|
|
29
|
+
"mugiwara-frontend",
|
|
30
|
+
"mugiwara-gates",
|
|
31
|
+
"mugiwara-git",
|
|
32
|
+
"mugiwara-healing",
|
|
33
|
+
"mugiwara-lessons",
|
|
34
|
+
"mugiwara-orchestration",
|
|
35
|
+
"mugiwara-planning",
|
|
36
|
+
"mugiwara-pr",
|
|
37
|
+
"mugiwara-quality",
|
|
38
|
+
"mugiwara-resume",
|
|
39
|
+
"mugiwara-review",
|
|
40
|
+
"mugiwara-root-cause",
|
|
41
|
+
"mugiwara-security",
|
|
42
|
+
"mugiwara-ship",
|
|
43
|
+
"mugiwara-sunset",
|
|
44
|
+
"mugiwara-testcases",
|
|
45
|
+
"mugiwara-workflow",
|
|
46
|
+
"using-mugiwara"
|
|
47
|
+
],
|
|
48
|
+
"agents": [
|
|
49
|
+
"brook-healing",
|
|
50
|
+
"chopper-checkpoint",
|
|
51
|
+
"eval-runner",
|
|
52
|
+
"franky-gates",
|
|
53
|
+
"jinbe-security",
|
|
54
|
+
"luffy-orchestrator",
|
|
55
|
+
"memory-keeper",
|
|
56
|
+
"nami-planner",
|
|
57
|
+
"onboarding-guide",
|
|
58
|
+
"resume-coordinator",
|
|
59
|
+
"robin-reviewer",
|
|
60
|
+
"sanji-quality",
|
|
61
|
+
"skeptic-verifier",
|
|
62
|
+
"usopp-brainstorm",
|
|
63
|
+
"zoro-execution"
|
|
64
|
+
]
|
|
65
|
+
}
|
|
19
66
|
}
|
package/.kimi-plugin/plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mugiwara",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "The Straw Hat crew of AI agents and skills: brainstorm, plan, execute, checkpoint, quality, gates, review, security, healing.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "ionivetech"
|
|
@@ -14,5 +14,52 @@
|
|
|
14
14
|
"workflow",
|
|
15
15
|
"multi-agent"
|
|
16
16
|
],
|
|
17
|
-
"skills": "./content/skills/"
|
|
17
|
+
"skills": "./content/skills/",
|
|
18
|
+
"metadata": {
|
|
19
|
+
"skills": [
|
|
20
|
+
"mugiwara-agent-security",
|
|
21
|
+
"mugiwara-backend",
|
|
22
|
+
"mugiwara-brainstorm",
|
|
23
|
+
"mugiwara-checkpoint",
|
|
24
|
+
"mugiwara-claim-audit",
|
|
25
|
+
"mugiwara-context-budget",
|
|
26
|
+
"mugiwara-contract-first",
|
|
27
|
+
"mugiwara-execution",
|
|
28
|
+
"mugiwara-frontend",
|
|
29
|
+
"mugiwara-gates",
|
|
30
|
+
"mugiwara-git",
|
|
31
|
+
"mugiwara-healing",
|
|
32
|
+
"mugiwara-lessons",
|
|
33
|
+
"mugiwara-orchestration",
|
|
34
|
+
"mugiwara-planning",
|
|
35
|
+
"mugiwara-pr",
|
|
36
|
+
"mugiwara-quality",
|
|
37
|
+
"mugiwara-resume",
|
|
38
|
+
"mugiwara-review",
|
|
39
|
+
"mugiwara-root-cause",
|
|
40
|
+
"mugiwara-security",
|
|
41
|
+
"mugiwara-ship",
|
|
42
|
+
"mugiwara-sunset",
|
|
43
|
+
"mugiwara-testcases",
|
|
44
|
+
"mugiwara-workflow",
|
|
45
|
+
"using-mugiwara"
|
|
46
|
+
],
|
|
47
|
+
"agents": [
|
|
48
|
+
"brook-healing",
|
|
49
|
+
"chopper-checkpoint",
|
|
50
|
+
"eval-runner",
|
|
51
|
+
"franky-gates",
|
|
52
|
+
"jinbe-security",
|
|
53
|
+
"luffy-orchestrator",
|
|
54
|
+
"memory-keeper",
|
|
55
|
+
"nami-planner",
|
|
56
|
+
"onboarding-guide",
|
|
57
|
+
"resume-coordinator",
|
|
58
|
+
"robin-reviewer",
|
|
59
|
+
"sanji-quality",
|
|
60
|
+
"skeptic-verifier",
|
|
61
|
+
"usopp-brainstorm",
|
|
62
|
+
"zoro-execution"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
18
65
|
}
|
|
@@ -93,10 +93,14 @@ export const DEFAULT_CONFIG_LINES = [
|
|
|
93
93
|
'mode=guided',
|
|
94
94
|
'branch=feature/{type}-{issue}-{slug}',
|
|
95
95
|
'commit=conventional',
|
|
96
|
+
'auto_commit=on',
|
|
96
97
|
'coverage_new=90',
|
|
97
98
|
'coverage_modified=80',
|
|
98
99
|
'review_depth=full',
|
|
99
100
|
'quality_depth=full',
|
|
101
|
+
'delegate_threshold=60',
|
|
102
|
+
'heal_max_cycles=3',
|
|
103
|
+
'verbosity=normal',
|
|
100
104
|
];
|
|
101
105
|
|
|
102
106
|
// Idempotent: writes the full default config only when .mugiwara/config is
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
// single export because OpenCode's legacy loader calls every exported function
|
|
7
7
|
// as a plugin (same constraint ponytail documents).
|
|
8
8
|
//
|
|
9
|
+
// Crew COLORS come from references/wave-banners.md (single source, shared
|
|
10
|
+
// references dir); the CREW map below is the cold-path
|
|
11
|
+
// fallback only. Temperature/steps stay here (runtime tuning, not banner
|
|
12
|
+
// material).
|
|
13
|
+
//
|
|
9
14
|
// Install: add to opencode.json
|
|
10
15
|
// { "plugin": ["@ionivetech/mugiwara"] }
|
|
11
16
|
// or from the git repo:
|
|
@@ -22,26 +27,48 @@ const contentDir = join(__dirname, '..', '..', 'content');
|
|
|
22
27
|
const skillsDir = join(contentDir, 'skills');
|
|
23
28
|
const agentsDir = join(contentDir, 'agents');
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
"Mugiwara crew available. The workflow auto-activates for non-trivial requests — no need to call `/using-mugiwara` at session start (it is an optional router). Run the crew pipeline inline in the main conversation: embody ONE crew role at a time using its skill, wait for its report, then move to the next. Never Task-dispatch a crew member — the crew runs in the main thread; subagents only for [PARALLEL] task batches, concurrent review/security, and independent re-run checks. Progress shows as checkpoint reports at wave/stage boundaries, pausing on failure or risk. Switch mode with `/mugiwara` (guided|semi|auto). See skills/mugiwara-workflow.";
|
|
27
|
-
|
|
30
|
+
// Colors are fallbacks — the wave-banners table is the source of truth.
|
|
28
31
|
const CREW = {
|
|
29
32
|
'luffy-orchestrator': { color: '#ef4444', temperature: 0.2, steps: 30 },
|
|
30
|
-
'usopp-brainstorm': { color: '#
|
|
33
|
+
'usopp-brainstorm': { color: '#b45309', temperature: 0.6, steps: 30 },
|
|
31
34
|
'nami-planner': { color: '#f97316', temperature: 0.2, steps: 30 },
|
|
32
35
|
'zoro-execution': { color: '#22c55e', temperature: 0.1, steps: 50 },
|
|
33
|
-
'chopper-checkpoint': { color: '#
|
|
34
|
-
'sanji-quality': { color: '#
|
|
36
|
+
'chopper-checkpoint': { color: '#60a5fa', temperature: 0.1, steps: 30 },
|
|
37
|
+
'sanji-quality': { color: '#facc15', temperature: 0.1, steps: 40 },
|
|
35
38
|
'franky-gates': { color: '#06b6d4', temperature: 0.1, steps: 40 },
|
|
36
39
|
'robin-reviewer': { color: '#8b5cf6', temperature: 0.2, steps: 30 },
|
|
37
40
|
'jinbe-security': { color: '#6366f1', temperature: 0.2, steps: 30 },
|
|
38
|
-
'brook-healing': { color: '#
|
|
41
|
+
'brook-healing': { color: '#2dd4bf', temperature: 0.1, steps: 30 },
|
|
39
42
|
'skeptic-verifier': { color: '#64748b', temperature: 0.1, steps: 30 },
|
|
40
43
|
'eval-runner': { color: '#14b8a6', temperature: 0.2, steps: 30 },
|
|
41
44
|
'resume-coordinator': { color: '#d97706', temperature: 0.2, steps: 30 },
|
|
42
45
|
'memory-keeper': { color: '#d946ef', temperature: 0.2, steps: 30 },
|
|
46
|
+
'onboarding-guide': { color: '#0ea5e9', temperature: 0.3, steps: 15 },
|
|
43
47
|
};
|
|
44
48
|
|
|
49
|
+
// Read the crew color table (single source of truth, shared references/).
|
|
50
|
+
// Returns {} on any failure — callers fall back to the CREW map. The regex
|
|
51
|
+
// anchors the exact table shape: | agent-id | role | hex | ansi-256 | emoji |
|
|
52
|
+
function readBannerColors() {
|
|
53
|
+
try {
|
|
54
|
+
const path = join(__dirname, '..', '..', 'references', 'wave-banners.md');
|
|
55
|
+
if (!existsSync(path)) return {};
|
|
56
|
+
const text = readFileSync(path, 'utf8');
|
|
57
|
+
// null-prototype: agent ids are trusted repo content, but a future
|
|
58
|
+
// `__proto__` id must never write the object's prototype
|
|
59
|
+
const colors = Object.create(null);
|
|
60
|
+
for (const m of text.matchAll(/^\| ([\w-]+) \| [^|]+ \| (#[0-9a-f]{6}) \| (\d+) \| (\S+) \|\r?$/gm)) {
|
|
61
|
+
colors[m[1]] = m[2];
|
|
62
|
+
}
|
|
63
|
+
return colors;
|
|
64
|
+
} catch {
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const ANNOUNCE =
|
|
70
|
+
"Mugiwara crew available. The workflow auto-activates for non-trivial requests — no need to call `/using-mugiwara` at session start (it is an optional router). Run the crew pipeline inline in the main conversation: embody ONE crew role at a time using its skill, wait for its report, then move to the next. Never Task-dispatch a crew member — the crew runs in the main thread; subagents only for [PARALLEL] task batches, concurrent review/security, and independent re-run checks. Progress shows as checkpoint reports at wave/stage boundaries, pausing on failure or risk. Switch mode with `/mugiwara` (guided|semi|auto). See skills/mugiwara-workflow.";
|
|
71
|
+
|
|
45
72
|
function parseFrontmatter(text) {
|
|
46
73
|
const m = text.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/);
|
|
47
74
|
if (!m) throw new Error('Missing frontmatter fence (---)');
|
|
@@ -68,6 +95,7 @@ function permissionFromScope(scope) {
|
|
|
68
95
|
|
|
69
96
|
function readAgents(stepsEnabled = true) {
|
|
70
97
|
const agents = {};
|
|
98
|
+
const bannerColors = readBannerColors();
|
|
71
99
|
let files;
|
|
72
100
|
try {
|
|
73
101
|
files = readdirSync(agentsDir).filter((f) => f.endsWith('.md'));
|
|
@@ -99,6 +127,11 @@ function readAgents(stepsEnabled = true) {
|
|
|
99
127
|
agents[name] = { ...agents[name], ...rest };
|
|
100
128
|
if (stepsEnabled) agents[name] = { ...agents[name], steps };
|
|
101
129
|
}
|
|
130
|
+
// color comes from the wave-banners table (single source); CREW fallback
|
|
131
|
+
// covers agents the table does not list (and vice versa)
|
|
132
|
+
if (bannerColors[name] || CREW[name]) {
|
|
133
|
+
agents[name] = { ...agents[name], color: bannerColors[name] ?? CREW[name].color };
|
|
134
|
+
}
|
|
102
135
|
const perm = permissionFromScope(parsed.data['write-scope']);
|
|
103
136
|
if (perm && agents[name].mode === 'subagent') agents[name].permission = perm;
|
|
104
137
|
}
|
package/AGENTS.md
CHANGED
|
@@ -106,6 +106,17 @@ class.
|
|
|
106
106
|
|
|
107
107
|
No PR merges without all green CI.
|
|
108
108
|
|
|
109
|
+
### Assertion rules
|
|
110
|
+
|
|
111
|
+
- **No `expect()` inside a conditional** unless the condition is itself a
|
|
112
|
+
declared invariant (e.g. `if (tier === 3)`). An assertion that can be skipped
|
|
113
|
+
is not an assertion. Enforced by `validate-content.ts`.
|
|
114
|
+
- **Type checks are not coverage.** `typeof x === 'number'` passes on `0`.
|
|
115
|
+
`Array.isArray(x)` passes on `[]`. Assert the value the fixture was built to
|
|
116
|
+
produce.
|
|
117
|
+
- Every field in `state.json` has a fixture assertion with a non-trivial
|
|
118
|
+
expected value.
|
|
119
|
+
|
|
109
120
|
## Skill standards
|
|
110
121
|
|
|
111
122
|
Every skill is `content/skills/<name>/SKILL.md`:
|
package/README.md
CHANGED
|
@@ -245,10 +245,14 @@ Switch mode any time: `/mugiwara guided | semi | auto`. Or edit `.mugiwara/confi
|
|
|
245
245
|
| `mode` | guided | guided / semi / auto |
|
|
246
246
|
| `branch` | `feature/{type}-{issue}-{slug}` | Branch naming |
|
|
247
247
|
| `commit` | conventional | conventional / gitmoji / plain |
|
|
248
|
+
| `auto_commit` | on | on / off — off disables commit+push in guided/semi |
|
|
248
249
|
| `coverage_new` | 90 | Coverage threshold for new files (%) |
|
|
249
250
|
| `coverage_modified` | 80 | Coverage threshold for modified files (%) |
|
|
250
251
|
| `review_depth` | full | full / standard / quick — Robin's review depth |
|
|
251
252
|
| `quality_depth` | full | full / standard / quick — Sanji's check depth |
|
|
253
|
+
| `delegate_threshold`| 60 | % of token budget at which remaining tasks dispatch to workers |
|
|
254
|
+
| `heal_max_cycles` | 3 | Max heal-loop cycles before human escalation |
|
|
255
|
+
| `verbosity` | normal | normal / full — how much the crew echoes. `normal` hides investigation steps (reads, greps) and file contents; edits, results, decisions stay visible. `full` echoes everything. Never suppresses decisions, questions, blockers, or lane rises |
|
|
252
256
|
|
|
253
257
|
Set via `/mugiwara onboard` or edit directly. Unknown keys ignored. Project
|
|
254
258
|
config (`.mugiwara/config`) overrides global (`~/.mugiwara/config`).
|
|
@@ -415,6 +419,8 @@ Uninstall: `mugiwara uninstall`
|
|
|
415
419
|
All platforms get the full crew — 12 agents (+3 internal), 26 skills.
|
|
416
420
|
Enforcement depth varies by harness; see the [harness matrix](docs/reference/harness-matrix.md).
|
|
417
421
|
|
|
422
|
+
→ [How the skills stay small: three-layer disclosure](docs/reference/skill-anatomy.md)
|
|
423
|
+
|
|
418
424
|
→ [Per-platform guides](docs/install/index.md)
|
|
419
425
|
|
|
420
426
|
## Update
|
|
@@ -452,7 +458,7 @@ mugiwara reset --keep-logs # wipe state, keep lessons
|
|
|
452
458
|
|
|
453
459
|
**Start here:** [Getting started](docs/getting-started.md) · [What mugiwara replaces](docs/concepts/comparison.md)
|
|
454
460
|
|
|
455
|
-
**Concepts:** [Workflow](docs/concepts/workflow.md) · [Lanes](docs/concepts/lanes.md) · [Modes](docs/concepts/modes.md) · [Execution model](docs/concepts/execution-model.md) · [Git strategy](docs/concepts/git-strategy.md) · [Config](docs/concepts/config.md) · [Cost](docs/concepts/cost.md) · [Audit trail](docs/concepts/audit-trail.md)
|
|
461
|
+
**Concepts:** [Workflow](docs/concepts/workflow.md) · [Lanes](docs/concepts/lanes.md) · [Modes](docs/concepts/modes.md) · [Execution model](docs/concepts/execution-model.md) · [Git strategy](docs/concepts/git-strategy.md) · [Config](docs/concepts/config.md) · [Cost](docs/concepts/cost.md) · [Audit trail](docs/concepts/audit-trail.md) · [Security](docs/concepts/security.md)
|
|
456
462
|
|
|
457
463
|
**Crew:** [Agents](docs/concepts/agents.md) · [Skills](docs/concepts/skills.md)
|
|
458
464
|
|
|
@@ -464,6 +470,20 @@ mugiwara reset --keep-logs # wipe state, keep lessons
|
|
|
464
470
|
|
|
465
471
|
**Roadmap:** [ROADMAP.md](ROADMAP.md)
|
|
466
472
|
|
|
473
|
+
## What is measured, and what is not
|
|
474
|
+
|
|
475
|
+
| Claim | Status |
|
|
476
|
+
|---|---|
|
|
477
|
+
| Retrieval routing rank-1 | **93.5%**, 181 probes, offline, in CI |
|
|
478
|
+
| Reference pointers resolve | **66/66**, 3 tiers, in CI |
|
|
479
|
+
| Lane constants match content load | **verified**, in CI |
|
|
480
|
+
| Write-scope enforcement | **opencode only** — rules-based elsewhere |
|
|
481
|
+
| Cross-harness mission behavior | **12/12 platforms** — 9 rules-dir installs + 3 marketplace manifests, in CI |
|
|
482
|
+
| Outcome vs other approaches | **not measured** — see roadmap |
|
|
483
|
+
|
|
484
|
+
Numbers here are produced by `bun run gate`. Nothing in this table is an
|
|
485
|
+
estimate.
|
|
486
|
+
|
|
467
487
|
## License
|
|
468
488
|
|
|
469
489
|
MIT. Copyright (c) 2026 ionivetech.
|
|
@@ -31,7 +31,7 @@ Wave 3 of `mugiwara-workflow`, with the plan doc path.
|
|
|
31
31
|
## Rules
|
|
32
32
|
|
|
33
33
|
1. Follow `mugiwara-execution` exactly (ingestion, dispatch rules, per-task discipline).
|
|
34
|
-
2. Before touching code, follow the mode's branch/commit rule (per mode config): `guided` ASKS THE USER (auto branch for the mission or current branch; auto commit per task or user-controlled checkpoints); `semi
|
|
34
|
+
2. Before touching code, follow the mode's branch/commit rule (per mode config): `guided` ASKS THE USER (auto branch for the mission or current branch; auto commit per task or user-controlled checkpoints); `semi` auto-creates the mission branch per the config `branch` key and auto-commits per task in the config `commit` style — no ask; `auto` same but commits ALWAYS. `auto_commit=off` (config, default on): guided and semi leave all changes uncommitted for the user — no commits, no push; auto mode ignores it. Record the mode + branch + commit style + auto_commit in the decision log (`.mugiwara/logs/`) and todos. State-mutating consent still applies in every mode.
|
|
35
35
|
3. Sequential tasks and chains run INLINE in the main thread — no subagent round-trips for ordered work. Only `[PARALLEL]` task batches dispatch WORKER subagents (one task per worker); never another crew member; return your execution report inline to the conversation, which routes to Chopper.
|
|
36
36
|
4. Every task done = evidence attached (command output / file inspection); run acceptance criteria, do not assert them.
|
|
37
37
|
5. Apply `mugiwara-git` as you go: atomic commits per LOGICAL task (when auto-commit is on) — a task is a meaningful unit of work, not a micro-step; adjacent trivial changes fold into the neighboring task's commit. Save-points before risky work, commit style matched to the repo history.
|
|
@@ -65,5 +65,6 @@ TRUST NOTHING; VERIFY EVERYTHING. No evidence, no pass — and the evidence must
|
|
|
65
65
|
- Commits containing undeclared files, or missing declared files.
|
|
66
66
|
- A DoD axis passed with no evidence.
|
|
67
67
|
- Any urge to edit code instead of reporting the finding.
|
|
68
|
+
- Echoing raw output when `verbosity=normal` — summarize and cite the evidence path.
|
|
68
69
|
|
|
69
70
|
All mean: the audit is incomplete. Finish it before issuing the verdict.
|
|
@@ -14,12 +14,12 @@ Execute the plan exactly. No silent reordering, no skipping steps, no "close eno
|
|
|
14
14
|
|
|
15
15
|
## Ask before working
|
|
16
16
|
|
|
17
|
-
- `guided`: before touching any code, ASK THE USER — auto branch (dedicated mission branch, recommended, keeps `main` clean) or work on the current branch; auto commit per task or commit at user-controlled checkpoints.
|
|
18
|
-
- `semi
|
|
17
|
+
- `guided`: before touching any code, ASK THE USER — auto branch (dedicated mission branch, recommended, keeps `main` clean) or work on the current branch; auto commit per task or commit at user-controlled checkpoints. With `auto_commit=off`: the branch ask stays, the commit question is skipped — changes stay uncommitted.
|
|
18
|
+
- `semi`: auto-create the mission branch per the config `branch` key; auto-commit per task in the config `commit` style ONLY when `auto_commit=on` (default). Off → leave every task's changes uncommitted; the user commits manually.
|
|
19
|
+
- `auto`: auto-create the branch and auto-commit per task ALWAYS — `auto_commit=off` has no effect in auto mode.
|
|
20
|
+
Record mode + branch + commit style + `auto_commit` in the decision log (`.mugiwara/logs/YYYY-MM-DD-<mission>.md`) and in `.mugiwara/results/<mission>/todos.md` — every mode.
|
|
19
21
|
|
|
20
|
-
Code to the installed version's docs, not memory: `_shared/references/source-grounding.md`.
|
|
21
|
-
|
|
22
|
-
The plan doc stays clean — never edit it during execution except through Nami. If the user says no auto-commit in `guided`, still run every acceptance check and leave the diff staged or presented for approval. State-mutating consent is NOT covered by this rule — it still applies in every mode. One-task-one-commit, save-points, and atomic-commit rules hold unchanged in every mode.
|
|
22
|
+
Code to the installed version's docs, not memory: `_shared/references/source-grounding.md`. The plan doc stays clean — never edit it during execution except through Nami. If the user says no auto-commit in `guided`, still run every acceptance check and leave the diff staged or presented for approval. State-mutating consent is NOT covered by this rule — it still applies in every mode. One-task-one-commit, save-points, and atomic-commit rules hold unchanged in every mode.
|
|
23
23
|
|
|
24
24
|
## Todo list first
|
|
25
25
|
|
|
@@ -28,9 +28,7 @@ Before touching code:
|
|
|
28
28
|
1. Create `.mugiwara/results/<mission>/todos.md` — one checkbox per task, derived from the plan.
|
|
29
29
|
2. Check each box off only when the task completes, WITH its evidence link (`[path](relative/path)`, clickable).
|
|
30
30
|
3. Re-check the whole list after each task and after each batch; unmarked boxes mean the mission is not done.
|
|
31
|
-
4. Mirror
|
|
32
|
-
opencode; `TaskUpdate` on Claude Code; none on tier 2/3 — plan doc only).
|
|
33
|
-
Per-host table: `docs/reference/harness-matrix.md`.
|
|
31
|
+
4. Mirror EVERY transition into the host's native todo tool (`todowrite` on opencode; `TaskUpdate` on Claude Code; none on tier 2/3 — plan doc only) in the SAME response the task's evidence lands — one transition per call, never batched at wave end. Per-host table: `docs/reference/harness-matrix.md`.
|
|
34
32
|
|
|
35
33
|
## Wave execution
|
|
36
34
|
|
|
@@ -49,9 +47,7 @@ Before starting: if `.mugiwara/continue/<mission>/[member].json` exists, resume
|
|
|
49
47
|
2. **Context pressure** — when `tokens_est` exceeds `delegate_threshold`% of
|
|
50
48
|
`budget` (read from `.mugiwara/config`, default 60) mid-execution, remaining
|
|
51
49
|
SEQUENTIAL tasks dispatch to workers — one at a time, in plan order. Order is
|
|
52
|
-
preserved; only the context resets.
|
|
53
|
-
|
|
54
|
-
Announce: `⚠ context 62% — remaining tasks run in fresh workers, plan order unchanged.`
|
|
50
|
+
preserved; only the context resets. Announce: `⚠ context 62% — remaining tasks run in fresh workers, plan order unchanged.`
|
|
55
51
|
|
|
56
52
|
The threshold stays relative, never absolute: `tokens_est > delegate_threshold%
|
|
57
53
|
× budget` (read from `.mugiwara/config`, default 60), never `tokens_est >
|
|
@@ -63,12 +59,10 @@ Real worker dispatch exists only where the harness has subagents — tier 1
|
|
|
63
59
|
(Claude Code, opencode) plus Copilot. Gate the context-pressure trigger on
|
|
64
60
|
that capability: if the harness cannot dispatch, do not promise fresh workers.
|
|
65
61
|
|
|
66
|
-
Where workers are unavailable and context pressure crosses the threshold
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
`⚠ context 62% — no worker dispatch on this harness; savepoint written,
|
|
71
|
-
resume in a fresh session (plan order unchanged).`
|
|
62
|
+
Where workers are unavailable and context pressure crosses the threshold:
|
|
63
|
+
write a savepoint, run the checkpoint, and suggest a fresh session via
|
|
64
|
+
`resume`. Announce: `⚠ context 62% — no worker dispatch on this harness;
|
|
65
|
+
savepoint written, resume in a fresh session (plan order unchanged).`
|
|
72
66
|
|
|
73
67
|
## Batch resume
|
|
74
68
|
|
|
@@ -107,6 +101,12 @@ Any task touching UI markup, styling, or components applies `mugiwara-frontend`
|
|
|
107
101
|
|
|
108
102
|
After each wave: compact task table (status, evidence link, deviations) shown inline in the conversation. Format: `references/dispatch.md` — report table. Then return to Luffy, who routes to Chopper (Wave 4). Write detailed execution log to `.mugiwara/results/<mission>/01-execution.md`. Never dispatch another crew member.
|
|
109
103
|
|
|
104
|
+
## Step budget
|
|
105
|
+
|
|
106
|
+
Tool calls are finite — harnesses cap them per session; a 9-wave mission that wastes them stalls before closure. Combine evidence runs (`evidence.sh <m> quality -- bash -c "lint && test"` — one call, not two); write wave artifacts once at wave end, not incrementally; never re-read what you just wrote; batch reads (one glob beats five reads); open a reference only when its pointer condition triggers.
|
|
107
|
+
|
|
108
|
+
Budget guide: Lane 1 ≤15 calls · Lane 2 ≤35 · Lane 3 ≤60. Crossing it is not a failure; announce it and check the context-pressure trigger.
|
|
109
|
+
|
|
110
110
|
## Red flags
|
|
111
111
|
|
|
112
112
|
- Tasks silently reordered from the plan.
|
|
@@ -114,6 +114,7 @@ After each wave: compact task table (status, evidence link, deviations) shown in
|
|
|
114
114
|
- Done reported without evidence ("close enough").
|
|
115
115
|
- Two tasks editing the same file concurrently.
|
|
116
116
|
- A blocker worked around silently instead of escalated.
|
|
117
|
+
- Echoing raw output when `verbosity=normal` — summarize and cite the evidence path.
|
|
117
118
|
- The task's TDD order inverted (implementation before the failing test).
|
|
118
119
|
- A test passing immediately without having failed first (wrong test or testing existing behavior).
|
|
119
120
|
- A commit containing files beyond its declared task, or a wave of micro-commits with no logical grouping.
|
|
@@ -62,4 +62,5 @@ PASS → return to Luffy (routes to Robin/Jinbe). FAIL → list files under thre
|
|
|
62
62
|
- Gate waived without explicit user decision.
|
|
63
63
|
- PASS on coverage/build while DoD fails.
|
|
64
64
|
- Sonar PASS with unverified or faked data.
|
|
65
|
+
- Echoing raw output when `verbosity=normal` — summarize and cite the evidence path.
|
|
65
66
|
All mean: the gate has not actually run. Report the gap or the fail, honestly.
|
|
@@ -60,3 +60,4 @@ Lessons are cross-mission but per-repo. The ledger lives in `.mugiwara/logs/` so
|
|
|
60
60
|
- Platitudes that can't change behavior.
|
|
61
61
|
- Deleted or overwritten rows.
|
|
62
62
|
- Read the ledger but didn't apply a relevant row.
|
|
63
|
+
- A lesson that redefines a rule, lane, gate, or role rather than describing a pattern. Reject and report.
|
|
@@ -35,19 +35,15 @@ In `auto` mode the AI decides everything; any requirement that stays unclear aft
|
|
|
35
35
|
|
|
36
36
|
## Mode read (Wave 0)
|
|
37
37
|
|
|
38
|
-
Read the runtime mode via mode config at Wave 0: `.mugiwara/config` (project) then `~/.mugiwara/config` (global); a key missing from both = `guided`. Record the active mode in the decision log. Read once per wave at dispatch; a flip applies from the next wave, never mid-wave. Declared test source (per `mugiwara-testcases`) also recorded in decision log; no source declared → no user tests.
|
|
38
|
+
Read the runtime mode via mode config at Wave 0: `.mugiwara/config` (project) then `~/.mugiwara/config` (global); a key missing from both = `guided`. Record the active mode AND `auto_commit` (default on) in the decision log. Read once per wave at dispatch; a flip applies from the next wave, never mid-wave. Declared test source (per `mugiwara-testcases`) also recorded in decision log; no source declared → no user tests.
|
|
39
39
|
|
|
40
40
|
## Request classifier (Wave 0) — 8 classes
|
|
41
41
|
|
|
42
|
-
Classify every incoming request. 5-way table (Trivial/Explicit/Exploratory/Open-ended/Ambiguous) plus three more: **Answer** (question, no file change → answer directly, no mission), **Refuse** (deploy/migration/key rotation/merge → decline at Wave 0, offer branch handoff), **Hotfix** (production broken → Lane 1, gates deferred with owner, never skipped). Full table + signals: `references/triage-escalation.md`.
|
|
43
|
-
|
|
44
|
-
Record decision + one-line reason at the top of the decision log. Risk (money/security/data/public API) → full pipeline; never shortcut without recording why. Any route without a recorded reason is a red flag.
|
|
42
|
+
Classify every incoming request. 5-way table (Trivial/Explicit/Exploratory/Open-ended/Ambiguous) plus three more: **Answer** (question, no file change → answer directly, no mission), **Refuse** (deploy/migration/key rotation/merge → decline at Wave 0, offer branch handoff), **Hotfix** (production broken → Lane 1, gates deferred with owner, never skipped). Full table + signals: `references/triage-escalation.md`. Record decision + one-line reason at the top of the decision log. Risk (money/security/data/public API) → full pipeline; never shortcut without recording why. Any route without a recorded reason is a red flag.
|
|
45
43
|
|
|
46
44
|
## Lane routing + precedence (Wave 0, size before process)
|
|
47
45
|
|
|
48
|
-
Alongside the class, size the mission and pick a lane (0 Direct / 1 Lean / 2 Standard / 3 Full / 4 Spike). **Precedence: class decides whether there is work; lane decides how much process — class first, lane second, record both.** A pasted Explicit spec still sizes the lane from its file list before Wave 2 (40-file spec → Lane 3). Escalation only: a lane may rise mid-mission, never drop. Full table: `references/triage-escalation.md`.
|
|
49
|
-
|
|
50
|
-
Small tasks: read-only investigation → host `explore` agent or inline read — NOT a Luffy subagent (~5k vs ~40k tokens); explicit implement → Lane 1 Zoro inline. Review only when risky — full pipeline.
|
|
46
|
+
Alongside the class, size the mission and pick a lane (0 Direct / 1 Lean / 2 Standard / 3 Full / 4 Spike). **Precedence: class decides whether there is work; lane decides how much process — class first, lane second, record both.** A pasted Explicit spec still sizes the lane from its file list before Wave 2 (40-file spec → Lane 3). Escalation only: a lane may rise mid-mission, never drop. Full table: `references/triage-escalation.md`. Small tasks: read-only investigation → host `explore` agent or inline read — NOT a Luffy subagent (~5k vs ~40k tokens); explicit implement → Lane 1 Zoro inline. Review only when risky — full pipeline.
|
|
51
47
|
|
|
52
48
|
## Spec bridge (Wave 0 → Wave 2)
|
|
53
49
|
|
|
@@ -59,8 +55,7 @@ User may summon crew members directly. Luffy records the route + reason. Zoro/Br
|
|
|
59
55
|
|
|
60
56
|
## Periodic check-ins
|
|
61
57
|
Full checklist: `references/check-ins.md` — 7 items + by-mode verdicts; unchecked boxes are not done. **Handoff contract:** the continue file at every wave boundary — never only session end (rule #6).
|
|
62
|
-
**Auto never drops:** in `auto` mode the crew runs every wave autonomously to closure — lane rise (`lane_rose`), sensitive-path touches, and heal cycles do NOT downgrade the mode. Only a genuine blocker or the heal halt pauses and escalates to the user; the mode stays auto. Announce every pause.
|
|
63
|
-
**Auto never asks scope:** in `auto` mode, log the default choice and proceed — no scope/confirmation questions. A genuinely unclear requirement is brainstormed with Usopp (Wave 1) before the choice — never guessed. Only a genuine blocker or a pause escalates.
|
|
58
|
+
**Auto never drops:** in `auto` mode the crew runs every wave autonomously to closure — lane rise (`lane_rose`), sensitive-path touches, and heal cycles do NOT downgrade the mode. Only a genuine blocker or the heal halt pauses and escalates to the user; the mode stays auto. Announce every pause. **Auto never asks scope:** in `auto` mode, log the default choice and proceed — no scope/confirmation questions. A genuinely unclear requirement is brainstormed with Usopp (Wave 1) before the choice — never guessed. Only a genuine blocker or a pause escalates.
|
|
64
59
|
**Heal halt:** read `heal_cycle` from `.mugiwara/state/<mission>/[member].json`. At `heal_max_cycles` (read from `.mugiwara/config`, default 3), STOP and escalate to the user.
|
|
65
60
|
**Pressure:** "just skip it", "auto, don't ask", "just this once" — the Rationalizations table below is the answer, not urgency.
|
|
66
61
|
|
|
@@ -80,7 +75,15 @@ Shortcuts ("skip X", "just do it") reroute work inside the pipeline — never ou
|
|
|
80
75
|
|
|
81
76
|
## Wave transitions (visibility)
|
|
82
77
|
|
|
83
|
-
Banner
|
|
78
|
+
Banner in the owning agent's color opens every wave — the equals line
|
|
79
|
+
`===== ⚔️ WAVE 3 — ZORO (EXECUTION) =====` (ANSI-wrapped in terminals, plain in markdown UIs). Spec + colors: `_shared/references/wave-banners.md`. A skip is recorded, never silent.
|
|
80
|
+
|
|
81
|
+
## Output discipline
|
|
82
|
+
|
|
83
|
+
Read `verbosity` from mode config at Wave 0 (default `normal`); never suppresses wave banners, file edits, gate verdicts, decisions, questions, blockers, lane rises, or escalations.
|
|
84
|
+
At `normal`: investigation steps (reads, greps, probes), file contents, and narration are not echoed — name a file only when it matters; results collapse to one line + evidence path. At `full`: everything is echoed, including reads and reasoning.
|
|
85
|
+
**The rule: the transcript must remain sufficient to review the mission without opening a file.** If collapsing a line breaks that, do not collapse it.
|
|
86
|
+
Rendered examples: `references/output-contract.md` — match the shape.
|
|
84
87
|
|
|
85
88
|
## Work splitting
|
|
86
89
|
|
|
@@ -96,7 +99,7 @@ Recognize the in-session phrase `mugiwara mode <guided|semi|auto>`: write the pr
|
|
|
96
99
|
|
|
97
100
|
## Closure (Wave 9)
|
|
98
101
|
|
|
99
|
-
Gate — every task's acceptance criteria verified, every gate passed, findings resolved or deferred with an owner, blocker ledger reviewed. Step results `results/<mission>/01..05` are evidence — kept, never deleted; only consumed cross-artifacts (`logs/`, `spec/`, `review/`, `issues/`) are removed. Run `scripts/savepoint.sh <mission>` to write final state, then `scripts/mission-report.sh <mission>` to generate the aggregate mission report at `.mugiwara/reports/YYYY-MM-DD-<mission>.md`. Write the closure summary to `.mugiwara/results/<mission>/06-closure.md`. The plan doc stays untouched. Full detail: `references/closure.md`.
|
|
102
|
+
Gate — every task's acceptance criteria verified, every gate passed, findings resolved or deferred with an owner, blocker ledger reviewed. Step results `results/<mission>/01..05` are evidence — kept, never deleted; only consumed cross-artifacts (`logs/`, `spec/`, `review/`, `issues/`) are removed. Run `scripts/savepoint.sh <mission>` to write final state, then `scripts/mission-report.sh <mission>` to generate the aggregate mission report at `.mugiwara/reports/YYYY-MM-DD-<mission>.md`. Write the closure summary to `.mugiwara/results/<mission>/06-closure.md`. The plan doc stays untouched. Full detail: `references/closure.md`. With `auto_commit=off` (guided/semi): skip the save-point commit and push — hand the uncommitted tree + verdict to the user; auto always pushes.
|
|
100
103
|
|
|
101
104
|
## Spirit vs letter
|
|
102
105
|
|
|
@@ -104,11 +107,7 @@ The plan doc is the contract, but the mission goal outranks it. If following the
|
|
|
104
107
|
|
|
105
108
|
## Write boundary
|
|
106
109
|
|
|
107
|
-
Only Zoro (`mugiwara-execution`) and Brook (`mugiwara-healing`) write source. Every other role writes `.mugiwara/**` only. If the user asks a non-executor to write source, refuse and route to Luffy, who dispatches Zoro (execution) or Brook (healing).
|
|
108
|
-
Every agent knows its edit capability from its own `write-scope` frontmatter — no probing.
|
|
109
|
-
Artifacts-scope agents facing a source edit say "Delegating to Zoro" to Luffy, who dispatches immediately.
|
|
110
|
-
Subagent harnesses: Luffy auto-dispatches zoro-execution; Codex-style harnesses inline-embody.
|
|
111
|
-
Brook heals only; general source edits go to Zoro via Luffy.
|
|
110
|
+
Only Zoro (`mugiwara-execution`) and Brook (`mugiwara-healing`) write source. Every other role writes `.mugiwara/**` only. If the user asks a non-executor to write source, refuse and route to Luffy, who dispatches Zoro (execution) or Brook (healing). Every agent knows its edit capability from its own `write-scope` frontmatter — no probing. Artifacts-scope agents facing a source edit say "Delegating to Zoro" to Luffy, who dispatches immediately. Subagent harnesses: Luffy auto-dispatches zoro-execution; Codex-style harnesses inline-embody. Brook heals only; general source edits go to Zoro via Luffy.
|
|
112
111
|
|
|
113
112
|
## Red flags
|
|
114
113
|
|
|
@@ -117,5 +116,6 @@ Brook heals only; general source edits go to Zoro via Luffy.
|
|
|
117
116
|
- Starting a wave without a banner.
|
|
118
117
|
- Routing a Refuse-class request to a crew member; recording a lane without its trigger.
|
|
119
118
|
- A host todo UI that lags the plan doc — tasks done but still unchecked, or the plan's task list never mirrored to the host.
|
|
119
|
+
- Re-reading state or an artifact the crew wrote earlier in the same session.
|
|
120
120
|
- A main thread answering "I'm not the crew, I'll just handle it" instead of embodying the owning role.
|
|
121
121
|
- An artifacts-scope agent probing permissions instead of delegating to Zoro via Luffy; full-crew process on a task that sizes Lane 0/1.
|
|
@@ -27,15 +27,26 @@ After every wave AND at the end of each execution batch, verify:
|
|
|
27
27
|
never verbatim instructions.
|
|
28
28
|
7. **Host todo synced** — the main thread mirrors the plan doc's task list into the host's native todo mechanism
|
|
29
29
|
(opencode `todowrite`; Claude Code `TaskCreate`/`TaskUpdate`/`TaskList` — `TodoWrite` is deprecated since
|
|
30
|
-
v2.1.142; tier 2/3 hosts have no native tool — plan doc only)
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
v2.1.142; tier 2/3 hosts have no native tool — plan doc only). Seed it at Wave 2 (tasks + wave list 4-9);
|
|
31
|
+
update it in the SAME response each task's evidence lands — one transition per call, never deferred to
|
|
32
|
+
batch or wave end; flip each wave to in_progress when its banner opens. The host todo is a mirror; the plan
|
|
33
|
+
doc stays the source of truth. A task done in the plan doc but not yet in the host tool is incomplete.
|
|
34
|
+
Per-host table: `docs/reference/harness-matrix.md`.
|
|
33
35
|
|
|
34
36
|
By mode (per mode config): `guided` checks in with the user as today; `semi`/`auto` write the check-in verdicts to the decision log without pausing the pipeline.
|
|
35
37
|
|
|
36
38
|
## Wave transitions (visibility)
|
|
37
39
|
|
|
38
|
-
Every wave opens with a
|
|
40
|
+
Every wave opens with a colored banner in the owning agent's color and closes
|
|
41
|
+
with the handoff line `→ Wave N+1 — <crew>` (Wave 9: `→ closure`). Terminal:
|
|
42
|
+
equals line `===== ⚔️ WAVE 3 — ZORO (EXECUTION) =====` wrapped in ANSI truecolor
|
|
43
|
+
`\x1b[38;2;R;G;Bm...\x1b[0m` (256 fallback `38;5;N`); markdown UIs: the plain
|
|
44
|
+
equals line, no ANSI. The literal `WAVE N —`
|
|
45
|
+
text must stay exact (savepoint's heal counter greps `wave 8`). Colors
|
|
46
|
+
and the full spec: `_shared/references/wave-banners.md`. No wave starts without its banner. A wave intentionally
|
|
47
|
+
omitted is never silent — record wave, owner, and reason in the decision log
|
|
48
|
+
before moving on. The user must always see which crew runs now and who takes
|
|
49
|
+
over next.
|
|
39
50
|
|
|
40
51
|
## On drift
|
|
41
52
|
|