@mmerterden/multi-agent-pipeline 17.0.0 → 17.3.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 +159 -0
- package/README.md +56 -4
- package/README.tr.md +57 -4
- package/docs/architecture.md +3 -3
- package/docs/ecosystem.md +5 -5
- package/docs/token-budget-history.md +22 -0
- package/install/_dev-only-files.mjs +1 -0
- package/install/codex.mjs +18 -1
- package/install/copilot.mjs +17 -1
- package/install/templates/multi-agent-autopilot.plist.template +79 -0
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +64 -0
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +181 -0
- package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +74 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +41 -12
- package/pipeline/commands/multi-agent/help/SKILL.md +41 -35
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/sync/SKILL.md +10 -9
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -1
- package/pipeline/lib/autopilot-activation.sh +117 -0
- package/pipeline/lib/autopilot-state.sh +184 -0
- package/pipeline/lib/issue-fetcher.sh +18 -1
- package/pipeline/lib/plan-todos.sh +18 -0
- package/pipeline/multi-agent-refs/_dev-context.md +10 -0
- package/pipeline/multi-agent-refs/analysis/redesign.md +8 -0
- package/pipeline/multi-agent-refs/analysis/review.md +9 -0
- package/pipeline/multi-agent-refs/android-guide.md +14 -0
- package/pipeline/multi-agent-refs/audit-guide.md +12 -0
- package/pipeline/multi-agent-refs/backend-guide.md +10 -0
- package/pipeline/multi-agent-refs/channels/confluence.md +11 -0
- package/pipeline/multi-agent-refs/channels/issue-comment.md +12 -0
- package/pipeline/multi-agent-refs/channels/jira.md +90 -20
- package/pipeline/multi-agent-refs/channels/pr-review-actions.md +13 -0
- package/pipeline/multi-agent-refs/channels/pr.md +76 -19
- package/pipeline/multi-agent-refs/component-dispatch.md +11 -0
- package/pipeline/multi-agent-refs/component-generation.md +11 -0
- package/pipeline/multi-agent-refs/conventions-defaults.md +15 -0
- package/pipeline/multi-agent-refs/cross-cli-contract.md +49 -5
- package/pipeline/multi-agent-refs/features/analysis-jira.md +11 -0
- package/pipeline/multi-agent-refs/features/design-conformance.md +10 -0
- package/pipeline/multi-agent-refs/features/doctor.md +10 -0
- package/pipeline/multi-agent-refs/features/external-context-injection.md +7 -0
- package/pipeline/multi-agent-refs/features/jira-context.md +9 -0
- package/pipeline/multi-agent-refs/features/model-fallback.md +10 -0
- package/pipeline/multi-agent-refs/features/skill-conformance.md +13 -0
- package/pipeline/multi-agent-refs/features/url-enrichment.md +9 -0
- package/pipeline/multi-agent-refs/features/visual-evidence.md +61 -7
- package/pipeline/multi-agent-refs/generate-issue.md +7 -0
- package/pipeline/multi-agent-refs/issue-jira-triad.md +9 -0
- package/pipeline/multi-agent-refs/knowledge.md +6 -0
- package/pipeline/multi-agent-refs/multi-repo-integration-build.md +13 -0
- package/pipeline/multi-agent-refs/phases/modes.md +7 -0
- package/pipeline/multi-agent-refs/phases/operations.md +9 -0
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +2 -2
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +17 -15
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +1 -1
- package/pipeline/multi-agent-refs/phases.md +11 -0
- package/pipeline/multi-agent-refs/picker-contract.md +12 -0
- package/pipeline/multi-agent-refs/platform-parity.md +10 -0
- package/pipeline/multi-agent-refs/progress-contract.md +10 -0
- package/pipeline/multi-agent-refs/readiness-review.md +7 -1
- package/pipeline/multi-agent-refs/rules.md +3 -11
- package/pipeline/multi-agent-refs/setup/firebase.md +9 -0
- package/pipeline/multi-agent-refs/swiftui-guide.md +17 -0
- package/pipeline/multi-agent-refs/tracker-contract.md +44 -0
- package/pipeline/multi-agent-refs/web-guide.md +10 -0
- package/pipeline/multi-agent-refs/wiki-capture.md +11 -0
- package/pipeline/schemas/autopilot-config.schema.json +149 -0
- package/pipeline/schemas/prefs.schema.json +4 -0
- package/pipeline/schemas/token-budget.json +10 -19
- package/pipeline/scripts/autopilot-arming.mjs +147 -0
- package/pipeline/scripts/autopilot-intake.mjs +387 -0
- package/pipeline/scripts/autopilot-menubar.swift +361 -0
- package/pipeline/scripts/autopilot-runner.mjs +354 -0
- package/pipeline/scripts/autopilot-status.sh +213 -0
- package/pipeline/scripts/capture-evidence.sh +79 -11
- package/pipeline/scripts/gen-ref-toc.mjs +279 -0
- package/pipeline/scripts/jira-search.sh +70 -0
- package/pipeline/scripts/phase-tracker.sh +134 -12
- package/pipeline/scripts/probe-evidence-capability.sh +27 -3
- package/pipeline/scripts/run-ui-tests.sh +113 -4
- package/pipeline/skills/.skill-manifest.json +16 -4
- package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +67 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +146 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +64 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +62 -11
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +9 -8
|
@@ -9,7 +9,7 @@ Called with no args or `help`, show the usage guide in the user's preferred lang
|
|
|
9
9
|
|
|
10
10
|
## Language resolution
|
|
11
11
|
|
|
12
|
-
Help is the assistant's own explanation to the user
|
|
12
|
+
Help is the assistant's own explanation to the user - render it in `prefs.global.outputLanguage` (falling back to `promptLanguage`). Language rule: `rules.md`.
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
PREFS="$HOME/.claude/multi-agent-preferences.json"
|
|
@@ -23,9 +23,9 @@ Render **exactly one** of the two blocks below - the one matching `LANG`. Neve
|
|
|
23
23
|
## Render when `LANG == "en"` - English guide
|
|
24
24
|
|
|
25
25
|
```
|
|
26
|
-
|
|
26
|
+
+----------------------------------+
|
|
27
27
|
| Multi-Agent Task Orchestrator |
|
|
28
|
-
|
|
28
|
+
+----------------------------------+
|
|
29
29
|
|
|
30
30
|
5 different input types supported - all enter the same flow:
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@ Render **exactly one** of the two blocks below - the one matching `LANG`. Neve
|
|
|
35
35
|
/multi-agent "#316" -> GitHub Issue #
|
|
36
36
|
/multi-agent "bug/feature description" -> Free-text
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
------------------------------
|
|
39
39
|
|
|
40
40
|
How It Works (Phase 0 - Interactive Flow):
|
|
41
41
|
|
|
@@ -48,7 +48,7 @@ How It Works (Phase 0 - Interactive Flow):
|
|
|
48
48
|
7. INSTRUCTION Auto-detect if .instructions/ exists (figma etc.)
|
|
49
49
|
8. WORKSPACE Create worktree (default) or local branch (--local)
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
------------------------------
|
|
52
52
|
|
|
53
53
|
Pipeline (after Phase 0) - shown as visual cards in terminal:
|
|
54
54
|
|
|
@@ -77,7 +77,7 @@ Pipeline (after Phase 0) - shown as visual cards in terminal:
|
|
|
77
77
|
|
|
78
78
|
Every step is logged. Error in any phase -> pause -> resume to continue.
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
------------------------------
|
|
81
81
|
|
|
82
82
|
Modes:
|
|
83
83
|
|
|
@@ -95,7 +95,7 @@ Four pipeline entries:
|
|
|
95
95
|
|
|
96
96
|
/multi-agent:resume-local [jira-id] [autopilot] Continue already-done LOCAL work: Review → Build+Test → PR → Jira analysis + test scenarios (no dev)
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
------------------------------
|
|
99
99
|
|
|
100
100
|
Status & Resume:
|
|
101
101
|
|
|
@@ -108,6 +108,9 @@ Status & Resume:
|
|
|
108
108
|
/multi-agent:prune-prompts Zero-base prompt review: measure always-on instruction footprint, propose keep/trial/delete per rule (report first, apply on approval)
|
|
109
109
|
/multi-agent:garbage-collect Sweep run residue; --abandoned reaps stopped runs
|
|
110
110
|
/multi-agent:purge Worktree + logs - full reset (double confirm)
|
|
111
|
+
/multi-agent:autopilot-on Continuous mode on this machine: pick repos, labelled items run to a PR
|
|
112
|
+
/multi-agent:autopilot-status Running, queued, awaiting an answer, today's PRs
|
|
113
|
+
/multi-agent:autopilot-off Stop picking work up (running work finishes; --now stops it)
|
|
111
114
|
|
|
112
115
|
Post-Hoc & Side-Channel:
|
|
113
116
|
|
|
@@ -116,11 +119,11 @@ Post-Hoc & Side-Channel:
|
|
|
116
119
|
/multi-agent:review Parallel review of a PR or branch diff; no URL -> pick open GitHub/Bitbucket PRs
|
|
117
120
|
/multi-agent:review-jira Grade a Jira issue's pipeline-readiness -> comment the gaps on it
|
|
118
121
|
/multi-agent:review-issue Grade a GitHub issue's pipeline-readiness -> comment the gaps on it
|
|
119
|
-
/multi-agent:analysis ["
|
|
122
|
+
/multi-agent:analysis ["name"] Feature-spec analysis (Figma + Swagger + Confluence + repos). Asks the standard first: global (23-section dev handoff) or corporate (IG→UC→FG requirements doc). Stack optional; References built from the evidence record
|
|
120
123
|
/multi-agent:analysis-resolve [doc] Resolve Section 20 open questions of an analysis doc, one at a time with source-labeled candidates
|
|
121
124
|
/multi-agent:review-analysis [doc] Review a written analysis; findings cite the rule they break
|
|
122
125
|
/multi-agent:analysis-jira [doc] A final analysis -> a Jira story tree; coverage two-way, existing nodes skipped
|
|
123
|
-
/multi-agent:complaint-analysis ["run-name"]
|
|
126
|
+
/multi-agent:complaint-analysis ["run-name"] Customer-complaint triage: Graylog evidence per trx/conv id + read-only repo correlation → client/bff root cause + fix plan + dev prompt, or core routing recommendation
|
|
124
127
|
/multi-agent:build-optimize iOS-only Xcode build perf wrapper → benchmark + analyze + recommend-first .build-benchmark/optimization-plan.md
|
|
125
128
|
/multi-agent:create-jira ["desc"] [figma-url] [swagger-url] Create a Jira Task/Bug/Story matching team conventions (asks type + mining + active sprint + auto-sizing sections + preview & approval)
|
|
126
129
|
/multi-agent:diff-explain Map a Phase 4 triage finding back to specific diff lines
|
|
@@ -130,7 +133,7 @@ Post-Hoc & Side-Channel:
|
|
|
130
133
|
/multi-agent:doctor Would a run work here? Layout, prefs, credentials, hooks; exit code is the verdict
|
|
131
134
|
/multi-agent:refactor Best practices + bug hunt + upstream drift + toolkit MCP research -> one plan, approval, dev + sync
|
|
132
135
|
/multi-agent:refactor backlog Decide the friction already recorded about the pipeline itself, nothing re-derived
|
|
133
|
-
/multi-agent:store-ready [repo] [
|
|
136
|
+
/multi-agent:store-ready [repo] [flags] Pre-submission store readiness, iOS + Android, local-only: three symmetric gates per platform plus the running-app sweep. A skipped gate is never a pass. Validates only, never uploads.
|
|
134
137
|
/multi-agent:testflight-validation [repo] [--ipa=|--archive=] iOS-pinned alias of :store-ready. Same three gates, one implementation.
|
|
135
138
|
/multi-agent:ios-coding-standard [module] Audit an iOS module against the 99-rule coding-standard registry -> remediation
|
|
136
139
|
plan + one-page onboarding summary -> hand off to /multi-agent or :local. Read-only, never edits source.
|
|
@@ -144,7 +147,7 @@ Setup & Maintenance:
|
|
|
144
147
|
/multi-agent:update Pull latest pipeline + reinstall + run migrations
|
|
145
148
|
/multi-agent:uninstall Uninstall pipeline from every CLI (--all-data also clears settings, logs, memory + knowledge; tokens always intact)
|
|
146
149
|
|
|
147
|
-
|
|
150
|
+
------------------------------
|
|
148
151
|
|
|
149
152
|
Plugins & tools (called directly, no wrappers):
|
|
150
153
|
|
|
@@ -158,7 +161,7 @@ Plugins & tools (called directly, no wrappers):
|
|
|
158
161
|
*_accessibility_audit). Use them instead of guessing about on-screen
|
|
159
162
|
state. Its registration survives uninstall. Not registered = silent no-op.
|
|
160
163
|
|
|
161
|
-
|
|
164
|
+
------------------------------
|
|
162
165
|
|
|
163
166
|
Routines (your own reusable jobs):
|
|
164
167
|
|
|
@@ -167,7 +170,7 @@ Routines (your own reusable jobs):
|
|
|
167
170
|
/multi-agent:forget [name] Remove a saved routine
|
|
168
171
|
<!-- ROUTINES_DYNAMIC: after printing the static lines above, read prefs.global.routines; if non-empty, append one indented line per routine " /multi-agent:<name> <description>" under a "Your saved routines:" subheading, in outputLanguage. If empty, print " (none yet - use /multi-agent:save)". -->
|
|
169
172
|
|
|
170
|
-
|
|
173
|
+
------------------------------
|
|
171
174
|
|
|
172
175
|
Interactive Launchers:
|
|
173
176
|
|
|
@@ -180,7 +183,7 @@ Interactive Launchers:
|
|
|
180
183
|
3. Autopilot: yes/no
|
|
181
184
|
4. Pipeline starts with the selected issue
|
|
182
185
|
|
|
183
|
-
|
|
186
|
+
------------------------------
|
|
184
187
|
|
|
185
188
|
UI Testing (standalone - not part of pipeline phases):
|
|
186
189
|
|
|
@@ -222,7 +225,7 @@ Design Check (mock-mode vs Figma, local-only):
|
|
|
222
225
|
# COVERAGE GATE: every target is audited or skipped WITH a concrete reason; anything else reports
|
|
223
226
|
# INCOMPLETE with the missing ids. "Needs a scenario/launch-arg" is not a reason, reaching it is the job.
|
|
224
227
|
|
|
225
|
-
|
|
228
|
+
------------------------------
|
|
226
229
|
|
|
227
230
|
Setup:
|
|
228
231
|
|
|
@@ -236,7 +239,7 @@ Setup:
|
|
|
236
239
|
5. Missing Tokens - standard key names + ready-to-paste commands
|
|
237
240
|
6. Verify - re-scan, confirm ready
|
|
238
241
|
|
|
239
|
-
|
|
242
|
+
------------------------------
|
|
240
243
|
|
|
241
244
|
Key Features:
|
|
242
245
|
|
|
@@ -263,7 +266,7 @@ Quality & Telemetry (advisory, on by default - flip prefs.global.* to disable)
|
|
|
263
266
|
Per-Persona Dispatch reads `preferredModel` from the persona file; override per call via
|
|
264
267
|
PHASE_MODEL_OVERRIDE; ladder fable -> opus -> sonnet -> haiku
|
|
265
268
|
|
|
266
|
-
|
|
269
|
+
------------------------------
|
|
267
270
|
|
|
268
271
|
Examples:
|
|
269
272
|
|
|
@@ -290,7 +293,7 @@ Examples:
|
|
|
290
293
|
/multi-agent:create-jira "Profile screen empty state" https://figma.com/design/abc?node-id=1-2
|
|
291
294
|
/multi-agent:create-jira "Login crash on iOS 17, see attached log"
|
|
292
295
|
|
|
293
|
-
|
|
296
|
+
------------------------------
|
|
294
297
|
|
|
295
298
|
Logs: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
296
299
|
```
|
|
@@ -300,9 +303,9 @@ Logs: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
|
300
303
|
## Render when `LANG == "tr"` - Türkçe rehber
|
|
301
304
|
|
|
302
305
|
```
|
|
303
|
-
|
|
306
|
+
+----------------------------------+
|
|
304
307
|
| Multi-Agent Görev Orkestratörü |
|
|
305
|
-
|
|
308
|
+
+----------------------------------+
|
|
306
309
|
|
|
307
310
|
5 farklı girdi tipi desteklenir - hepsi aynı akışa girer:
|
|
308
311
|
|
|
@@ -312,7 +315,7 @@ Logs: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
|
312
315
|
/multi-agent "#316" -> GitHub Issue #
|
|
313
316
|
/multi-agent "bug/özellik açıklaması" -> Serbest metin
|
|
314
317
|
|
|
315
|
-
|
|
318
|
+
------------------------------
|
|
316
319
|
|
|
317
320
|
Nasıl Çalışır (Phase 0 - İnteraktif Akış):
|
|
318
321
|
|
|
@@ -325,7 +328,7 @@ Nasıl Çalışır (Phase 0 - İnteraktif Akış):
|
|
|
325
328
|
7. INSTRUCTION .instructions/ varsa otomatik algıla (figma vs.)
|
|
326
329
|
8. WORKSPACE Worktree yarat (default) ya da local branch (--local)
|
|
327
330
|
|
|
328
|
-
|
|
331
|
+
------------------------------
|
|
329
332
|
|
|
330
333
|
Pipeline (Phase 0'dan sonra) - terminalde görsel kart olarak görünür:
|
|
331
334
|
|
|
@@ -354,7 +357,7 @@ Pipeline (Phase 0'dan sonra) - terminalde görsel kart olarak görünür:
|
|
|
354
357
|
|
|
355
358
|
Her adım loglanır. Herhangi bir fazdaki hata -> pause -> resume ile devam et.
|
|
356
359
|
|
|
357
|
-
|
|
360
|
+
------------------------------
|
|
358
361
|
|
|
359
362
|
Modlar:
|
|
360
363
|
|
|
@@ -371,7 +374,7 @@ Dört pipeline girişi:
|
|
|
371
374
|
|
|
372
375
|
/multi-agent:resume-local [jira-id] [autopilot] Lokalde biten işi sürdür: Review → Build+Test → PR → Jira teknik analiz + test senaryoları (dev yok)
|
|
373
376
|
|
|
374
|
-
|
|
377
|
+
------------------------------
|
|
375
378
|
|
|
376
379
|
Status & Resume:
|
|
377
380
|
|
|
@@ -384,6 +387,9 @@ Status & Resume:
|
|
|
384
387
|
/multi-agent:prune-prompts Sıfır-tabanlı prompt incelemesi: sürekli yüklü talimat yükünü ölç, kural başına tut/dene/sil öner (önce rapor, onayla uygula)
|
|
385
388
|
/multi-agent:garbage-collect Koşu artığını süpür; --abandoned durmuş koşuları toplar
|
|
386
389
|
/multi-agent:purge Worktree + log'lar - tam reset (çift onay)
|
|
390
|
+
/multi-agent:autopilot-on Bu makinede sürekli mod: repo seç, etiketli maddeler PR'a kadar koşar
|
|
391
|
+
/multi-agent:autopilot-status Koşan, sıradaki, cevap bekleyen, bugünkü PR'lar
|
|
392
|
+
/multi-agent:autopilot-off Yeni madde alma (koşan iş biter; --now onu da durdurur)
|
|
387
393
|
|
|
388
394
|
Post-Hoc & Side-Channel:
|
|
389
395
|
|
|
@@ -395,7 +401,7 @@ Post-Hoc & Side-Channel:
|
|
|
395
401
|
/multi-agent:analysis ["analysis-name"] Feature-spec analizi (Figma + Swagger + Confluence + repolar). Önce standardı sorar: global (23 bölümlük geliştirme dokümanı) veya kurumsal (IG→UC→FG gereksinim dokümanı). Stack opsiyonel; Referanslar kanıt kaydından üretilir
|
|
396
402
|
/multi-agent:analysis-resolve [doc] Analiz dokümanının Bölüm 20 açık sorularını kaynak etiketli adaylarla teker teker çözer
|
|
397
403
|
/multi-agent:review-analysis [doc] Yazılmış analizi review eder; bulgular ihlal edilen kuralı gösterir
|
|
398
|
-
/multi-agent:complaint-analysis ["run-adı"]
|
|
404
|
+
/multi-agent:complaint-analysis ["run-adı"] Müşteri şikayeti triyajı: trx/conv id ile Graylog kanıtı + salt-okunur repo eşleştirme → client/bff kök neden + fix planı + dev prompt'u, veya core'a yönlendirme önerisi
|
|
399
405
|
/multi-agent:build-optimize iOS-only Xcode build performance wrapper → benchmark + analiz + recommend-first .build-benchmark/optimization-plan.md
|
|
400
406
|
/multi-agent:create-jira ["açıklama"] [figma-url] [swagger-url] Takım standartlarına uygun Jira Task/Bug/Story oluştur (tip sorar + convention mining + aktif sprint + auto-sizing bölümler + önizleme & onay)
|
|
401
407
|
/multi-agent:diff-explain Phase 4 triage bulgusunu diff satırlarına eşle
|
|
@@ -404,7 +410,7 @@ Post-Hoc & Side-Channel:
|
|
|
404
410
|
/multi-agent:scan Skill güvenlik taraması (tiered pattern catalog)
|
|
405
411
|
/multi-agent:refactor Uyarlanmış best-practice + bug avı + upstream-drift + multi-agent-toolkit MCP araştırması -> tek plan, onay, dev + sync
|
|
406
412
|
/multi-agent:refactor backlog Pipeline'ın kendisi hakkında kaydedilmiş sürtünmeyi karara bağlar, sıfırdan türetmez
|
|
407
|
-
/multi-agent:store-ready [repo] [
|
|
413
|
+
/multi-agent:store-ready [repo] [flags] Yükleme öncesi store hazırlığı, iOS + Android, yalnızca lokal: platform başına 3 simetrik kapı artı çalışan-app sweep'i. Atlanan kapı asla pass sayılmaz. Sadece doğrular, asla yüklemez.
|
|
408
414
|
/multi-agent:testflight-validation [repo] [--ipa=|--archive=] :store-ready'nin iOS alias'ı. Aynı 3 kapı, tek implementasyon.
|
|
409
415
|
/multi-agent:ios-coding-standard [modül] Bir iOS modülünü 99 kurallık kodlama-standardı registry'sine göre denetler -> düzeltme
|
|
410
416
|
planı + tek sayfalık onboarding özeti -> /multi-agent veya :local'e devreder. Read-only, kaynağı hiç düzenlemez.
|
|
@@ -418,7 +424,7 @@ Setup & Maintenance:
|
|
|
418
424
|
/multi-agent:update En son pipeline'ı çek + reinstall + migration çalıştır
|
|
419
425
|
/multi-agent:uninstall Pipeline'ı tüm CLI'lerden kaldır (--all-data ayar, log, hafıza + bilgi tabanını da siler; token'a dokunulmaz)
|
|
420
426
|
|
|
421
|
-
|
|
427
|
+
------------------------------
|
|
422
428
|
|
|
423
429
|
Plugin'ler ve tool'lar (doğrudan çağrılır, sarmalayıcı yok):
|
|
424
430
|
|
|
@@ -432,16 +438,16 @@ Plugin'ler ve tool'lar (doğrudan çağrılır, sarmalayıcı yok):
|
|
|
432
438
|
android_apk_audit, *_accessibility_audit). Ekrandaki durumu tahmin etmek
|
|
433
439
|
yerine bunları kullan. Kaydı uninstall'dan sağ çıkar. Kayıtlı değilse sessizce devre dışı.
|
|
434
440
|
|
|
435
|
-
|
|
441
|
+
------------------------------
|
|
436
442
|
|
|
437
443
|
Rutinler (kendi tekrar eden işlerin):
|
|
438
444
|
|
|
439
445
|
/multi-agent:save [ad] Sık yaptığın bir işi yeniden kullanılabilir /multi-agent:<ad> komutu olarak kaydet
|
|
440
446
|
/multi-agent:routines Kayıtlı rutinlerini ve ne yaptıklarını listele
|
|
441
447
|
/multi-agent:forget [ad] Kayıtlı bir rutini kaldır
|
|
442
|
-
<!-- ROUTINES_DYNAMIC:
|
|
448
|
+
<!-- ROUTINES_DYNAMIC: same rule as the EN block above. -->
|
|
443
449
|
|
|
444
|
-
|
|
450
|
+
------------------------------
|
|
445
451
|
|
|
446
452
|
İnteraktif Launcher'lar:
|
|
447
453
|
|
|
@@ -454,7 +460,7 @@ Rutinler (kendi tekrar eden işlerin):
|
|
|
454
460
|
3. Autopilot: evet/hayır
|
|
455
461
|
4. Pipeline seçilen issue ile başlar
|
|
456
462
|
|
|
457
|
-
|
|
463
|
+
------------------------------
|
|
458
464
|
|
|
459
465
|
UI Testing (standalone - pipeline fazlarından bağımsız):
|
|
460
466
|
|
|
@@ -496,7 +502,7 @@ Design Check (mock-mod vs Figma, yalnızca lokal):
|
|
|
496
502
|
# KAPSAM GEÇİDİ: her hedef ya denetlenir ya da SOMUT gerekçeyle atlanır; başka her durum eksik hedef
|
|
497
503
|
# id'leriyle EKSİK raporlanır. "Senaryo/launch-arg gerektirir" gerekçe değil, oraya ulaşmak koşunun işi.
|
|
498
504
|
|
|
499
|
-
|
|
505
|
+
------------------------------
|
|
500
506
|
|
|
501
507
|
Setup:
|
|
502
508
|
|
|
@@ -510,7 +516,7 @@ Setup:
|
|
|
510
516
|
5. Eksik Token'lar - standart key isimleri + ready-to-paste komutlar
|
|
511
517
|
6. Doğrulama - yeniden tarama, hazır mı kontrol
|
|
512
518
|
|
|
513
|
-
|
|
519
|
+
------------------------------
|
|
514
520
|
|
|
515
521
|
Temel Özellikler:
|
|
516
522
|
|
|
@@ -536,7 +542,7 @@ Quality & Telemetry (advisory, default açık - prefs.global.* ile kapatılabi
|
|
|
536
542
|
Per-Persona Reviewer/agent dispatch persona dosyasından `preferredModel` okur;
|
|
537
543
|
per-call override PHASE_MODEL_OVERRIDE ile; merdiven fable -> opus -> sonnet -> haiku
|
|
538
544
|
|
|
539
|
-
|
|
545
|
+
------------------------------
|
|
540
546
|
|
|
541
547
|
Örnekler:
|
|
542
548
|
|
|
@@ -563,7 +569,7 @@ Quality & Telemetry (advisory, default açık - prefs.global.* ile kapatılabi
|
|
|
563
569
|
/multi-agent:create-jira "Profil ekranı empty state" https://figma.com/design/abc?node-id=1-2
|
|
564
570
|
/multi-agent:create-jira "iOS 17'de login crash, log ekte"
|
|
565
571
|
|
|
566
|
-
|
|
572
|
+
------------------------------
|
|
567
573
|
|
|
568
574
|
Log'lar: $HOME/.claude/logs/multi-agent/{project}/{task-id}/
|
|
569
575
|
```
|
|
@@ -51,5 +51,5 @@ Lets you switch to the task branch for manual testing in Xcode before the PR is
|
|
|
51
51
|
```json
|
|
52
52
|
{"criteria":[{"spec":"<quote>","source":"analysis 15.2 | plan task 3 | user","observed":"<what was seen>","verdict":"pass|fail|not-tested","reason":"<required when not-tested>","screenshot":"<path or null>"}],"verdict":"passed|failed"}
|
|
53
53
|
```
|
|
54
|
-
then run `node $HOME/.claude/scripts/evidence-gate.mjs --claim manual --status passed --evidence "$WORKTREE/.pipeline/manual-test.json"`, adding `--require-screenshot` when `state.visualEvidence.required` is true (a passing criterion then has to name a screenshot that is actually on disk). Exit 1 means the "ok" is not accepted: name the criterion that is missing evidence and wait for the next reply. Exit 0 → `phase-tracker.sh update 5 completed` + `phase-tracker.sh meta 5 Result "local test passed (user)"`, recreate the worktree, continue to Phase 6. Full contract: `$HOME/.claude/multi-agent-refs/phases/phase-5-test.md` step 5.
|
|
54
|
+
then run `node $HOME/.claude/scripts/evidence-gate.mjs --claim manual --status passed --evidence "$WORKTREE/.pipeline/manual-test.json"`, adding `--require-screenshot` when `state.visualEvidence.required` is true (a passing criterion then has to name a screenshot that is actually on disk). Exit 1 means the "ok" is not accepted: name the criterion that is missing evidence and wait for the next reply. Exit 0 → `phase-tracker.sh update 5 completed` + `phase-tracker.sh meta 5 Result "local test passed (user)"`, recreate the worktree, continue to Phase 6. Full contract: `$HOME/.claude/multi-agent-refs/phases/phase-5-test.md` step 5, whose "UI flow video, when Phase 3 produced none" block applies here too: invoked standalone, this command is the only phase that ran, so if `visualEvidence.required` is set and `visualEvidence.video.file` is empty, the recording has to happen here or nowhere.
|
|
55
55
|
- **Fix needed** → `phase-tracker.sh now 5 "applying fix: <summary>"`, recreate the worktree, apply the fix
|
|
@@ -65,8 +65,8 @@ Run every step automatically:
|
|
|
65
65
|
```
|
|
66
66
|
Step 0: DOCTOR doctor.mjs - exit 2 or 4 stops the sync
|
|
67
67
|
Step 1.5: DETECT Compare timestamps, find stale targets
|
|
68
|
-
Step 2: COPILOT Claude Code -> Copilot CLI (instructions +
|
|
69
|
-
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill +
|
|
68
|
+
Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 56 sub-command skills)
|
|
69
|
+
Step 2b: CODEX Claude Code -> Codex CLI (1 router skill + 56 specs as refs + 8 agent TOML)
|
|
70
70
|
Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scrub, bash -n on all sh)
|
|
71
71
|
Step 3c: PLUGINS pipeline shared/external -> multi-agent-plugins marketplace (rebuild knowledge/,
|
|
72
72
|
bump changed plugins' patch version, commit + push the plugins repo)
|
|
@@ -172,7 +172,7 @@ Step 0 gate rules and why: `features/doctor.md`.
|
|
|
172
172
|
Unlike the Copilot step, this one does **not** hand-copy files. The Codex tree is a
|
|
173
173
|
*transform* of the Claude tree, not a mirror of it, and the transform is real work:
|
|
174
174
|
|
|
175
|
-
- the
|
|
175
|
+
- the 56 sub-command specs become reference files, because Codex silently truncates
|
|
176
176
|
its skills block (see `cross-cli-contract.md` 2.6 for the measurement)
|
|
177
177
|
- every `$HOME/.claude/...` reference to a CLI-owned tree is retargeted, with
|
|
178
178
|
`agents/<persona>.md` becoming `.toml` and the dispatcher becoming the router skill
|
|
@@ -487,20 +487,21 @@ When invoked with the `release` argument:
|
|
|
487
487
|
## Sub-Command Sync (Claude Code <-> Copilot CLI Skills)
|
|
488
488
|
|
|
489
489
|
This runs on the Claude <-> Copilot axis. Codex is NOT synced here: it receives the
|
|
490
|
-
same
|
|
490
|
+
same 56 specs as reference files rather than as peer skills, via Step 2b - see
|
|
491
491
|
`cross-cli-contract.md` 2.6 for why the parity axis differs per host.
|
|
492
492
|
|
|
493
493
|
| Claude Code | Copilot CLI |
|
|
494
494
|
|-------------|-------------|
|
|
495
495
|
| `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
|
|
496
496
|
|
|
497
|
-
**
|
|
497
|
+
**56 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
|
|
498
498
|
|
|
499
499
|
```
|
|
500
|
-
analysis, analysis-jira, analysis-resolve, autopilot,
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
500
|
+
analysis, analysis-jira, analysis-resolve, autopilot, autopilot-off,
|
|
501
|
+
autopilot-on, autopilot-status, build-optimize, channels, complaint-analysis,
|
|
502
|
+
create-jira, design-check, diff-explain, doctor, feedback, forget,
|
|
503
|
+
garbage-collect, graph, help, ios-coding-standard, issue, jira, kill,
|
|
504
|
+
language, local, local-autopilot, log, manual-test, prune-logs,
|
|
504
505
|
prune-prompts, purge, refactor, resume, resume-local, review,
|
|
505
506
|
review-analysis, review-issue, review-jira, routines, save, scan, search,
|
|
506
507
|
setup, stack, status, steer, store-ready, sync, test, test-accessibility,
|
|
@@ -196,7 +196,7 @@ A git clone of the pipeline repo is a maintainer workspace, kept in sync by `/mu
|
|
|
196
196
|
```
|
|
197
197
|
Current: v15.6.0 Latest: v15.6.1
|
|
198
198
|
-> npm pack @{npm-scope}/multi-agent-pipeline@15.6.1
|
|
199
|
-
-> node install.js --all (
|
|
199
|
+
-> node install.js --all (56 commands, 263 scripts, 210 skills)
|
|
200
200
|
-> migrate-prefs.mjs (0 changes - already v2.6.0)
|
|
201
201
|
|
|
202
202
|
✓ Updated: v15.6.0 → v15.6.1
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# autopilot-activation.sh - which repos may this machine pick work up from.
|
|
3
|
+
#
|
|
4
|
+
# The answer is NEVER "all of them" and never "whatever has the label". Measured
|
|
5
|
+
# on one machine: 66 repos grant push, and a good half belong to other people -
|
|
6
|
+
# a colleague's backend, someone's side project. A label is a filter, not a gate:
|
|
7
|
+
# anyone able to open an issue in a repo you happen to have push on could put
|
|
8
|
+
# `agent-queue` on it. The gate is this picker, and the picker is per machine.
|
|
9
|
+
#
|
|
10
|
+
# Two lists come out, and the difference matters:
|
|
11
|
+
#
|
|
12
|
+
# eligible push rights AND a checkout on this machine
|
|
13
|
+
# unavailable push rights, no checkout - LISTED, with that as the reason
|
|
14
|
+
#
|
|
15
|
+
# The second list is printed rather than dropped. Silently hiding 40 repos from a
|
|
16
|
+
# 66-repo answer looks exactly like a permissions problem, and the user then goes
|
|
17
|
+
# looking for a token fault that does not exist.
|
|
18
|
+
#
|
|
19
|
+
# Usage:
|
|
20
|
+
# bash autopilot-activation.sh list # TSV: state, nameWithOwner, localPath
|
|
21
|
+
# bash autopilot-activation.sh list --json
|
|
22
|
+
# . autopilot-activation.sh; ma_ap_local_path <owner/repo>
|
|
23
|
+
#
|
|
24
|
+
# Exit: 0 on success (including an empty list), 2 on usage, 3 when gh cannot answer.
|
|
25
|
+
|
|
26
|
+
set -uo pipefail
|
|
27
|
+
|
|
28
|
+
# Repo roots to search for checkouts. $HOME's immediate children covers the
|
|
29
|
+
# normal layout; MA_AUTOPILOT_REPO_ROOTS overrides it for tests and for anyone
|
|
30
|
+
# who keeps checkouts somewhere else.
|
|
31
|
+
MA_AP_ROOTS="${MA_AUTOPILOT_REPO_ROOTS:-$HOME}"
|
|
32
|
+
|
|
33
|
+
# owner/repo for a checkout, read from its origin remote. Both URL forms, and a
|
|
34
|
+
# trailing .git is stripped - `git@github.com:o/r.git` and
|
|
35
|
+
# `https://github.com/o/r` are the same repo and a picker that treats them as
|
|
36
|
+
# two shows the user a duplicate they cannot explain.
|
|
37
|
+
ma_ap_remote_slug() {
|
|
38
|
+
local dir="$1" url
|
|
39
|
+
url=$(git -C "$dir" remote get-url origin 2>/dev/null) || return 1
|
|
40
|
+
url="${url%.git}"
|
|
41
|
+
case "$url" in
|
|
42
|
+
*github.com[:/]*) printf '%s\n' "${url##*github.com[:/]}" ;;
|
|
43
|
+
*) return 1 ;;
|
|
44
|
+
esac
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# Every checkout under the roots, as `slug<TAB>path`. One pass, so the lookup
|
|
48
|
+
# below is a grep rather than a walk per repo.
|
|
49
|
+
ma_ap_checkout_index() {
|
|
50
|
+
local root d slug
|
|
51
|
+
for root in $MA_AP_ROOTS; do
|
|
52
|
+
[ -d "$root" ] || continue
|
|
53
|
+
for d in "$root"/*/; do
|
|
54
|
+
[ -d "$d/.git" ] || continue
|
|
55
|
+
slug=$(ma_ap_remote_slug "${d%/}") || continue
|
|
56
|
+
printf '%s\t%s\n' "$slug" "${d%/}"
|
|
57
|
+
done
|
|
58
|
+
done
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
ma_ap_local_path() { # $1 = owner/repo
|
|
62
|
+
ma_ap_checkout_index | awk -F'\t' -v s="$1" 'tolower($1)==tolower(s){print $2; exit}'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
# Repos the authenticated account may push to.
|
|
66
|
+
#
|
|
67
|
+
# The query string form is deliberate: `gh api user/repos --field affiliation=...`
|
|
68
|
+
# sends the value as a BODY field on a GET, which this endpoint ignores - it
|
|
69
|
+
# answers with the default affiliation and the caller never learns the filter did
|
|
70
|
+
# not apply. Measured: the --field form returned 0 rows here, the query string
|
|
71
|
+
# form returned 66.
|
|
72
|
+
ma_ap_writable_repos() {
|
|
73
|
+
gh api "user/repos?affiliation=owner,collaborator,organization_member&per_page=100" \
|
|
74
|
+
--paginate -q '.[] | select(.permissions.push == true) | .full_name' 2>/dev/null
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
ma_ap_list() {
|
|
78
|
+
local json="${1:-}" slug path index
|
|
79
|
+
index=$(ma_ap_checkout_index)
|
|
80
|
+
local repos
|
|
81
|
+
repos=$(ma_ap_writable_repos)
|
|
82
|
+
if [ -z "$repos" ]; then
|
|
83
|
+
echo "autopilot-activation: gh returned no writable repos - check 'gh auth status'" >&2
|
|
84
|
+
return 3
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
local first=1
|
|
88
|
+
[ "$json" = "--json" ] && printf '['
|
|
89
|
+
while IFS= read -r slug; do
|
|
90
|
+
[ -n "$slug" ] || continue
|
|
91
|
+
path=$(printf '%s\n' "$index" | awk -F'\t' -v s="$slug" 'tolower($1)==tolower(s){print $2; exit}')
|
|
92
|
+
local state="eligible"
|
|
93
|
+
[ -z "$path" ] && state="unavailable"
|
|
94
|
+
if [ "$json" = "--json" ]; then
|
|
95
|
+
[ "$first" -eq 0 ] && printf ','
|
|
96
|
+
first=0
|
|
97
|
+
printf '{"state":"%s","nameWithOwner":"%s","localPath":"%s"}' "$state" "$slug" "$path"
|
|
98
|
+
else
|
|
99
|
+
printf '%s\t%s\t%s\n' "$state" "$slug" "$path"
|
|
100
|
+
fi
|
|
101
|
+
done <<EOF
|
|
102
|
+
$repos
|
|
103
|
+
EOF
|
|
104
|
+
[ "$json" = "--json" ] && printf ']\n'
|
|
105
|
+
return 0
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if [ "${BASH_SOURCE[0]:-$0}" = "$0" ]; then
|
|
109
|
+
case "${1:-}" in
|
|
110
|
+
list) ma_ap_list "${2:-}" ;;
|
|
111
|
+
"" | -h | --help) grep -E '^#( |$)' "$0" | sed -E 's/^# ?//' ;;
|
|
112
|
+
*)
|
|
113
|
+
echo "autopilot-activation: unknown command ${1}" >&2
|
|
114
|
+
exit 2
|
|
115
|
+
;;
|
|
116
|
+
esac
|
|
117
|
+
fi
|