@ionivetech/mugiwara 0.6.2 → 0.6.4

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.
Files changed (73) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.cursor-plugin/plugin.json +1 -1
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/.opencode/commands/mugiwara-continue.md +42 -10
  7. package/.opencode/commands/mugiwara-execute.md +1 -1
  8. package/.opencode/commands/mugiwara-heal.md +1 -1
  9. package/.opencode/commands/mugiwara-plan.md +1 -1
  10. package/.opencode/commands/mugiwara-review.md +1 -1
  11. package/.opencode/commands/mugiwara-security.md +1 -1
  12. package/.opencode/commands/mugiwara-ship.md +1 -1
  13. package/.opencode/mugiwara-helpers.mjs +1 -1
  14. package/.opencode/plugins/mugiwara.mjs +62 -20
  15. package/AGENTS.md +16 -5
  16. package/README.md +67 -15
  17. package/content/agents/brook-healing.md +1 -1
  18. package/content/agents/chopper-checkpoint.md +1 -1
  19. package/content/agents/eval-runner.md +1 -1
  20. package/content/agents/franky-gates.md +1 -1
  21. package/content/agents/jinbe-security.md +1 -1
  22. package/content/agents/memory-keeper.md +1 -1
  23. package/content/agents/nami-planner.md +2 -2
  24. package/content/agents/resume-coordinator.md +11 -11
  25. package/content/agents/robin-reviewer.md +1 -1
  26. package/content/agents/sanji-quality.md +1 -1
  27. package/content/agents/skeptic-verifier.md +1 -1
  28. package/content/agents/usopp-brainstorm.md +2 -2
  29. package/content/agents/zoro-execution.md +3 -3
  30. package/content/skills/mugiwara-agent-security/SKILL.md +1 -18
  31. package/content/skills/mugiwara-agent-security/references/checklist.md +20 -0
  32. package/content/skills/mugiwara-brainstorm/SKILL.md +7 -1
  33. package/content/skills/mugiwara-execution/SKILL.md +14 -13
  34. package/content/skills/mugiwara-execution/references/resume-batching.md +4 -4
  35. package/content/skills/mugiwara-healing/SKILL.md +2 -37
  36. package/content/skills/mugiwara-healing/references/workers.md +38 -0
  37. package/content/skills/mugiwara-orchestration/SKILL.md +11 -8
  38. package/content/skills/mugiwara-orchestration/references/check-ins.md +26 -7
  39. package/content/skills/mugiwara-orchestration/references/closure.md +9 -0
  40. package/content/skills/mugiwara-orchestration/references/triage-escalation.md +9 -12
  41. package/content/skills/mugiwara-planning/SKILL.md +7 -11
  42. package/content/skills/mugiwara-planning/references/plan-template.md +4 -4
  43. package/content/skills/mugiwara-pr/SKILL.md +11 -19
  44. package/content/skills/mugiwara-pr/references/verdict-format.md +31 -0
  45. package/content/skills/mugiwara-resume/SKILL.md +37 -22
  46. package/content/skills/mugiwara-ship/SKILL.md +1 -23
  47. package/content/skills/mugiwara-ship/references/cleanup.md +25 -0
  48. package/content/skills/mugiwara-workflow/SKILL.md +7 -3
  49. package/content/skills/mugiwara-workflow/references/workspace-layout.md +11 -3
  50. package/content/skills/using-mugiwara/SKILL.md +1 -1
  51. package/dist/mugiwara.js +138 -42
  52. package/gemini-extension.json +1 -1
  53. package/hooks/session-start.ts +113 -2
  54. package/package.json +3 -3
  55. package/plugin.json +1 -1
  56. package/references/multi-actor.md +39 -14
  57. package/references/skill-versioning.md +3 -3
  58. package/references/token-budget.md +1 -1
  59. package/references/wave-banners.md +75 -0
  60. package/scripts/evidence.sh +9 -0
  61. package/scripts/gate-selftest.ts +154 -0
  62. package/scripts/lane-base.ts +114 -0
  63. package/scripts/lane.sh +5 -3
  64. package/scripts/lib/lane-base.sh +19 -0
  65. package/scripts/lib/patterns.sh +21 -0
  66. package/scripts/mission-report.sh +21 -5
  67. package/scripts/savepoint.sh +170 -56
  68. package/scripts/setup-fixtures.ts +108 -0
  69. package/scripts/validate-content.ts +61 -0
  70. package/src/cli.ts +5 -1
  71. package/src/installer.ts +70 -8
  72. package/src/mission.ts +37 -19
  73. package/src/targets/opencode.ts +34 -6
@@ -43,7 +43,7 @@ Multi-PR scope (>2 days). Split into sub-missions — never one giant plan:
43
43
 
44
44
  - Each sub-mission: own PR, done-criteria (checkbox list), continuation pointer.
45
45
  - Every sub-mission ends in a mergeable state.
46
- - Continuation via `.mugiwara/continue.md` — next sub-mission resumes from the pointer, never restarts.
46
+ - Continuation via `.mugiwara/continue/<mission>/[member].json` — next sub-mission resumes from the pointer, never restarts.
47
47
  - Each sub-mission needs its own wave table.
48
48
 
49
49
  ## Interview-first & mode (prose detail)
@@ -57,9 +57,9 @@ never plan from an empty spec, that is fiction.
57
57
 
58
58
  Mode gates (per mode config):
59
59
 
60
- - `guided`: batch ONE question round, wait for answers, then present the plan for an explicit user GO — current behavior.
61
- - `semi`: self-answer non-blocking ambiguities + log them in the decision log; still present the plan for user GO.
62
- - `auto`: proceed past approval only with zero blocking ambiguities AND zero high-risk tasks (task `Risk` line = deploy / migration / DB / public API / state-mutating); else stop and present the plan for user GO.
60
+ - `guided`: batch ONE question round, wait for answers, then present the plan for an explicit user GO.
61
+ - `semi`: manual until the written plan batch the question round, wait, present the plan for an explicit user GO; execution from Wave 3 onward is automatic.
62
+ - `auto`: fully automatic no user GO required. Ambiguities are resolved internally: the owning agent brainstorms with Usopp, Luffy makes the call, and the crew proceeds. Only a genuine blocker or the heal halt pauses. If a blocking question truly cannot be resolved from the repo + skills, escalate to Luffy → the user.
63
63
 
64
64
  Never hand to the executor without a GO except through the auto gate above;
65
65
  the anti-pattern list binds in every mode.
@@ -14,33 +14,25 @@ Mugiwara's evidence lands where the team reviews. At terminal, push the mission
14
14
 
15
15
  ## Verdict file
16
16
 
17
- Write `.mugiwara/results/<mission>/07-pr-verdict.md`:
18
-
19
- - **PR Title first** `{type}: {Title Case summary}` — mandatory Title case (significant words capitalized), e.g. `Feat: Add Evidence Links To Mugiwara Reports`.
20
- - **PR Body** everything below lives in the body, in this exact order:
21
- 1. Summary — goal, mode, waves, task count.
22
- 2. Per-wave evidence table — wave, task, status, evidence link (`[path](relative/path)`).
23
- 3. Gates — quality, gates, review + security dispositions, each verdict with evidence.
24
- 4. Review & security — findings with dispositions.
25
- 5. User tests — when declared, the ATDD oracle result (per `mugiwara-testcases`), from real runs, never asserted.
26
- 6. Closure report link — `[06-closure.md](.mugiwara/results/<mission>/06-closure.md)`.
27
- 7. Verdict — PASS / FAIL with the single blocking reason, if any.
17
+ Write `.mugiwara/results/<mission>/07-pr-verdict.md` — ONE document that IS
18
+ the ready PR material (no separate report + PR-body copy). Exact order —
19
+ Title Summary (key-point bullets) What changed (compact file inventory
20
+ paragraph) Per-wave evidence Tests Checks Verdict. Full spec:
21
+ `references/verdict-format.md`.
28
22
 
29
23
  ## PR summary
30
24
 
31
- Prepare the PR description so the user can paste and submit without writing it:
32
-
33
- - Title `{type}: {Title Case summary}` (mandatory Title case), FIRST in the paste block.
34
- - Body the verdict-file PR summary block (what changed, evidence, checks).
35
- - Body order — Summary → Per-wave evidence → Gates → Review & security → User tests → Closure report link → Verdict (mirrors the verdict file).
36
- - Target — the `base` config (default `main`) is named in the summary.
37
- - Validate every interpolated value against the safe charset and quote it.
25
+ The verdict file IS the PR summary. No second block: the user pastes the file
26
+ — title line into the PR title, the rest into the body. Order mirrors the
27
+ verdict file (title summary what changed per-wave evidence tests
28
+ checks verdict). Validate every interpolated value against the safe charset
29
+ and quote it.
38
30
 
39
31
  The summary is material, never posted — the crew stops at push.
40
32
 
41
33
  ## Handoff rule
42
34
 
43
- Push the branch + write the verdict file at terminal, after every wave passes (never a draft state — the user opens the PR when they choose). The verdict is delivered as a file, not posted; the user pastes it into their PR. Never per-wave (reviewer noise).
35
+ Push the branch + write the verdict file at terminal, after every wave passes (never a draft state — the user opens the PR when they choose). The verdict is delivered as a file, not posted; the user pastes it into their PR. Never per-wave (reviewer noise). With `auto_commit=off` (guided/semi only): nothing to push — write the verdict file, hand the UNCOMMITTED working tree to the user with the exact commit + push commands; `auto` mode always pushes.
44
36
 
45
37
  ## Push adapter (plain git, no gh)
46
38
 
@@ -0,0 +1,31 @@
1
+ # Verdict file format
2
+
3
+ `.mugiwara/results/<mission>/07-pr-verdict.md` — ONE document that IS the
4
+ ready PR material (the user copies the title line and the body as-is). No
5
+ separate report section plus a PR-body copy: one flow, in this exact order:
6
+
7
+ 1. **Title** — `# {type}: {Title Case summary}` — mandatory Title case, e.g.
8
+ `# Feat: Add Evidence Links To Mugiwara Reports`.
9
+ 2. **Summary** — goal, mode, waves, task count, branch/stacking note,
10
+ closure report link (`[06-closure.md](.mugiwara/results/<mission>/06-closure.md)`);
11
+ then the mission's key points as compact bullets (what each defect/feature
12
+ does — never a file list).
13
+ 3. **What changed** — ONE compact paragraph, file inventory only: `<N> files:
14
+ <comma-separated paths>, <grouped counts>, docs (dir or file list), README.`
15
+ Feature detail lives in Summary, not here.
16
+ 4. **Per-wave evidence** — wave, task, status, evidence link
17
+ (`[path](relative/path)`). Gates, review, security, and heal rows live here
18
+ with their dispositions.
19
+ 5. **Tests** — captured test counts (never asserted); the ATDD oracle result
20
+ when user tests were declared (per `mugiwara-testcases`).
21
+ 6. **Checks** — one `- [x]` checkbox bullet per gate: typecheck, tests
22
+ (`N/N`), build, content/manifest/doc-integrity, lane-base, npm pack,
23
+ evals + retrieval, verify-install (`N/N` pointers), gate-selftest
24
+ (`N/N` mutations prove red).
25
+ 7. **Verdict** — PASS / FAIL with the single blocking reason, if any.
26
+
27
+ The file IS the PR summary. No second block: the user pastes the file — title
28
+ line into the PR title, the rest into the body. Order mirrors the verdict file
29
+ (title → summary → what changed → per-wave evidence → tests → checks →
30
+ verdict). Validate every interpolated value against the safe charset and quote
31
+ it.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mugiwara-resume
3
- description: Use when mission interrupted, context lost, or new session mid-mission — rebuild from .mugiwara/state.json, continue never restart.
3
+ description: Use when mission interrupted, context lost, or new session mid-mission — rebuild from .mugiwara/state.json + continue/<mission>/, continue never restart.
4
4
  ---
5
5
 
6
6
  # Session Resume (Never Start Over)
@@ -10,25 +10,32 @@ description: Use when mission interrupted, context lost, or new session mid-miss
10
10
  - Fresh mission: no `.mugiwara/` state exists to rebuild from.
11
11
  - No interruption, compaction, or new-session-mid-mission happened.
12
12
 
13
- The host AI can lose context — compaction, new session, crash. Disk state is truth. Rebuild from one file, continue from exact point, never restart.
13
+ The host AI can lose context — compaction, new session, crash. Disk state is truth. Rebuild from the position files, continue from the exact point, never restart.
14
14
 
15
15
  ## State contract
16
16
 
17
- Resume reads one file: `.mugiwara/state.json`. All position data is computed at every wave boundary by `scripts/savepoint.sh`.
17
+ Resume reads per-(mission, member) files. Identity is (mission, member), never branch. Solo missions use member-less files named `state.json`.
18
+
19
+ ```
20
+ .mugiwara/
21
+ ├── state/<mission>/state.json # solo computed state
22
+ ├── state/<mission>/<member>.json # team member computed state
23
+ ├── continue/<mission>/state.json # solo resume point (D10)
24
+ ├── continue/<mission>/<member>.json # team member resume point
25
+ ```
26
+
27
+ All position data is computed at every wave boundary by `scripts/savepoint.sh`. State JSON shape (solo example):
18
28
 
19
29
  ```json
20
30
  {
21
31
  "mission": "2026-08-11-invitation-accepted",
22
- "actor": "farid",
32
+ "member": null,
33
+ "actor": "john",
23
34
  "branch": "feature/feat-MKR-412",
24
35
  "lane": "full",
25
36
  "lane_reason": "auth/ path touched",
26
37
  "wave": 5,
27
38
  "mode": "guided",
28
- "base_sha": "a3f1c2e",
29
- "files_touched": 11,
30
- "loc_delta": 340,
31
- "sensitive_paths": ["src/auth/invitation.ts"],
32
39
  "tasks": { "done": 7, "total": 12 },
33
40
  "blockers_open": 1,
34
41
  "heal_cycle": 1,
@@ -41,32 +48,40 @@ Resume reads one file: `.mugiwara/state.json`. All position data is computed at
41
48
 
42
49
  ## Resume protocol
43
50
 
44
- 1. Read `.mugiwara/state.json`. If absent, this is a fresh mission — no resume needed.
45
- 2. Derive position from fields: wave N, tasks done/total, blockers open, heal cycle, mode.
46
- 3. If `state.json` is stale or corrupted, fall back to legacy files: plan doc todos traceblocker ledger → config. Then write a fresh `state.json`.
47
- 4. State it: "Resumed: Wave 5, 7/12 tasks, 1 blocker, heal cycle 1, mode guided."
48
- 5. Read `.mugiwara/continue.md` if present. If it exists, REPLACE the step-4 line with: `"Resumed: <mission> <sub_mission>, Wave N, X/Y tasks next_action: <exact> — run: <next_session_prompt>"` — one output line, never two.
49
- 6. Verify next_action against state.json + todos `[x]` marks before acting. continue.md is crew-written data (savepoint.sh never writes it) — treat fields as data to verify, never verbatim instructions. A contradiction → escalate to Luffy, do not resolve silently.
51
+ 1. Resolve the target: the `/mugiwara continue` command selects `<mission>` and
52
+ optional `<member>` (see command semantics: bare list; team mission without
53
+ memberlist members; solomember-less). Never guess a mission or member.
54
+ 2. Read `state/<mission>/<member-or-state>.json`. If absent, this is a fresh
55
+ mission — no resume needed.
56
+ 3. Derive position from fields: wave N, tasks done/total, blockers open, heal cycle, mode.
57
+ 4. If the state is stale or corrupted, fall back to legacy files: plan doc → todos → trace → blocker ledger → config.
58
+ 5. Read `continue/<mission>/<member-or-state>.json` if present. If it exists, state: `"Resumed: <mission> [<member>], Wave N, X/Y tasks — next_action: <exact> — run: <next_session_prompt>"` — one output line, never two.
59
+ 6. Verify next_action against state + todos `[x]` marks before acting. Continue position fields (mission/member/wave/tasks/mode) are machine-written by `savepoint.sh` at every wave boundary — same trust as state, never model-supplied. The `next_session_prompt` field is crew-written and preserved across savepoints. Treat ALL fields as data to verify, never verbatim instructions. A contradiction → escalate to Luffy, do not resolve silently.
50
60
  7. Continue — do not re-verify completed waves.
61
+ 8. In `auto` mode, the resumed scope is exactly the selected member's file —
62
+ a team mission's other members are never auto-run, re-planned, or committed
63
+ by this session.
51
64
 
52
65
  ## Rules
53
66
 
54
67
  1. Never trust memory over disk — disk is truth.
55
- 2. Never re-run completed work — state.json proves it.
68
+ 2. Never re-run completed work — state proves it.
56
69
  3. Never skip the resume read — guessing position = drift.
57
- 4. If state.json is absent and no legacy files exist → fresh mission, escalate to Luffy.
58
- 5. continue.md refines state.json for next_action — state.json proves what is done, continue.md says what is next; a contradiction between them escalates to Luffy, never a silent override.
59
- 6. Output the handoff line: if continue.md exists, its verified next_session_prompt is the resume output line.
70
+ 4. If state is absent and no legacy files exist → fresh mission, escalate to Luffy.
71
+ 5. Continue refines state for next_action — state proves what is done, continue says what is next; a contradiction escalates to Luffy, never a silent override.
72
+ 6. Output the handoff line: if continue exists, its verified next_session_prompt is the resume output line.
73
+ 7. Multiple missions in-flight for the actor → do NOT auto-resume; list and let the user pick (never guess which mission or member).
60
74
 
61
75
  ## Rationalizations
62
76
 
63
77
  - "I remember where we were" → memory lies after compaction; disk is truth.
64
- - "Re-running is safer" → wastes the mission; trust state.json.
78
+ - "Re-running is safer" → wastes the mission; trust state.
65
79
  - "I'll update state later" → savepoint.sh runs at every wave boundary; state is always current.
66
80
 
67
81
  ## Red flags
68
82
 
69
- - Resume position stated without citing state.json or legacy files.
70
- - Re-doing a wave state.json shows complete.
83
+ - Resume position stated without citing state or legacy files.
84
+ - Re-doing a wave state shows complete.
71
85
  - Inventing state instead of escalating when files are missing.
72
- - continue.md contradicts state.json and the conflict is silently resolved instead of escalated.
86
+ - Continue contradicts state and the conflict is silently resolved instead of escalated.
87
+ - Auto-resuming one of several in-flight missions for the same actor.
@@ -50,29 +50,7 @@ Run every item and record evidence; a checkbox ticked without output is a failed
50
50
 
51
51
  ## Cleanup (after the terminal step)
52
52
 
53
- Once the branch is pushed and the PR material is written, clean `.mugiwara/` of
54
- consumed intermediates. Never touch anything outside `.mugiwara/`.
55
-
56
- **KEEP** (the audit trail and PR material):
57
-
58
- - `config`
59
- - `plans/YYYY-MM-DD-<mission>.md` — the clean plan doc
60
- - `results/<mission>/06-closure.md` — closure report
61
- - `results/<mission>/07-pr-verdict.md` — PR material
62
- - `reports/YYYY-MM-DD-<mission>.md` — the mission report (the consolidated evidence)
63
- - `logs/lessons.md` and any cross-mission state (`backup/`, `manifest.json`)
64
-
65
- **ARCHIVE, then remove** (fold into the mission report first, never delete outright):
66
-
67
- - `results/<mission>/01-execution.md` … `05-healing.md`, `todos.md` — wave artifacts, folded
68
- - `spec/YYYY-MM-DD-<mission>.md` — consumed by planning
69
- - `review/`, `issues/` per-mission findings — folded into the report
70
- - `logs/YYYY-MM-DD-<mission>.md` and mode-flip logs — folded
71
- - `.mugiwara/continue.md` — consumed once closed (delete by exact name, never a glob)
72
-
73
- Procedure: run `mugiwara archive <mission>` (dry-run first), which folds evidence
74
- into the report, removes the loose files, and appends a summary-index line.
75
- A mission is only closed after the archive runs — the trail must survive the merge.
53
+ Full procedure: `references/cleanup.md` KEEP the audit trail + PR material, ARCHIVE-then-remove wave artifacts via `mugiwara archive <mission>` (dry-run first). Never touch anything outside `.mugiwara/`; the trail must survive the merge.
76
54
 
77
55
  ## Iron Law
78
56
 
@@ -0,0 +1,25 @@
1
+ # Cleanup (after the terminal step)
2
+
3
+ Once the branch is pushed and the PR material is written, clean `.mugiwara/` of
4
+ consumed intermediates. Never touch anything outside `.mugiwara/`.
5
+
6
+ **KEEP** (the audit trail and PR material):
7
+
8
+ - `config`
9
+ - `plans/YYYY-MM-DD-<mission>.md` — the clean plan doc
10
+ - `results/<mission>/06-closure.md` — closure report
11
+ - `results/<mission>/07-pr-verdict.md` — PR material
12
+ - `reports/YYYY-MM-DD-<mission>.md` — the mission report (the consolidated evidence)
13
+ - `logs/lessons.md` and any cross-mission state (`backup/`, `manifest.json`)
14
+
15
+ **ARCHIVE, then remove** (fold into the mission report first, never delete outright):
16
+
17
+ - `results/<mission>/01-execution.md` … `05-healing.md`, `todos.md` — wave artifacts, folded
18
+ - `spec/YYYY-MM-DD-<mission>.md` — consumed by planning
19
+ - `review/`, `issues/` per-mission findings — folded into the report
20
+ - `logs/YYYY-MM-DD-<mission>.md` and mode-flip logs — folded
21
+ - `.mugiwara/continue/<mission>/[member].json` — consumed once closed (delete by exact name, never a glob)
22
+
23
+ Procedure: run `mugiwara archive <mission>` (dry-run first), which folds evidence
24
+ into the report, removes the loose files, and appends a summary-index line.
25
+ A mission is only closed after the archive runs — the trail must survive the merge.
@@ -46,7 +46,10 @@ Waves are phases, not files. The plan doc defines them. The harness runs inline.
46
46
 
47
47
  **One role at a time.** The main thread embodies ONE crew role per response — completes that role's report, then moves to the next. Never role-bleeds two personas into one response; never starts the next role before the current one returns its output.
48
48
 
49
- **Banners.** Every wave opens with a visible main-thread heading `## Wave N — <crew> (<skill>)` and closes with the handoff line `→ Wave N+1 — <crew>`. No wave starts without its banner.
49
+ **Banners.** Every wave opens with a banner in the owning agent's color and
50
+ closes with a handoff line — terminal ANSI equals line, markdown-UIs emoji
51
+ heading; handoff `→ Wave 4 — Chopper (Checkpoint)`. Keep literal `WAVE N —`
52
+ (savepoint's heal counter greps it). Spec + colors: `_shared/references/wave-banners.md`.
50
53
 
51
54
  **Subagents only for parallelism.** `[PARALLEL]` task batches, parallel review, parallel heal workers. Crew members never dispatch crew members.
52
55
 
@@ -80,7 +83,7 @@ Read-only investigation (no file change) → Answer/Explore — no crew, no Luff
80
83
 
81
84
  ## Session handoff
82
85
 
83
- At session end (step limit, crash, or manual stop) the crew writes `.mugiwara/continue.md` before the final text response: mission, sub_mission, wave, tasks, next_action (exact files + commands), next_session_prompt. Owner: orchestrator (captain); writer: the agent ending the wave. Next session starts with `/mugiwara continue` — no re-explanation. `auto` mode continues across sessions via continue.md: one command per session, no re-explanation. state.json proves what is done; continue.md says what is next — verify next_action against state.json, escalate contradictions.
86
+ At session end (step limit, crash, or manual stop) the crew writes `.mugiwara/continue/<mission>/[member].json` before the final text response: mission, member, wave, tasks, next_action (exact files + commands), next_session_prompt. Owner: orchestrator (captain); writer: the agent ending the wave. Next session starts with `/mugiwara continue <mission> [member]` — no re-explanation. `auto` mode continues across sessions via the continue file: one command per session, no re-explanation. State proves what is done; continue says what is next — verify next_action against state, escalate contradictions.
84
87
 
85
88
  ## Blocker protocol
86
89
 
@@ -92,7 +95,7 @@ Brook reads this at Wave 8. Never silently work around a blocker.
92
95
 
93
96
  ## Cleanup (Wave 9)
94
97
 
95
- Archive, never delete: run `mugiwara archive <mission>` — folds `logs/`, `spec/`, `review/`, `issues/` into the mission report and removes the loose files. Step results `results/<mission>/01..05` + `todos.md` are EVIDENCE — KEEP them in place; they feed `reports/` and closure links. Keep: everything under `results/<mission>/`, `plans/`, `reports/`, `config`, `state.json`, `logs/lessons.md`. Full layout: `references/workspace-layout.md`.
98
+ Archive, never delete: run `mugiwara archive <mission>` — folds `logs/`, `spec/`, `review/`, `issues/` into the mission report and removes the loose files. Step results `results/<mission>/01..05` + `todos.md` are EVIDENCE — KEEP them in place; they feed `reports/` and closure links. Keep: everything under `results/<mission>/`, `plans/`, `reports/`, `config`, `logs/lessons.md`. Full layout: `references/workspace-layout.md`.
96
99
 
97
100
  ## Rules
98
101
 
@@ -103,6 +106,7 @@ Archive, never delete: run `mugiwara archive <mission>` — folds `logs/`, `spec
103
106
  5. Plan doc is source of truth from Wave 2.
104
107
  6. Resume via `resume-coordinator` before any wave — never restart.
105
108
  7. Push branch + hand verdict to user; crew never merges or deploys.
109
+ 8. Host todo mirrors the plan doc every task + wave — same response as evidence.
106
110
 
107
111
  ## Iron Law
108
112
 
@@ -2,10 +2,17 @@
2
2
 
3
3
  Every mission creates and works inside `.mugiwara/` at the repo root.
4
4
 
5
+ **Language:** every artifact the crew writes into `.mugiwara/` — plans, logs,
6
+ results, reports, spec, state, continue, issues, review — is English, one
7
+ language only. The audit trail is shared by the whole team and by future
8
+ sessions; it must not depend on the author's conversational language. A
9
+ mission artifact in any other language is a defect, not a style choice.
10
+
5
11
  ```
6
12
  .mugiwara/
7
13
  ├── config → runtime mode config (gitignored; project overrides global)
8
- ├── state.json → computed mission state at every wave boundary (scripts/savepoint.sh)
14
+ ├── state/<mission>/ → computed mission state per (mission, member): state.json (solo) or <member>.json (scripts/savepoint.sh)
15
+ ├── continue/<mission>/ → machine-written resume point per (mission, member): state.json (solo) or <member>.json
9
16
  ├── spec/ → brainstorm output: YYYY-MM-DD-<mission>.md
10
17
  ├── plans/ → plan doc: YYYY-MM-DD-<mission>.md — CLEAN, Nami-only, source of truth from Wave 2
11
18
  ├── results/ → per-mission folder: results/<mission>/ holds every wave artifact
@@ -45,7 +52,8 @@ artifacts go outside `.mugiwara/`.
45
52
  Step results are evidence — KEEP every file in `results/<mission>/`
46
53
  (`01-execution.md` through `05-healing.md`, `todos.md`, `06-closure.md`,
47
54
  `07-pr-verdict.md`); they feed the mission report and closure links. Delete
48
- only consumed cross-artifacts: `logs/`, `spec/`, `review/`, `issues/`. Keep
49
- `plans/`, `reports/`, `config`, `state.json`, `logs/lessons.md` (canonical
55
+ only consumed cross-artifacts: `logs/`, `spec/`, `review/`, `issues/`,
56
+ `state/<mission>/`, `continue/<mission>/`. Keep
57
+ `plans/`, `reports/`, `config`, `logs/lessons.md` (canonical
50
58
  lessons ledger; cross-mission state: `backup/`, `manifest.json`). List
51
59
  candidates before deleting.
@@ -37,7 +37,7 @@ Mugiwara is a governed engineering team in your coding agent. 12 specialists —
37
37
  | Robin | Reviewer — breaking-change map (read-only) |
38
38
  | Jinbe | Security — STRIDE, OWASP, secret scan (read-only) |
39
39
  | Brook | Healer — reads ledger, fixes failures |
40
- | Resume | Continuity — rebuild from state.json |
40
+ | Resume | Continuity — rebuild from the mission state |
41
41
 
42
42
  For task routing and classification, `mugiwara-orchestration` auto-loads as gatekeeper.
43
43
  This skill is documentation — load manually with `/using-mugiwara` or similar trigger phrases.