@mmerterden/multi-agent-pipeline 15.10.1 → 15.12.1

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 (60) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/README.md +3 -3
  3. package/README.tr.md +3 -3
  4. package/install/_mcp-register.mjs +28 -3
  5. package/install/claude.mjs +1 -1
  6. package/install/codex.mjs +2 -2
  7. package/install/index.mjs +5 -5
  8. package/install/templates/copilot-instructions.md +2 -2
  9. package/package.json +3 -2
  10. package/pipeline/commands/archive-guard.md +6 -6
  11. package/pipeline/commands/multi-agent/channels/SKILL.md +10 -10
  12. package/pipeline/commands/multi-agent/design-check/SKILL.md +13 -13
  13. package/pipeline/commands/multi-agent/help/SKILL.md +8 -8
  14. package/pipeline/commands/multi-agent/refactor/SKILL.md +13 -13
  15. package/pipeline/commands/multi-agent/store-ready/SKILL.md +3 -3
  16. package/pipeline/commands/multi-agent/sync/SKILL.md +16 -16
  17. package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
  18. package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +1 -1
  19. package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +1 -1
  20. package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +1 -1
  21. package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +1 -1
  22. package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +1 -1
  23. package/pipeline/commands/sim-test.md +4 -4
  24. package/pipeline/lib/post-pr-review.sh +6 -8
  25. package/pipeline/multi-agent-refs/android-guide.md +1 -1
  26. package/pipeline/multi-agent-refs/audit-guide.md +1 -1
  27. package/pipeline/multi-agent-refs/channels/confluence.md +1 -1
  28. package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
  29. package/pipeline/multi-agent-refs/channels/jira.md +17 -1
  30. package/pipeline/multi-agent-refs/channels/pr-review-actions.md +8 -8
  31. package/pipeline/multi-agent-refs/channels/wiki.md +1 -1
  32. package/pipeline/multi-agent-refs/cross-cli-contract.md +1 -1
  33. package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
  34. package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -1
  35. package/pipeline/multi-agent-refs/phases/phase-5-test.md +4 -4
  36. package/pipeline/multi-agent-refs/phases/phase-7-report.md +1 -1
  37. package/pipeline/multi-agent-refs/refactor/dev-toolkit-research.md +1 -1
  38. package/pipeline/multi-agent-refs/rules.md +1 -1
  39. package/pipeline/multi-agent-refs/swiftui-guide.md +1 -1
  40. package/pipeline/preferences-template.json +3 -3
  41. package/pipeline/schemas/agent-state.schema.json +1 -1
  42. package/pipeline/schemas/prefs.schema.json +2 -2
  43. package/pipeline/scripts/pre-push-check.sh +89 -9
  44. package/pipeline/scripts/render-work-summary.sh +19 -13
  45. package/pipeline/scripts/uninstall.mjs +22 -15
  46. package/pipeline/scripts/update-issue-progress.sh +4 -4
  47. package/pipeline/scripts/usage-report.mjs +2 -2
  48. package/pipeline/skills/.skills-index.json +3 -3
  49. package/pipeline/skills/shared/README.md +2 -2
  50. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +16 -16
  51. package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +10 -10
  52. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +4 -4
  53. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +13 -13
  54. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -8
  55. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +1 -1
  56. package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +1 -1
  57. package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +1 -1
  58. package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +1 -1
  59. package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +1 -1
  60. package/pipeline/skills/skills-index.md +2 -2
package/CHANGELOG.md CHANGED
@@ -16,6 +16,38 @@ Internal file-layout changes that don't affect the slash-command surface are sti
16
16
 
17
17
  ## [Unreleased]
18
18
 
19
+ ## [15.12.1] - 2026-08-22
20
+
21
+ ### Fixed
22
+ - **The pre-push gate no longer runs inside the push.** Git opens the connection to the remote before the hook fires, so the six-minute chain 15.12.0 wired in idled that connection until the server dropped it: the first two attempts to push the rename died on a broken pipe with every gate green. The hook is now verify-only and instant - it checks a stamp keyed to the exact tree (HEAD plus a hash of the working tree) and refuses the push when there is none. `npm run gate` produces the stamp. Refusing is the point: no stamp means nothing has verified this tree, and the reason this file exists is that nothing else will.
23
+
24
+
25
+
26
+ ## [15.12.0] - 2026-08-22
27
+
28
+ ### Changed
29
+ - **The companion MCP server is now `@mmerterden/multi-agent-toolkit-mcp` (v3.0.0), registered as `multi-agent-toolkit`.** The old name read as internal scaffolding; the server is standalone (three runtime dependencies, 83 tools, no coupling to any orchestrator) and the name now says which family it belongs to. The MCP tool namespace moves with it: every `mcp__dev-toolkit__*` reference across 24 files is now `mcp__multi-agent-toolkit__*`, because a host derives the tool prefix from the server name and the old prefix would have addressed a server that no longer answers.
30
+ - **Existing registrations are migrated, not duplicated.** A host keys its registration by name, so a rename does not upgrade an entry in place: without a migration an install ends up with both `dev-toolkit` (pointing at the now-frozen 2.26.0) and `multi-agent-toolkit`, two servers advertising the same 83 tools with the host choosing between them. The installer removes the legacy entry before adding the new one, and `uninstall` clears both names - "removes the pipeline's footprint" has to mean the footprint it ever had.
31
+ - Declared minimums move to `v3.0.0+`; 2.x only ever existed under the old package name.
32
+
33
+ ### Migration
34
+ - `@mmerterden/dev-toolkit-mcp` stays published at 2.26.0 and is deprecated with a pointer. Nothing is unpublished, so a pinned consumer keeps resolving. The toolkit also keeps `dev-toolkit-mcp` as a second `bin` alias.
35
+ - A hand-registered client that the pipeline installer does not manage needs `<cli> mcp remove dev-toolkit` once.
36
+
37
+ ### Fixed
38
+ - **`pre-push-check.sh` ran three of the eleven gate steps.** It was missing both linters, three of the four evals, `validate-prefs` and `scorecard`, and drove the smoke suites through the bare `for f in smoke-*.sh` loop that `run-smokes.mjs` was written to replace - the loop that cannot tell a passing suite from one that exited 0 having asserted nothing. It now runs `npm test`, defined once in `package.json` so the hook cannot drift behind the chain, plus eslint and the personal-data scan. Because a full run takes about six minutes and git has already opened the connection to the remote by the time the hook fires, the verdict is cached against the exact tree that produced it (HEAD plus a hash of the working tree): re-pushing an unchanged tree is instant, one edited byte re-runs everything. Without that, the first push after the fix died on a broken pipe with every gate green. Verified by planting a defect that only the previously-missing steps catch: the old subset reported 434 unit tests passing and a clean tree; the new gate blocked the push. The hook's header also claimed the repo has no CI, which stopped being true some time ago.
39
+
40
+ ## [15.11.0] - 2026-08-21
41
+
42
+ ### Changed
43
+ - **Nothing the pipeline posts carries a decorative glyph any more.** The work summary rendered task marks and a phase strip in checkmarks and hourglasses, the PR review emitter prefixed every finding with a coloured dot and signed it with a robot, and the GitHub issue Progress table was three traffic lights. All of it now reads in words: `[done]` / `[pending]` for tasks, `done · active · failed · skipped · pending` for the phase strip, `done` / `partial` / `pending` for the issue flags, and the severity is the bold label it always was. `channels/jira.md` had banned decorative glyphs in a comment body for releases while the renderers filled it with them; the rule and the emitters now agree, and `smoke-channel-glyphs.sh` holds them to it. The pipeline's own terminal output is deliberately out of scope: a `✓` in a console summary is a UI affordance, not a document somebody reads later.
44
+
45
+ ### Fixed
46
+ - **Jira no longer manufactures smileys the pipeline never typed.** Comments are posted as Jira wiki markup, and Jira's renderer converts `:)` `:D` `;)` and, far more easily hit in technical prose, `(x)` `(/)` `(!)` `(i)` `(y)` `(+)` `(on)` `(*)` into emoticon images at render time. Nothing escaped them. `channels/jira.md` now carries the escaping table and orders it after the markdown conversion and before the POST. This was never something the humanizer could fix: the text is legitimate, and `(x)` in a comparison table renders correctly on GitHub and Confluence - only the Jira conversion knows the target parser.
47
+
48
+ ### Tests
49
+ - `smoke-channel-glyphs.sh` (8 checks) and a glyph assertion in `smoke-work-summary.sh`. Both detect with node's `\p{Extended_Pictographic}` rather than `grep -P`: the first draft of the gate used a PCRE class, reported a clean tree with a checkmark deliberately planted in an emitter, and passed. Under `bash` on a stock macOS `grep` is BSD grep, which has no `-P` at all - it exits 2 with "invalid option", the `2>/dev/null` swallowed the message, and an empty result read as "no glyphs". The gate now opens by proving its own detector fires on a planted glyph before it trusts any verdict, and both gates were re-checked by planting one and watching them go red.
50
+
19
51
  ## [15.10.1] - 2026-08-21
20
52
 
21
53
  ### Fixed
@@ -1789,7 +1821,7 @@ Requires `@mmerterden/dev-toolkit-mcp` >= v2.9.0 for the App Store audit path.
1789
1821
 
1790
1822
  ### Fixed
1791
1823
 
1792
- - **Every `mcp__dev_toolkit__*` reference is now `mcp__dev-toolkit__*`** (55
1824
+ - **Every `mcp__dev_toolkit__*` reference is now `mcp__multi-agent-toolkit__*`** (55
1793
1825
  lines across 10 files). A host composes MCP tool names as
1794
1826
  `mcp__<registered-server-name>__<tool>` and the server registers as
1795
1827
  `dev-toolkit`, so the snake_case form named tools that do not exist. The worst
package/README.md CHANGED
@@ -12,7 +12,7 @@ An 8-phase AI development pipeline for **Claude Code**, **Copilot CLI** and **Co
12
12
 
13
13
  Runs natively on Claude Code, Copilot CLI and Codex CLI. macOS / Linux / Windows. Zero runtime dependencies.
14
14
 
15
- 📐 **[Architecture diagrams](./docs/architecture.md)** - the 8-phase flow, operating modes, review/triage, Figma subphases, component layout. **[Ecosystem diagram](./docs/ecosystem.md)** - how this repo, the `multi-agent-plugins` marketplace and `dev-toolkit-mcp` compose.
15
+ 📐 **[Architecture diagrams](./docs/architecture.md)** - the 8-phase flow, operating modes, review/triage, Figma subphases, component layout. **[Ecosystem diagram](./docs/ecosystem.md)** - how this repo, the `multi-agent-plugins` marketplace and `multi-agent-toolkit-mcp` compose.
16
16
 
17
17
  ## Quick Start
18
18
 
@@ -63,7 +63,7 @@ One command runs 8 phases, with a gate between the risky ones:
63
63
 
64
64
  Under the hood: each task runs in its own **git worktree** (or the current branch with `:local`), commits use the **git identity routed from the repo's origin URL**, and **multi-repo** tasks get per-repo worktrees plus an integration build. Tokens stay in the OS keychain; nothing is committed or logged. `/multi-agent:review` can also review an existing GitHub/Bitbucket PR - per-finding inline comments anchored to `file:line` + an explicit Approve / Needs-Work state.
65
65
 
66
- The discipline behind all of this - bounded loops, evidence gates, token-budgeted phase docs, immutable tests, fresh-context handoffs - is catalogued in [docs/engineering.md](./docs/engineering.md). The full feature list lives in [docs/features.md](./docs/features.md). How this repo, the `multi-agent-plugins` marketplace, and the `dev-toolkit-mcp` server compose at install time and at run time is diagrammed in [docs/ecosystem.md](./docs/ecosystem.md).
66
+ The discipline behind all of this - bounded loops, evidence gates, token-budgeted phase docs, immutable tests, fresh-context handoffs - is catalogued in [docs/engineering.md](./docs/engineering.md). The full feature list lives in [docs/features.md](./docs/features.md). How this repo, the `multi-agent-plugins` marketplace, and the `multi-agent-toolkit-mcp` server compose at install time and at run time is diagrammed in [docs/ecosystem.md](./docs/ecosystem.md).
67
67
 
68
68
  ## Modes
69
69
 
@@ -142,7 +142,7 @@ Runs on **macOS**, **Linux**, and **Windows** (Git Bash / WSL). Shell and creden
142
142
  | Repo | What it is |
143
143
  |---|---|
144
144
  | [`mmerterden/multi-agent-plugins`](https://github.com/mmerterden/multi-agent-plugins) | Marketplace of per-stack skill toolkits (iOS / Android / Frontend / Backend + common). `/multi-agent:stack` enables the matching plugin. |
145
- | [`mmerterden/dev-toolkit-mcp`](https://github.com/mmerterden/dev-toolkit-mcp) | MCP server for UI testing / simulator capture / xcodebuild - powers the Phase 5 UI Bug Hunter. Published on the public npm registry as [`@mmerterden/dev-toolkit-mcp`](https://www.npmjs.com/package/@mmerterden/dev-toolkit-mcp); the installer registers it with each CLI for you, so `npx` resolves it with no extra configuration. |
145
+ | [`mmerterden/multi-agent-toolkit-mcp`](https://github.com/mmerterden/multi-agent-toolkit-mcp) | MCP server for UI testing / simulator capture / xcodebuild - powers the Phase 5 UI Bug Hunter. Published on the public npm registry as [`@mmerterden/multi-agent-toolkit-mcp`](https://www.npmjs.com/package/@mmerterden/multi-agent-toolkit-mcp); the installer registers it with each CLI for you, so `npx` resolves it with no extra configuration. |
146
146
 
147
147
  ## License
148
148
 
package/README.tr.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  Claude Code, Copilot CLI ve Codex CLI üzerinde native çalışır. macOS / Linux / Windows. Sıfır runtime dependency.
14
14
 
15
- 📐 **[Mimari diyagramları](./docs/architecture.md)** - 8 faz akışı, çalışma modları, review/triage, Figma subphase'leri, component yapısı. **[Ekosistem diyagramı](./docs/ecosystem.md)** - bu repo, `multi-agent-plugins` marketplace'i ve `dev-toolkit-mcp`'nin nasıl bir araya geldiği.
15
+ 📐 **[Mimari diyagramları](./docs/architecture.md)** - 8 faz akışı, çalışma modları, review/triage, Figma subphase'leri, component yapısı. **[Ekosistem diyagramı](./docs/ecosystem.md)** - bu repo, `multi-agent-plugins` marketplace'i ve `multi-agent-toolkit-mcp`'nin nasıl bir araya geldiği.
16
16
 
17
17
  ## Hızlı Başlangıç
18
18
 
@@ -63,7 +63,7 @@ Tek komut 8 fazı çalıştırır, riskli olanlar arasında bir kapı ile:
63
63
 
64
64
  Perde arkasında: her görev kendi **git worktree**'sinde çalışır (ya da `:local` ile mevcut branch'te), commit'ler **repo'nun origin URL'inden yönlendirilen git kimliğini** kullanır, ve **çoklu-repo** görevleri repo başına worktree artı bir integration build alır. Tokenlar OS keychain'de kalır; hiçbir şey commit edilmez ya da loglanmaz. `/multi-agent:review` mevcut bir GitHub/Bitbucket PR'ını da review edebilir - `file:line`'a bağlı bulgu-başına inline yorumlar + açık bir Approve / Needs-Work durumu.
65
65
 
66
- Bunun arkasındaki disiplin - sınırlı loop'lar, kanıt kapıları, token-bütçeli faz dokümanları, değişmez testler, taze-context handoff'lar - [docs/engineering.md](./docs/engineering.md)'de kataloglanmıştır. Tam özellik listesi [docs/features.md](./docs/features.md)'te. Bu repo, `multi-agent-plugins` marketplace'i ve `dev-toolkit-mcp` sunucusunun install zamanında ve run zamanında nasıl bir araya geldiği [docs/ecosystem.md](./docs/ecosystem.md)'de diyagramlanmıştır.
66
+ Bunun arkasındaki disiplin - sınırlı loop'lar, kanıt kapıları, token-bütçeli faz dokümanları, değişmez testler, taze-context handoff'lar - [docs/engineering.md](./docs/engineering.md)'de kataloglanmıştır. Tam özellik listesi [docs/features.md](./docs/features.md)'te. Bu repo, `multi-agent-plugins` marketplace'i ve `multi-agent-toolkit-mcp` sunucusunun install zamanında ve run zamanında nasıl bir araya geldiği [docs/ecosystem.md](./docs/ecosystem.md)'de diyagramlanmıştır.
67
67
 
68
68
  ## Modlar
69
69
 
@@ -143,7 +143,7 @@ triage notu bunu belirtir.
143
143
  | Repo | Ne olduğu |
144
144
  |---|---|
145
145
  | [`mmerterden/multi-agent-plugins`](https://github.com/mmerterden/multi-agent-plugins) | Stack-başına skill toolkit'lerinin marketplace'i (iOS / Android / Frontend / Backend + common). `/multi-agent:stack` ilgili plugin'i etkinleştirir. |
146
- | [`mmerterden/dev-toolkit-mcp`](https://github.com/mmerterden/dev-toolkit-mcp) | UI testing / simulator capture / xcodebuild için MCP sunucusu - Phase 5 UI Bug Hunter'ı güçlendirir. Public npm registry'de [`@mmerterden/dev-toolkit-mcp`](https://www.npmjs.com/package/@mmerterden/dev-toolkit-mcp) olarak yayınlanır; installer her CLI'a onu senin için register eder, böylece `npx` ekstra konfigürasyon olmadan onu çözer. |
146
+ | [`mmerterden/multi-agent-toolkit-mcp`](https://github.com/mmerterden/multi-agent-toolkit-mcp) | UI testing / simulator capture / xcodebuild için MCP sunucusu - Phase 5 UI Bug Hunter'ı güçlendirir. Public npm registry'de [`@mmerterden/multi-agent-toolkit-mcp`](https://www.npmjs.com/package/@mmerterden/multi-agent-toolkit-mcp) olarak yayınlanır; installer her CLI'a onu senin için register eder, böylece `npx` ekstra konfigürasyon olmadan onu çözer. |
147
147
 
148
148
  ## Lisans
149
149
 
@@ -28,8 +28,20 @@ import { homedir } from "os";
28
28
 
29
29
  import { isDryRun } from "./_common.mjs";
30
30
 
31
- export const MCP_SERVER_NAME = "dev-toolkit";
32
- export const MCP_SERVER_PACKAGE = "@mmerterden/dev-toolkit-mcp";
31
+ export const MCP_SERVER_NAME = "multi-agent-toolkit";
32
+ export const MCP_SERVER_PACKAGE = "@mmerterden/multi-agent-toolkit-mcp";
33
+
34
+ /**
35
+ * The name this server was registered under before v15.12.0.
36
+ *
37
+ * A host keys its registration by name, so renaming does NOT upgrade an entry in
38
+ * place: without this, an existing install ends up with both `dev-toolkit`
39
+ * (pointing at the old package, still resolvable, now frozen at 2.26.0) and
40
+ * `multi-agent-toolkit`. Two servers advertising the same 83 tools is worse than
41
+ * either alone - the host has to pick, and which one it picks is not something
42
+ * the pipeline controls. Registration removes the legacy entry first.
43
+ */
44
+ export const LEGACY_MCP_SERVER_NAME = "dev-toolkit";
33
45
 
34
46
  /**
35
47
  * Per-host CLI invocation details.
@@ -44,7 +56,7 @@ export const MCP_SERVER_PACKAGE = "@mmerterden/dev-toolkit-mcp";
44
56
  * `scopeArgs`: options inserted before the server name. Only Claude Code needs
45
57
  * them, and it needs them badly: `claude mcp add` defaults to `--scope local`,
46
58
  * which binds the server to whichever directory the installer happened to run
47
- * in. Every other project would then see no dev-toolkit server at all. Codex
59
+ * in. Every other project would then see no multi-agent-toolkit server at all. Codex
48
60
  * writes `~/.codex/config.toml` and Copilot writes `~/.copilot/mcp-config.json`,
49
61
  * both already user-global, so both take no scope flag - passing one errors.
50
62
  */
@@ -129,6 +141,19 @@ export function registerMcpServer(host, label) {
129
141
  return { registered: false, reason: "opted out" };
130
142
  }
131
143
 
144
+ // Drop the pre-rename entry before adding the new one. Best-effort by design:
145
+ // "not registered" is the common case (a fresh install) and is not an error,
146
+ // and a host that cannot remove it is not a reason to skip the add.
147
+ try {
148
+ execFileSync(cli, ["mcp", "remove", ...scopeArgs, LEGACY_MCP_SERVER_NAME], {
149
+ stdio: "pipe",
150
+ timeout: 20_000,
151
+ });
152
+ console.log(` -> ${label}: removed the legacy ${LEGACY_MCP_SERVER_NAME} registration`);
153
+ } catch {
154
+ /* not present, or the host declines - either way the add below is what matters */
155
+ }
156
+
132
157
  try {
133
158
  // Bounded: an installer must never hang on a child process. This is a local config
134
159
  // write and returns in milliseconds.
@@ -103,7 +103,7 @@ export function installClaude(ctx) {
103
103
  configureSettings(home);
104
104
 
105
105
  // Claude Code was the last target still shipping skills without the tools those
106
- // skills call. The dev-toolkit server backs design-check, every ios_* / android_*
106
+ // skills call. The multi-agent-toolkit server backs design-check, every ios_* / android_*
107
107
  // simulator call and the archive audits, and its absence is invisible until a run
108
108
  // reaches for one of them. `--scope user` is not optional here: `claude mcp add`
109
109
  // defaults to project scope, which would register the server only for whichever
package/install/codex.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Lays down `~/.codex/{skills/multi-agent,multi-agent-refs,agents,prompts,
5
5
  * scripts,lib,schemas}/` plus the managed block in `~/.codex/AGENTS.md`, and
6
- * registers the dev-toolkit MCP server through the `codex` CLI.
6
+ * registers the multi-agent-toolkit MCP server through the `codex` CLI.
7
7
  *
8
8
  * Shape note: this target follows the **Claude Code** thin-dispatcher layout,
9
9
  * not the Copilot CLI fan-out. Codex assembles every discovered skill's
@@ -542,7 +542,7 @@ function ensureSharedPreferences(home, pipelineSrc) {
542
542
  }
543
543
 
544
544
  /**
545
- * Register the dev-toolkit MCP server via the `codex` CLI.
545
+ * Register the multi-agent-toolkit MCP server via the `codex` CLI.
546
546
  *
547
547
  * Deliberately NOT a hand-written `[mcp_servers.*]` block in `config.toml`:
548
548
  * Codex owns that file (it writes `[marketplaces.*]` and `[plugins."x@y"]`
package/install/index.mjs CHANGED
@@ -166,7 +166,7 @@ function printSummary(opts) {
166
166
  console.log(" /multi-agent setup Configure tokens + git identity");
167
167
  console.log(" /multi-agent help Full usage guide");
168
168
  console.log(' /multi-agent "MOBILE-123" Start a task');
169
- console.log(" /multi-agent test UI Bug Hunter (requires dev-toolkit MCP)");
169
+ console.log(" /multi-agent test UI Bug Hunter (requires multi-agent-toolkit MCP)");
170
170
  console.log("");
171
171
  }
172
172
  if (forCopilot) {
@@ -187,17 +187,17 @@ function printSummary(opts) {
187
187
  // All three register automatically now. Claude Code was the last to gain it, and
188
188
  // this summary kept telling users to do it by hand long enough that the
189
189
  // hand-registered entry became the only reason it worked on any given machine.
190
- console.log(" For UI testing, the dev-toolkit MCP server is registered automatically:");
190
+ console.log(" For UI testing, the multi-agent-toolkit MCP server is registered automatically:");
191
191
  if (forClaude) {
192
192
  console.log(
193
- " Claude Code: claude mcp add --scope user dev-toolkit (user scope, all projects)",
193
+ " Claude Code: claude mcp add --scope user multi-agent-toolkit (user scope, all projects)",
194
194
  );
195
195
  }
196
196
  if (forCopilot) {
197
- console.log(" Copilot CLI: copilot mcp add dev-toolkit");
197
+ console.log(" Copilot CLI: copilot mcp add multi-agent-toolkit");
198
198
  }
199
199
  if (forCodex) {
200
- console.log(" Codex CLI: codex mcp add dev-toolkit");
200
+ console.log(" Codex CLI: codex mcp add multi-agent-toolkit");
201
201
  }
202
202
  console.log(
203
203
  " Skipped only when the host CLI is not on PATH - the command to run is printed above.",
@@ -253,13 +253,13 @@ multi-agent-stack [ios|android|mobile|backend|frontend|fullstack|all]
253
253
 
254
254
  ## UI Bug Hunter
255
255
 
256
- For visual testing, use the dev-toolkit MCP server tools:
256
+ For visual testing, use the multi-agent-toolkit MCP server tools:
257
257
  - ios_screenshot / android_screenshot - capture screen
258
258
  - ios_tap / android_tap - interact with UI
259
259
  - ios_set_appearance - toggle dark mode
260
260
  - ios_get_ui_tree / android_get_ui_tree - accessibility tree
261
261
 
262
- Requires: @mmerterden/dev-toolkit-mcp MCP server running
262
+ Requires: @mmerterden/multi-agent-toolkit-mcp MCP server running
263
263
 
264
264
  ## Post-Development Integration Build (Multi-Repo) - required
265
265
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmerterden/multi-agent-pipeline",
3
- "version": "15.10.1",
3
+ "version": "15.12.1",
4
4
  "description": "8-phase AI development pipeline with full orchestration on Claude Code, Copilot CLI and Codex CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -24,7 +24,8 @@
24
24
  "lint:fix": "eslint . --fix",
25
25
  "format": "prettier --write \"**/*.{js,mjs,json,yml}\" --ignore-path .gitignore",
26
26
  "format:check": "prettier --check \"**/*.{js,mjs,json,yml}\" --ignore-path .gitignore",
27
- "scorecard": "node pipeline/scripts/scorecard.mjs"
27
+ "scorecard": "node pipeline/scripts/scorecard.mjs",
28
+ "gate": "bash pipeline/scripts/pre-push-check.sh --run"
28
29
  },
29
30
  "keywords": [
30
31
  "multi-agent",
@@ -3,13 +3,13 @@ description: Scan an .xcarchive for Apple App Store Review compliance (18-rule d
3
3
  allowed-tools: Bash, Read, Glob
4
4
  ---
5
5
 
6
- Run the `ios_app_store_audit` MCP tool (shipped in `@mmerterden/dev-toolkit-mcp` ≥ v2.9.0)
6
+ Run the `ios_app_store_audit` MCP tool (shipped in `@mmerterden/multi-agent-toolkit-mcp` ≥ v3.0.0)
7
7
  on an iOS archive. Backed by the same 18-rule catalog as `/multi-agent:test "store-ready"`
8
8
  - this command is the lighter, post-hoc form (no platform-detect, no UI sweep).
9
9
 
10
10
  > **v8.4.0 migration note:** The standalone `~/ArchiveGuard/.build/release/archive-guard`
11
11
  > binary has been retired. The 18 rules live in
12
- > `dev-toolkit-mcp/tools/ios-app-store-audit/rules/` as a pure-Node port. Output JSON
12
+ > `multi-agent-toolkit-mcp/tools/ios-app-store-audit/rules/` as a pure-Node port. Output JSON
13
13
  > shape is unchanged.
14
14
 
15
15
  ## Steps
@@ -21,7 +21,7 @@ on an iOS archive. Backed by the same 18-rule catalog as `/multi-agent:test "sto
21
21
  2. Ask user which archive to scan (or use the argument if provided: $ARGUMENTS).
22
22
  3. Run the scan - preferred mode is the native MCP tool call:
23
23
  ```
24
- mcp__dev-toolkit__ios_app_store_audit({
24
+ mcp__multi-agent-toolkit__ios_app_store_audit({
25
25
  archive_path: "<archive_path>",
26
26
  rules: "all" // "all" | "core" | "deep" | csv of ruleIDs
27
27
  })
@@ -29,15 +29,15 @@ on an iOS archive. Backed by the same 18-rule catalog as `/multi-agent:test "sto
29
29
  4. Fallback (plain shell / CI, no MCP host):
30
30
  ```
31
31
  node -e "
32
- import('@mmerterden/dev-toolkit-mcp/tools/ios-app-store-audit/index.js').then(async m => {
32
+ import('@mmerterden/multi-agent-toolkit-mcp/tools/ios-app-store-audit/index.js').then(async m => {
33
33
  const r = await m.runAudit({ archivePath: '<archive_path>', rules: 'all' });
34
34
  console.log(JSON.stringify(r, null, 2));
35
35
  });
36
36
  "
37
37
  ```
38
- 5. If `@mmerterden/dev-toolkit-mcp` is not installed, prompt the user:
38
+ 5. If `@mmerterden/multi-agent-toolkit-mcp` is not installed, prompt the user:
39
39
  ```
40
- npm i -g @mmerterden/dev-toolkit-mcp
40
+ npm i -g @mmerterden/multi-agent-toolkit-mcp
41
41
  # or add it to your MCP config and reload the editor
42
42
  ```
43
43
  6. Summarize results - group by severity (`error` blockers, `warning` risks,
@@ -93,12 +93,12 @@ When the preview does NOT render (no state, or pref explicitly off at global lev
93
93
  **Visual flow (TR, pref on + state available):**
94
94
 
95
95
  ```
96
- 📋 Yapılan iş özeti - PROJ-12345
96
+ Yapılan iş özeti - PROJ-12345
97
97
  ──────────────────────────────────────────────────────────
98
98
  {rendered Work Summary block - header + scope + diffstat + review + phases}
99
99
  ──────────────────────────────────────────────────────────
100
100
 
101
- İş özetini gördün. Şimdi nereye rapor gönderelim?
101
+ [done] İş özetini gördün. Şimdi nereye rapor gönderelim?
102
102
  ```
103
103
 
104
104
  Then 3b renders:
@@ -167,7 +167,7 @@ For each selected **content** source, produce one section body. Each section run
167
167
  | Auto-diff | Old enrich Output Template verbatim - Root Cause / Solution / Changed Files / Test Scenarios |
168
168
  | Manuel not | `### Notes` - user-provided paragraph, or LLM-split into subsections if `--message` is plain text and long |
169
169
  | Cost özeti | `### Cost Summary` - per-phase token tally + est. USD table. Source: `phase-tracker.sh` phase status + optional OTel spans. See "Cost summary generation" below. |
170
- | Yapılan iş özeti | `### Work Summary` - executive one-screen summary: task + branch + base + PR, scope delivered (✅/⏳ per Phase 2 task), changed files with +/- counts (capped at 20 rows), review outcome (accepted/deferred/rejected + approved), phase tick strip. Source: `agent-state.json` + `phase-tracker.json` + `git diff --numstat base...HEAD`. See "Work summary generation" below. |
170
+ | Yapılan iş özeti | `### Work Summary` - executive one-screen summary: task + branch + base + PR, scope delivered (done/[pending] per Phase 2 task), changed files with +/- counts (capped at 20 rows), review outcome (accepted/deferred/rejected + approved), phase tick strip. Source: `agent-state.json` + `phase-tracker.json` + `git diff --numstat base...HEAD`. See "Work summary generation" below. |
171
171
 
172
172
  **Output template (aggregated across selected content options):**
173
173
 
@@ -230,8 +230,8 @@ If a cached report exists AND any of the selected channels is PR / Jira / Conflu
230
230
 
231
231
  | Blocker count | Appended line |
232
232
  |---|---|
233
- | `errors > 0` | `### Store compliance` + `⚠️ {N} blocker(s), {M} warning(s) - run /multi-agent:test "store-ready" for the full report.` - per-blocker: `- \`{ruleID}\` - {Apple ITMS / Play ref}: {message}` (capped at 5 rows, rest collapsed to `+N more`) |
234
- | `errors == 0, warnings > 0` | `### Store compliance` + `✅ No blockers. {M} warning(s) - see /multi-agent:test "store-ready" for detail.` |
233
+ | `errors > 0` | `### Store compliance` + `{N} blocker(s), {M} warning(s) - run /multi-agent:test "store-ready" for the full report.` - per-blocker: `- \`{ruleID}\` - {Apple ITMS / Play ref}: {message}` (capped at 5 rows, rest collapsed to `+N more`) |
234
+ | `errors == 0, warnings > 0` | `### Store compliance` + `[done] No blockers. {M} warning(s) - see /multi-agent:test "store-ready" for detail.` |
235
235
  | `errors == 0, warnings == 0` | Skip section entirely - don't pollute PR body |
236
236
 
237
237
  The section references `ruleID` + policy ref from the compliance skill catalogs (`apple-archive-compliance` / `google-play-compliance`) verbatim. No translation - global identifiers stay as-is.
@@ -243,10 +243,10 @@ If no cached report exists, skip silently - this is augmentation, not a gate.
243
243
  Emitted only when `reportContent.workSummary === true` and at least one of (`agent-state.json`, `--branch` flag) is available. The shell adapter is `$HOME/.claude/scripts/render-work-summary.sh <taskId>`:
244
244
 
245
245
  1. **Task header** - `taskId`, `branch`, `baseBranch`, `prNumber` from `agent-state.json` (or explicit flags for post-hoc invocation).
246
- 2. **Scope delivered** - Phase 2 `planTodos[]` / `tasks[]` rendered as `✅` (status=done) or `⏳` (anything else) rows. Task id + title shown; `(deferred - rationale)` appended if the task's `status` is `"deferred"`.
246
+ 2. **Scope delivered** - Phase 2 `planTodos[]` / `tasks[]` rendered as `done` (status=done) or `pending` (anything else) rows. Task id + title shown; `(deferred - rationale)` appended if the task's `status` is `"deferred"`.
247
247
  3. **Changed files** - `git -C $WORKTREE diff --numstat $baseBranch...HEAD`. Shows `` `path` (+add / -del) `` per row, capped at 20 with a `_... +N more files not shown_` footer when exceeded. Total adds/dels + file count in section header.
248
248
  4. **Review outcome** - from `reviewConsensus` (pre-v6.1) or `phases["4"].triage`: `{accepted} accepted · {deferred} deferred · {rejected} rejected · approved={bool}`. Hidden entirely when all three buckets are empty (normal for `--dev` / `dev-autopilot` runs that skip Phase 4).
249
- 5. **Phase tick strip** - single line from the tracker state (`render-work-summary.sh` resolves worktree/artifacts copies, then `$HOME/.claude/logs/multi-agent/{taskId}/tracker-state.json`): `0 Init · 1 Analysis · 2 Planning · 3 Dev · 4 Review · 5 Test · 6 Commit · 7 Report ▶`. Marks: `✅` completed · `▶` in_progress · `❌` failed · `⏭` skipped · `·` pending.
249
+ 5. **Phase tick strip** - single line from the tracker state (`render-work-summary.sh` resolves worktree/artifacts copies, then `$HOME/.claude/logs/multi-agent/{taskId}/tracker-state.json`): `0 Init [done] · 1 Analysis [done] · 2 Planning [done] · 3 Dev [done] · 4 Review [done] · 5 Test skipped · 6 Commit [done] · 7 Report active`. Marks: `done` completed · `active` in_progress · `failed` failed · `skipped` skipped · `·` pending.
250
250
 
251
251
  **Output template:**
252
252
 
@@ -255,8 +255,8 @@ Emitted only when `reportContent.workSummary === true` and at least one of (`age
255
255
  **Task**: `PROJ-1099` | **Branch**: `bugfix/PROJ-1099-dark-mode` | **Base**: `develop` | **PR**: #104
256
256
 
257
257
  #### Scope delivered
258
- - T1 Add failing dark-mode snapshot test
259
- - T2 Replace Color.white with design token
258
+ - [done] T1 Add failing dark-mode snapshot test
259
+ - [done] T2 Replace Color.white with design token
260
260
 
261
261
  #### Changed files (3 files · +48 / -12)
262
262
  - `Sources/Auth/LoginView.swift` (+24 / -8)
@@ -267,7 +267,7 @@ Emitted only when `reportContent.workSummary === true` and at least one of (`age
267
267
  - 1 accepted · 0 deferred · 0 rejected · approved=true
268
268
 
269
269
  #### Phases
270
- - 0 Init · 1 Analysis · 2 Planning · 3 Dev · 4 Review · 5 Test · 6 Commit · 7 Report
270
+ - 0 Init [done] · 1 Analysis [done] · 2 Planning [done] · 3 Dev [done] · 4 Review [done] · 5 Test skipped · 6 Commit [done] · 7 Report active
271
271
  ```
272
272
 
273
273
  **Post-hoc invocation** (task already finished, agent-state.json may be archived): pass `--branch` + `--base-branch` explicitly - the script still emits task header + changed-files + phases sections (scope + review outcome are state-dependent and will be absent if state is gone).
@@ -2,7 +2,7 @@
2
2
  description: "Mock-mode vs Figma design audit (iOS / Android, local-only). Pick repo + module, gate on mock support, enumerate every state driver into a countable target set, build Debug in a worktree, launch in mock mode, fetch Figma variants, compare each pixel + px-spacing + typography + color, and export a side-by-side annotated report (HTML + PDF + Confluence) to ~/DesignChecks. A coverage gate fails the run when a target is neither audited nor skipped with a reason."
3
3
  description-tr: "Mock-mod vs Figma tasarım denetimi (iOS / Android, yalnızca lokal). Repo + modül seç, mock desteğini geçitle, her state sürücüsünü sayılabilir bir hedef kümesine çıkar, worktree'de Debug derle, mock modda aç, Figma varyantlarını çek, her varyantı piksel + px-boşluk + tipografi + renk düzeyinde karşılaştır, yan yana annotasyonlu raporu (HTML + PDF + Confluence) ~/DesignChecks altına aktar. Bir hedef ne denetlenmiş ne de gerekçeyle atlanmışsa kapsam geçidi koşuyu başarısız sayar."
4
4
  argument-hint: '[scope] - empty = whole module; screen name; screen@variant; Figma URL(s); --resume'
5
- allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, AskUserQuestion, Skill, mcp__claude_ai_Figma__get_metadata, mcp__claude_ai_Figma__get_design_context, mcp__claude_ai_Figma__get_screenshot, mcp__dev-toolkit__design_mock_detect, mcp__dev-toolkit__design_scenario_inventory, mcp__dev-toolkit__design_mock_launch, mcp__dev-toolkit__design_ui_geometry, mcp__dev-toolkit__design_visual_compare, mcp__dev-toolkit__design_report, mcp__dev-toolkit__ios_list_devices, mcp__dev-toolkit__ios_boot_device, mcp__dev-toolkit__ios_launch_app, mcp__dev-toolkit__ios_terminate_app, mcp__dev-toolkit__ios_screenshot, mcp__dev-toolkit__ios_tap, mcp__dev-toolkit__ios_swipe, mcp__dev-toolkit__ios_type_text, mcp__dev-toolkit__ios_open_url, mcp__dev-toolkit__ios_get_ui_tree, mcp__dev-toolkit__ios_status_bar, mcp__dev-toolkit__ios_set_appearance, mcp__dev-toolkit__ios_set_locale, mcp__dev-toolkit__ios_xcodebuild, mcp__dev-toolkit__ios_xcresult, mcp__dev-toolkit__android_list_devices, mcp__dev-toolkit__android_screenshot, mcp__dev-toolkit__android_tap, mcp__dev-toolkit__android_swipe, mcp__dev-toolkit__android_type_text, mcp__dev-toolkit__android_open_url, mcp__dev-toolkit__android_launch_app, mcp__dev-toolkit__android_stop_app
5
+ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, AskUserQuestion, Skill, mcp__claude_ai_Figma__get_metadata, mcp__claude_ai_Figma__get_design_context, mcp__claude_ai_Figma__get_screenshot, mcp__multi-agent-toolkit__design_mock_detect, mcp__multi-agent-toolkit__design_scenario_inventory, mcp__multi-agent-toolkit__design_mock_launch, mcp__multi-agent-toolkit__design_ui_geometry, mcp__multi-agent-toolkit__design_visual_compare, mcp__multi-agent-toolkit__design_report, mcp__multi-agent-toolkit__ios_list_devices, mcp__multi-agent-toolkit__ios_boot_device, mcp__multi-agent-toolkit__ios_launch_app, mcp__multi-agent-toolkit__ios_terminate_app, mcp__multi-agent-toolkit__ios_screenshot, mcp__multi-agent-toolkit__ios_tap, mcp__multi-agent-toolkit__ios_swipe, mcp__multi-agent-toolkit__ios_type_text, mcp__multi-agent-toolkit__ios_open_url, mcp__multi-agent-toolkit__ios_get_ui_tree, mcp__multi-agent-toolkit__ios_status_bar, mcp__multi-agent-toolkit__ios_set_appearance, mcp__multi-agent-toolkit__ios_set_locale, mcp__multi-agent-toolkit__ios_xcodebuild, mcp__multi-agent-toolkit__ios_xcresult, mcp__multi-agent-toolkit__android_list_devices, mcp__multi-agent-toolkit__android_screenshot, mcp__multi-agent-toolkit__android_tap, mcp__multi-agent-toolkit__android_swipe, mcp__multi-agent-toolkit__android_type_text, mcp__multi-agent-toolkit__android_open_url, mcp__multi-agent-toolkit__android_launch_app, mcp__multi-agent-toolkit__android_stop_app
6
6
  ---
7
7
 
8
8
  # /multi-agent:design-check - Mock-mode vs Figma design audit
@@ -49,7 +49,7 @@ Phase 4: Report → coverage gate + assemble + export HTML + PDF (+ Conf
49
49
  ## Requirements
50
50
 
51
51
  - **iOS**: Xcode + an available Simulator. **Android**: Android SDK + a running emulator / device.
52
- - **MCP**: the `dev-toolkit` MCP server (>= 2.8.0, for `design_scenario_inventory`, the `design_report` coverage gate, and `design_visual_compare` region alignment). The Figma MCP (`mcp__claude_ai_Figma__*`) must be authenticated - the user supplies the Figma URL.
52
+ - **MCP**: the `multi-agent-toolkit` MCP server (>= 2.8.0, for `design_scenario_inventory`, the `design_report` coverage gate, and `design_visual_compare` region alignment). The Figma MCP (`mcp__claude_ai_Figma__*`) must be authenticated - the user supplies the Figma URL.
53
53
  - The selected module must support a **mock mode** (Phase 0 gate decides this). No mock support → the command halts.
54
54
 
55
55
  ## Phase Tracker Contract (mandatory)
@@ -77,11 +77,11 @@ Every Phase 0 / Phase 2 decision uses a native `AskUserQuestion` picker (numbere
77
77
 
78
78
  Assert both halves before continuing:
79
79
 
80
- a. **Session** - `mcp__dev-toolkit__design_scenario_inventory` must be present in the tools available to you, and `mcp__dev-toolkit__design_visual_compare` must accept `live_region`. Absent → the session is bound to a stale process.
80
+ a. **Session** - `mcp__multi-agent-toolkit__design_scenario_inventory` must be present in the tools available to you, and `mcp__multi-agent-toolkit__design_visual_compare` must accept `live_region`. Absent → the session is bound to a stale process.
81
81
 
82
82
  b. **Disk** - probe the configured server directly, which reports what a fresh connection WOULD serve:
83
83
  ```bash
84
- cd "$(python3 -c "import json,os;print(json.load(open(os.path.expanduser('~/.claude.json')))['mcpServers']['dev-toolkit']['args'][0].rsplit('/',1)[0])")" && \
84
+ cd "$(python3 -c "import json,os;print(json.load(open(os.path.expanduser('~/.claude.json')))['mcpServers']['multi-agent-toolkit']['args'][0].rsplit('/',1)[0])")" && \
85
85
  printf '%s\n%s\n' \
86
86
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' \
87
87
  '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
@@ -97,7 +97,7 @@ for l in sys.stdin:
97
97
  ```
98
98
 
99
99
  Branch on the two results:
100
- - **disk OK, session missing the tool** → **HALT** and tell the user to reconnect: `/mcp` → `dev-toolkit` → Reconnect. Note the tool-count tell (a stale build advertises one fewer `design_*` tool). If a reconnect does not take, stale server processes may be lingering - `pgrep -f dev-toolkit-mcp/index.js` with `ps -o lstart=` shows their start times, and any that predate the code's mtime cannot serve the current tools.
100
+ - **disk OK, session missing the tool** → **HALT** and tell the user to reconnect: `/mcp` → `multi-agent-toolkit` → Reconnect. Note the tool-count tell (a stale build advertises one fewer `design_*` tool). If a reconnect does not take, stale server processes may be lingering - `pgrep -f multi-agent-toolkit-mcp/index.js` with `ps -o lstart=` shows their start times, and any that predate the code's mtime cannot serve the current tools.
101
101
  - **disk itself stale** (older version, or `inventory False`) → **HALT**: the checkout needs updating before a reconnect can help.
102
102
  - **both current** → continue.
103
103
 
@@ -108,7 +108,7 @@ for l in sys.stdin:
108
108
  3. **Platform detect** - `.xcodeproj` / `Package.swift` → iOS; `build.gradle*` → Android (same markers as `phase-0-init.md`). Persist `state.platform`.
109
109
  4. **MOCK FEASIBILITY GATE** - run against the selected module path:
110
110
  ```
111
- mcp__dev-toolkit__design_mock_detect({ repo_path: "<module path>", platform: "<ios|android>",
111
+ mcp__multi-agent-toolkit__design_mock_detect({ repo_path: "<module path>", platform: "<ios|android>",
112
112
  extra_keys: <design-check-config mock.keys, if any> })
113
113
  ```
114
114
  Branch on `supported`:
@@ -117,7 +117,7 @@ for l in sys.stdin:
117
117
  - **`true`** → continue. Persist `state.designCheck.mock = <detect result>` (mechanism, activation, variantsHint, evidence).
118
118
  5. **SCENARIO INVENTORY (this is the audit's target set)**:
119
119
  ```
120
- mcp__dev-toolkit__design_scenario_inventory({ repo_path: "<module path>", platform,
120
+ mcp__multi-agent-toolkit__design_scenario_inventory({ repo_path: "<module path>", platform,
121
121
  extra_launch_args: <config inventory.extraLaunchArgs>,
122
122
  extra_targets: <config inventory.extraTargets>,
123
123
  ignore_targets: <config inventory.ignoreTargets> })
@@ -140,13 +140,13 @@ Persist `agent-state.json` with `taskId`, `mode: "design-check"`, `platform`, `p
140
140
  ## Phase 1 - Build & Launch (mock)
141
141
 
142
142
  1. **Debug build** in the worktree (mock activation requires the Debug configuration):
143
- - iOS: `mcp__dev-toolkit__ios_xcodebuild({ workspace|project, scheme, configuration: "Debug", action: "build", destination: "generic/platform=iOS Simulator" })`. Drill failures via `ios_xcresult`.
143
+ - iOS: `mcp__multi-agent-toolkit__ios_xcodebuild({ workspace|project, scheme, configuration: "Debug", action: "build", destination: "generic/platform=iOS Simulator" })`. Drill failures via `ios_xcresult`.
144
144
  - Android: `./gradlew :<module>:assembleDebug` (or `installDebug`) via Bash.
145
145
  2. **Boot device + install**: iOS `ios_list_devices` → `ios_boot_device` → install the built `.app` (`xcrun simctl install`). Android: ensure an emulator is running, `adb install -r <apk>`.
146
146
  3. **Deterministic state**: iOS `ios_status_bar({ preset: "clean" })` (09:41 / full battery); set a fixed appearance + locale so captures are stable across runs.
147
147
  4. **Launch in mock mode** using the activation from Phase 0:
148
148
  ```
149
- mcp__dev-toolkit__design_mock_launch({ platform, bundle_id|package_name,
149
+ mcp__multi-agent-toolkit__design_mock_launch({ platform, bundle_id|package_name,
150
150
  launch_arg: state.designCheck.mock.activation.launchArg, // iOS, e.g. "-debugMockMode YES"
151
151
  intent_extra: state.designCheck.mock.activation.intentExtra }) // Android
152
152
  ```
@@ -195,7 +195,7 @@ Per-target activation by `driver.type`:
195
195
 
196
196
  While a target's state is on screen, also capture the **sub-states reachable from it by tapping** - overlays, bottom sheets, modals, popups, inline errors, QR / share sheets. These cost no relaunch and belong to the target that exposed them; record them as additional captures under that target id (`<id>#<sub-label>`).
197
197
 
198
- For each capture: `ios_screenshot` (save PNG into the Phase 0 report dir) + `mcp__dev-toolkit__design_ui_geometry` (live boxes + screen size) → append to `state.designCheck.captured[]` with the target id and a human label. **Persist `state` and `run-state.json` after every capture**, so a run that dies mid-way resumes from where it stopped instead of starting over.
198
+ For each capture: `ios_screenshot` (save PNG into the Phase 0 report dir) + `mcp__multi-agent-toolkit__design_ui_geometry` (live boxes + screen size) → append to `state.designCheck.captured[]` with the target id and a human label. **Persist `state` and `run-state.json` after every capture**, so a run that dies mid-way resumes from where it stopped instead of starting over.
199
199
 
200
200
  If a target cannot be reached, record it immediately as `{ id, reason }` in `state.designCheck.skipped[]` with a concrete reason ("scenario picker not present in this build", "needs a live PNR", "crashes on launch: <symbol>"). "Requires a scenario / prefix / launch-arg" is **not** a reason - that is a description of the work, and the work is this phase's job.
201
201
 
@@ -211,7 +211,7 @@ Collect ALL captures with no confident Figma match into a single list and ask th
211
211
 
212
212
  For each pair (matched + user-supplied), fetch `get_screenshot` + `get_design_context`, then:
213
213
  ```
214
- mcp__dev-toolkit__design_visual_compare({
214
+ mcp__multi-agent-toolkit__design_visual_compare({
215
215
  figma_png, live_png, out_dir: "<report dir>/assets", label: "<variant>",
216
216
  figma_spec, live_geometry, figma_frame, live_screen,
217
217
  crop_top_live: <status-bar px>, // strip device chrome the Figma frame lacks
@@ -222,7 +222,7 @@ For each pair (matched + user-supplied), fetch `get_screenshot` + `get_design_co
222
222
  **Bottom sheets, modals, and any partial overlay need region alignment.** Their Figma frame covers only the sheet, while the capture is the whole screen. Passing that pair as-is stretches a full screen onto a sheet-shaped frame, which misplaces every element inside the sheet and buries the real defect in noise. So for any capture whose frame is not full-screen:
223
223
 
224
224
  ```
225
- mcp__dev-toolkit__design_visual_compare({ ...as above,
225
+ mcp__multi-agent-toolkit__design_visual_compare({ ...as above,
226
226
  live_region: <the sheet container's {x,y,w,h} from design_ui_geometry>,
227
227
  expected_region: <where the design puts that sheet, same units> })
228
228
  ```
@@ -265,7 +265,7 @@ Before leaving this phase, compare `covered.length + skipped.length` against `sc
265
265
  Pass **ids**, not counts: the engine then names each unaccounted target in the report instead of printing an anonymous tally. `compareSize` and `liveSize` come straight from the `design_visual_compare` result.
266
266
  3. **Render + export**:
267
267
  ```
268
- mcp__dev-toolkit__design_report({ report, out_dir: state.designCheck.reportDir,
268
+ mcp__multi-agent-toolkit__design_report({ report, out_dir: state.designCheck.reportDir,
269
269
  formats: ["html", "pdf"] + (confluence enabled ? ["confluence"] : []) })
270
270
  ```
271
271
  - HTML: self-contained (base64 images, CSS-positioned annotations over the live capture, stacked findings, fix prompt), with the coverage gate banner at the top.
@@ -124,7 +124,7 @@ Post-Hoc & Side-Channel:
124
124
  /multi-agent:diff-explain Map a Phase 4 triage finding back to specific diff lines
125
125
  /multi-agent:search Cross-task log search with smart ranking; --semantic queries triage corpus
126
126
  /multi-agent:scan Skill security scan against tiered pattern catalog
127
- /multi-agent:refactor Adapted best-practices + bug hunt + upstream-drift + dev-toolkit MCP research -> one plan, approval, dev + sync
127
+ /multi-agent:refactor Best practices + bug hunt + upstream drift + toolkit MCP research -> one plan, approval, dev + sync
128
128
  /multi-agent:store-ready [repo] [--archive=|--ipa=|--aab=|--apk=] [--skip-sweep] Pre-submission store readiness,
129
129
  iOS + Android, local-only. Three symmetric gates per platform: static package audit,
130
130
  the store's own validator, policy review vs repo source. Plus the running-app sweep.
@@ -139,7 +139,7 @@ Setup & Maintenance:
139
139
  /multi-agent:setup First-run wizard - Keychain tokens + Git identity + language
140
140
  /multi-agent:language [en|tr] Show or set outputLanguage (promptLanguage stays English)
141
141
  /multi-agent:stack [ids...] Enable stack plugin(s); multi-select: ids together (ios backend) or no arg -> native picker (common always on)
142
- /multi-agent:sync Sync ecosystem (Claude Code + Copilot CLI + pipeline + website + dev-toolkit MCP)
142
+ /multi-agent:sync Sync ecosystem (Claude Code + Copilot CLI + pipeline + website + toolkit MCP)
143
143
  /multi-agent:update Pull latest pipeline + reinstall + run migrations
144
144
  /multi-agent:uninstall Uninstall pipeline from every CLI (--all-data also clears settings + logs; Keychain tokens always intact, double confirm)
145
145
 
@@ -200,7 +200,7 @@ Manual Test (Phase 5 standalone - Xcode hint flow):
200
200
  /multi-agent:manual-test Checkout task branch, print Xcode/SourceTree hints,
201
201
  /multi-agent:manual-test #N wait for your "ok" / "fix: ..." verdict.
202
202
 
203
- Design Check (mock-mode vs Figma, local-only - powered by dev-toolkit-mcp design_* tools):
203
+ Design Check (mock-mode vs Figma, local-only - powered by the toolkit MCP design_* tools):
204
204
 
205
205
  /multi-agent:design-check Whole-module design audit: pick repo+module, gate on mock support,
206
206
  enumerate every state driver (launch args, scenario cases, scenario codes,
@@ -217,7 +217,7 @@ Design Check (mock-mode vs Figma, local-only - powered by dev-toolkit-mcp desi
217
217
  # "Requires a scenario / prefix / launch-arg" is not a reason; reaching those states is the run's job.
218
218
  # When a live screen has no confident Figma match, it SHOWS you the screenshot and asks for the node-id.
219
219
 
220
- Drives the dev-toolkit-mcp design_* tool suite (+ ios_* / android_* device control).
220
+ Drives the toolkit design_* tools (+ ios_* / android_* device control).
221
221
 
222
222
  ------------------------------------------------------------
223
223
 
@@ -397,7 +397,7 @@ Post-Hoc & Side-Channel:
397
397
  /multi-agent:diff-explain Phase 4 triage bulgusunu diff satırlarına eşle
398
398
  /multi-agent:search Task log'larında akıllı arama; --semantic triage corpus'unu sorgular
399
399
  /multi-agent:scan Skill güvenlik taraması (tiered pattern catalog)
400
- /multi-agent:refactor Uyarlanmış best-practice + bug avı + upstream-drift + dev-toolkit MCP araştırması -> tek plan, onay, dev + sync
400
+ /multi-agent:refactor Uyarlanmış best-practice + bug avı + upstream-drift + multi-agent-toolkit MCP araştırması -> tek plan, onay, dev + sync
401
401
  /multi-agent:store-ready [repo] [--archive=|--ipa=|--aab=|--apk=] [--skip-sweep] Yükleme öncesi store hazırlığı,
402
402
  iOS + Android, yalnızca lokal. Platform başına 3 simetrik kapı: statik paket denetimi,
403
403
  store'un kendi doğrulayıcısı, kaynağa karşı politika incelemesi. Artı çalışan-app sweep'i.
@@ -412,7 +412,7 @@ Setup & Maintenance:
412
412
  /multi-agent:setup İlk kurulum sihirbazı - Keychain token + Git kimliği + dil
413
413
  /multi-agent:language [en|tr] outputLanguage'ı göster veya ayarla (promptLanguage İngilizce kalır)
414
414
  /multi-agent:stack [ids...] Stack plugin'lerini etkinleştir; çoklu seçim: id'ler yan yana (ios backend) ya da argümansız -> native picker (common hep açık)
415
- /multi-agent:sync Ekosistemi senkronize et (Claude Code + Copilot CLI + pipeline + website + dev-toolkit MCP)
415
+ /multi-agent:sync Ekosistemi senkronize et (Claude Code + Copilot CLI + pipeline + website + multi-agent-toolkit MCP)
416
416
  /multi-agent:update En son pipeline'ı çek + reinstall + migration çalıştır
417
417
  /multi-agent:uninstall Pipeline'ı tüm CLI'lerden kaldır (--all-data ayar + logları da siler; Keychain token her zaman dokunulmaz, çift onay)
418
418
 
@@ -474,7 +474,7 @@ Manuel Test (Phase 5 standalone - Xcode hint akışı):
474
474
  /multi-agent:manual-test Task branch'ine checkout, Xcode/SourceTree hint basar,
475
475
  /multi-agent:manual-test #N "ok" / "fix: ..." yanıtını bekler.
476
476
 
477
- Design Check (mock-mod vs Figma, yalnızca lokal - dev-toolkit-mcp design_* tool'larıyla):
477
+ Design Check (mock-mod vs Figma, yalnızca lokal - multi-agent-toolkit-mcp design_* tool'larıyla):
478
478
 
479
479
  /multi-agent:design-check Tüm modül tasarım denetimi: repo+modül seç, mock desteğini geçitle,
480
480
  her state sürücüsünü (launch arg, senaryo case'leri, senaryo kodları,
@@ -491,7 +491,7 @@ Design Check (mock-mod vs Figma, yalnızca lokal - dev-toolkit-mcp design_* to
491
491
  # "Senaryo / prefix / launch-arg gerektirir" gerekçe değildir; o state'lere ulaşmak koşunun işidir.
492
492
  # Canlı ekranın Figma karşılığı kesin bulunamazsa SANA screenshot'ı gösterip node-id sorar.
493
493
 
494
- dev-toolkit-mcp design_* tool takımını sürer (+ ios_* / android_* cihaz kontrolü).
494
+ multi-agent-toolkit-mcp design_* tool takımını sürer (+ ios_* / android_* cihaz kontrolü).
495
495
 
496
496
  ------------------------------------------------------------
497
497