@mmerterden/multi-agent-pipeline 16.10.0 → 16.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +110 -1
- package/README.tr.md +111 -1
- package/install/templates/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/analysis/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/design-check/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/help/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/language/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/local/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/purge/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/resume-local/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/review/SKILL.md +7 -6
- package/pipeline/commands/multi-agent/setup/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/stack/SKILL.md +12 -13
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
- package/pipeline/lib/extract-conventions.sh +19 -18
- package/pipeline/multi-agent-refs/_account-picker.md +1 -1
- package/pipeline/multi-agent-refs/_dev-context.md +2 -2
- package/pipeline/multi-agent-refs/_input-parser.md +1 -1
- package/pipeline/multi-agent-refs/analysis/evidence.md +4 -4
- package/pipeline/multi-agent-refs/analysis/intake.md +112 -36
- package/pipeline/multi-agent-refs/analysis/locked.md +1 -1
- package/pipeline/multi-agent-refs/analysis/render.md +37 -14
- package/pipeline/multi-agent-refs/analysis/synthesis.md +7 -7
- package/pipeline/multi-agent-refs/analysis-template-corporate.md +1 -1
- package/pipeline/multi-agent-refs/analysis-template.md +6 -6
- package/pipeline/multi-agent-refs/channels/confluence.md +1 -0
- package/pipeline/multi-agent-refs/channels/pr.md +2 -2
- package/pipeline/multi-agent-refs/conventions-defaults.md +13 -13
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +1 -1
- package/pipeline/multi-agent-refs/phases/modes.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +10 -6
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +6 -5
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +4 -4
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +7 -7
- package/pipeline/multi-agent-refs/picker-contract.md +29 -4
- package/pipeline/multi-agent-refs/readiness-review.md +1 -1
- package/pipeline/multi-agent-refs/rules.md +4 -4
- package/pipeline/multi-agent-refs/{frontend-guide.md → web-guide.md} +2 -2
- package/pipeline/schemas/analysis-output.schema.json +1 -1
- package/pipeline/schemas/analysis-spec.schema.json +3 -3
- package/pipeline/schemas/prefs.schema.json +18 -2
- package/pipeline/scripts/gen-skills-index.mjs +1 -1
- package/pipeline/scripts/validate-analysis-doc.mjs +7 -3
- package/pipeline/scripts/validate-analysis.mjs +6 -1
- package/pipeline/scripts/write-state.mjs +29 -11
- package/pipeline/skills/.skills-index.json +24 -2
- package/pipeline/skills/shared/README.md +9 -7
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +11 -12
- package/pipeline/skills/skills-index.md +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,35 @@ Internal file-layout changes that don't affect the slash-command surface are sti
|
|
|
16
16
|
|
|
17
17
|
## [Unreleased]
|
|
18
18
|
|
|
19
|
+
## [16.11.0] - 2026-08-27
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **Picker option labels now follow `outputLanguage`.** Only the `AskUserQuestion` `header` chip stays English, because it is capped at 12 characters and most Turkish equivalents overflow it. A Turkish run used to render a Turkish question with English buttons, which reads as a half-translated dialogue rather than a contract. `rules.md` carries the new per-field matrix; `picker-contract.md` carries what the caller now owns: branch on which option was picked, never on its rendered text, and pass `default` / `ASK_CHOICE_DEFAULT` as a 1-based index. The host's own **Other** row is injected in English and no run can localize it.
|
|
24
|
+
- **`Frontend` is `Web` across the pipeline** - the platform picker, the stack command, the schemas, the conventions tables, the phase docs and `frontend-guide.md`, now `web-guide.md`. The published `ai-frontend-toolkit` plugin id, the `frontendRepos` / `frontendRoots` prefs keys and the `frontend` stack alias all keep working: `web` is canonical and `frontend` still resolves, so nothing written before this release stops loading. `webRepos` / `webRoots` are the new spelling; the old pair is documented as deprecated rather than removed.
|
|
25
|
+
- **A repo-less analysis run keeps its channel split.** It used to flatten everything into one document because there were no repo conventions to project onto. But a phone screen and a browser screen carry different requirements whether or not a repository exists; only the *projection* half of the split needed conventions. Channels are now derived from the evidence (`intake.md` Step 3 carries the signal table) and one document is emitted per channel. `mobile` stays one channel rather than iOS plus Android, since without conventions nothing tells the two apart.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- **The depth question passed a label as `ASK_CHOICE_DEFAULT`.** With labels localized, `"Full"` matches nothing on a Turkish run, `ask-choice.sh` falls through, and a non-TTY silently takes option one - the exact failure Phase 0 Step 7.5 was written to prevent. It passes the index now. Two more sites branched on a literal label (the plan gate and the review post-prompt) and now branch on the option.
|
|
30
|
+
- **The analysis source questions asked all seven in one `AskUserQuestion` call**, which the host rejects at 4. Every run improvised its own grouping, and the improvised split separated the Document question from the Confluence one. The split is fixed at two batches now: what the feature is (Figma, Confluence, Document, Jira), then what constrains it (Swagger, Standards, Firebase). A spec arrives as an attached `.docx` or `.pdf` at least as often as a Confluence page, so both are asked on the same screen.
|
|
31
|
+
- **Questions feeding only the development layer are no longer asked when no platform is selected.** With `platforms[]` empty that layer does not render, so the Standards and UI Tests questions spent the user's attention on answers nothing would consume. Firebase and A11y depth are still asked - they land in Part B, which does render.
|
|
32
|
+
- **Confluence and Jira dispatch had no rule for a repo-less run.** Both were written only for the per-platform case, so "one page per platform" and the `h2. Platform: <X>` separators had nothing to bind to. They now cover the derived channels, and a single channel-agnostic document gets no suffix and no separator.
|
|
33
|
+
- **A Confluence frame gallery shipped filenames where the pictures should be.** The analysis dispatch described the conversion, the attachment upload and the `<ac:image>` injection as three hand-rolled steps, while `md2confluence-v3.py` already implements all three. Hand-rolling is where the image reference got lost. Dispatch calls the script with `--attachments-dir` now and surfaces its `image reference has no matching attachment` warnings instead of reporting a clean publish; the conversion table documents that the converter degrades a missing file to a text link, which is the diagnosis for a page full of filenames.
|
|
34
|
+
- **`language/SKILL.md` claimed PR bodies, Jira comments and wiki pages are always English**, contradicting the `rules.md` matrix that routes all three through `outputLanguage`. Commit messages, PR title prefixes, branch names and identifiers stay English; the bodies a human reads do not.
|
|
35
|
+
- **The analysis command cited the wrong sections for two inputs** - Standards as Section 7 and Firebase as Section 6, where the template puts them at 13.7 and 11.
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- **A `.docx` / `.pdf` / `.md` / `.txt` spec is a first-class analysis source**, asked next to the Confluence question. `fetch-document.sh` reads `.docx` with the Python standard library, so `python-docx` is neither imported nor needed; `.pdf` needs a `pdftotext` binary and degrades to referenced-but-not-fetched without one. `/multi-agent:setup` reports that binary as an advisory dependency, never a halt.
|
|
40
|
+
- **A full command catalog in both READMEs** - 53 sub-commands in nine groups, the 8 subagents, and the two compliance skills that are not commands. The list previously existed only inside `/multi-agent:help`.
|
|
41
|
+
|
|
42
|
+
### Internal
|
|
43
|
+
|
|
44
|
+
- The analysis ref ceiling moves 145000 -> 148000. Unlike the v16.6.0 raise this one is not compensating for a measurement error: the tree gained three features and the number is right. About 1.4 kB of new prose was trimmed back before the ceiling was touched.
|
|
45
|
+
- `smoke-language-matrix.sh` and `smoke-language-axis.sh` now assert the new rule in both directions - label follows `outputLanguage`, header stays English - and three more phrasings were added to the contradiction list after one slipped past the old set.
|
|
46
|
+
|
|
47
|
+
|
|
19
48
|
### Fixed
|
|
20
49
|
|
|
21
50
|
- **The website sync committed under whatever identity the run carried, and the site silently stopped updating.** Step 4 ran a bare `git commit`, so the commit took the active account's address. The deploy platform builds only a commit whose author is a contributor on the project; any other author is accepted by the push and then never built - the deployment is created, reports `readyState: BLOCKED` (rendered by the CLI as `UNKNOWN` with a 0ms build), and the live site keeps serving the previous version. v16.4.0 and v16.5.0 were both pushed that way, neither was ever built, and both syncs reported the website as done.
|
|
@@ -26,6 +55,14 @@ Internal file-layout changes that don't affect the slash-command surface are sti
|
|
|
26
55
|
|
|
27
56
|
- **`smoke-website-deploy-identity.sh` (20 assertions).** It runs the script against throwaway repos with real remotes rather than grepping the doc: the happy path lands and pushes, an exported `GIT_AUTHOR_EMAIL` halts with the commit still local, an unchanged tree makes no empty commit, a matching config is preserved while a wrong name is corrected, and missing or non-repository arguments exit 2. Wiring is asserted separately, since a correct script nothing calls is its own failure mode.
|
|
28
57
|
|
|
58
|
+
## [16.10.1] - 2026-08-26
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- **`write-state.mjs` could delete a live lock and lose a writer's update.** The stale-lock reclaim deleted by path: between judging a lock stale and unlinking it, the holder can release and a third writer can acquire a fresh one, so the unlink removed a *live* lock and two writers then held it. It is the same failure the PID-window comment in that file already describes, at a different point in the acquire loop, and it survived because it only reproduces under load - `smoke-write-state.sh` failed inside a full gate run and passed 12/12 when run alone. Reclaim is now by identity: the inode and mtime judged stale must still be the file at that path, otherwise it belongs to somebody else and is left alone. Twelve runs under artificial load are clean, which is evidence and not proof - a race cannot be proven absent.
|
|
63
|
+
|
|
64
|
+
- **Counts that had drifted from the tree.** `skills-index.md` and `skills/shared/README.md` still said 208 skills against 210 on disk; both are generated, so they were regenerated rather than hand-edited. `/multi-agent:update` quoted "245 scripts, 208 skills" for what an install lays down; it is 263 and 210. A comment in `smoke-command-inventory.sh` used "51 commands" as its example, which is the kind of number that goes stale the moment a command lands - it now says what it means without pinning a figure.
|
|
65
|
+
|
|
29
66
|
## [16.10.0] - 2026-08-26
|
|
30
67
|
|
|
31
68
|
Three debts the last few releases kept naming, closed.
|
package/README.md
CHANGED
|
@@ -83,7 +83,116 @@ The discipline behind all of this - bounded loops, evidence gates, token-budgete
|
|
|
83
83
|
| Audit | `/multi-agent:design-check` | Mock-mode vs Figma conformance, local-only |
|
|
84
84
|
| Audit | `/multi-agent:testflight-validation` | Pre-submission gates for a TestFlight build: static archive audit → Apple's `altool --validate-app` → Review-Guidelines check. Validates only, never uploads |
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
Depth, autopilot and `--local` are the only knobs on the run itself; everything else is its own command. The full catalog is below.
|
|
87
|
+
|
|
88
|
+
## Commands
|
|
89
|
+
|
|
90
|
+
`/multi-agent` plus 53 sub-commands. `/multi-agent:help` renders the same catalog in your terminal, in your `outputLanguage`.
|
|
91
|
+
|
|
92
|
+
### Pipeline entries
|
|
93
|
+
|
|
94
|
+
| Command | What it does |
|
|
95
|
+
|---|---|
|
|
96
|
+
| `/multi-agent "task"` | Full pipeline in a worktree. Asks Full or Short depth at Phase 0 |
|
|
97
|
+
| `/multi-agent:local "task"` | Same pipeline on the current branch, no worktree |
|
|
98
|
+
| `/multi-agent:autopilot "task"` | Worktree, no confirmations, always Full |
|
|
99
|
+
| `/multi-agent:local-autopilot "task"` | Current branch, no confirmations, always Full |
|
|
100
|
+
| `/multi-agent:resume-local` | Pipeline tail over work already done locally: Review → Build+Test → Commit/PR → Report. No dev phase |
|
|
101
|
+
|
|
102
|
+
### Task control
|
|
103
|
+
|
|
104
|
+
| Command | What it does |
|
|
105
|
+
|---|---|
|
|
106
|
+
| `/multi-agent:status` | Every task's ID, phase, branch and state |
|
|
107
|
+
| `/multi-agent:log [#N]` | Show a task's `agent-log.md` (most recent by default) |
|
|
108
|
+
| `/multi-agent:resume [#N]` | Carry a stopped or failed task on from its last phase |
|
|
109
|
+
| `/multi-agent:kill [#N]` | Stop a task, remove its worktree and branch |
|
|
110
|
+
| `/multi-agent:search` | Ranked search across every task log; `--semantic` queries the triage corpus |
|
|
111
|
+
| `/multi-agent:garbage-collect` | Sweep leftover scratch, orphan worktrees and offloaded payloads. Dry-run first |
|
|
112
|
+
| `/multi-agent:prune-logs` | Delete per-task logs by age / project / task. Audit trail and metrics kept |
|
|
113
|
+
| `/multi-agent:purge` | Wipe every worktree, branch, log and state file. Double confirmation |
|
|
114
|
+
|
|
115
|
+
### Review
|
|
116
|
+
|
|
117
|
+
| Command | What it does |
|
|
118
|
+
|---|---|
|
|
119
|
+
| `/multi-agent:review` | Parallel review of a branch diff or a PR; inline comments + approve/needs-work on PR input |
|
|
120
|
+
| `/multi-agent:review-jira` | Grade a Jira issue's readiness for development, comment the gaps |
|
|
121
|
+
| `/multi-agent:review-issue` | Same grading for a GitHub issue |
|
|
122
|
+
| `/multi-agent:review-analysis` | Review a written analysis document; findings cite the Locked rule they break |
|
|
123
|
+
| `/multi-agent:diff-explain` | Map a Phase 4 triage finding back to the diff lines that caused it |
|
|
124
|
+
| `/multi-agent:refactor` | Best-practice extraction + bug hunt + derived-skill drift + toolkit MCP research → one plan |
|
|
125
|
+
| `/multi-agent:scan` | Skill security scan of local skill directories against a tiered pattern catalog |
|
|
126
|
+
| `/multi-agent:prune-prompts` | Zero-base review of the always-on instruction footprint; keep / trial / delete per rule |
|
|
127
|
+
| `/multi-agent:ios-coding-standard` | Audit an iOS module against the 99-rule registry, produce a remediation plan |
|
|
128
|
+
|
|
129
|
+
### Analysis
|
|
130
|
+
|
|
131
|
+
| Command | What it does |
|
|
132
|
+
|---|---|
|
|
133
|
+
| `/multi-agent:analysis` | Standalone feature spec: global (23-section handoff) or corporate (IG/UC/FG) profile |
|
|
134
|
+
| `/multi-agent:analysis-resolve` | Answer an analysis doc's Section 20 open questions one row at a time |
|
|
135
|
+
| `/multi-agent:complaint-analysis` | Customer-complaint triage with Graylog evidence: client / bff root cause, or core routing |
|
|
136
|
+
|
|
137
|
+
### Testing on a device
|
|
138
|
+
|
|
139
|
+
| Command | What it does |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `/multi-agent:test` | UI Bug Hunter on a booted simulator or emulator: screenshot, tap, analyze |
|
|
142
|
+
| `/multi-agent:test-dark-mode` | Walk every screen light then dark, report contrast and colour bugs |
|
|
143
|
+
| `/multi-agent:test-accessibility` | VoiceOver labels, sub-44pt tap targets, contrast, traits |
|
|
144
|
+
| `/multi-agent:test-dynamic-type` | Re-walk every screen at XL through accessibility-XL, report truncation |
|
|
145
|
+
| `/multi-agent:test-screenshots [locale]` | App Store screenshot set in a locale (defaults to `tr`) |
|
|
146
|
+
| `/multi-agent:manual-test` | Phase 5 standalone: check out the task branch and prepare it for Xcode |
|
|
147
|
+
|
|
148
|
+
### Design, build and store
|
|
149
|
+
|
|
150
|
+
| Command | What it does |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `/multi-agent:design-check` | Mock-mode vs Figma audit with a coverage gate; annotated HTML + PDF report |
|
|
153
|
+
| `/multi-agent:store-ready` | Pre-submission gates for iOS and Android: package audit, store validation, policy review |
|
|
154
|
+
| `/multi-agent:testflight-validation` | iOS-pinned alias of `store-ready`. Validates only, never uploads |
|
|
155
|
+
| `/multi-agent:build-optimize` | Benchmark an Xcode build, run the analyzers, produce a recommend-first plan |
|
|
156
|
+
|
|
157
|
+
### Tickets and reporting
|
|
158
|
+
|
|
159
|
+
| Command | What it does |
|
|
160
|
+
|---|---|
|
|
161
|
+
| `/multi-agent:jira` | Browse your open Jira issues → pick → branch → mode → launch |
|
|
162
|
+
| `/multi-agent:issue` | Browse unassigned GitHub issues → pick → auto-assign → launch |
|
|
163
|
+
| `/multi-agent:create-jira` | Draft a Task / Bug / Story to the project's own conventions, preview before create |
|
|
164
|
+
| `/multi-agent:channels` | Post the multi-channel report: Jira, Confluence, Wiki, PR description, board status |
|
|
165
|
+
| `/multi-agent:feedback` | Send one message to the maintainer. Only your text is sent, no logs or paths |
|
|
166
|
+
|
|
167
|
+
### Your own routines
|
|
168
|
+
|
|
169
|
+
| Command | What it does |
|
|
170
|
+
|---|---|
|
|
171
|
+
| `/multi-agent:save [name]` | Save a recurring job as a reusable `/multi-agent:<name>`. Local-only, never synced |
|
|
172
|
+
| `/multi-agent:routines` | List your saved routines and what each does |
|
|
173
|
+
| `/multi-agent:forget [name]` | Remove a saved routine and its registry entry |
|
|
174
|
+
|
|
175
|
+
### Setup and maintenance
|
|
176
|
+
|
|
177
|
+
| Command | What it does |
|
|
178
|
+
|---|---|
|
|
179
|
+
| `/multi-agent:setup` | First-run wizard: keychain token discovery, git identity, pipeline preparation |
|
|
180
|
+
| `/multi-agent:stack [ids]` | Enable the marketplace plugin(s) for this repo. Multi-select |
|
|
181
|
+
| `/multi-agent:language [en\|tr]` | Show or set `outputLanguage`; `promptLanguage` stays English |
|
|
182
|
+
| `/multi-agent:sync` | One-shot sync: Claude Code, Copilot CLI, pipeline repo, website, toolkit MCP |
|
|
183
|
+
| `/multi-agent:update` | Update to the latest published npm release and run migrations |
|
|
184
|
+
| `/multi-agent:uninstall` | Remove the pipeline from every CLI. Keychain tokens always left intact |
|
|
185
|
+
| `/multi-agent:help` | This catalog, in the terminal, in your `outputLanguage` |
|
|
186
|
+
|
|
187
|
+
Four names are kept only as redirects: `:dev` and `:dev-local` point at `/multi-agent` and `:local` answered Short, and `:dev-autopilot` / `:dev-local-autopilot` have no equivalent - "fast plus unattended" was removed in v16.0.0.
|
|
188
|
+
|
|
189
|
+
### Subagents
|
|
190
|
+
|
|
191
|
+
Eight are installed alongside the commands and dispatched by the phases: `explorer` and `task-clarifier` (Phase 0-1), `ios-architect` / `android-architect` / `backend-architect` (Phase 2), `dev-critic` (Phase 3), `code-reviewer` and `security-auditor` (Phase 4).
|
|
192
|
+
|
|
193
|
+
### Skills that are not commands
|
|
194
|
+
|
|
195
|
+
Two compliance skills install on every host and back the store gates: `apple-archive-compliance` (18-rule Apple review scan with ITMS code mapping) and `google-play-compliance` (21-rule Play policy catalog with Console error codes). Everything else stack-shaped - SwiftUI, Compose, backend, frontend - comes from the marketplace plugins described below.
|
|
87
196
|
|
|
88
197
|
## Stacks
|
|
89
198
|
|
package/README.tr.md
CHANGED
|
@@ -78,11 +78,121 @@ Bunun arkasındaki disiplin - sınırlı loop'lar, kanıt kapıları, token-büt
|
|
|
78
78
|
| Full | `/multi-agent "task"` | Tüm 8 faz, interaktif |
|
|
79
79
|
| Autopilot | `/multi-agent:autopilot "task"` | 7 faz (interaktif Test kapısı atlanır), onaysız |
|
|
80
80
|
| Local | `/multi-agent:local "task"` | İnteraktif Test kapısı hariç tam pipeline, mevcut branch (worktree yok) |
|
|
81
|
+
| Derinlik | Faz 0 Adım 7.5'te sorulur | Full (tüm fazlar) veya Short (Dev → Review → Test → Commit → Report). Komut adı değil - `/multi-agent` ve `:local` sorar, iki autopilot girişi de her zaman Full koşar |
|
|
81
82
|
| Ship | `/multi-agent:resume-local` | Lokal iş üzerinde review→test→commit→report kuyruğunu çalıştır |
|
|
82
83
|
| Audit | `/multi-agent:design-check` | Mock-mode vs Figma uygunluğu, yalnızca lokal |
|
|
83
84
|
| Audit | `/multi-agent:testflight-validation` | TestFlight build için pre-submission kapıları: statik archive denetimi → Apple'ın `altool --validate-app`'i → Review-Guidelines kontrolü. Yalnızca doğrular, asla yüklemez |
|
|
84
85
|
|
|
85
|
-
|
|
86
|
+
Koşunun kendisinde ayarlanabilen tek şey derinlik, autopilot ve `--local`; geri kalan her şey kendi komutu. Tam katalog aşağıda.
|
|
87
|
+
|
|
88
|
+
## Komutlar
|
|
89
|
+
|
|
90
|
+
`/multi-agent` ve 53 alt komut. `/multi-agent:help` aynı katalogu terminalde, `outputLanguage` ayarına göre gösterir.
|
|
91
|
+
|
|
92
|
+
### Pipeline girişleri
|
|
93
|
+
|
|
94
|
+
| Komut | Ne yapar |
|
|
95
|
+
|---|---|
|
|
96
|
+
| `/multi-agent "task"` | Worktree'de tam pipeline. Faz 0'da Full mu Short mu diye sorar |
|
|
97
|
+
| `/multi-agent:local "task"` | Aynı pipeline, mevcut branch üzerinde, worktree yok |
|
|
98
|
+
| `/multi-agent:autopilot "task"` | Worktree, onay yok, her zaman Full |
|
|
99
|
+
| `/multi-agent:local-autopilot "task"` | Mevcut branch, onay yok, her zaman Full |
|
|
100
|
+
| `/multi-agent:resume-local` | Lokalde bitmiş iş için pipeline kuyruğu: Review → Build+Test → Commit/PR → Report. Dev fazı yok |
|
|
101
|
+
|
|
102
|
+
### Görev kontrolü
|
|
103
|
+
|
|
104
|
+
| Komut | Ne yapar |
|
|
105
|
+
|---|---|
|
|
106
|
+
| `/multi-agent:status` | Her görevin ID'si, fazı, branch'i ve durumu |
|
|
107
|
+
| `/multi-agent:log [#N]` | Görevin `agent-log.md` dosyası (varsayılan: en son görev) |
|
|
108
|
+
| `/multi-agent:resume [#N]` | Durmuş ya da hata almış görevi kaldığı fazdan sürdürür |
|
|
109
|
+
| `/multi-agent:kill [#N]` | Görevi durdurur, worktree'sini ve branch'ini siler |
|
|
110
|
+
| `/multi-agent:search` | Tüm görev loglarında sıralamalı arama; `--semantic` triyaj corpus'unu sorgular |
|
|
111
|
+
| `/multi-agent:garbage-collect` | Artık scratch, sahipsiz worktree ve offload edilmiş payload'ları süpürür. Önce dry-run |
|
|
112
|
+
| `/multi-agent:prune-logs` | Görev loglarını yaş / proje / görev filtresiyle siler. Denetim izi ve metrikler kalır |
|
|
113
|
+
| `/multi-agent:purge` | Tüm worktree, branch, log ve state dosyalarını siler. Çift onay |
|
|
114
|
+
|
|
115
|
+
### Review
|
|
116
|
+
|
|
117
|
+
| Komut | Ne yapar |
|
|
118
|
+
|---|---|
|
|
119
|
+
| `/multi-agent:review` | Branch diff'i veya PR üzerinde paralel review; PR girdisinde inline yorum + approve/needs-work |
|
|
120
|
+
| `/multi-agent:review-jira` | Bir Jira issue'sunun geliştirmeye hazırlığını puanlar, eksikleri yorum olarak yazar |
|
|
121
|
+
| `/multi-agent:review-issue` | Aynı puanlama, GitHub issue'su için |
|
|
122
|
+
| `/multi-agent:review-analysis` | Yazılmış analiz dokümanını review eder; bulgular ihlal edilen Locked kuralını gösterir |
|
|
123
|
+
| `/multi-agent:diff-explain` | Faz 4 triyaj bulgusunu onu doğuran diff satırlarına eşler |
|
|
124
|
+
| `/multi-agent:refactor` | Best-practice çıkarımı + bug avı + türetilmiş skill drift'i + toolkit MCP araştırması → tek plan |
|
|
125
|
+
| `/multi-agent:scan` | Yerel skill dizinlerini kademeli desen kataloğuna göre güvenlik taraması |
|
|
126
|
+
| `/multi-agent:prune-prompts` | Sürekli yüklü talimat yükünün sıfır-tabanlı incelemesi; kural başına tut / dene / sil |
|
|
127
|
+
| `/multi-agent:ios-coding-standard` | Bir iOS modülünü 99 kurallık registry'ye göre denetler, düzeltme planı çıkarır |
|
|
128
|
+
|
|
129
|
+
### Analiz
|
|
130
|
+
|
|
131
|
+
| Komut | Ne yapar |
|
|
132
|
+
|---|---|
|
|
133
|
+
| `/multi-agent:analysis` | Bağımsız özellik spesifikasyonu: global (23 bölümlük doküman) veya kurumsal (IG/UC/FG) profili |
|
|
134
|
+
| `/multi-agent:analysis-resolve` | Analiz dokümanının Bölüm 20 açık sorularını satır satır cevaplar |
|
|
135
|
+
| `/multi-agent:complaint-analysis` | Graylog kanıtıyla şikayet triyajı: client / bff kök neden ya da core'a yönlendirme |
|
|
136
|
+
|
|
137
|
+
### Cihaz üstü test
|
|
138
|
+
|
|
139
|
+
| Komut | Ne yapar |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `/multi-agent:test` | Açık simülatör veya emülatörde UI Bug Hunter: screenshot, tap, analiz |
|
|
142
|
+
| `/multi-agent:test-dark-mode` | Her ekranı önce light sonra dark gezer, kontrast ve renk hatalarını raporlar |
|
|
143
|
+
| `/multi-agent:test-accessibility` | VoiceOver etiketleri, 44pt altı dokunma alanları, kontrast, trait'ler |
|
|
144
|
+
| `/multi-agent:test-dynamic-type` | Her ekranı XL'den accessibility-XL'e kadar yeniden gezer, kırpılmaları raporlar |
|
|
145
|
+
| `/multi-agent:test-screenshots [dil]` | Bir dilde App Store screenshot seti (varsayılan `tr`) |
|
|
146
|
+
| `/multi-agent:manual-test` | Faz 5'in bağımsız hali: görev branch'ine geçer, Xcode için hazırlar |
|
|
147
|
+
|
|
148
|
+
### Tasarım, build ve store
|
|
149
|
+
|
|
150
|
+
| Komut | Ne yapar |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `/multi-agent:design-check` | Kapsam geçitli mock-mode vs Figma denetimi; annotasyonlu HTML + PDF rapor |
|
|
153
|
+
| `/multi-agent:store-ready` | iOS ve Android için yayın öncesi kapılar: paket denetimi, store doğrulaması, politika incelemesi |
|
|
154
|
+
| `/multi-agent:testflight-validation` | `store-ready`'nin iOS'a sabitlenmiş hali. Yalnızca doğrular, asla yüklemez |
|
|
155
|
+
| `/multi-agent:build-optimize` | Xcode build'ini ölçer, analizörleri koşar, önce-öneri yaklaşımlı plan üretir |
|
|
156
|
+
|
|
157
|
+
### Ticket ve raporlama
|
|
158
|
+
|
|
159
|
+
| Komut | Ne yapar |
|
|
160
|
+
|---|---|
|
|
161
|
+
| `/multi-agent:jira` | Açık Jira issue'larını gez → seç → branch → mod → başlat |
|
|
162
|
+
| `/multi-agent:issue` | Atanmamış GitHub issue'larını gez → seç → otomatik ata → başlat |
|
|
163
|
+
| `/multi-agent:create-jira` | Projenin kendi konvansiyonlarına uygun Task / Bug / Story taslağı, oluşturmadan önce önizleme |
|
|
164
|
+
| `/multi-agent:channels` | Çok kanallı raporu gönderir: Jira, Confluence, Wiki, PR açıklaması, board durumu |
|
|
165
|
+
| `/multi-agent:feedback` | Bakımcıya tek mesaj. Yalnızca yazdığın metin gider, log ve yol gitmez |
|
|
166
|
+
|
|
167
|
+
### Kendi rutinlerin
|
|
168
|
+
|
|
169
|
+
| Komut | Ne yapar |
|
|
170
|
+
|---|---|
|
|
171
|
+
| `/multi-agent:save [ad]` | Tekrar eden bir işi `/multi-agent:<ad>` olarak kaydeder. Local-only, asla sync edilmez |
|
|
172
|
+
| `/multi-agent:routines` | Kaydettiğin rutinleri ve ne yaptıklarını listeler |
|
|
173
|
+
| `/multi-agent:forget [ad]` | Kayıtlı bir rutini ve registry kaydını siler |
|
|
174
|
+
|
|
175
|
+
### Kurulum ve bakım
|
|
176
|
+
|
|
177
|
+
| Komut | Ne yapar |
|
|
178
|
+
|---|---|
|
|
179
|
+
| `/multi-agent:setup` | İlk kurulum sihirbazı: keychain token keşfi, git identity, pipeline hazırlığı |
|
|
180
|
+
| `/multi-agent:stack [id]` | Bu repo için marketplace plugin'lerini etkinleştirir. Çoklu seçim |
|
|
181
|
+
| `/multi-agent:language [en\|tr]` | `outputLanguage`'i gösterir veya değiştirir; `promptLanguage` İngilizce kalır |
|
|
182
|
+
| `/multi-agent:sync` | Tek atımlık senkron: Claude Code, Copilot CLI, pipeline repo, website, toolkit MCP |
|
|
183
|
+
| `/multi-agent:update` | npm'deki son yayına günceller ve migration'ları koşar |
|
|
184
|
+
| `/multi-agent:uninstall` | Pipeline'ı her CLI'dan kaldırır. Keychain token'larına hiç dokunmaz |
|
|
185
|
+
| `/multi-agent:help` | Bu katalog, terminalde, `outputLanguage`'ine göre |
|
|
186
|
+
|
|
187
|
+
Dört ad yalnızca yönlendirme olarak duruyor: `:dev` ve `:dev-local` sırasıyla `/multi-agent` ve `:local` çalıştırıp Short seçmeye yönlendirir, `:dev-autopilot` ile `:dev-local-autopilot` ise karşılıksız - "hızlı artı gözetimsiz" v16.0.0'da kaldırıldı.
|
|
188
|
+
|
|
189
|
+
### Alt agent'lar
|
|
190
|
+
|
|
191
|
+
Komutlarla birlikte sekiz agent kurulur ve fazlar bunları çağırır: `explorer` ve `task-clarifier` (Faz 0-1), `ios-architect` / `android-architect` / `backend-architect` (Faz 2), `dev-critic` (Faz 3), `code-reviewer` ve `security-auditor` (Faz 4).
|
|
192
|
+
|
|
193
|
+
### Komut olmayan skill'ler
|
|
194
|
+
|
|
195
|
+
İki uyumluluk skill'i her host'a kurulur ve store kapılarını besler: `apple-archive-compliance` (ITMS kod eşlemeli 18 kurallı Apple review taraması) ve `google-play-compliance` (Console hata kodlu 21 kurallı Play politika kataloğu). Stack'e bağlı geri kalan her şey - SwiftUI, Compose, backend, frontend - aşağıda anlatılan marketplace plugin'lerinden gelir.
|
|
86
196
|
|
|
87
197
|
## Stack'ler
|
|
88
198
|
|
|
@@ -266,7 +266,7 @@ Always, in every mode:
|
|
|
266
266
|
Stack skill sets ship as versioned plugins in the `multi-agent-plugins` marketplace. Selecting a stack enables the matching plugin(s) in the target repo's `.claude/settings.json` `enabledPlugins`; the `ai-common-toolkit` is always enabled alongside. There is no session-start auto-swap script. Select or change the stack with:
|
|
267
267
|
|
|
268
268
|
```bash
|
|
269
|
-
multi-agent-stack [ios|android|mobile|backend|
|
|
269
|
+
multi-agent-stack [ios|android|mobile|backend|web|fullstack|all]
|
|
270
270
|
```
|
|
271
271
|
|
|
272
272
|
## UI Bug Hunter
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.11.0",
|
|
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",
|
|
@@ -12,7 +12,7 @@ Parse the user input and route to the correct sub-command.
|
|
|
12
12
|
|
|
13
13
|
**Input**: $ARGUMENTS
|
|
14
14
|
|
|
15
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` from `$HOME/.claude/multi-agent-preferences.json` and render every conversational line in it. `AskUserQuestion`
|
|
15
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` from `$HOME/.claude/multi-agent-preferences.json` and render every conversational line in it. `AskUserQuestion` renders its `question`, option `label`s and option `description`s in `outputLanguage`; only `header` stays English (<=12-char chip); external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
16
16
|
|
|
17
17
|
## Canonical Invocation (per CLI)
|
|
18
18
|
|
|
@@ -134,7 +134,7 @@ This command uses lazy loading for token efficiency. Read the relevant sub-file
|
|
|
134
134
|
| SwiftUI component task (iOS) | `$HOME/.claude/multi-agent-refs/swiftui-guide.md` |
|
|
135
135
|
| Jetpack Compose task (Android) | `$HOME/.claude/multi-agent-refs/android-guide.md` |
|
|
136
136
|
| Backend API task | `$HOME/.claude/multi-agent-refs/backend-guide.md` |
|
|
137
|
-
|
|
|
137
|
+
| Web component task | `$HOME/.claude/multi-agent-refs/web-guide.md` |
|
|
138
138
|
| Phase 1 or Phase 7 (knowledge) | `$HOME/.claude/multi-agent-refs/knowledge.md` |
|
|
139
139
|
| Token lookup needed | `$HOME/.claude/multi-agent-refs/keychain.md` |
|
|
140
140
|
| Audit tools (Phase 5/6) | `$HOME/.claude/multi-agent-refs/audit-guide.md` |
|
|
@@ -151,7 +151,7 @@ This command uses lazy loading for token efficiency. Read the relevant sub-file
|
|
|
151
151
|
- iOS detected -> load `swiftui-guide.md`
|
|
152
152
|
- Android detected -> load `android-guide.md`
|
|
153
153
|
- Python/Node.js/Go detected -> load `backend-guide.md`
|
|
154
|
-
- React/Vue/Next.js detected -> load `
|
|
154
|
+
- React/Vue/Next.js detected -> load `web-guide.md`
|
|
155
155
|
- Multiple stacks -> load all relevant guides
|
|
156
156
|
|
|
157
157
|
**Agent definitions** (used in Phase 1 and Phase 4):
|
|
@@ -12,7 +12,7 @@ This command is **independent** from the orchestrator's Phase 1 analysis (which
|
|
|
12
12
|
|
|
13
13
|
**Scope (development analysis, not a screen spec)**: this command produces a *development* analysis - what to build, the architecture plan, files to add, the test plan, and which existing components to reuse. It is NOT a design / screen-anatomy specification. The design itself is already produced elsewhere (figma-to-swiftui builds the components and binds them via Code Connect), so the analysis consumes those existing bindings as the source of truth for "what already exists" (see Phase 1b.1) instead of re-deriving the design. Do not grow this command toward exhaustive per-screen layout / gesture / state documentation; keep it development-focused.
|
|
14
14
|
|
|
15
|
-
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English (this file is read as a system prompt). `AskUserQuestion.label` and `
|
|
15
|
+
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English (this file is read as a system prompt). `AskUserQuestion.question`, `.options[].label` and `.options[].description` follow `outputLanguage`; only `header` stays English (<=12-char chip). The emitted analysis document body follows `outputLanguage` (`tr` or `en`).
|
|
16
16
|
|
|
17
17
|
## Locked decisions (do not re-ask)
|
|
18
18
|
|
|
@@ -106,7 +106,7 @@ When `phase == "cancelled_at_pass_b_preview"`:
|
|
|
106
106
|
| Path | Reason |
|
|
107
107
|
|------|--------|
|
|
108
108
|
| `~/.claude/lib/submodule-detector.sh` | Phase 0 Step 4 repo discovery |
|
|
109
|
-
| `~/.claude/lib/context-link-extractor.sh` | Phase 0 Step 5
|
|
109
|
+
| `~/.claude/lib/context-link-extractor.sh` | Phase 0 Step 5 source classifier for every question's Other input (handles `local-file`, `document`, `wiki`, `standards-confluence`, `generic-doc`, `firebase-events:names`, `firebase-events:schema`, `firebase-events:console` types) |
|
|
110
110
|
| `~/.claude/lib/fetch-swagger.sh`, `fetch-confluence.sh` | Phase 1 fetchers |
|
|
111
111
|
| Phase 1 wiki fetch chain (inline, no standalone script) | `git clone --depth 1 <repo>.wiki.git` first, `gh api repos/.../contents/<file>.md` second, WebFetch third - see the Phase 1 type table `wiki` row |
|
|
112
112
|
| `~/.claude/lib/extract-conventions.sh` | Phase 1c convention extractor (7 pattern groups, JSON output, confidence levels) |
|
|
@@ -122,7 +122,7 @@ When `phase == "cancelled_at_pass_b_preview"`:
|
|
|
122
122
|
| `$HOME/.claude/lib/jira-publish.sh` | Phase 4 Jira write: comment by default, description only on explicit choice - reads the current description first, backs it up, appends below a rule, refuses a non-empty replace without `--confirm-overwrite` |
|
|
123
123
|
| `$HOME/.claude/scripts/validate-analysis-doc.mjs` | Phase 4 pre-dispatch gate: deterministic check of the emitted per-platform doc (front-matter, never-omitted sections, humanizer punctuation, Full-mode BR traceability) |
|
|
124
124
|
| a project-supplied Confluence-embedded API-table parser (optional) | Parse endpoints from a Confluence page's Request Path / Service Name / Response Body table columns |
|
|
125
|
-
| `~/<project>-Standards.md` | Canonical home-dir standards reference (auto-detected
|
|
125
|
+
| `~/<project>-Standards.md` | Canonical home-dir standards reference (auto-detected by the Standards question's option 2; exact filename from `prefs.projects[<project>].standardsFile`) |
|
|
126
126
|
| `~/.claude/rules/*.md` | Fallback rules when `evidence.standards[]` is empty |
|
|
127
127
|
|
|
128
128
|
## Notes
|
|
@@ -131,14 +131,14 @@ When `phase == "cancelled_at_pass_b_preview"`:
|
|
|
131
131
|
- The minimum possible output (per per-platform file) is `1. Scope` + `7. Development Plan` (both always-present).
|
|
132
132
|
- If Confluence or Jira POST returns 401 / 403 during Phase 4, surface the error and offer Local fallback (the local drafts in `/tmp/` are still on disk; copying them into the repo working tree is always available).
|
|
133
133
|
- The `analysis/` directory is not in `.gitignore`; the user can `git add analysis/` manually. No auto-commit.
|
|
134
|
-
- **Per-platform file naming**: `analysis/<feature>-<platform>.md`. The `<platform>` slug is lowercase, one of `ios | android | backend |
|
|
135
|
-
- **Standards binding (
|
|
136
|
-
- **Firebase ingestion (
|
|
134
|
+
- **Per-platform file naming**: `analysis/<feature>-<platform>.md`. The `<platform>` slug is lowercase, one of `ios | android | web | backend` for a repo-backed run, or `mobile | web` for the channels a repo-less run derives from its evidence (Locked 35). `web` is the pre-`web` spelling and is still read back for older state and documents. The `<feature>` slug preserves the user's feature name with whitespace replaced by `-` (e.g. `User Profile` -> `UserProfile` or `Item-Status` depending on input shape; the renderer trims and de-duplicates dashes).
|
|
135
|
+
- **Standards binding (the Standards question)**: When `evidence.standards[]` is non-empty, every decision in Section 13 (Architecture Plan, corporate Section 17) must cite the binding source in its 13.7 Standards-binding table. The renderer enforces this by failing render if any architectural decision has no `cite:` reference; the user is prompted to either tighten the source or add a Risk row acknowledging the missing citation.
|
|
136
|
+
- **Firebase ingestion (the Firebase question)**: Console URLs are never fetched (auth-gated). Only `:names` and `:schema` inputs feed `evidence.firebase[]`. Section 11 Analytics (corporate Section 13) emits per-platform snippets but the events table itself is shared across all per-platform files (the rules / event vocabulary is one product invariant).
|
|
137
137
|
- **Wiki access fallback chain**: Phase 1 `wiki` fetcher tries (a) `git clone .wiki.git`, (b) `gh api repos/.../contents/<file>.md`, (c) raw `WebFetch` of the page URL. Only after all three fail does the entry land in `fetchErrors[]`.
|
|
138
138
|
- **Local-file safety**: `local-file` reads are scoped to `~/`, `/Users/`, and the repo's working tree. Paths outside these prefixes are rejected with `WARN: refusing to read <path>; outside allowed roots` to avoid accidental ingestion of unrelated files.
|
|
139
|
-
- **
|
|
140
|
-
- **Workspace coding documentation default**: when
|
|
141
|
-
- **Mixed paste handling**:
|
|
139
|
+
- **Standards vs Confluence vs Document split**: the Confluence question collects feature-specific spec pages and the Document question the same spec delivered as a `.docx` / `.pdf` / `.md` / `.txt` file - both describe what the feature IS and both land in `evidence.documents[]`. The Standards question collects cross-cutting documentation that constrains the development plan (architecture, coding conventions, navigation pattern). A source pasted in more than one of the three is de-duplicated (by URL, or by `realpath` for a local file) and the Standards entry wins, because it retains the binding flag.
|
|
140
|
+
- **Workspace coding documentation default**: when the Standards question's option 2 (Auto-detect) is selected, the probe also reads `prefs.projects[<project>].confluenceStandardsParent` (if set) and looks for child pages whose title starts with `Coding`, `Standards`, `Architecture`, or `Navigation`. If that fetch fails with auth, log a hint that the user should host an offline mirror at `prefs.projects[<project>].standardsFile` (canonical local fallback).
|
|
141
|
+
- **Mixed paste handling**: the Standards and Firebase Other inputs accept comma-separated mixed entries. Whitespace is trimmed; entries are de-duplicated by canonicalised string (lowercase scheme + host + path for URLs; `realpath` for local files; lowercase exact match for event names).
|
|
142
142
|
- **Repo-evidence reuse policy**: Phase 1b's catalogue is consulted by Pass B Section 7 rendering. The `direct-match` tag is the strongest signal; a `same-domain` row becomes an advisory note ("consider adapting existing X in the same feature directory"); `cross-cutting` items become a sentence in the section preamble ("reuse the cross-feature X from Common/"). See Locked decision 11.
|
|
143
143
|
|
|
144
144
|
## Required: Phase Tracker Contract
|
|
@@ -10,7 +10,7 @@ Companion command to `/multi-agent:analysis`. Takes an `analysis/<feature>-<plat
|
|
|
10
10
|
|
|
11
11
|
**Core invariant - read this twice:** the analysis doc is authoritative and forward-looking. The resolver never invents an answer; if no source produces a credible candidate, the only options offered are Defer and Other. Each Section 20 row is its own decision; never blend candidates across rows.
|
|
12
12
|
|
|
13
|
-
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English. `AskUserQuestion.label` and
|
|
13
|
+
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English. `AskUserQuestion.question`, `.options[].label` and `.options[].description` follow `prefs.global.outputLanguage`; only `header` stays English (<=12-char chip). Fragments written INTO the doc follow the doc's own front-matter `language` field (not `outputLanguage`), so a `tr` doc stays uniformly Turkish even when the session language differs.
|
|
14
14
|
|
|
15
15
|
## Inherited Locked decisions (from /multi-agent:analysis - binding here)
|
|
16
16
|
|
|
@@ -35,7 +35,7 @@ Inherited decisions: `$HOME/.claude/multi-agent-refs/analysis/locked.md`.
|
|
|
35
35
|
|
|
36
36
|
### Phase 0 - Intake
|
|
37
37
|
|
|
38
|
-
**Step 1 - Doc picker.** If `$ARGUMENTS` has a path, validate it. Otherwise glob `analysis/*-{ios,android,backend,
|
|
38
|
+
**Step 1 - Doc picker.** If `$ARGUMENTS` has a path, validate it. Otherwise glob `analysis/*-{ios,android,backend,web}.md` under cwd (and each repo root from `state.analysisSpec.repos[]` when the session still holds analysis state):
|
|
39
39
|
- 1 match: use it; echo the path, no question.
|
|
40
40
|
- 0 or 2+ matches: AskUserQuestion, `header: "Doc"`, question `<localized: "Which analysis document should we resolve?">`, options = matches (max 3) + Other for a free-typed path.
|
|
41
41
|
|
|
@@ -8,7 +8,7 @@ argument-hint: '"task" - issue URL, Jira ID, free-text, or #id (for resume)'
|
|
|
8
8
|
|
|
9
9
|
**Input**: $ARGUMENTS
|
|
10
10
|
|
|
11
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion`
|
|
11
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` renders its `question`, option `label`s and option `description`s in `outputLanguage`; only `header` stays English (<=12-char chip); external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
12
12
|
|
|
13
13
|
Run the task end-to-end with no confirmations.
|
|
14
14
|
|
|
@@ -8,7 +8,7 @@ argument-hint: "(none - operates on current repo)"
|
|
|
8
8
|
|
|
9
9
|
Wraps the vendored `xcode-build-orchestrator` skill (and its 5 specialist analyzers) so iOS users do not have to remember the orchestrator skill name. Recommend-first: no project files are modified without explicit developer approval. All output lands in `.build-benchmark/` in the current repo.
|
|
10
10
|
|
|
11
|
-
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English (this file is read as a system prompt). `AskUserQuestion.label` and `
|
|
11
|
+
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English (this file is read as a system prompt). `AskUserQuestion.question`, `.options[].label` and `.options[].description` follow `outputLanguage`; only `header` stays English (<=12-char chip). The emitted benchmark plan body (the upstream skill controls it) is English by upstream convention.
|
|
12
12
|
|
|
13
13
|
## When to use
|
|
14
14
|
|
|
@@ -25,7 +25,7 @@ Before dispatch, fail fast on non-iOS repos. Detect iOS context via the standard
|
|
|
25
25
|
|--------|--------|
|
|
26
26
|
| `*.xcodeproj` or `*.xcworkspace` in cwd | Proceed to dispatch |
|
|
27
27
|
| `Package.swift` only (SwiftPM lib, no Xcode project) | Proceed; orchestrator handles `xcodebuild -package-path` |
|
|
28
|
-
| Android / Backend /
|
|
28
|
+
| Android / Backend / Web markers only | Surface a short error: "build-optimize is iOS-only. Detected: <stack>. Use the platform-appropriate perf skill (android-performance / web-performance / etc.) instead." Exit. |
|
|
29
29
|
| No recognizable stack | Surface "no iOS project found in cwd" and exit. |
|
|
30
30
|
|
|
31
31
|
## Steps
|
|
@@ -334,7 +334,7 @@ Applying the Jira table to the PR body is the recurring failure of this step: it
|
|
|
334
334
|
|
|
335
335
|
Secondary artifacts ride along as one-line intents at the bottom of the preview: Wiki page list, wiki → Jira triad comment (when Wiki is selected and the triad is active per `$HOME/.claude/multi-agent-refs/issue-jira-triad.md`), Board status move (`{from} → {to}`), GitHub issue comment + Progress-flag sync (Phase 7 Step 1.5 - same gate, see `$HOME/.claude/multi-agent-refs/phases/phase-7-report.md`).
|
|
336
336
|
|
|
337
|
-
**Then a single AskUserQuestion** (`question`/`description` in `outputLanguage`; `
|
|
337
|
+
**Then a single AskUserQuestion** (`question`/`label`/`description` in `outputLanguage`; `header` English):
|
|
338
338
|
|
|
339
339
|
| Option | Behavior |
|
|
340
340
|
|---|---|
|
|
@@ -12,7 +12,7 @@ Triage of customer-reported errors across the layers the team owns (client apps
|
|
|
12
12
|
|
|
13
13
|
**Side-effect contract**: may write a local markdown report, post a Confluence page, or add a Jira comment/description - but **never** creates branches, worktrees, commits, or PRs. Stops at the report.
|
|
14
14
|
|
|
15
|
-
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English. `AskUserQuestion.label` and `
|
|
15
|
+
> **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - instruction prose stays English. `AskUserQuestion.question`, `.options[].label` and `.options[].description` follow `outputLanguage`; only `header` stays English (<=12-char chip). The report body follows `outputLanguage`; Graylog excerpts, verdict tokens, and external payload metadata stay English.
|
|
16
16
|
|
|
17
17
|
## Locked decisions (do not re-ask)
|
|
18
18
|
|
|
@@ -10,7 +10,7 @@ argument-hint: "[\"<free-text description>\"] [figma-url] [swagger-url] - all
|
|
|
10
10
|
|
|
11
11
|
Creates exactly one Jira issue, and only after explicit approval. The issue type (Task / Bug / Story) is asked at the start of every run. No branches, no commits, no worktrees, no pipeline chaining. The draft learns the target project's conventions from its recent same-type issues (summary format, labels, components, priority norms, test-scenario style) and offers active-sprint placement when a sprint is running.
|
|
12
12
|
|
|
13
|
-
> **Language**: instruction prose here is English. AskUserQuestion `question`/`description` and the issue content (summary + description) follow `prefs.global.outputLanguage`, like every other user-facing payload body (`rules.md` matrix). `
|
|
13
|
+
> **Language**: instruction prose here is English. AskUserQuestion `question`/`label`/`description` and the issue content (summary + description) follow `prefs.global.outputLanguage`, like every other user-facing payload body (`rules.md` matrix). Only `header` stays English (<=12-char chip).
|
|
14
14
|
|
|
15
15
|
## Issue types
|
|
16
16
|
|
|
@@ -16,7 +16,7 @@ Local, on-device design-conformance auditor. It runs the app in a **mock mode**
|
|
|
16
16
|
> 1. **`prefs.global.promptLanguage` is always `en`** - this spec and every instruction to the LLM stay English.
|
|
17
17
|
> 2. **`prefs.global.outputLanguage` is user-selectable** - applies to conversational lines and the human-readable parts of the report. Pass it to `design_report` as `report.lang`; the engine defaults to English and ships an `en` + `tr` label pack, plus per-key `report.labels` overrides.
|
|
18
18
|
>
|
|
19
|
-
> Regardless of `outputLanguage`, these stay English: `AskUserQuestion`
|
|
19
|
+
> Regardless of `outputLanguage`, these stay English: `AskUserQuestion` `header` chips, branch names, file paths, code identifiers, log lines. Option `label`s follow `outputLanguage` like the rest of the picker copy. Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
20
20
|
|
|
21
21
|
## Scope - `$ARGUMENTS`
|
|
22
22
|
|
|
@@ -113,7 +113,7 @@ for l in sys.stdin:
|
|
|
113
113
|
```
|
|
114
114
|
Branch on `supported`:
|
|
115
115
|
- **`false`** → **HALT**. Show `reason` + that no runtime mock switch / launchable app / mock fixtures were found. Tell the user this module cannot be audited by design-check and stop. Do not fabricate a comparison.
|
|
116
|
-
- **`"debug-only"`** → surface an `AskUserQuestion` warning: mocks are compiled into the Debug build via `#if DEBUG` DI, so **variants cannot be toggled at launch** - only the default Debug state is comparable. Options
|
|
116
|
+
- **`"debug-only"`** → surface an `AskUserQuestion` warning: mocks are compiled into the Debug build via `#if DEBUG` DI, so **variants cannot be toggled at launch** - only the default Debug state is comparable. Options (label + description in `outputLanguage`): option 1 semantically "Continue" - audit the single default Debug state only; option 2 semantically "Cancel" - stop.
|
|
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
|
```
|
|
@@ -239,7 +239,7 @@ Setup:
|
|
|
239
239
|
|
|
240
240
|
Key Features:
|
|
241
241
|
|
|
242
|
-
Multi-Platform iOS, Android, Backend,
|
|
242
|
+
Multi-Platform iOS, Android, Backend, Web - auto-detected
|
|
243
243
|
Build Queue xcodebuild/Gradle serialized with lock file - parallel safe
|
|
244
244
|
Stack Aware Auto-detects iOS/Android/Python/Node/Go/Docker, uses the enabled stack plugin's skills
|
|
245
245
|
Det. Gates Build + lint + test + secret scan BEFORE AI review
|
|
@@ -279,7 +279,7 @@ Examples:
|
|
|
279
279
|
/multi-agent:autopilot "LoginView dark mode fix" # iOS
|
|
280
280
|
/multi-agent "Add pagination to /api/users endpoint" # Backend
|
|
281
281
|
/multi-agent "Fix bottom nav recomposition in HomeScreen" # Android
|
|
282
|
-
/multi-agent "Responsive layout broken on tablet" #
|
|
282
|
+
/multi-agent "Responsive layout broken on tablet" # Web, choose Short
|
|
283
283
|
|
|
284
284
|
# Review current diff only
|
|
285
285
|
/multi-agent:review
|
|
@@ -514,7 +514,7 @@ Setup:
|
|
|
514
514
|
|
|
515
515
|
Temel Özellikler:
|
|
516
516
|
|
|
517
|
-
Multi-Platform iOS, Android, Backend,
|
|
517
|
+
Multi-Platform iOS, Android, Backend, Web - otomatik tespit
|
|
518
518
|
Build Queue xcodebuild/Gradle lock file ile seri - parallel güvenli
|
|
519
519
|
Stack Aware iOS/Android/Python/Node/Go/Docker algılanır, etkin stack plugin'inin skilleri kullanılır
|
|
520
520
|
Det. Gates AI review'dan ÖNCE build + lint + test + secret scan
|
|
@@ -554,7 +554,7 @@ Quality & Telemetry (advisory, default açık - prefs.global.* ile kapatılabi
|
|
|
554
554
|
/multi-agent:autopilot "LoginView dark mode fix" # iOS
|
|
555
555
|
/multi-agent "Add pagination to /api/users endpoint" # Backend
|
|
556
556
|
/multi-agent "Fix bottom nav recomposition in HomeScreen" # Android
|
|
557
|
-
/multi-agent "Responsive layout broken on tablet" #
|
|
557
|
+
/multi-agent "Responsive layout broken on tablet" # Web, Kısa seç
|
|
558
558
|
|
|
559
559
|
# Sadece mevcut diff'i review et
|
|
560
560
|
/multi-agent:review
|
|
@@ -15,9 +15,9 @@ Two-axis language preference for the pipeline:
|
|
|
15
15
|
| `promptLanguage` | Interactive prompts during a pipeline run (account picker, project picker, dev-context picker, base-branch picker, branch-name picker, maturity ack, channels picker, Phase 5 test prompt, Phase 6 local-checkout prompt) | `prefs.global.promptLanguage` | **Fixed to `en`** - never toggled by this skill |
|
|
16
16
|
| `outputLanguage` | Assistant's explanations, status updates, error messages, and pipeline-generated reports rendered to the user (NOT external payloads) | `prefs.global.outputLanguage` | Toggled by this skill |
|
|
17
17
|
|
|
18
|
-
**Why promptLanguage is fixed:** it governs the picker's structural chrome only - `AskUserQuestion` `
|
|
18
|
+
**Why promptLanguage is fixed:** it governs the picker's structural chrome only - the `AskUserQuestion` `header` chip, host error UI, and internal contract identifiers. The chip stays English because it is capped at 12 characters and most Turkish equivalents overflow it. Everything a user actually reads follows `outputLanguage`: the picker `question`, each option's `label`, and each option's `description`, per the canonical per-field matrix in `multi-agent-refs/rules.md`. A picker whose question or buttons are English on a Turkish run is a bug, not the contract. The host's own **Other** row is injected by the CLI and stays English on every run; nothing in the pipeline can localize it.
|
|
19
19
|
|
|
20
|
-
**Always English regardless of either field**: commit messages, PR
|
|
20
|
+
**Always English regardless of either field**: commit messages, PR title prefixes (`feat:`, `fix:`), branch names, code identifiers, file paths, `agent-state.json` values, `agent-log.md` payloads, reviewer/triage system prompts, and confirmation / error UI exposed by the CLI host. PR descriptions, Jira comments, GitHub issue comments and wiki/Confluence page **bodies** follow `outputLanguage` - they are written for a human reader, per the `rules.md` matrix.
|
|
21
21
|
|
|
22
22
|
**Follows outputLanguage (localized at install/toggle time)**: the slash-command picker `description` shown by the CLI host autocomplete. Repo and npm files always keep the English `description:`; files shipping a `description-tr:` line get swapped in the INSTALLED `~/.claude/commands/multi-agent/` tree by `localize-commands.mjs` (reversible via a `description-en:` sidecar). `/multi-agent:sync` restores English before mirroring back to the repo.
|
|
23
23
|
|
|
@@ -109,5 +109,5 @@ Render in the **new** outputLanguage:
|
|
|
109
109
|
|
|
110
110
|
- `setup.md` Step 0 - first-run language picker (asks only outputLanguage; promptLanguage seeded as `en`)
|
|
111
111
|
- `prefs.schema.json` - `global.promptLanguage` (fixed `"en"`) and `global.outputLanguage` definitions
|
|
112
|
-
- `phase-5-test.md`, `phase-6-commit.md` - interactive prompts follow the per-field matrix: `question` + `description` in `outputLanguage`, `
|
|
112
|
+
- `phase-5-test.md`, `phase-6-commit.md` - interactive prompts follow the per-field matrix: `question` + `label` + `description` in `outputLanguage`, `header` English
|
|
113
113
|
- `help.md` - reads outputLanguage to render its own help text
|
|
@@ -6,7 +6,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
6
6
|
|
|
7
7
|
# multi-agent local - Full Pipeline, Local Branch
|
|
8
8
|
|
|
9
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion`
|
|
9
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` renders its `question`, option `label`s and option `description`s in `outputLanguage`; only `header` stays English (<=12-char chip); external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
10
10
|
|
|
11
11
|
The full pipeline in normal mode (Plan Approval Gate + parallel review + triage included), running on the **current branch with no worktree**. Dedicated alias for the `multi-agent "task" --local` flag form. Phase 5 (User Test) is skipped because there is no worktree to check the change out from; the other seven phases all run.
|
|
12
12
|
|
|
@@ -9,7 +9,7 @@ allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdat
|
|
|
9
9
|
|
|
10
10
|
**Input**: $ARGUMENTS
|
|
11
11
|
|
|
12
|
-
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion`
|
|
12
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` and render every conversational line in it. `AskUserQuestion` renders its `question`, option `label`s and option `description`s in `outputLanguage`; only `header` stays English (<=12-char chip); external payload bodies follow `outputLanguage` too (identifiers, commit messages, branch names stay English). Full contract: `$HOME/.claude/multi-agent-refs/rules.md` "Language Application".
|
|
13
13
|
|
|
14
14
|
Run the full pipeline **without a worktree** and **with every confirmation skipped**. Phase 5 (User Test) does not run (no worktree to check out from, and no interaction), so 7 phases execute. The `autopilot + local` combination - vs `/multi-agent:autopilot` the only difference is no worktree (work stays on the current branch); vs `/multi-agent:local` the only difference is zero interaction.
|
|
15
15
|
|