@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.
- package/CHANGELOG.md +33 -1
- package/README.md +3 -3
- package/README.tr.md +3 -3
- package/install/_mcp-register.mjs +28 -3
- package/install/claude.mjs +1 -1
- package/install/codex.mjs +2 -2
- package/install/index.mjs +5 -5
- package/install/templates/copilot-instructions.md +2 -2
- package/package.json +3 -2
- package/pipeline/commands/archive-guard.md +6 -6
- package/pipeline/commands/multi-agent/channels/SKILL.md +10 -10
- package/pipeline/commands/multi-agent/design-check/SKILL.md +13 -13
- package/pipeline/commands/multi-agent/help/SKILL.md +8 -8
- package/pipeline/commands/multi-agent/refactor/SKILL.md +13 -13
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/sync/SKILL.md +16 -16
- package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +1 -1
- package/pipeline/commands/sim-test.md +4 -4
- package/pipeline/lib/post-pr-review.sh +6 -8
- package/pipeline/multi-agent-refs/android-guide.md +1 -1
- package/pipeline/multi-agent-refs/audit-guide.md +1 -1
- package/pipeline/multi-agent-refs/channels/confluence.md +1 -1
- package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
- package/pipeline/multi-agent-refs/channels/jira.md +17 -1
- package/pipeline/multi-agent-refs/channels/pr-review-actions.md +8 -8
- package/pipeline/multi-agent-refs/channels/wiki.md +1 -1
- package/pipeline/multi-agent-refs/cross-cli-contract.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +4 -4
- package/pipeline/multi-agent-refs/phases/phase-7-report.md +1 -1
- package/pipeline/multi-agent-refs/refactor/dev-toolkit-research.md +1 -1
- package/pipeline/multi-agent-refs/rules.md +1 -1
- package/pipeline/multi-agent-refs/swiftui-guide.md +1 -1
- package/pipeline/preferences-template.json +3 -3
- package/pipeline/schemas/agent-state.schema.json +1 -1
- package/pipeline/schemas/prefs.schema.json +2 -2
- package/pipeline/scripts/pre-push-check.sh +89 -9
- package/pipeline/scripts/render-work-summary.sh +19 -13
- package/pipeline/scripts/uninstall.mjs +22 -15
- package/pipeline/scripts/update-issue-progress.sh +4 -4
- package/pipeline/scripts/usage-report.mjs +2 -2
- package/pipeline/skills/.skills-index.json +3 -3
- package/pipeline/skills/shared/README.md +2 -2
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +16 -16
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +4 -4
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +13 -13
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +1 -1
- 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 `
|
|
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 `
|
|
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 `
|
|
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/
|
|
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 `
|
|
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 `
|
|
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/
|
|
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 = "
|
|
32
|
-
export const MCP_SERVER_PACKAGE = "@mmerterden/
|
|
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
|
|
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.
|
package/install/claude.mjs
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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/
|
|
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.
|
|
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/
|
|
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
|
-
> `
|
|
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
|
-
|
|
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/
|
|
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/
|
|
38
|
+
5. If `@mmerterden/multi-agent-toolkit-mcp` is not installed, prompt the user:
|
|
39
39
|
```
|
|
40
|
-
npm i -g @mmerterden/
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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` +
|
|
234
|
-
| `errors == 0, warnings > 0` | `### Store compliance` +
|
|
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
|
|
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
|
|
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
|
-
-
|
|
259
|
-
-
|
|
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
|
|
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,
|
|
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 `
|
|
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** - `
|
|
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']['
|
|
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` → `
|
|
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
|
-
|
|
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
|
-
|
|
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: `
|
|
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
|
-
|
|
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) + `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 +
|
|
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
|
|
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
|
|
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 +
|
|
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 +
|
|
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 -
|
|
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
|
-
|
|
494
|
+
multi-agent-toolkit-mcp design_* tool takımını sürer (+ ios_* / android_* cihaz kontrolü).
|
|
495
495
|
|
|
496
496
|
------------------------------------------------------------
|
|
497
497
|
|