@mmerterden/multi-agent-pipeline 17.6.0 → 19.0.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.
Files changed (272) hide show
  1. package/CHANGELOG.md +310 -0
  2. package/README.md +76 -18
  3. package/README.tr.md +55 -16
  4. package/docs/adr/0002-instruction-driven-flag.md +1 -0
  5. package/docs/adr/0005-lazy-phase-docs.md +11 -1
  6. package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +1 -0
  7. package/docs/adr/0010-own-code-graph.md +1 -0
  8. package/docs/adr/0011-dormant-ci.md +25 -1
  9. package/docs/adr/0014-six-phase-consolidation.md +134 -0
  10. package/docs/adr/README.md +2 -1
  11. package/docs/architecture.md +37 -38
  12. package/docs/best-practices.md +1 -1
  13. package/docs/ecosystem.md +37 -26
  14. package/docs/engineering.md +1 -1
  15. package/docs/facts.json +45 -0
  16. package/docs/features.md +54 -53
  17. package/docs/performance.md +5 -5
  18. package/docs/recovery-guide.md +9 -9
  19. package/docs/server-readiness.md +188 -0
  20. package/docs/token-budget-history.md +3 -1
  21. package/index.js +18 -3
  22. package/install/_codex-agents.mjs +1 -1
  23. package/install/_common.mjs +42 -17
  24. package/install/_dev-only-files.mjs +8 -0
  25. package/install/_unattended-profile.mjs +113 -0
  26. package/install/index.mjs +48 -0
  27. package/install/templates/claude-hooks.json +1 -1
  28. package/install/templates/codex-instructions.md +1 -1
  29. package/install/templates/copilot-instructions.md +28 -28
  30. package/manifest.json +1065 -0
  31. package/package.json +6 -3
  32. package/pipeline/agents/dev-critic.md +3 -3
  33. package/pipeline/commands/figma-to-swiftui.md +1 -1
  34. package/pipeline/commands/multi-agent/SKILL.md +8 -8
  35. package/pipeline/commands/multi-agent/analysis/SKILL.md +9 -9
  36. package/pipeline/commands/multi-agent/autopilot/SKILL.md +7 -7
  37. package/pipeline/commands/multi-agent/channels/SKILL.md +15 -15
  38. package/pipeline/commands/multi-agent/diff-explain/SKILL.md +6 -6
  39. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
  40. package/pipeline/commands/multi-agent/graph/SKILL.md +1 -1
  41. package/pipeline/commands/multi-agent/help/SKILL.md +62 -62
  42. package/pipeline/commands/multi-agent/language/SKILL.md +2 -2
  43. package/pipeline/commands/multi-agent/local/SKILL.md +11 -11
  44. package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +13 -13
  45. package/pipeline/commands/multi-agent/log/SKILL.md +2 -2
  46. package/pipeline/commands/multi-agent/manual-test/SKILL.md +9 -9
  47. package/pipeline/commands/multi-agent/model/SKILL.md +69 -0
  48. package/pipeline/commands/multi-agent/refactor/SKILL.md +3 -3
  49. package/pipeline/commands/multi-agent/resume/SKILL.md +4 -4
  50. package/pipeline/commands/multi-agent/resume-local/SKILL.md +19 -17
  51. package/pipeline/commands/multi-agent/review/SKILL.md +1 -1
  52. package/pipeline/commands/multi-agent/route-off/SKILL.md +36 -0
  53. package/pipeline/commands/multi-agent/route-on/SKILL.md +74 -0
  54. package/pipeline/commands/multi-agent/route-status/SKILL.md +56 -0
  55. package/pipeline/commands/multi-agent/setup/SKILL.md +2 -2
  56. package/pipeline/commands/multi-agent/status/SKILL.md +54 -23
  57. package/pipeline/commands/multi-agent/steer/SKILL.md +2 -2
  58. package/pipeline/commands/multi-agent/sync/SKILL.md +12 -13
  59. package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
  60. package/pipeline/lib/_jira-auth.sh +8 -0
  61. package/pipeline/lib/analysis-jira-write.sh +32 -0
  62. package/pipeline/lib/ask-choice.sh +13 -2
  63. package/pipeline/lib/autopilot-state.sh +8 -0
  64. package/pipeline/lib/credential-inventory.sh +1 -1
  65. package/pipeline/lib/fatal.mjs +129 -0
  66. package/pipeline/lib/fetch-fortify.sh +1 -1
  67. package/pipeline/lib/figma-mcp-refresh.sh +18 -0
  68. package/pipeline/lib/figma-screenshot.sh +18 -0
  69. package/pipeline/lib/invoked-directly.mjs +43 -0
  70. package/pipeline/lib/jira-publish.sh +42 -0
  71. package/pipeline/lib/md2confluence-v3.py +47 -0
  72. package/pipeline/lib/model-rung.sh +142 -0
  73. package/pipeline/lib/outbound-gate.mjs +175 -0
  74. package/pipeline/lib/phase-schema.mjs +88 -0
  75. package/pipeline/lib/plan-todos.sh +32 -11
  76. package/pipeline/lib/post-pr-review.sh +77 -8
  77. package/pipeline/lib/repo-hygiene.sh +8 -3
  78. package/pipeline/lib/require-jq.sh +40 -0
  79. package/pipeline/lib/route-state.sh +161 -0
  80. package/pipeline/lib/run-paths.sh +335 -0
  81. package/pipeline/multi-agent-refs/_account-picker.md +1 -1
  82. package/pipeline/multi-agent-refs/_dev-context.md +1 -1
  83. package/pipeline/multi-agent-refs/_input-parser.md +1 -1
  84. package/pipeline/multi-agent-refs/analysis/evidence.md +0 -9
  85. package/pipeline/multi-agent-refs/analysis/intake.md +1 -1
  86. package/pipeline/multi-agent-refs/analysis/locked.md +21 -22
  87. package/pipeline/multi-agent-refs/analysis/render.md +1 -1
  88. package/pipeline/multi-agent-refs/analysis/synthesis.md +12 -6
  89. package/pipeline/multi-agent-refs/android-guide.md +1 -1
  90. package/pipeline/multi-agent-refs/audit-guide.md +13 -13
  91. package/pipeline/multi-agent-refs/channels/issue-comment.md +2 -2
  92. package/pipeline/multi-agent-refs/channels/jira.md +3 -3
  93. package/pipeline/multi-agent-refs/channels/pr.md +4 -4
  94. package/pipeline/multi-agent-refs/channels/wiki.md +1 -1
  95. package/pipeline/multi-agent-refs/component-dispatch.md +3 -3
  96. package/pipeline/multi-agent-refs/cross-cli-contract.md +31 -6
  97. package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +74 -4
  98. package/pipeline/multi-agent-refs/features/code-graph.md +5 -5
  99. package/pipeline/multi-agent-refs/features/cost-analysis.md +93 -0
  100. package/pipeline/multi-agent-refs/features/design-conformance.md +1 -1
  101. package/pipeline/multi-agent-refs/features/dev-critic.md +3 -3
  102. package/pipeline/multi-agent-refs/features/doctor.md +47 -2
  103. package/pipeline/multi-agent-refs/features/external-context-injection.md +3 -3
  104. package/pipeline/multi-agent-refs/features/maturity-followup.md +3 -3
  105. package/pipeline/multi-agent-refs/features/model-fallback.md +5 -5
  106. package/pipeline/multi-agent-refs/features/plan-todos.md +1 -1
  107. package/pipeline/multi-agent-refs/features/repo-map.md +1 -1
  108. package/pipeline/multi-agent-refs/features/review-delta.md +3 -3
  109. package/pipeline/multi-agent-refs/features/review-multi-repo.md +1 -1
  110. package/pipeline/multi-agent-refs/features/scope-check.md +4 -4
  111. package/pipeline/multi-agent-refs/features/skill-conformance.md +2 -2
  112. package/pipeline/multi-agent-refs/features/stack-skill-routing.md +1 -1
  113. package/pipeline/multi-agent-refs/features/verify-by-test.md +4 -4
  114. package/pipeline/multi-agent-refs/features/verify.md +83 -0
  115. package/pipeline/multi-agent-refs/features/visual-evidence.md +19 -19
  116. package/pipeline/multi-agent-refs/features/worktree-finalize.md +6 -6
  117. package/pipeline/multi-agent-refs/issue-jira-triad.md +10 -10
  118. package/pipeline/multi-agent-refs/knowledge.md +11 -11
  119. package/pipeline/multi-agent-refs/multi-repo-integration-build.md +13 -13
  120. package/pipeline/multi-agent-refs/payload-contracts.md +8 -8
  121. package/pipeline/multi-agent-refs/phases/log-format.md +10 -10
  122. package/pipeline/multi-agent-refs/phases/modes.md +30 -30
  123. package/pipeline/multi-agent-refs/phases/operations.md +21 -10
  124. package/pipeline/multi-agent-refs/phases/phase-0-init.md +25 -25
  125. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +599 -0
  126. package/pipeline/multi-agent-refs/phases/{phase-3-dev.md → phase-2-dev.md} +129 -49
  127. package/pipeline/multi-agent-refs/phases/{phase-4-review.md → phase-3-review.md} +225 -107
  128. package/pipeline/multi-agent-refs/phases/{phase-6-commit.md → phase-4-commit.md} +23 -23
  129. package/pipeline/multi-agent-refs/phases/{phase-7-report.md → phase-5-report.md} +29 -29
  130. package/pipeline/multi-agent-refs/phases.md +44 -48
  131. package/pipeline/multi-agent-refs/picker-contract.md +1 -1
  132. package/pipeline/multi-agent-refs/progress-contract.md +6 -6
  133. package/pipeline/multi-agent-refs/readiness-review.md +1 -1
  134. package/pipeline/multi-agent-refs/rules.md +7 -7
  135. package/pipeline/multi-agent-refs/swiftui-guide.md +2 -2
  136. package/pipeline/multi-agent-refs/tracker-contract.md +31 -32
  137. package/pipeline/multi-agent-refs/unattended-contract.md +129 -0
  138. package/pipeline/multi-agent-refs/wiki-capture.md +14 -14
  139. package/pipeline/preferences-template.json +9 -1
  140. package/pipeline/rules/outside-the-pipeline.md +1 -1
  141. package/pipeline/schemas/agent-state.schema.json +50 -50
  142. package/pipeline/schemas/analysis-output.schema.json +2 -2
  143. package/pipeline/schemas/autopilot-config.schema.json +1 -1
  144. package/pipeline/schemas/code-graph.schema.json +1 -1
  145. package/pipeline/schemas/criteria-manifest.schema.json +1 -1
  146. package/pipeline/schemas/dev-critic-output.schema.json +1 -1
  147. package/pipeline/schemas/diff-risk.schema.json +1 -1
  148. package/pipeline/schemas/migrations/prefs-2.4.0-to-2.5.0.mjs +2 -2
  149. package/pipeline/schemas/migrations/prefs-2.6.0-to-2.7.0.mjs +31 -0
  150. package/pipeline/schemas/migrations/state-2.1.0-to-2.2.0.mjs +129 -0
  151. package/pipeline/schemas/phases.json +105 -0
  152. package/pipeline/schemas/plan-todos.schema.json +5 -5
  153. package/pipeline/schemas/planning-output.schema.json +1 -1
  154. package/pipeline/schemas/prefs.schema.json +100 -56
  155. package/pipeline/schemas/reviewer-output.schema.json +3 -3
  156. package/pipeline/schemas/route-config.schema.json +74 -0
  157. package/pipeline/schemas/scope-check.schema.json +1 -1
  158. package/pipeline/schemas/test-gap.schema.json +1 -1
  159. package/pipeline/schemas/token-budget.json +12 -18
  160. package/pipeline/schemas/triage-output.schema.json +6 -6
  161. package/pipeline/scripts/README.md +3 -3
  162. package/pipeline/scripts/_code-graph.mjs +2 -2
  163. package/pipeline/scripts/_run-paths.mjs +372 -0
  164. package/pipeline/scripts/_smoke-root.sh +1 -1
  165. package/pipeline/scripts/aggregate-metrics.mjs +65 -65
  166. package/pipeline/scripts/autopilot-arming.mjs +2 -1
  167. package/pipeline/scripts/autopilot-intake.mjs +2 -1
  168. package/pipeline/scripts/autopilot-runner.mjs +206 -2
  169. package/pipeline/scripts/build-references.mjs +2 -1
  170. package/pipeline/scripts/build-stack-plugins.mjs +10 -2
  171. package/pipeline/scripts/capture-evidence.sh +7 -2
  172. package/pipeline/scripts/capture-flush.sh +8 -8
  173. package/pipeline/scripts/capture-resume.sh +3 -3
  174. package/pipeline/scripts/classify-plan-safety.mjs +3 -2
  175. package/pipeline/scripts/cost-analyze.mjs +600 -0
  176. package/pipeline/scripts/cost-budget-check.mjs +4 -12
  177. package/pipeline/scripts/council-view.mjs +2 -1
  178. package/pipeline/scripts/crush-json.mjs +2 -1
  179. package/pipeline/scripts/diff-explain.mjs +7 -10
  180. package/pipeline/scripts/diff-risk-score.mjs +2 -1
  181. package/pipeline/scripts/doctor.mjs +140 -6
  182. package/pipeline/scripts/evidence-gate.mjs +9 -3
  183. package/pipeline/scripts/feedback-send.mjs +12 -2
  184. package/pipeline/scripts/gc-abandoned.sh +32 -16
  185. package/pipeline/scripts/gc-tmp.sh +1 -1
  186. package/pipeline/scripts/gc-worktrees.sh +12 -5
  187. package/pipeline/scripts/gen-facts.mjs +175 -0
  188. package/pipeline/scripts/gen-mode-dispatch.mjs +32 -37
  189. package/pipeline/scripts/gen-ref-toc.mjs +1 -1
  190. package/pipeline/scripts/github-ssh-setup.sh +64 -7
  191. package/pipeline/scripts/graph-mermaid.mjs +4 -2
  192. package/pipeline/scripts/graph-report.mjs +1 -1
  193. package/pipeline/scripts/jira-attach.sh +1 -1
  194. package/pipeline/scripts/keychain-save.sh +101 -30
  195. package/pipeline/scripts/learn-from-transcripts.mjs +3 -2
  196. package/pipeline/scripts/learning-curve.mjs +36 -31
  197. package/pipeline/scripts/log-metric.sh +17 -4
  198. package/pipeline/scripts/make-manifest.mjs +199 -0
  199. package/pipeline/scripts/memory-save.sh +1 -1
  200. package/pipeline/scripts/migrate-prefs.mjs +24 -6
  201. package/pipeline/scripts/migrate-state.mjs +94 -4
  202. package/pipeline/scripts/phase-banner.sh +26 -22
  203. package/pipeline/scripts/phase-tracker.sh +48 -10
  204. package/pipeline/scripts/plan-coverage-gate.mjs +8 -4
  205. package/pipeline/scripts/pre-commit-check.sh +7 -0
  206. package/pipeline/scripts/pre-push-check.sh +7 -0
  207. package/pipeline/scripts/purge.sh +23 -6
  208. package/pipeline/scripts/render-agent-log-cost.sh +10 -3
  209. package/pipeline/scripts/render-cost-summary.sh +9 -2
  210. package/pipeline/scripts/render-work-summary.sh +14 -7
  211. package/pipeline/scripts/review-file-filter.mjs +5 -3
  212. package/pipeline/scripts/review-scope.mjs +2 -1
  213. package/pipeline/scripts/routine-registry.mjs +2 -1
  214. package/pipeline/scripts/run-aggregator.mjs +26 -20
  215. package/pipeline/scripts/run-metrics.mjs +4 -2
  216. package/pipeline/scripts/runs-index.mjs +353 -0
  217. package/pipeline/scripts/scorecard-snapshot.mjs +178 -0
  218. package/pipeline/scripts/search-logs.sh +18 -0
  219. package/pipeline/scripts/smoke-cross-cli-behavior.sh +6 -6
  220. package/pipeline/scripts/smoke-schema-validation.sh +26 -7
  221. package/pipeline/scripts/test-gap-scan.mjs +2 -1
  222. package/pipeline/scripts/test-integrity-gate.mjs +2 -1
  223. package/pipeline/scripts/token-budget-report.mjs +13 -2
  224. package/pipeline/scripts/triage-memory.mjs +2 -2
  225. package/pipeline/scripts/update-issue-progress.sh +56 -7
  226. package/pipeline/scripts/usage-report.mjs +12 -1
  227. package/pipeline/scripts/validate-analysis-doc.mjs +75 -18
  228. package/pipeline/scripts/validate-code-graph.mjs +6 -3
  229. package/pipeline/scripts/validate-complaint-doc.mjs +2 -1
  230. package/pipeline/scripts/validate-diff-risk.mjs +6 -3
  231. package/pipeline/scripts/validate-planning.mjs +1 -1
  232. package/pipeline/scripts/validate-reviewer.mjs +1 -1
  233. package/pipeline/scripts/validate-state.mjs +45 -5
  234. package/pipeline/scripts/validate-test-gap.mjs +6 -3
  235. package/pipeline/scripts/validate-triage.mjs +6 -4
  236. package/pipeline/scripts/verify-citations.mjs +4 -2
  237. package/pipeline/scripts/verify.mjs +327 -0
  238. package/pipeline/scripts/worktree-finalize.sh +18 -9
  239. package/pipeline/scripts/write-state.mjs +154 -15
  240. package/pipeline/skills/.skill-manifest.json +37 -21
  241. package/pipeline/skills/.skills-index.json +104 -5
  242. package/pipeline/skills/shared/README.md +15 -6
  243. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +2 -2
  244. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +2 -2
  245. package/pipeline/skills/shared/core/multi-agent/SKILL.md +69 -71
  246. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +3 -3
  247. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +14 -14
  248. package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +5 -5
  249. package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +1 -1
  250. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +25 -23
  251. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -2
  252. package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +2 -2
  253. package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +8 -8
  254. package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +6 -6
  255. package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +71 -0
  256. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +3 -3
  257. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +1 -1
  258. package/pipeline/skills/shared/core/multi-agent-resume-local/SKILL.md +7 -7
  259. package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +39 -0
  260. package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +76 -0
  261. package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +59 -0
  262. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +1 -1
  263. package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +35 -11
  264. package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -2
  265. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +6 -5
  266. package/pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/package_app.sh +4 -1
  267. package/pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/setup_dev_signing.sh +4 -1
  268. package/pipeline/skills/shared/external/macos-spm-app-packaging/assets/templates/sign-and-notarize.sh +2 -1
  269. package/pipeline/skills/skills-index.md +13 -4
  270. package/pipeline/multi-agent-refs/phases/phase-1-analysis.md +0 -263
  271. package/pipeline/multi-agent-refs/phases/phase-2-planning.md +0 -344
  272. package/pipeline/multi-agent-refs/phases/phase-5-test.md +0 -182
@@ -2,11 +2,11 @@
2
2
 
3
3
  Single source of truth for skills delivered to both Claude Code (`~/.claude/skills/`) and Copilot CLI (`~/.copilot/skills/`) by the installer.
4
4
 
5
- **Total:** 207 skills (54 core + 153 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
5
+ **Total:** 216 skills (63 core + 153 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
6
6
 
7
7
  ## Directory layout
8
8
 
9
- - **`core/`** - 54 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
9
+ - **`core/`** - 63 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
10
10
  - **`external/`** - 153 iOS / Android / generic skills imported from the upstream skill library. Mirrors of third-party guidance.
11
11
  - Install destinations (ADR-0009): Claude Code gets NO local copy of `external/` - it loads those skills from the `multi-agent-plugins` marketplace, namespaced (`ai-<stack>-toolkit:<name>`); only the two compliance catalogs from `core/` land in `~/.claude/skills/`. Copilot CLI and Codex CLI receive a flat copy filtered to the enabled stacks. `external/` remains the single authoring source that `build-stack-plugins.mjs` publishes from.
12
12
 
@@ -14,7 +14,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
14
14
 
15
15
  ## Categories
16
16
 
17
- - [Pipeline Orchestration](#pipeline-orchestration) - 54
17
+ - [Pipeline Orchestration](#pipeline-orchestration) - 63
18
18
  - [iOS / Apple Ecosystem](#ios-apple-ecosystem) - 90
19
19
  - [Android / Kotlin](#android-kotlin) - 13
20
20
  - [Web](#web) - 10
@@ -29,14 +29,19 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
29
29
  | [`google-play-compliance`](./core/google-play-compliance/) | `core` | Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error c |
30
30
  | [`multi-agent`](./core/multi-agent/) | `core` | Task orchestrator: runs the full pipeline from a Jira ID or GitHub Issue URL - analysis → plan → TDD development → parallel review (Fable |
31
31
  | [`multi-agent-analysis`](./core/multi-agent-analysis/) | `core` | Standalone feature-spec analysis. Two profiles picked at intake: global (23-section development handoff, 8 of them in Lite mode) or corporat |
32
+ | [`multi-agent-analysis-jira`](./core/multi-agent-analysis-jira/) | `core` | Turn a rendered analysis document into a Jira story tree: derive stories from the document's own rule ids, check coverage both ways, preview |
32
33
  | [`multi-agent-analysis-resolve`](./core/multi-agent-analysis-resolve/) | `core` | Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time: up to 3 source-labeled answer candidates per r |
33
34
  | [`multi-agent-autopilot`](./core/multi-agent-autopilot/) | `core` | Launch any task in autopilot mode: skips every confirmation, runs end-to-end autonomously. Use when a task should run end to end with no con |
35
+ | [`multi-agent-autopilot-off`](./core/multi-agent-autopilot-off/) | `core` | Turn off continuous mode on this machine: the schedule is removed, work already running finishes, the repo selection is kept. Use when the m |
36
+ | [`multi-agent-autopilot-on`](./core/multi-agent-autopilot-on/) | `core` | Turn on continuous mode on THIS machine: pick the repos it watches; labelled GitHub issues and assigned+labelled Jira items then run in a wo |
37
+ | [`multi-agent-autopilot-status`](./core/multi-agent-autopilot-status/) | `core` | Show what continuous mode is doing here: what runs at which phase, what is queued, what waits for an answer, what PRs it opened today. Use w |
34
38
  | [`multi-agent-build-optimize`](./core/multi-agent-build-optimize/) | `core` | Wrapper that dispatches to xcode-build-orchestrator on iOS repos. Benchmarks the current Xcode build, runs compilation / project / SPM analy |
35
39
  | [`multi-agent-channels`](./core/multi-agent-channels/) | `core` | Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbuck |
36
40
  | [`multi-agent-complaint-analysis`](./core/multi-agent-complaint-analysis/) | `core` | Customer-complaint triage. Ingests complaints (paste, csv/xlsx/txt/json file, Jira issue, Confluence URL), fetches Graylog evidence per trx/ |
37
41
  | [`multi-agent-create-jira`](./core/multi-agent-create-jira/) | `core` | Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with |
38
42
  | [`multi-agent-design-check`](./core/multi-agent-design-check/) | `core` | Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a c |
39
- | [`multi-agent-diff-explain`](./core/multi-agent-diff-explain/) | `core` | Map Phase 4 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which |
43
+ | [`multi-agent-diff-explain`](./core/multi-agent-diff-explain/) | `core` | Map Phase 3 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which |
44
+ | [`multi-agent-doctor`](./core/multi-agent-doctor/) | `core` | Health check for the installed pipeline: layout, preferences, credentials, hooks and host capabilities, each with one actionable step. Exit |
40
45
  | [`multi-agent-feedback`](./core/multi-agent-feedback/) | `core` | Send one message to the maintainer: a bug, an idea or a question. Only the text you type is sent - no logs, no repo names, no paths. Shows t |
41
46
  | [`multi-agent-forget`](./core/multi-agent-forget/) | `core` | Remove a saved /multi-agent routine (created by /multi-agent:save): deletes its local-only command and its registry entry. Asks which one an |
42
47
  | [`multi-agent-garbage-collect`](./core/multi-agent-garbage-collect/) | `core` | Sweep leftover /tmp scratch (picker state, review diffs, channel payloads, analysis drafts) from past runs. Dry-run first; confirms before d |
@@ -48,19 +53,23 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
48
53
  | [`multi-agent-kill`](./core/multi-agent-kill/) | `core` | Stop the given task, then remove its worktree and branch. Asks for confirmation. Use when a running or stuck task should be stopped and its |
49
54
  | [`multi-agent-language`](./core/multi-agent-language/) | `core` | Toggle outputLanguage (assistant explanations, picker questions, PR/Jira/Confluence bodies). promptLanguage is fixed to English; commit mess |
50
55
  | [`multi-agent-local`](./core/multi-agent-local/) | `core` | Full pipeline in local mode - no worktree, runs directly on the current branch. Use when the full pipeline should run on the current branc |
51
- | [`multi-agent-local-autopilot`](./core/multi-agent-local-autopilot/) | `core` | Full pipeline + local + autopilot - no worktree, no confirmations, all 8 phases run end-to-end on the current branch. Use when the full pi |
56
+ | [`multi-agent-local-autopilot`](./core/multi-agent-local-autopilot/) | `core` | Full pipeline + local + autopilot - no worktree, no confirmations, all 6 phases run end-to-end on the current branch. Use when the full pi |
52
57
  | [`multi-agent-log`](./core/multi-agent-log/) | `core` | Show the agent-log.md for the given task. With no ID, shows the most recent task. Use when asked what a task did, or to read its log. |
53
58
  | [`multi-agent-manual-test`](./core/multi-agent-manual-test/) | `core` | Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 5 standalone (the UI Bug Hunter lives at multi-agent-te |
59
+ | [`multi-agent-model`](./core/multi-agent-model/) | `core` | Turn the top model rung on or off and keep the cost ledger's pricing in step with it. Use when asked to enable or disable Fable, or which mo |
54
60
  | [`multi-agent-prune-logs`](./core/multi-agent-prune-logs/) | `core` | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
55
61
  | [`multi-agent-prune-prompts`](./core/multi-agent-prune-prompts/) | `core` | Zero-base prompt review: measure the always-on instruction footprint, classify every rule block, propose keep/trial-removal/delete; applies |
56
62
  | [`multi-agent-purge`](./core/multi-agent-purge/) | `core` | ⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation. Use when every worktree, branch, log and s |
57
63
  | [`multi-agent-refactor`](./core/multi-agent-refactor/) | `core` | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research th |
58
64
  | [`multi-agent-resume`](./core/multi-agent-resume/) | `core` | Resume a stopped or failed task from the phase where it left off. Use when a task stopped or failed and should carry on from where it left o |
59
- | [`multi-agent-resume-local`](./core/multi-agent-resume-local/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review → Build+Test → Commit/PR → Report (technical analysis + Jira test-scenari |
65
+ | [`multi-agent-resume-local`](./core/multi-agent-resume-local/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review (with its build gate) → Commit/PR → Report (technical analysis + Jira tes |
60
66
  | [`multi-agent-review`](./core/multi-agent-review/) | `core` | Run parallel review on a branch diff or a Pull Request: 3 models on Claude Code (Fable + Opus + Sonnet), 3 models on Copilot CLI (GPT + Opus |
61
67
  | [`multi-agent-review-analysis`](./core/multi-agent-review-analysis/) | `core` | Review a written analysis document instead of a diff: resolve it from a path, a Confluence page or a Jira issue, run the deterministic gates |
62
68
  | [`multi-agent-review-issue`](./core/multi-agent-review-issue/) | `core` | Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / sta |
63
69
  | [`multi-agent-review-jira`](./core/multi-agent-review-jira/) | `core` | Assess whether a Jira issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack |
70
+ | [`multi-agent-route-off`](./core/multi-agent-route-off/) | `core` | Disable model routing and keep its rules, so turning it back on does not re-ask for the same configuration. Use when asked to turn model rou |
71
+ | [`multi-agent-route-on`](./core/multi-agent-route-on/) | `core` | Enable policy-driven model routing: pick a strategy, a scope, and the rules that say which rung a call lands on. Use when asked to turn mode |
72
+ | [`multi-agent-route-status`](./core/multi-agent-route-status/) | `core` | Report model routing: whether it is armed, which rule applies where, which rung the last dispatches took, and what this run has cost. Use wh |
64
73
  | [`multi-agent-routines`](./core/multi-agent-routines/) | `core` | List your saved /multi-agent routines (from /multi-agent:save) with what each one does, rendered in outputLanguage. Use when asked which sav |
65
74
  | [`multi-agent-save`](./core/multi-agent-save/) | `core` | Save a recurring job as a reusable /multi-agent:<name> command. Reviews the conversation + your CLAUDE.md for candidate routines, you pick o |
66
75
  | [`multi-agent-scan`](./core/multi-agent-scan/) | `core` | Skill security scan: walks local skill directories against a tiered pattern catalog. Use when local skill directories need checking for unsa |
@@ -137,7 +137,7 @@ Apple App Store Review Guidelines + ITMS upload error codes that the underlying
137
137
 
138
138
  | Severity | What pipeline consumers do with it |
139
139
  |---|---|
140
- | `error` | **Blocker.** Report it as `blocking` in Phase 4 triage / channels PR body. Don't merge until fixed. |
140
+ | `error` | **Blocker.** Report it as `blocking` in Phase 3 triage / channels PR body. Don't merge until fixed. |
141
141
  | `warning` | **Important.** Surface in PR description / Jira comment under "Compliance warnings". Merging OK but note it. |
142
142
  | `info` | **Informational.** Log to agent-log.md only. Don't pollute PR body. |
143
143
 
@@ -263,7 +263,7 @@ mcp__multi-agent-toolkit__ios_app_store_audit({ archive_path: "~/Library/Develop
263
263
 
264
264
  ### Phase 4 Security Auditor (catalog cross-ref, no binary invocation)
265
265
 
266
- When a Phase 4 review diff touches iOS release-relevant paths (`Info.plist`, `PrivacyInfo.xcprivacy`, `*.entitlements`, `AppDelegate.swift`, `project.pbxproj`), the security-auditor persona loads this skill's 18-rule catalog and cites matching ruleIDs next to its findings. No binary invocation at review time - catalog reads are free.
266
+ When a Phase 3 review diff touches iOS release-relevant paths (`Info.plist`, `PrivacyInfo.xcprivacy`, `*.entitlements`, `AppDelegate.swift`, `project.pbxproj`), the security-auditor persona loads this skill's 18-rule catalog and cites matching ruleIDs next to its findings. No binary invocation at review time - catalog reads are free.
267
267
 
268
268
  ```
269
269
  # Example finding from Phase 4 Security Auditor (wired in v5.8.1):
@@ -158,7 +158,7 @@ Current Google Play policies + Play Console rejection codes. Sourced from `suppo
158
158
 
159
159
  | Severity | What pipeline consumers do with it |
160
160
  |---|---|
161
- | `error` | **Blocker.** Play Console will reject the upload (or the bundle build will fail). Report as `blocking` in Phase 4 triage / channels PR body. |
161
+ | `error` | **Blocker.** Play Console will reject the upload (or the bundle build will fail). Report as `blocking` in Phase 3 triage / channels PR body. |
162
162
  | `warning` | **Policy review risk.** Might not reject immediately but increases manual review chance + user trust hit. Surface in PR description. |
163
163
  | `info` | **Best practice.** Log only. Don't pollute PR body. |
164
164
 
@@ -288,7 +288,7 @@ multi-agent-test "store-ready" --last-version-code=142 --auto-pick
288
288
 
289
289
  ### Phase 4 Security Auditor (catalog cross-ref, no tool invocation)
290
290
 
291
- When a Phase 4 review diff touches Android release-relevant paths (`AndroidManifest.xml`, `build.gradle(.kts)`, `proguard-rules.pro`, `network_security_config.xml`), the security-auditor persona loads this skill's 21-rule policy catalog and cites matching ruleIDs next to its findings. No bundletool / aapt2 / apksigner invocation at review time - catalog reads are free.
291
+ When a Phase 3 review diff touches Android release-relevant paths (`AndroidManifest.xml`, `build.gradle(.kts)`, `proguard-rules.pro`, `network_security_config.xml`), the security-auditor persona loads this skill's 21-rule policy catalog and cites matching ruleIDs next to its findings. No bundletool / aapt2 / apksigner invocation at review time - catalog reads are free.
292
292
 
293
293
  ```
294
294
  # Example finding from Phase 4 Security Auditor (wired in v5.8.1):
@@ -75,13 +75,13 @@ multi-agent "LoginView dark mode fix" autopilot
75
75
 
76
76
  | Phase | Normal | Autopilot |
77
77
  |-------|--------|-----------|
78
- | Phase 2 (Plan Approval Gate) | Clarification (max 2 rounds) + approval loop - user replies `onayla`/`iptal`/free-text | **Gate skip** - log the plan, go straight to Phase 3 (autopilot contract: zero interaction) |
79
- | Phase 5 (User Test) | "Want to test it?" → wait | Skip → go straight to Phase 6 |
80
- | Phase 6 (Commit) | "Want to commit?" → wait | Automatic commit + push |
81
- | Phase 6 (PR) | "Want to open a PR?" → wait | Automatically create the PR |
78
+ | Phase 1 (Plan Approval Gate) | Clarification (max 2 rounds) + approval loop - user replies `onayla`/`iptal`/free-text | **Gate skip** - log the plan, go straight to Phase 3 (autopilot contract: zero interaction) |
79
+ | Phase 5 (User Test) | "Want to test it?" → wait | Skip → go straight to Phase 4 |
80
+ | Phase 4 (Commit) | "Want to commit?" → wait | Automatic commit + push |
81
+ | Phase 4 (PR) | "Want to open a PR?" → wait | Automatically create the PR |
82
82
 
83
83
  **What NEVER skips (even in autopilot):**
84
- - Phase 4 Review → if there is a blocking finding, return to Phase 3, fix + rebuild automatically (safety)
84
+ - Phase 3 Review → if there is a blocking finding, return to Phase 3, fix + rebuild automatically (safety)
85
85
  - Kill/Purge confirmations → destructive operations always ask
86
86
  - Build fail → fix + rebuild automatically (max 3 retries). If it still fails after 3 retries → pause, ask the user
87
87
 
@@ -108,8 +108,8 @@ ID is stored in `agent-state.json` and shown in `multi-agent status`:
108
108
 
109
109
  | ID | Jira | Branch | Phase | Status |
110
110
  |----|------|--------|-------|--------|
111
- | #1 | PROJ-12345 | feature/PROJ-12345-... | 3/7 Dev | ⚡ in progress |
112
- | #2 | PROJ-67890 | feature/PROJ-67890-... | 1/7 Analysis | 📊 scanning |
111
+ | #1 | PROJ-12345 | feature/PROJ-12345-... | 2/5 Dev | ⚡ in progress |
112
+ | #2 | PROJ-67890 | feature/PROJ-67890-... | 1/5 Analysis | 📊 scanning |
113
113
  ```
114
114
 
115
115
  ID counter stored at `.worktrees/.multi-agent-counter` (persists across sessions).
@@ -181,14 +181,14 @@ When `multi-agent purge` is called:
181
181
 
182
182
  When `multi-agent resume [id]` is called:
183
183
 
184
- 1. **Find state file**: `$HOME/.claude/logs/multi-agent/{project}/{task-id}/agent-state.json` - that is where Phase 0 writes it, not inside the worktree. A task finalized by Phase 6 keeps its state at `.../{task-id}/artifacts/agent-state.json`, so look there too before reporting not-found.
184
+ 1. **Find state file**: `$HOME/.claude/logs/multi-agent/{project}/{task-id}/agent-state.json` - that is where Phase 0 writes it, not inside the worktree. A task finalized by Phase 4 keeps its state at `.../{task-id}/artifacts/agent-state.json`, so look there too before reporting not-found.
185
185
  - If no `id` given, take the most recent task dir with `status != "done"`
186
186
  2. **Read state**: Parse `agent-state.json` → determine last completed phase
187
187
  3. **Restore context**: Read `agent-log.md` for previous findings:
188
- - Phase 1 analysis findings → reuse in Phase 2+
189
- - Phase 2 plan/todos → reuse in Phase 3+
190
- - Phase 3 code changes → already on disk in worktree
191
- - Phase 4 review findings → reuse if re-reviewing
188
+ - Phase 1 analysis findings → reuse in Phase 2+ (Dev onwards)
189
+ - Phase 1 plan/todos → reuse in Phase 2+
190
+ - Phase 2 code changes → already on disk in worktree
191
+ - Phase 3 review findings → reuse if re-reviewing
192
192
  4. **Resume from next phase**: Skip completed phases, start from `currentPhase + 1`
193
193
  5. **Log**: `🔄 Resumed PROJ-{id} from Phase {N}`
194
194
 
@@ -207,7 +207,7 @@ Every agent persona under `$HOME/.claude/agents/*.md` declares a `preferredModel
207
207
  | Persona | `preferredModel` | Rationale (condensed) |
208
208
  |---|---|---|
209
209
  | `explorer` | `sonnet` | Scan/pattern work, cost-efficient without quality loss |
210
- | `code-reviewer` | `fable` | Reviewer 1; Phase 4 sets Reviewer 2 `opus`, Reviewer 3 `sonnet` |
210
+ | `code-reviewer` | `fable` | Reviewer 1; Phase 3 sets Reviewer 2 `opus`, Reviewer 3 `sonnet` |
211
211
  | `security-auditor` | `opus` | False-negative cost is high; opus reduces miss rate |
212
212
  | `ios-architect` | `fable` | Deep module/protocol/migration reasoning |
213
213
  | `android-architect` | `fable` | Gradle modules, Compose stability, Hilt graphs |
@@ -218,7 +218,7 @@ Every agent persona under `$HOME/.claude/agents/*.md` declares a `preferredModel
218
218
  ```bash
219
219
  persona_file="$HOME/.claude/agents/${persona}.md"
220
220
  pref_model="$(awk '/^preferredModel:/ {print $2; exit}' "$persona_file")"
221
- override="${PHASE_MODEL_OVERRIDE:-}" # set by orchestrator per-dispatch (e.g. Phase 4 Reviewer 3 → sonnet)
221
+ override="${PHASE_MODEL_OVERRIDE:-}" # set by orchestrator per-dispatch (e.g. Phase 3 Reviewer 3 → sonnet)
222
222
  resolved_model="${override:-${pref_model:-opus}}"
223
223
 
224
224
  export CLAUDE_CODE_SUBAGENT_MODEL="$resolved_model"
@@ -255,7 +255,7 @@ matched_skills=$(node "$HOME/.claude/scripts/match-skills.mjs" \
255
255
  --limit 12 \
256
256
  --json)
257
257
 
258
- # Inject only matched skills[] into subagent prompts for Phase 2-4.
258
+ # Inject only matched skills[] into subagent prompts for Phase 1-3.
259
259
  # Skills not in the matched list are not loaded - saves ~10K-30K tokens
260
260
  # per subagent dispatch on small tasks.
261
261
  ```
@@ -289,16 +289,14 @@ and the copy named a path the code had stopped using.
289
289
 
290
290
  Every user-facing phase title - TaskCreate cards, `phase-banner.sh` headers, and any status line rendered to the terminal - MUST come from this table. Phase labels are English on every host (`promptLanguage` is fixed to `en`; picker text follows its own matrix):
291
291
 
292
- | # | Label |
293
- |---|------------------------|
294
- | 0 | Phase 0: Init |
295
- | 1 | Phase 1: Analysis |
296
- | 2 | Phase 2: Planning |
297
- | 3 | Phase 3: Dev |
298
- | 4 | Phase 4: Review |
299
- | 5 | Phase 5: Test |
300
- | 6 | Phase 6: Commit & PR |
301
- | 7 | Phase 7: Report |
292
+ | # | Label |
293
+ |---|----------------------|
294
+ | 0 | Phase 0: Init |
295
+ | 1 | Phase 1: Plan |
296
+ | 2 | Phase 2: Dev |
297
+ | 3 | Phase 3: Review |
298
+ | 4 | Phase 4: Commit & PR |
299
+ | 5 | Phase 5: Report |
302
300
 
303
301
  **Render rule:**
304
302
 
@@ -313,7 +311,7 @@ Every user-facing phase title - TaskCreate cards, `phase-banner.sh` headers, a
313
311
  All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied (Claude Code path; Copilot CLI does not have a TaskList widget so this rule is Claude-only). The native widget renders by creation order, not by phase-number metadata - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state file is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN: register the tile in order with default `pending` status, then flip via TaskUpdate when the phase actually short-circuits. Mode-specific phase sets:
314
312
 
315
313
  - `multi-agent`: 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7
316
- - `multi-agent-local`, `multi-agent-autopilot`, `multi-agent-local-autopilot`: 0 → 1 → 2 → 3 → 4 → 6 → 7 (the interactive Phase 5 gate needs a worktree checkout and an attended run)
314
+ - `multi-agent-local`, `multi-agent-autopilot`, `multi-agent-local-autopilot`: 0 → 1 → 2 → 3 → 4 → 5 (the interactive Phase 5 gate needs a worktree checkout and an attended run)
317
315
  - `multi-agent-analysis`: 0 → 1 → 2 → 4 → 6 → 7 (no code, so no Dev and no Test)
318
316
 
319
317
  Depth decides WHICH of the command's set is registered. The tracker boots at Step -1, long before the depth question can be asked, so it registers Phase 0 alone and the remaining tiles are created at Step 7.5 once the answer is known - a Short run never draws an Analysis or Planning tile.
@@ -421,26 +419,26 @@ Full contract: `refs/tracker-contract.md` section "TaskCreate ordering (strict)"
421
419
 
422
420
  **IMPORTANT**: Update `agent-state.json` at EVERY phase transition. This file is the resume source of truth.
423
421
 
424
- ### Phase 1: Analysis (claude-sonnet-5, `explorer` persona)
425
- 1. Launch **explore agents** (parallel) to scan codebase:
426
- - Related files to the task
427
- - Existing patterns and conventions
428
- - Potential impact areas
422
+ ### Phase 1: Plan
423
+ Two halves, one phase, one approval gate (Phases 1 and 2 until 19.0.0).
424
+
425
+ **1a - Analysis** (claude-sonnet-5, `explorer` persona)
426
+ 1. Launch **explore agents** (parallel) to scan the codebase: related files, existing patterns and conventions, potential impact areas
429
427
  2. Optionally launch **security-auditor** agent for pre-check
430
428
  3. Summarize findings
431
- 4. Log: `📊 Phase 1: Analysis - {N} files identified, {summary}`
429
+ 4. Log: `📊 Phase 1: Plan (analysis) - {N} files identified, {summary}`
432
430
 
433
- ### Phase 2: Planning (claude-fable-5)
431
+ **1b - Planning** (claude-fable-5)
434
432
  1. Create task breakdown → todos with dependencies
435
433
  2. Launch **ios-architect** agent for architecture review (if structural changes)
436
434
  3. Determine development approach per todo (new file, modify, refactor)
437
- 4. Log: `🧠 Phase 2: Plan - {N} todos created`
438
- 5. **Plan Approval Gate** (Full + interactive only - a Short run has no plan, autopilot may not ask). Full flow in `refs/phases/phase-2-planning.md` Step 5:
435
+ 4. Log: `🧠 Phase 1: Plan - {N} todos created`
436
+ 5. **Plan Approval Gate** (Full + interactive only - a Short run has no plan, autopilot may not ask). Full flow in `refs/phases/phase-1-plan.md` Step 5:
439
437
  - **5a - Clarification** (conditional, max 2 rounds): if the Jira/issue description is ambiguous (vague acceptance, UI task without Figma, API task without endpoint contract, `ambiguityScore >= 2`, parent-story scope drift), ask structured questions before rendering the plan. User answers → plan regenerated. If it is still unclear after the 2nd round, render the plan with a "best-effort" banner.
440
438
  - **5b - Approval loop**: render plan → user: `onayla`/`iptal`/free-text. A free-text edit request → the planning model (Fable) revises the plan → show it again. No iteration cap; user controls exit via `onayla` or `iptal`.
441
- - Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["2"]`.
439
+ - Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["1"]`.
442
440
 
443
- ### Phase 3: Dev (claude-sonnet-5)
441
+ ### Phase 2: Dev (claude-sonnet-5)
444
442
  For each todo (respecting dependency order):
445
443
  1. Update todo status: `in_progress`
446
444
  2. **TDD cycle**:
@@ -450,31 +448,31 @@ For each todo (respecting dependency order):
450
448
  3. Run build: `xcodebuild` via **task agent**
451
449
  4. If build fails → fix → rebuild (max 3 attempts, track `retryCount` in `agent-state.json`)
452
450
  5. Update todo status: `done`
453
- 6. Log: `⚡ Phase 3: {todo-id} - Test ✅ Build ✅`
451
+ 6. Log: `⚡ Phase 2: {todo-id} - Test ✅ Build ✅`
454
452
 
455
- ### Phase 4: Review (parallel + triage)
453
+ ### Phase 3: Review (parallel + triage)
456
454
  0. **Diff Risk Scoring (advisory, v8.3+)** - before reviewer dispatch run `node $HOME/.claude/scripts/diff-risk-score.mjs --base "$BASE_BRANCH" --top 5` and inject the top-N risk-ranked files as a `${PRIORITY_FILES}` block into each reviewer's prompt. Heuristic, deterministic, sub-second, never gates the pipeline. Disabled when `prefs.global.diffRiskAdvisory = false`. Signals: security paths (×3), schema migrations (×4), public API surfaces (×2), no-test-change (×2.5), complexity delta (×1.5), UI-critical paths (×1.5), loc changed (×1).
457
455
  1. Launch **code-reviewer** agents in parallel. Reviewer set depends on which CLI is hosting the pipeline:
458
456
  - **Claude Code** (3 reviewers): `claude-fable-5` (deep security + architecture) + `claude-opus-5` (edge cases, different perspective) + `claude-sonnet-5` (quality + correctness)
459
457
  - **Copilot CLI** (3 reviewers): `gpt-5.4` (edge cases, different perspective) + `claude-opus-5` + `claude-sonnet-5` (Fable 5 is not offered on Copilot CLI)
460
458
  - Triage: single top-tier pass over merged findings (`claude-fable-5` on Claude Code, `claude-opus-5` on Copilot CLI)
461
459
  2. Collect findings, classify:
462
- - 🔴 **Blocking** → must fix → back to Phase 3 (max 3 iterations)
460
+ - 🔴 **Blocking** → must fix → back to Phase 2 (max 3 iterations)
463
461
  - 🟡 **Important** → fix and re-review
464
462
  - 🟢 **Suggestion** → apply if reasonable
465
- 3. Log: `🔍 Phase 4: Review - {consensus}`
463
+ 3. Log: `🔍 Phase 3: Review - {consensus}`
466
464
 
467
- ### Phase 5: Test
468
- Lets the user physically test the code before opening a PR. The prompt MUST make it explicit that saying yes **removes the worktree and checks the branch out locally** - otherwise the user is hit with an implicit side effect.
465
+ #### Phase 3 user test (optional, interactive)
466
+ Lets the user test the code before the PR. The prompt MUST say that yes **removes the worktree and checks the branch out locally**, or the side effect is implicit.
469
467
 
470
- 0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node $HOME/.claude/scripts/test-gap-scan.mjs --base "$BASE_BRANCH" --stack <ios|android|python|node>` to surface public symbols added in this branch that have no paired test. Heuristic, deterministic, sub-second, never gates by default. iOS `*View.swift` / Android `@Composable` symbols default to `important` severity; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (loops back to Phase 4 rework when the important+blocking count exceeds the threshold). Disabled when `prefs.testGap.enabled = false`.
468
+ 0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node $HOME/.claude/scripts/test-gap-scan.mjs --base "$BASE_BRANCH" --stack <ios|android|python|node>` to surface public symbols added in this branch that have no paired test. Heuristic, deterministic, sub-second, never gates by default. iOS `*View.swift` / Android `@Composable` symbols default to `important` severity; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (loops back to Phase 2 rework when the important+blocking count exceeds the threshold). Disabled when `prefs.testGap.enabled = false`.
471
469
  1. **Ask** with a native `AskUserQuestion` picker (never a typed y/N prompt). The options MUST make the local-checkout side effect explicit - testing removes the worktree and checks the branch out into the main repo:
472
470
  - `question`: "Check out locally to test now?" (rendered in `outputLanguage`)
473
471
  - `header`: "Test" (English, <=12 chars)
474
472
  - `options`:
475
473
  - `{ label: "Test now", description: "Removes the worktree and checks the branch out into the main repo for Xcode / manual test" }`
476
- - `{ label: "Skip", description: "Stay in the worktree and go to Phase 6" }`
477
- - **Skip** → go to Phase 6
474
+ - `{ label: "Skip", description: "Stay in the worktree and go to Phase 4" }`
475
+ - **Skip** → go to Phase 4
478
476
  - **Test now** → continue:
479
477
  2. **Remove the worktree and switch to the branch** (automatic):
480
478
  ```bash
@@ -491,18 +489,18 @@ Lets the user physically test the code before opening a PR. The prompt MUST make
491
489
  • Xcode → open the app's `.xcworkspace` → Cmd+B → Cmd+U
492
490
  • Manual test on the Simulator
493
491
 
494
- ✅ "tamam" → proceeds to Phase 6
495
- ❌ "fix: ..." → worktree is recreated, returns to Phase 3
492
+ ✅ "tamam" → proceeds to Phase 4
493
+ ❌ "fix: ..." → worktree is recreated, returns to Phase 2
496
494
  ```
497
495
  4. **Pause and wait**: Wait for the user's response
498
496
  5. **If a fix is needed**:
499
497
  - Recreate the worktree: `git worktree add .worktrees/PROJ-{id} {branch-name}`
500
- - Return to Phase 3
501
- 6. Log: `🧪 Phase 5: Test - {result}`
498
+ - Return to Phase 2
499
+ 6. Log: `🧪 Phase 3: Review (user test) - {result}`
502
500
 
503
501
  > ⚠️ Commits live on the branch - removing the worktree does NOT delete the commits.
504
502
 
505
- ### Phase 6: Commit & PR
503
+ ### Phase 4: Commit & PR
506
504
 
507
505
  **Project-specific commit strategy:**
508
506
 
@@ -513,7 +511,7 @@ Lets the user physically test the code before opening a PR. The prompt MUST make
513
511
  2. Run `/figma-iteration-commit {ComponentName}`
514
512
  - Build verification, test, key sync, code review, submodule commits to `iteration/develop`, push with rebase-retry, issue housekeeping, auto-unblock dependents - the skill handles all of it
515
513
  - Do NOT commit manually - the skill manages everything
516
- 3. Log: `📦 Phase 6: figma-iteration-commit - {ComponentName}`
514
+ 3. Log: `📦 Phase 4: figma-iteration-commit - {ComponentName}`
517
515
 
518
516
  #### my-app / generic
519
517
  1. **Ask**: "Want to commit?"
@@ -524,15 +522,15 @@ Lets the user physically test the code before opening a PR. The prompt MUST make
524
522
  - Author: resolved from `prefs.global.identities[]` (e.g. `Ada Lovelace <ada@example.com>`) - NEVER hardcode.
525
523
  4. Push to remote
526
524
  5. **Ask**: "Want to open a Pull Request?"
527
- - **No** → go to Phase 7 (only commit + push will have been done)
525
+ - **No** → go to Phase 5 (only commit + push will have been done)
528
526
  - **Yes** → create the PR (target: source branch)
529
527
  6. **Issue body update** (if GitHub Issue exists):
530
528
  - Fill PR links in issue body: `- **common:** {PR URL}`, `- **uicomponents:** {PR URL}`
531
529
  - Update Progress flags: `Implementation 🟢`, `Testing 🟢`, `Code Connect 🟢`
532
530
  - Use `gh issue edit {issueNo} --body "{updated body}"` - preserve all existing sections
533
- 7. Log: `📦 Phase 6: Commit {sha} - PR #{number}`
531
+ 7. Log: `📦 Phase 4: Commit {sha} - PR #{number}`
534
532
 
535
- ### Phase 7 Report Step 2: WIKI + Figma Screenshots (for component tasks with GitHub Issue)
533
+ ### Phase 5 Report Step 2: WIKI + Figma Screenshots (for component tasks with GitHub Issue)
536
534
 
537
535
  Skip this sub-step if the task is NOT a component implementation (e.g., bug fix, refactor).
538
536
 
@@ -566,9 +564,9 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
566
564
  git push origin HEAD:master
567
565
  ```
568
566
  7. **Update issue Wiki flag**: Set `Wiki` → `🟢` in issue body
569
- 8. Log: `📖 Phase 7 Step 2: Wiki - {ComponentName}.md + {ComponentName}-iOS.md + screenshot`
567
+ 8. Log: `📖 Phase 5 Step 2: Wiki - {ComponentName}.md + {ComponentName}-iOS.md + screenshot`
570
568
 
571
- ### Phase 7: Report
569
+ ### Phase 5: Report
572
570
  1. Finalize `agent-log.md` with ALL sections:
573
571
  - **Timeline table**: phase, agent, model, duration, status, detail
574
572
  - **Agent Activity Report**: per-agent call count, total duration, models used, skill count
@@ -586,7 +584,7 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
586
584
  📖 Wiki: {ComponentName}.md pushed to wiki master
587
585
  📋 Full report: ~/.claude/logs/multi-agent/{project}/{task-id}/agent-log.md
588
586
  ```
589
- 3. Log: `📋 Phase 7: Report complete`
587
+ 3. Log: `📋 Phase 5: Report complete`
590
588
 
591
589
  ---
592
590
 
@@ -635,27 +633,27 @@ Sub-agents have embedded skills in their `.agent.md` files. Each agent is pre-lo
635
633
 
636
634
  | Agent | Embedded Skills | When Activated |
637
635
  |-------|----------------|----------------|
638
- | **code-reviewer** | Code Review Excellence, Security Audit, Performance Review, TDD Verification, Error Detective | Phase 4: Review |
639
- | **ios-architect** | Spec-Driven Architecture, Context Management, Multi-Agent Coordination, API Design, Performance Architecture, Design System Governance | Phase 2: Planning |
640
- | **security-auditor** | iOS Security Deep Dive, App Store Review Gates, Third-Party SDK Risk, Error Detective (Security) | Phase 1: Analysis (pre-check) + Phase 4: Review |
636
+ | **code-reviewer** | Code Review Excellence, Security Audit, Performance Review, TDD Verification, Error Detective | Phase 3: Review |
637
+ | **ios-architect** | Spec-Driven Architecture, Context Management, Multi-Agent Coordination, API Design, Performance Architecture, Design System Governance | Phase 1: Plan |
638
+ | **security-auditor** | iOS Security Deep Dive, App Store Review Gates, Third-Party SDK Risk, Error Detective (Security) | Phase 1: Plan (analysis half, pre-check) + Phase 3: Review |
641
639
 
642
640
  ### Phase → Agent → Skills Flow
643
641
 
644
642
  ```
645
- Phase 1: Analysis
643
+ Phase 1: Plan - analysis half
646
644
  ├─ explore agents (no skills needed - pure file reading)
647
645
  └─ security-auditor agent
648
646
  └─ Skills: iOS Security Deep Dive, App Store Review Gates, SDK Risk
649
647
 
650
- Phase 2: Planning
648
+ Phase 1: Plan - planning half
651
649
  └─ ios-architect agent
652
650
  └─ Skills: Spec-Driven Architecture, API Design, Performance Architecture
653
651
 
654
- Phase 3: Dev
652
+ Phase 2: Dev
655
653
  └─ Ana agent (reads copilot-instructions.md directly)
656
654
  └─ TDD, token rules, code style - from global instructions
657
655
 
658
- Phase 4: Review (parallel + triage)
656
+ Phase 3: Review (parallel + triage)
659
657
  Claude Code (3 parallel):
660
658
  ├─ code-reviewer (claude-opus) → all 5 review skills
661
659
  └─ code-reviewer (claude-sonnet) → all 5 review skills
@@ -671,13 +669,13 @@ Phase 4: Review (parallel + triage)
671
669
  When calling sub-agents, the ana agent SHOULD add task-specific context to the prompt:
672
670
 
673
671
  ```
674
- For code-reviewer in Phase 4:
672
+ For code-reviewer in Phase 3:
675
673
  "Review this diff for PROJ-{id}. Focus areas based on analysis:
676
674
  - {files changed summary from Phase 1}
677
- - {architecture decisions from Phase 2}
675
+ - {architecture decisions from Phase 1}
678
676
  - {specific risk areas identified}"
679
677
 
680
- For ios-architect in Phase 2:
678
+ For ios-architect in Phase 1:
681
679
  "Evaluate architecture for PROJ-{id}. Context:
682
680
  - {task description from Jira/GitHub}
683
681
  - {affected modules from Phase 1 analysis}
@@ -697,9 +695,9 @@ When `multi-agent status` is called, show:
697
695
 
698
696
  | ID | Jira | Branch | Phase | Status | Duration |
699
697
  |----|------|--------|-------|--------|----------|
700
- | #1 | PROJ-12345 | feature/PROJ-12345-... | 3/7 Dev | ⚡ todo-2 in progress | 4m |
701
- | #2 | PROJ-67890 | feature/PROJ-67890-... | 4/7 Review | 🔍 Waiting consensus | 7m |
702
- | #3 | PROJ-11111 | feature/PROJ-11111-... | 7/7 DONE | ✅ Complete | 12m |
698
+ | #1 | PROJ-12345 | feature/PROJ-12345-... | 2/5 Dev | ⚡ todo-2 in progress | 4m |
699
+ | #2 | PROJ-67890 | feature/PROJ-67890-... | 3/5 Review | 🔍 Waiting consensus | 7m |
700
+ | #3 | PROJ-11111 | feature/PROJ-11111-... | 5/5 DONE | ✅ Complete | 12m |
703
701
 
704
702
  💡 kill #2 | log #1 | resume #3
705
703
  ```
@@ -17,9 +17,9 @@ Run the task end-to-end with no confirmations.
17
17
  | Phase | Normal | Autopilot |
18
18
  |-----|--------|-----------|
19
19
  | Phase 2 (Plan) | "Shall I continue?" → wait | Go straight to Phase 3 |
20
- | Phase 5 (Test) | "Do you want to test?" → wait | Skip → Phase 6 |
21
- | Phase 6 (Commit) | "Shall I commit?" → wait | Automatic commit + push |
22
- | Phase 6 (PR) | "Shall I open a PR?" → wait | Create PR automatically |
20
+ | Phase 5 (Test) | "Do you want to test?" → wait | Skip → Phase 4 |
21
+ | Phase 4 (Commit) | "Shall I commit?" → wait | Automatic commit + push |
22
+ | Phase 4 (PR) | "Shall I open a PR?" → wait | Create PR automatically |
23
23
 
24
24
  ## What is NEVER skipped
25
25
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: multi-agent-channels
3
3
  language: en
4
- description: "Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT. Phase 7 delegates to this skill; users can invoke post-hoc by Jira ID / PR URL / branch."
4
+ description: "Multi-channel reporter - Jira/Confluence/Wiki/PR description. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT. Phase 5 delegates to this skill; users can invoke post-hoc by Jira ID / PR URL / branch."
5
5
  user-invocable: true
6
6
  argument-hint: '<Jira-id | PR-url | #N | Jira-url> [--channels pr,jira,confluence,wiki] [--content normal,technical,test,auto-diff,note] [--message "..."] [--message-file path] [--dry-run] [--append] [--ready]'
7
7
  ---
8
8
 
9
9
  # multi-agent-channels - Multi-Channel Reporter
10
10
 
11
- > **TLDR** - Single entry point for posting task reports to external channels. Supports Jira, Confluence, Wiki (component-only), and PR description updates. Multi-select channels × multi-select content sources. Phase 7 of the pipeline delegates to this skill; users can also invoke it post-hoc by Jira ID / PR URL / branch.
11
+ > **TLDR** - Single entry point for posting task reports to external channels. Supports Jira, Confluence, Wiki (component-only), and PR description updates. Multi-select channels × multi-select content sources. Phase 5 of the pipeline delegates to this skill; users can also invoke it post-hoc by Jira ID / PR URL / branch.
12
12
  >
13
13
  > **Replaces the old enrich skill in v5.7+** - all enrich capabilities (diff auto-summarize, manual mode, reviewer-preserving Bitbucket PR PUT) are preserved and extended with two additional channels (Confluence, Wiki).
14
14
 
@@ -39,7 +39,7 @@ multi-agent-channels PROJ-12345 --dry-run # preview, no POST
39
39
  1. **Target resolution** - Parse argument, classify (Jira-id, Jira-url, PR-url GitHub or Bitbucket, GitHub-issue-number, empty→cwd+branch). Resolve linked entities (Jira→PR, PR→Jira). Detect remote type.
40
40
  2. **Context source detection** - auto-pick best available: pipeline log (`$HOME/.claude/logs/multi-agent/<project>/<task-id>/agent-log.md` matching jiraId), PR diff (`gh pr diff` or Bitbucket `/diff?contextLines=5`), or manual `--message`.
41
41
  3. **Menu (multi-select)** - channel + content, previous selections pre-ticked from `prefs.global.reportChannels` + `prefs.global.reportContent`. Greyed-out rules per context availability.
42
- 4. **Mode short-circuit** - `--channels X,Y` + `--content A,B` flags skip menu. Autopilot ALWAYS pauses at the menu (v5.7+ Phase 7 exception).
42
+ 4. **Mode short-circuit** - `--channels X,Y` + `--content A,B` flags skip menu. Autopilot ALWAYS pauses at the menu (v5.7+ Phase 5 exception).
43
43
  5. **Generator** - for each selected content source, produce a section body. Humanizer pass per channel separately.
44
44
  6. **Body preview + approval gate** - interactive runs render every selected channel's final body and ask Approve & post / Edit (loop) / Skip channels / Cancel BEFORE any external write. Skipped only by autopilot and `--dry-run`. What is posted is byte-identical to the approved preview.
45
45
  7. **Channel dispatch** - parallel adapter calls, never before the gate resolves: PR description (reviewer-preserving PUT on Bitbucket), Jira comment (wiki markup), Confluence page (storage format + parent page), Wiki (component adapter - Case A scope multi-select or Case B precondition menu).
@@ -69,7 +69,7 @@ Rendered in English (`promptLanguage` is locked to `en`).
69
69
  **Greyed-out rules:**
70
70
  - Wiki unselectable unless `state.taskType === "component"` AND `figmaConfig.wiki.enabled === true`.
71
71
  - Normal analiz + Test senaryoları unselectable if no pipeline log found.
72
- - Teknik analiz unselectable if no Phase 2 planning log AND no PR diff.
72
+ - Teknik analiz unselectable if no Phase 1 planning log AND no PR diff.
73
73
  - Auto-diff unselectable if no PR found.
74
74
  - Manuel not always available.
75
75
 
@@ -192,9 +192,9 @@ forgotten, and that is how the selector above shipped.
192
192
 
193
193
  ### Technical Details ← if "Teknik analiz" selected
194
194
  #### Changes
195
- {Per changed-file-group, what changed + why - from Phase 3 dev log}
195
+ {Per changed-file-group, what changed + why - from Phase 2 dev log}
196
196
  #### Architecture
197
- {Structural decisions, pattern changes - from Phase 2 plan}
197
+ {Structural decisions, pattern changes - from Phase 1 plan}
198
198
  #### Dependencies
199
199
  {New imports / frameworks / packages - from git diff --stat, or "None"}
200
200
 
@@ -290,16 +290,16 @@ Target length: < 80 lines (fits one screen). Auto-diff capped at 5 lines per sec
290
290
  | Jira token missing/expired | Token Save Flow inline; skip on user-skip |
291
291
  | Wiki preconditions not met | Case B menu per `refs/wiki-capture.md` |
292
292
 
293
- ## Phase 7 delegation contract
293
+ ## Phase 5 delegation contract
294
294
 
295
- Phase 7 builds a state bundle and invokes this skill internally. Responsibilities:
295
+ Phase 5 builds a state bundle and invokes this skill internally. Responsibilities:
296
296
 
297
297
  | Who | What |
298
298
  |---|---|
299
- | Phase 7 | Progress tracker (3 sub-steps), agent-log finalization, knowledge+memory capture, telemetry emission |
299
+ | Phase 5 | Progress tracker (3 sub-steps), agent-log finalization, knowledge+memory capture, telemetry emission |
300
300
  | `multi-agent-channels` | All external delivery: PR description update, Jira comment, Confluence page, Wiki pages |
301
301
 
302
- **State bundle** passed from Phase 7:
302
+ **State bundle** passed from Phase 5:
303
303
  ```json
304
304
  {
305
305
  "jiraId": "PROJ-12345",
@@ -313,7 +313,7 @@ Phase 7 builds a state bundle and invokes this skill internally. Responsibilitie
313
313
  }
314
314
  ```
315
315
 
316
- **Autopilot pause contract:** Phase 7 ALWAYS pauses at the channels menu - 30-min timeout → session ends cleanly → resumable via `/multi-agent:resume`. Full contract in `refs/phases/modes.md` + `refs/phases/phase-7-report.md`.
316
+ **Autopilot pause contract:** Phase 5 ALWAYS pauses at the channels menu - 30-min timeout → session ends cleanly → resumable via `/multi-agent:resume`. Full contract in `refs/phases/modes.md` + `refs/phases/phase-5-report.md`.
317
317
 
318
318
  ## Cross-CLI parity
319
319
 
@@ -322,12 +322,12 @@ Prompts MUST be byte-identical between Claude and Copilot. `smoke-cross-cli-beha
322
322
  Progress emission on Copilot (no native TaskCreate UI):
323
323
 
324
324
  ```bash
325
- bash ~/.copilot/scripts/phase-tracker.sh sub 7 1 "Channels dispatch" in_progress
325
+ bash ~/.copilot/scripts/phase-tracker.sh sub 5 1 "Channels dispatch" in_progress
326
326
  # ... adapter runs ...
327
- bash ~/.copilot/scripts/phase-tracker.sh sub 7 1 "Channels dispatch" completed
327
+ bash ~/.copilot/scripts/phase-tracker.sh sub 5 1 "Channels dispatch" completed
328
328
  ```
329
329
 
330
- Same shape as Phase 7 sub-step tracking.
330
+ Same shape as Phase 5 sub-step tracking.
331
331
 
332
332
  ## Examples
333
333
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: multi-agent-diff-explain
3
3
  language: en
4
- description: "Map Phase 4 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which code change'. Use when a review finding has to be traced to the exact lines that caused it."
4
+ description: "Map Phase 3 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which code change'. Use when a review finding has to be traced to the exact lines that caused it."
5
5
  user-invocable: true
6
6
  argument-hint: "[#task-id | --triage <path> | --state <path>] [--branch <name>] [--base <name>]"
7
7
  ---
@@ -10,12 +10,12 @@ argument-hint: "[#task-id | --triage <path> | --state <path>] [--branch <name>]
10
10
 
11
11
  **Input**: $ARGUMENTS
12
12
 
13
- Maps the Phase 4 triage output (`accepted` / `deferred` / `rejected`) to the branch's `git diff` output. For each finding, the relevant file/line hunk is embedded in the output. **Produces no side effects** - it only runs `git diff` and emits markdown.
13
+ Maps the Phase 3 triage output (`accepted` / `deferred` / `rejected`) to the branch's `git diff` output. For each finding, the relevant file/line hunk is embedded in the output. **Produces no side effects** - it only runs `git diff` and emits markdown.
14
14
 
15
15
  ## When to use it
16
16
 
17
17
  - After Phase 4 but before Phase 5/6: to answer "which finding lines up with which code?".
18
- - Phase 7 reporting content: "review summary with code context" for Wiki / Confluence.
18
+ - Phase 5 reporting content: "review summary with code context" for Wiki / Confluence.
19
19
  - Post-hoc audit: review-vs-fix comparison for a closed PR.
20
20
 
21
21
  ## Steps
@@ -40,7 +40,7 @@ Maps the Phase 4 triage output (`accepted` / `deferred` / `rejected`) to the bra
40
40
 
41
41
  4. **Show the output to the user** and optionally add commentary:
42
42
  - Phase 3 fix coverage: were all blocking findings touched
43
- - Deferred follow-up: are they all on the Phase 7 list
43
+ - Deferred follow-up: are they all on the Phase 5 list
44
44
 
45
45
  ## Output template
46
46
 
@@ -57,7 +57,7 @@ Maps the Phase 4 triage output (`accepted` / `deferred` / `rejected`) to the bra
57
57
  > Race condition: order total computed twice without lock
58
58
  **Fix:** Compute total once inside the existing transaction block
59
59
  \`\`\`diff
60
- @@ -98,5 +98,7 @@ ...
60
+ -98,5 +98,7 ...
61
61
  \`\`\`
62
62
  ```
63
63
 
@@ -11,7 +11,7 @@ argument-hint: "[build | refresh | ask \"<question>\" | affected \"<symbol>\" |
11
11
 
12
12
  A code graph is a map of what this repo declares and what refers to what, built by
13
13
  regex over comment-stripped source. It exists so Phase 1 can narrow its Explore
14
- fan-out and Phase 7 can refresh `~/.claude/knowledge/<project>/` without an LLM
14
+ fan-out and Phase 5 can refresh `~/.claude/knowledge/<project>/` without an LLM
15
15
  pass. It answers "where does this live" and "what depends on this". It does not
16
16
  answer "what calls this at runtime": call graphs and type resolution need a real
17
17
  parser, which would be an npm runtime dependency, and ADR-0004 forbids one.