@mmerterden/multi-agent-pipeline 19.1.3 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +150 -7
- package/README.md +60 -50
- package/README.tr.md +55 -46
- package/docs/adr/0002-instruction-driven-flag.md +6 -5
- package/docs/adr/0005-lazy-phase-docs.md +2 -2
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +1 -0
- package/docs/adr/0009-claude-stack-skills-plugin-only.md +1 -1
- package/docs/adr/0010-own-code-graph.md +5 -4
- package/docs/adr/0012-macos-only.md +2 -2
- package/docs/adr/0013-lsp-code-intelligence.md +2 -2
- package/docs/adr/0014-six-phase-consolidation.md +9 -9
- package/docs/adr/0015-one-pipeline-no-depth-answer.md +83 -0
- package/docs/adr/0016-the-run-shape-is-asked-not-typed.md +69 -0
- package/docs/adr/README.md +18 -16
- package/docs/architecture.md +2 -2
- package/docs/ecosystem.md +8 -9
- package/docs/facts.json +5 -8
- package/docs/features.md +4 -5
- package/docs/token-budget-history.md +1 -1
- package/install/_common.mjs +14 -6
- package/install/_mcp-register.mjs +1 -1
- package/install/_plugin-skills.mjs +3 -4
- package/install/copilot.mjs +5 -5
- package/install/templates/copilot-instructions.md +7 -16
- package/manifest.json +135 -138
- package/package.json +1 -1
- package/pipeline/commands/multi-agent/SKILL.md +6 -8
- package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/design-check/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/forget/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -2
- package/pipeline/commands/multi-agent/help/SKILL.md +21 -27
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +5 -4
- package/pipeline/commands/multi-agent/issue/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/jira/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/language/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/purge/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/resume/SKILL.md +177 -48
- package/pipeline/commands/multi-agent/save/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/setup/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/stack/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/sync/SKILL.md +6 -7
- package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +2 -0
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +2 -0
- package/pipeline/commands/sim-test.md +4 -4
- package/pipeline/lib/repo-hygiene.sh +1 -1
- package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
- package/pipeline/multi-agent-refs/analysis/render.md +1 -1
- package/pipeline/multi-agent-refs/analysis/resolve.md +1 -1
- package/pipeline/multi-agent-refs/analysis/synthesis.md +1 -1
- package/pipeline/multi-agent-refs/analysis-template.md +1 -1
- package/pipeline/multi-agent-refs/channels/jira.md +8 -8
- package/pipeline/multi-agent-refs/component-dispatch.md +0 -8
- package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -11
- package/pipeline/multi-agent-refs/features/base-branch-evidence.md +2 -2
- package/pipeline/multi-agent-refs/features/external-context-injection.md +2 -0
- package/pipeline/multi-agent-refs/features/review-delta.md +1 -1
- package/pipeline/multi-agent-refs/features/review-multi-repo.md +3 -3
- package/pipeline/multi-agent-refs/features/scope-check.md +1 -1
- package/pipeline/multi-agent-refs/features/skill-conformance.md +1 -1
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +1 -1
- package/pipeline/multi-agent-refs/features/visual-evidence.md +2 -1
- package/pipeline/multi-agent-refs/features/worktree-finalize.md +1 -1
- package/pipeline/multi-agent-refs/generate-issue.md +2 -0
- package/pipeline/multi-agent-refs/issue-jira-triad.md +2 -0
- package/pipeline/multi-agent-refs/keychain.md +2 -0
- package/pipeline/multi-agent-refs/knowledge.md +0 -7
- package/pipeline/multi-agent-refs/outside-the-pipeline.md +1 -1
- package/pipeline/multi-agent-refs/payload-contracts.md +1 -1
- package/pipeline/multi-agent-refs/phases/modes.md +32 -108
- package/pipeline/multi-agent-refs/phases/operations.md +3 -1
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +23 -42
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +10 -21
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +13 -44
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +19 -22
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +6 -6
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +2 -2
- package/pipeline/multi-agent-refs/phases.md +9 -11
- package/pipeline/multi-agent-refs/progress-contract.md +1 -1
- package/pipeline/multi-agent-refs/readiness-review.md +2 -0
- package/pipeline/multi-agent-refs/rules.md +2 -2
- package/pipeline/multi-agent-refs/tracker-contract.md +9 -40
- package/pipeline/multi-agent-refs/wiki-capture.md +3 -2
- package/pipeline/preferences-template.json +2 -2
- package/pipeline/rules/figma-pipeline.md +1 -1
- package/pipeline/schemas/agent-state.schema.json +5 -10
- package/pipeline/schemas/migrations/prefs-2.7.0-to-2.8.0.mjs +33 -0
- package/pipeline/schemas/phases.json +3 -24
- package/pipeline/schemas/prefs.schema.json +5 -5
- package/pipeline/scripts/autopilot-runner.mjs +6 -7
- package/pipeline/scripts/build-references.mjs +3 -3
- package/pipeline/scripts/build-stack-plugins.mjs +1 -1
- package/pipeline/scripts/bulk-read.sh +6 -4
- package/pipeline/scripts/cost-table.json +1 -1
- package/pipeline/scripts/doctor.mjs +4 -4
- package/pipeline/scripts/gc-refs.sh +1 -1
- package/pipeline/scripts/gen-mode-dispatch.mjs +11 -41
- package/pipeline/scripts/learnings-ledger.mjs +1 -1
- package/pipeline/scripts/match-skills.mjs +4 -4
- package/pipeline/scripts/memory-load.sh +3 -3
- package/pipeline/scripts/migrate-prefs.mjs +18 -17
- package/pipeline/scripts/phase-tracker.sh +2 -2
- package/pipeline/scripts/phase0-exit-gate.mjs +1 -1
- package/pipeline/scripts/plan-coverage-gate.mjs +6 -6
- package/pipeline/scripts/run-aggregator.mjs +3 -3
- package/pipeline/scripts/runs-index.mjs +7 -7
- package/pipeline/scripts/scope-check-gate.mjs +1 -1
- package/pipeline/scripts/smoke-schema-validation.sh +9 -12
- package/pipeline/scripts/usage-report.mjs +5 -7
- package/pipeline/scripts/validate-analysis-doc.mjs +3 -3
- package/pipeline/scripts/worktree-finalize.sh +2 -2
- package/pipeline/scripts/write-state.mjs +22 -11
- package/pipeline/skills/.skill-manifest.json +9 -21
- package/pipeline/skills/.skills-index.json +6 -39
- package/pipeline/skills/shared/README.md +5 -8
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -13
- package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +4 -5
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +13 -16
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -3
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +51 -15
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +6 -6
- package/pipeline/skills/skills-index.md +3 -6
- package/pipeline/commands/multi-agent/local/SKILL.md +0 -132
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +0 -142
- package/pipeline/commands/multi-agent/resume-local/SKILL.md +0 -114
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +0 -41
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +0 -55
- package/pipeline/skills/shared/core/multi-agent-resume-local/SKILL.md +0 -51
package/README.tr.md
CHANGED
|
@@ -43,12 +43,12 @@ bak, sonra sana uyan satırı uygula:
|
|
|
43
43
|
node -v; npm -v; command -v node npm npx
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
| Gördüğün
|
|
47
|
-
|
|
48
|
-
| hiçbiri yok
|
|
49
|
-
| `node` çalışıyor, `npx` çalışmıyor
|
|
50
|
-
| nvm kurulu ama kabuk görmüyor
|
|
51
|
-
| npm çok eski (< 5.2, npx'ten önceki sürümler) | `npm i -g npm@latest`, ya da üstteki global kurulum satırı
|
|
46
|
+
| Gördüğün | Yapılacak |
|
|
47
|
+
| --------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
|
48
|
+
| hiçbiri yok | Node >= 20.11 kur: `brew install node` ya da nodejs.org'dan LTS installer |
|
|
49
|
+
| `node` çalışıyor, `npx` çalışmıyor | `npm i -g @mmerterden/multi-agent-pipeline` sonra `multi-agent-pipeline install --claude` |
|
|
50
|
+
| nvm kurulu ama kabuk görmüyor | `source ~/.nvm/nvm.sh && nvm use --lts`, ya da yeni bir terminal aç |
|
|
51
|
+
| npm çok eski (< 5.2, npx'ten önceki sürümler) | `npm i -g npm@latest`, ya da üstteki global kurulum satırı |
|
|
52
52
|
|
|
53
53
|
Ne `npx` ne de global kurulum isteyen yol - klonla ve installer'ı doğrudan çalıştır:
|
|
54
54
|
|
|
@@ -82,7 +82,7 @@ Bir görev çalıştır - girdi tipi otomatik algılanır:
|
|
|
82
82
|
|
|
83
83
|
Her girdi aynı kısa intake'ten geçer - **hesap → (repo) → maturity kontrolü → dev-context** - sonra Phase 0'a girer. Bir Jira id'si veya GitHub URL'i hiçbir kod yazılmadan _önce_ çekilir ve maturity-kontrol edilir; serbest-metin bu çekimi atlayıp doğrudan planlamaya geçer. Çoklu-repo görevleri dev-context adımında ekstra repo ekler.
|
|
84
84
|
|
|
85
|
-
Onayları atlamak için `autopilot` ekle (örn. `/multi-agent:autopilot "PROJ-1234"`).
|
|
85
|
+
Onayları atlamak için `autopilot` ekle (örn. `/multi-agent:autopilot "PROJ-1234"`). Çalışma alanı bayrak değil: koşunun kendi şekli hakkında sorduğu tek soru, Faz 0'da nerede koşacağı - worktree mi, mevcut checkout'un mu. `autopilot` bu soruyu sormadan worktree'ye karar verir.
|
|
86
86
|
|
|
87
87
|
Sonra `/multi-agent:update` ile güncelle. Kaldırmak için (tokenlar korunur) `npx @mmerterden/multi-agent-pipeline uninstall`.
|
|
88
88
|
|
|
@@ -90,13 +90,12 @@ Sonra `/multi-agent:update` ile güncelle. Kaldırmak için (tokenlar korunur) `
|
|
|
90
90
|
|
|
91
91
|
## Nasıl çalışır
|
|
92
92
|
|
|
93
|
-
Tek komut
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
mu):
|
|
93
|
+
Tek komut 6 fazı çalıştırır, riskli olanlar arasında bir kapı ile. Her koşu
|
|
94
|
+
tüm kümeyi taşır; Faz 0'ın şekil hakkında sorduğu tek soru branch'in nerede
|
|
95
|
+
yaşayacağı: worktree mi, mevcut checkout'un mu.
|
|
97
96
|
|
|
98
97
|
- **0 · Init** - girdiyi ayrıştır (Jira id / GitHub URL / serbest metin), hesap + repo(lar) seç, issue'yu çek, maturity kontrolü yap.
|
|
99
|
-
- **1 · Plan** - stack'i tespit et, codebase'i tara ve analiz dokümanını yaz; sonra onu dosya seviyesinde hedefleri olan görevlere böl ve koda dokunmadan önce **onayın için dur**. Analiz ve planlama 19.0.0'a kadar iki ayrı fazdı;
|
|
98
|
+
- **1 · Plan** - stack'i tespit et, codebase'i tara ve analiz dokümanını yaz; sonra onu dosya seviyesinde hedefleri olan görevlere böl ve koda dokunmadan önce **onayın için dur**. Analiz ve planlama 19.0.0'a kadar iki ayrı fazdı; tek bir karar oldukları için tek faz. Codebase taraması explorer persona'sı üzerinde koşar (Sonnet).
|
|
100
99
|
- **2 · Dev** - TDD: başarısız test → kod → yeşil, repo'nun stiline + aktif stack skill'lerine uyarak. Faz kendi kapısında biter: build, lint, test ve sır taraması, **bir kez** koşar. Review eskiden ikinci kez build ediyordu ve aradaki farkı kimse okumuyordu.
|
|
101
100
|
- **3 · Review** - Dev'in ürettiği log'lara karşı **CLI-farkında paralel review** - Claude Code 3 model çalıştırır (Fable + Opus + Sonnet), Copilot CLI 3 (GPT-5.4 + Opus + Sonnet) - ve bir **Fable triage** sadece aksiyon alınabilir bulguları tutar; blocker'lar Phase 2'ye geri döner. Opsiyonel kullanıcı testi burada, bekleme durumunu koruyarak.
|
|
102
101
|
- **4 · Commit/PR** - conventional commit, push (başarılı olmalı), bir PR aç (`Ref: #N`, asla otomatik kapatma).
|
|
@@ -137,7 +136,7 @@ Başarısız bir `git fetch` sessizce değil, yüksek sesle bozuluyor: liste lok
|
|
|
137
136
|
|
|
138
137
|
### Çalışma alanı: worktree mi lokal mi
|
|
139
138
|
|
|
140
|
-
Faz 0 Adım 5b branch'in nerede yaşayacağını sorar. **Worktree** (`.worktrees/{id}/`) mevcut checkout'una dokunmaz; **Lokal** proje kökünde yeni bir branch'te çalışır
|
|
139
|
+
Faz 0 Adım 5b branch'in nerede yaşayacağını sorar. **Worktree** (`.worktrees/{id}/`) mevcut checkout'una dokunmaz; **Lokal** proje kökünde yeni bir branch'te çalışır ve proje kökünün temiz olmasını ister. Bu bir soru, bayrak değil: `:local` komutu da `--local` anahtarı da yok, yani cevap koşunun nasıl yazıldığına gömülmek yerine koşunun içinde görünür. `autopilot` sormadan worktree'ye karar verir: gözetimsiz bir koşu nerede duruyorsa oradan commit'leyip push eder, ve bunu senin kendi checkout'unda yapmak tam olarak worktree'nin engellemek için var olduğu şeydir. Review'ın sonundaki manuel test önerisi de aynı cevabı izler: worktree koşusuna branch'i checkout edip test etmek isteyip istemediği sorulur, lokal koşu zaten o checkout'un içindedir, yani önerilecek bir şey yoktur.
|
|
141
140
|
|
|
142
141
|
Perde arkasında: her görev kendi **git worktree**'sinde çalışır (ya da lokal seçtiğinde mevcut branch'te), commit'ler **repo'nun origin URL'inden yönlendirilen git kimliğini** kullanır, ve **çoklu-repo** görevleri repo başına worktree artı bir integration build alır. Tokenlar OS keychain'de kalır; hiçbir şey commit edilmez ya da loglanmaz. `/multi-agent:review` mevcut bir GitHub/Bitbucket PR'ını da review edebilir - `file:line`'a bağlı bulgu-başına inline yorumlar + açık bir Approve / Needs-Work durumu.
|
|
143
142
|
|
|
@@ -148,39 +147,23 @@ Bunun arkasındaki disiplin - sınırlı loop'lar, kanıt kapıları, token-büt
|
|
|
148
147
|
| Mod | Komut | Akış |
|
|
149
148
|
| --------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
150
149
|
| Full | `/multi-agent "task"` | Tüm 6 faz, interaktif |
|
|
151
|
-
| Autopilot | `/multi-agent:autopilot "task"` | 6 faz
|
|
152
|
-
| Local | `/multi-agent:local "task"` | İnteraktif Test kapısı hariç tam pipeline, mevcut branch (worktree yok) |
|
|
153
|
-
| 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 |
|
|
154
|
-
| Ship | `/multi-agent:resume-local` | Lokal iş üzerinde review→test→commit→report kuyruğunu çalıştır |
|
|
150
|
+
| Autopilot | `/multi-agent:autopilot "task"` | Aynı 6 faz, onaysız; çalışma alanı worktree'ye çözülür ve Review içindeki kullanıcı-test kapısı atlanır |
|
|
155
151
|
| Audit | `/multi-agent:design-check` | Mock-mode vs Figma uygunluğu, yalnızca lokal |
|
|
156
152
|
| 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 |
|
|
157
153
|
|
|
158
|
-
Koşunun kendisinde ayarlanabilen tek şey
|
|
159
|
-
### Pipeline derinliği: Tam mı Kısa mı
|
|
160
|
-
|
|
161
|
-
Derinlik, koşunun kendi şekli hakkında sorduğu tek soru. `/multi-agent` ve `/multi-agent:local` bunu Faz 0 Adım 7.5'te sorar - issue çekildikten ve görev tipi belirlendikten sonra, çünkü öneri onlardan çıkıyor.
|
|
162
|
-
|
|
163
|
-
- **Tam** hepsini koşar: Analiz kod tabanını okuyup etki alanını çıkarır, Planlama görev kırılımını yazıp onayını bekler, Dev de o plandan çalışır.
|
|
164
|
-
- **Kısa** doğrudan Dev'den başlar: Init → Dev → Review → Test → Commit → Report. Analiz ve Planlama koşmaz; plan kapısı ve analiz dokümanı yoktur, görev listesini Dev issue'dan kendi çıkarır ve takip edecek bir planı olmadığı için Sonnet yerine **Opus** üzerinde koşar. Review, deterministik kapılar ve test paketi aynen kalır - Kısa düşünmeyi atlar, kanıtı değil.
|
|
165
|
-
|
|
166
|
-
Kısa'yı düzeltmeyi ve dosyayı zaten biliyorsan seç: tek satırlık bir guard, bir metin değişikliği, bir yeniden adlandırma, bir geri alma. Neden hâlâ bir hipotezse, görevde Figma referansı ya da analiz dokümanı varsa (bunları kırılıma çeviren şey Planlama'dır) ya da değişiklik birden fazla repoya yayılıyorsa yanlış seçim olur.
|
|
167
|
-
|
|
168
|
-
Widget cevabı tahmin etmek yerine takip eder: sen seçmeden önce yalnızca Faz 0 karosu çizilir, Kısa koşu Analiz karosunu hiç çizmez. İki autopilot girişi de bu soruyu sormaz, her zaman Tam koşar. Hangisinin koştuğunu `agent-state.json` `onlyDevelop` alanında tutar.
|
|
169
|
-
|
|
154
|
+
Koşunun kendisinde ayarlanabilen tek şey autopilot; geri kalan her şey kendi komutu. Tam katalog aşağıda.
|
|
170
155
|
|
|
171
156
|
## Komutlar
|
|
172
157
|
|
|
173
|
-
`/multi-agent` ve
|
|
158
|
+
`/multi-agent` ve 57 alt komut. `/multi-agent:help` aynı katalogu terminalde, `outputLanguage` ayarına göre gösterir.
|
|
174
159
|
|
|
175
160
|
### Pipeline girişleri
|
|
176
161
|
|
|
177
162
|
| Komut | Ne yapar |
|
|
178
163
|
| ------------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
179
|
-
| `/multi-agent "task"` |
|
|
180
|
-
| `/multi-agent:
|
|
181
|
-
| `/multi-agent:
|
|
182
|
-
| `/multi-agent:local-autopilot "task"` | Mevcut branch, onay yok, her zaman Full |
|
|
183
|
-
| `/multi-agent:resume-local` | Lokalde bitmiş iş için pipeline kuyruğu: Review → Build+Test → Commit/PR → Report. Dev fazı yok |
|
|
164
|
+
| `/multi-agent "task"` | Pipeline; branch'in nerede yaşayacağını Faz 0 sorar |
|
|
165
|
+
| `/multi-agent:autopilot "task"` | Aynı pipeline, gözetimsiz: worktree'ye çözülür, onay sorulmaz |
|
|
166
|
+
| `/multi-agent:resume` | Yarım kalan iş, iki kaynaktan da: duran koşu kaldığı yerden devam eder, arkasında koşu olmayan branch kuyruğu alır (Review → Build+Test → Commit/PR → Report) |
|
|
184
167
|
|
|
185
168
|
### Görev kontrolü
|
|
186
169
|
|
|
@@ -188,7 +171,7 @@ Widget cevabı tahmin etmek yerine takip eder: sen seçmeden önce yalnızca Faz
|
|
|
188
171
|
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
189
172
|
| `/multi-agent:status` | Her görevin ID'si, fazı, branch'i ve durumu |
|
|
190
173
|
| `/multi-agent:log [#N]` | Görevin `agent-log.md` dosyası (varsayılan: en son görev) |
|
|
191
|
-
| `/multi-agent:resume [#N]` | Durmuş ya da hata almış görevi kaldığı fazdan sürdürür
|
|
174
|
+
| `/multi-agent:resume [#N]` | Durmuş ya da hata almış görevi kaldığı fazdan sürdürür; arkasında koşu olmayan branch için kuyruğu çalıştırır |
|
|
192
175
|
| `/multi-agent:kill [#N]` | Görevi durdurur, worktree'sini ve branch'ini siler |
|
|
193
176
|
| `/multi-agent:steer #N "<talimat>"` | Koşan bir görevi durdurmadan düzeltir; talimat bir sonraki faz sınırında uygulanır |
|
|
194
177
|
| `/multi-agent:search` | Tüm görev loglarında sıralamalı arama; `--semantic` triyaj corpus'unu sorgular |
|
|
@@ -282,11 +265,37 @@ Yukarıdaki her şey sen başlattığında başlar. Sürekli mod, aynı pipeline
|
|
|
282
265
|
**senin seçtiğin tek makinede**, **senin seçtiğin repolardan** işi kendi başına
|
|
283
266
|
alması.
|
|
284
267
|
|
|
285
|
-
| Komut
|
|
286
|
-
|
|
|
287
|
-
| `/multi-agent:autopilot-on`
|
|
288
|
-
| `/multi-agent:autopilot-status` | Ne koşuyor hangi fazda, sırada ne var, ne cevap bekliyor, son bir günün PR'ları ve yuvarlanan harcama
|
|
289
|
-
| `/multi-agent:autopilot-off`
|
|
268
|
+
| Komut | Ne yapar |
|
|
269
|
+
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
270
|
+
| `/multi-agent:autopilot-on` | Bu makinenin izleyeceği repoları seçersin. Etiketli GitHub issue'ları ve sana atanmış + etiketli Jira maddeleri worktree'de koşar, açık PR'da durur. Listeyi değiştirmek için tekrar çalıştır |
|
|
271
|
+
| `/multi-agent:autopilot-status` | Ne koşuyor hangi fazda, sırada ne var, ne cevap bekliyor, son bir günün PR'ları ve yuvarlanan harcama |
|
|
272
|
+
| `/multi-agent:autopilot-off` | Zamanlamayı kaldırır. Koşan iş biter; repo seçimi saklanır |
|
|
273
|
+
|
|
274
|
+
## Hangi model cevaplıyor
|
|
275
|
+
|
|
276
|
+
Merdiven `fable -> opus -> sonnet -> haiku`; koşu başarısızlıkta merdiveni iner.
|
|
277
|
+
Yönlendirme basamağı çağrı yeri başına bir politikaya seçtirir ve sen açana
|
|
278
|
+
kadar kapalıdır.
|
|
279
|
+
|
|
280
|
+
| Komut | Ne yapar |
|
|
281
|
+
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
282
|
+
| `/multi-agent:route-on` | Strateji, kapsam ve hangi çağrının hangi basamağa düşeceğini söyleyen kuralları sorar. Hiçbir şey yazılmadan önce `route-config.schema.json`'a karşı doğrulanır |
|
|
283
|
+
| `/multi-agent:route-off` | Kapatır. Kurallar SAKLANIR, tekrar açıldığında aynı yapılandırma yeniden sorulmaz |
|
|
284
|
+
| `/multi-agent:route-status` | Açık mı, hangi kural nerede geçerli, son çağrılar hangi basamağa gitti, bu koşu ne tuttu |
|
|
285
|
+
| `/multi-agent:model` | Üst basamağı açıp kapatır ve maliyet defterinin fiyatlamasını aynı adımda onunla taşır |
|
|
286
|
+
|
|
287
|
+
**Kapsam oturumun tamamı olamaz.** `scope` yalnız `subagent`, `bulk-read` ve
|
|
288
|
+
`research` kabul eder; `host-session` diye bir değer yoktur ve bu bir teamül
|
|
289
|
+
değil, şema kapısıdır. Host'un base URL'ini sahiplenmek, bu pipeline'la ilgisi
|
|
290
|
+
olmayan işler dahil yaptığın her çağrıyı üçüncü bir katmandan geçirirdi.
|
|
291
|
+
|
|
292
|
+
**Dürüst sınır, ve `route-status` bunu gizlemek yerine yazar.** Anthropic
|
|
293
|
+
dışı bir sağlayıcıdaki basamak dağıtımda reddedilir. Hiçbir çağrı yeri model
|
|
294
|
+
isteğini kendisi atmıyor: yönlendirilen tek yer olan `bulk-read.sh` işi `claude`
|
|
295
|
+
CLI'ına devrediyor, o da yalnız bu merdiveni konuşuyor. Bir okumayı üçüncü bir
|
|
296
|
+
sağlayıcıya göndermek ayrıca dosyanın tam metnini onu sahiplenen hesabın dışına
|
|
297
|
+
çıkarırdı; bu yüzden varsayılan değil, kullanıcının verdiği bir karardır.
|
|
298
|
+
Yönlendirme merdivenin içinde seçim yapar.
|
|
290
299
|
|
|
291
300
|
**Varsayılan olarak hiçbir şey açık değil ve hiçbir repo kendiliğinden eklenmez.**
|
|
292
301
|
Paketi kurmak ne durum yazar ne zamanlama kurar; bu bir gün değişirse
|
|
@@ -305,7 +314,7 @@ PR sayısına tavan yok; sınırlar 24 saatlik yuvarlanan `costCeilingUsd` ve
|
|
|
305
314
|
makinenin kapasitesi.
|
|
306
315
|
|
|
307
316
|
**`swiftc` varsa menü çubuğu göstergesi** aynı `status.json`'ı sağ üstte çizer ve
|
|
308
|
-
kendi kendine tazelenir: madde başına tek satır - id,
|
|
317
|
+
kendi kendine tazelenir: madde başına tek satır - id, kesir
|
|
309
318
|
olarak faz, geçen süre, stack. Madde biter bitmez satır kaybolur ve PR'ıyla
|
|
310
319
|
Raporlar altında görünür. Yalnızca **çizer**; bir koşuyu başlatamaz, durduramaz,
|
|
311
320
|
değiştiremez. ActivityKit macOS'ta yok, o yüzden bu bir `NSStatusItem` ve
|
|
@@ -341,17 +350,17 @@ Bu, ilgili plugin'i (+ ortak `ai-common` plugin'ini) repo'nun `.claude/settings.
|
|
|
341
350
|
|
|
342
351
|
## Araç desteği
|
|
343
352
|
|
|
344
|
-
Pipeline **Claude Code**, **Copilot CLI** ve **Codex CLI** üzerinde native çalışır - üçü de aynı `pipeline/` kaynağından kurulur ve aynı
|
|
353
|
+
Pipeline **Claude Code**, **Copilot CLI** ve **Codex CLI** üzerinde native çalışır - üçü de aynı `pipeline/` kaynağından kurulur ve aynı 57 komutu alır.
|
|
345
354
|
|
|
346
355
|
| Araç | Bayrak | Ne kurar |
|
|
347
356
|
| ----------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
348
357
|
| Claude Code | `--claude` (varsayılan) | slash komutları + skill'ler + agent'lar + üç `PreToolUse` hook'u (secret scan, agent-guard, okuma-boyutu geçidi) |
|
|
349
|
-
| Copilot CLI | `--copilot` | talimatlar +
|
|
350
|
-
| Codex CLI | `--codex` | bir router skill + ref olarak
|
|
358
|
+
| Copilot CLI | `--copilot` | talimatlar + 57 alt-komut skill'i + script'ler |
|
|
359
|
+
| Codex CLI | `--codex` | bir router skill + ref olarak 57 spec + 9 agent TOML + `AGENTS.md` bloğu + `codex mcp add` |
|
|
351
360
|
|
|
352
361
|
Skill'leri stack'e göre filtrele: `--platform=ios\|android\|all`.
|
|
353
362
|
|
|
354
|
-
**Codex neden
|
|
363
|
+
**Codex neden 57 değil de tek bir skill alıyor.** Codex, keşfettiği her skill'in adını
|
|
355
364
|
ve açıklamasını tek bir prompt bloğuna toplar ve blok taştığında girdileri hatasızca
|
|
356
365
|
düşürür. 0.145 üzerinde ölçüldü: 142 skill deklare eden bir plugin kurulduğunda sadece
|
|
357
366
|
75'i yüzeye çıktı ve alakasız bir kullanıcı skill'i tahliye edildi. Bu yüzden Codex'te
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# 2. `instructionDriven` flag as explicit pipeline fork
|
|
2
2
|
|
|
3
3
|
**Status:** Accepted · 2025
|
|
4
|
+
|
|
4
5
|
> **Phase numbers below are the eight-phase ones.** [ADR-0014](./0014-six-phase-consolidation.md) renumbered the contract in v19.0.0 (Phase 6 Commit is now Phase 4, Phase 7 Report is now Phase 5). The decision this ADR records is unchanged; only the labels moved, and they are left as written because an ADR records what was decided.
|
|
5
6
|
|
|
6
7
|
## Context
|
|
@@ -27,11 +28,11 @@ phases that need to fork read this flag.
|
|
|
27
28
|
Phase 6 uses a **deterministic truth table** (documented at
|
|
28
29
|
`phase-6-commit.md:25`) to dispatch:
|
|
29
30
|
|
|
30
|
-
| `instructionDriven` | `instructionFiles.commit` exists | Action
|
|
31
|
-
| ------------------- | -------------------------------- |
|
|
32
|
-
| true
|
|
33
|
-
| true
|
|
34
|
-
| false
|
|
31
|
+
| `instructionDriven` | `instructionFiles.commit` exists | Action |
|
|
32
|
+
| ------------------- | -------------------------------- | ------------------------------------------------------------------ |
|
|
33
|
+
| true | yes | Instruction-driven path |
|
|
34
|
+
| true | no | Log error, set `instructionDrivenFallback=true`, use standard path |
|
|
35
|
+
| false | - | Standard path |
|
|
35
36
|
|
|
36
37
|
## Consequences
|
|
37
38
|
|
|
@@ -27,10 +27,10 @@ Current budgets (v3.5.0):
|
|
|
27
27
|
|
|
28
28
|
- Phase 0: warn 3500 / max 4000 (INIT is interactive + token-heavy)
|
|
29
29
|
- Phase 1: warn 1200 / max 1500
|
|
30
|
-
- Phase 2: warn
|
|
30
|
+
- Phase 2: warn 800 / max 1000
|
|
31
31
|
- Phase 3: warn 1500 / max 1800
|
|
32
32
|
- Phase 4: warn 1800 / max 2200 (triage + 3-model review is verbose)
|
|
33
|
-
- Phase 5: warn
|
|
33
|
+
- Phase 5: warn 600 / max 800
|
|
34
34
|
- Phase 6: warn 2400 / max 2800 (commit + PR + issue body update)
|
|
35
35
|
- Phase 7: warn 1800 / max 2200
|
|
36
36
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# 8. Installer modularization + secret-leak defense
|
|
2
2
|
|
|
3
3
|
**Status:** Accepted · 2026-04-27 (v8.0.0)
|
|
4
|
+
|
|
4
5
|
> **Phase numbers below are the eight-phase ones.** [ADR-0014](./0014-six-phase-consolidation.md) renumbered the contract in v19.0.0 (the producer/consumer phase docs it names were renumbered). The decision this ADR records is unchanged; only the labels moved, and they are left as written because an ADR records what was decided.
|
|
5
6
|
|
|
6
7
|
> **Amended v10.7.0:** the `_adapters.mjs` module and its third-party adapter dispatch were removed when the pipeline narrowed to Claude Code + Copilot CLI (see ADR 0007). `install/` now ships **8** modules, not 9; the module list below records the v8.0.0 decision as it shipped at the time.
|
|
@@ -9,7 +9,7 @@ ADR-0006 split the source tree into `shared/core/` + `shared/external/` but kept
|
|
|
9
9
|
That left Claude Code receiving every stack skill **twice**:
|
|
10
10
|
|
|
11
11
|
- 110 of 157 local skill dirs duplicated the enabled plugins byte-for-byte - ~10k tokens of duplicate descriptions per session, 4.4 MB on disk.
|
|
12
|
-
- The local copy shadowed the plugin the moment it went stale, and it
|
|
12
|
+
- The local copy shadowed the plugin the moment it went stale, and it _was_ stale in practice: the plugin cache and the local copy advanced on different schedules.
|
|
13
13
|
- The duplication hid real bugs: `skill-conformance.mjs` and `match-skills.mjs` only knew the local root, so they kept working by accident - against the stale copy.
|
|
14
14
|
|
|
15
15
|
## Decision
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# 10. Our own code graph, not a forked one
|
|
2
2
|
|
|
3
3
|
**Status:** Accepted · 2026-08-28
|
|
4
|
+
|
|
4
5
|
> **Phase numbers below are the eight-phase ones.** [ADR-0014](./0014-six-phase-consolidation.md) renumbered the contract in v19.0.0 (`phase-1-analysis.md` is now `phase-1-plan.md` and Phase 7 Report is now Phase 5). The decision this ADR records is unchanged; only the labels moved, and they are left as written because an ADR records what was decided.
|
|
5
6
|
|
|
6
7
|
## Context
|
|
@@ -85,10 +86,10 @@ a repo whose files are not in the page cache costs more: the first build of the
|
|
|
85
86
|
30,000-token retrieval budget, ground truth derived by grep and path match so
|
|
86
87
|
that the impact family is stacked against the graph on purpose.
|
|
87
88
|
|
|
88
|
-
| Arm
|
|
89
|
-
|
|
90
|
-
| grep + read | 66.0%
|
|
91
|
-
| code graph
|
|
89
|
+
| Arm | Coverage | Tokens/question |
|
|
90
|
+
| ----------- | -------- | --------------- |
|
|
91
|
+
| grep + read | 66.0% | 24,555 |
|
|
92
|
+
| code graph | 80.4% | 18,465 |
|
|
92
93
|
|
|
93
94
|
The aggregate passes the gate, but the split is the useful part. On questions
|
|
94
95
|
naming an exact type, `grep -lw` is the oracle: it scored 100% and the graph
|
|
@@ -50,7 +50,7 @@ constructs look like cross-platform scaffolding and are load-bearing on macOS:
|
|
|
50
50
|
|
|
51
51
|
1. `smoke-shell-portability.sh`'s `grep -P` ban. BSD grep has no `-P`, exits 2,
|
|
52
52
|
and with `2>/dev/null` that reads as "found nothing". Two gates already
|
|
53
|
-
shipped green on macOS for exactly this reason. The rule is
|
|
53
|
+
shipped green on macOS for exactly this reason. The rule is _more_ relevant
|
|
54
54
|
after this ADR, not less; only its header changes, from "supports macOS,
|
|
55
55
|
Linux and Windows" to "the runtime is BSD userland and bash 3.2".
|
|
56
56
|
2. The `sha256sum || shasum` ordering in seven scripts. The gate fails a file
|
|
@@ -63,7 +63,7 @@ constructs look like cross-platform scaffolding and are load-bearing on macOS:
|
|
|
63
63
|
Together they are what keeps macOS writes on `security -i`, with the secret
|
|
64
64
|
on stdin and never on argv. Simplifying one without the other silently moves
|
|
65
65
|
the write onto the delegate.
|
|
66
|
-
5. `github-ssh-setup.sh`'s Darwin arm. `UseKeychain yes`
|
|
66
|
+
5. `github-ssh-setup.sh`'s Darwin arm. `UseKeychain yes` _is_ the macOS
|
|
67
67
|
behaviour; the other arm is an empty string.
|
|
68
68
|
6. The `stat -c ... || stat -f ...` chains. GNU-first ordering is required
|
|
69
69
|
because `stat -f` is a valid GNU flag (`--file-system`) that succeeds.
|
|
@@ -25,8 +25,8 @@ and answers exactly those questions.
|
|
|
25
25
|
|
|
26
26
|
`swiftlens/swiftlens` demonstrated the idea as an MCP server. It could not be
|
|
27
27
|
used: its licence is the "SwiftLens Non-Commercial Use License 1.0", which
|
|
28
|
-
prohibits
|
|
29
|
-
production"
|
|
28
|
+
prohibits _"Use by a company or organization for internal development or
|
|
29
|
+
production"_, and the repository has been archived since 2025-07-17. The
|
|
30
30
|
underlying technology is unencumbered - SourceKit-LSP is Apple's, Apache-2.0.
|
|
31
31
|
|
|
32
32
|
## Decision
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 14. Six phases, because two of the eight were doing the same work twice
|
|
2
2
|
|
|
3
|
-
**Status:** Accepted · 2026-09-18 · amends [ADR-0005](./0005-lazy-phase-docs.md)
|
|
3
|
+
**Status:** Accepted · 2026-09-18 · amends [ADR-0005](./0005-lazy-phase-docs.md) · amended by [ADR-0015](./0015-one-pipeline-no-depth-answer.md)
|
|
4
4
|
|
|
5
5
|
Three further ADRs carry the old numbers in their bodies and now carry a pointer
|
|
6
6
|
back here instead of being rewritten: [ADR-0002](./0002-instruction-driven-flag.md)
|
|
@@ -39,14 +39,14 @@ left the whole tree stale and the suite would have stayed green.
|
|
|
39
39
|
|
|
40
40
|
Six phases. The mapping:
|
|
41
41
|
|
|
42
|
-
| Was
|
|
43
|
-
|
|
44
|
-
| 0 Init
|
|
45
|
-
| 1 Analysis + 2 Planning
|
|
46
|
-
| 3 Dev + 4 Review Stage 1
|
|
47
|
-
| 4 Review (Stage 2-3) + 5 Test | **3** | Review | The user test moved inside Review
|
|
48
|
-
| 6 Commit
|
|
49
|
-
| 7 Report
|
|
42
|
+
| Was | Is | Name | What changed |
|
|
43
|
+
| ----------------------------- | ----- | ------ | -------------------------------------------------- |
|
|
44
|
+
| 0 Init | **0** | Init | Nothing |
|
|
45
|
+
| 1 Analysis + 2 Planning | **1** | Plan | One doc, one exit gate |
|
|
46
|
+
| 3 Dev + 4 Review Stage 1 | **2** | Dev | Verify became Dev's exit gate; the build runs once |
|
|
47
|
+
| 4 Review (Stage 2-3) + 5 Test | **3** | Review | The user test moved inside Review |
|
|
48
|
+
| 6 Commit | **4** | Commit | Nothing |
|
|
49
|
+
| 7 Report | **5** | Report | Nothing |
|
|
50
50
|
|
|
51
51
|
Analysis folds into Plan rather than into Init because of the token budget,
|
|
52
52
|
not preference. Init is 733 lines with a 13,400-token ceiling, already the
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# 15. One pipeline: the depth question is removed
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted · 2026-09-21 · amends [ADR-0014](./0014-six-phase-consolidation.md) · extended by [ADR-0016](./0016-the-run-shape-is-asked-not-typed.md)
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
Two selectors decided how much work a run did, and neither read evidence.
|
|
8
|
+
|
|
9
|
+
`analysisPhase.mode` chose between a full analysis document and a Lite one
|
|
10
|
+
whose section list was fixed: seven sections regardless of what the feature
|
|
11
|
+
carried. v19.0.0 removed it, because Locked 2 already decides section presence
|
|
12
|
+
from evidence and a fixed list can only disagree with it - dropping a section a
|
|
13
|
+
feature needed, keeping one it did not.
|
|
14
|
+
|
|
15
|
+
`state.onlyDevelop` did the same thing one level up. A Phase 0 Step 7.5 picker
|
|
16
|
+
asked Full or Short before the run had read anything, and Short skipped the plan
|
|
17
|
+
phase outright. The question arrived after `taskType` and before any analysis,
|
|
18
|
+
so the answer was a guess about work not yet examined, and it recommended itself
|
|
19
|
+
from `taskType` alone: `bugfix` and `chore` were told to answer Short.
|
|
20
|
+
|
|
21
|
+
The cost of keeping it was not only the branch. Phase 2 carried a second
|
|
22
|
+
contract for Short runs - a different model, a different task source, five of
|
|
23
|
+
its nine steps recorded `not-applicable` - and the tracker deferred half its
|
|
24
|
+
tile registration to Step 7.5 because the phase set was unknown until the
|
|
25
|
+
question was answered. One pipeline had two shapes, and only one of them was
|
|
26
|
+
exercised by the documents that describe it.
|
|
27
|
+
|
|
28
|
+
## Decision
|
|
29
|
+
|
|
30
|
+
There is one pipeline. Every mode runs its whole phase set, and the set is a
|
|
31
|
+
property of the command, known before the tracker boots.
|
|
32
|
+
|
|
33
|
+
- The Step 7.5 depth question is gone, and with it `state.onlyDevelop`.
|
|
34
|
+
- Phase 1 always runs. What it produces scales with the evidence the task
|
|
35
|
+
carries: the Locked 2 omission rule already drops a section with nothing
|
|
36
|
+
behind it, so a one-line chore yields a short document rather than a skipped
|
|
37
|
+
phase.
|
|
38
|
+
- The Plan Approval Gate has exactly one skip left, `autopilot`, and it is a
|
|
39
|
+
skip because there is nobody to ask - not because the run is a lighter kind
|
|
40
|
+
of run.
|
|
41
|
+
- Tracker registration is a single batch at Step -1. Nothing is deferred,
|
|
42
|
+
because no answer later in the run can add or remove a phase.
|
|
43
|
+
- Phase 2 reads the analysis document in steps 1, 2, 3, 5 and 6. A step whose
|
|
44
|
+
section is absent records `not-applicable (no <section> in this document)`
|
|
45
|
+
instead of aborting, which is the same rule the document's own omission rule
|
|
46
|
+
produces.
|
|
47
|
+
|
|
48
|
+
Two gates hold the line, and both assert the ABSENCE: `smoke-pipeline-surface.sh`
|
|
49
|
+
fails if `phase-0-init` grows a depth step or writes a depth key, or if any of
|
|
50
|
+
the four downstream readers reads one; `smoke-plan-approval-gate.sh` fails if
|
|
51
|
+
the gate's scope clause widens past autopilot.
|
|
52
|
+
|
|
53
|
+
## Consequences
|
|
54
|
+
|
|
55
|
+
- **Breaking.** `state.onlyDevelop` is removed from the state schema, which has
|
|
56
|
+
`additionalProperties: false`, so a state file written before v20 no longer
|
|
57
|
+
validates. The floor is raised with `dist-tags.required` rather than a
|
|
58
|
+
migration: a run below the floor halts instead of reading a record written
|
|
59
|
+
under a contract that no longer exists.
|
|
60
|
+
- Every run now produces an analysis document. For a one-line change that
|
|
61
|
+
document is short, and it is the thing Phase 2 steps 1, 2, 3, 5 and 6 read;
|
|
62
|
+
before, those steps had no input at all on a Short run and recorded
|
|
63
|
+
`not-applicable` for a reason that was a mode rather than a measurement.
|
|
64
|
+
- The fastest path is no longer "answer Short". It is answering the Phase 0
|
|
65
|
+
workspace question with `local`, which changes where the work happens rather
|
|
66
|
+
than how much of the pipeline runs.
|
|
67
|
+
- `gen-mode-dispatch.mjs` loses its deferred-registration branch, and every
|
|
68
|
+
generated tracker section shrinks to one registration loop.
|
|
69
|
+
|
|
70
|
+
## Alternatives
|
|
71
|
+
|
|
72
|
+
**Keep Short but derive it from evidence.** A run would have to read the
|
|
73
|
+
codebase before deciding whether to read the codebase. The measurement that
|
|
74
|
+
would justify skipping Phase 1 is the one Phase 1 makes.
|
|
75
|
+
|
|
76
|
+
**Keep the question and make Phase 1 cheap on a Short run.** That is Phase 1
|
|
77
|
+
running, with a second name. If the phase is cheap when there is little to say,
|
|
78
|
+
the question buys nothing; if it is not, the question is a way to avoid work the
|
|
79
|
+
review phase then has no record of.
|
|
80
|
+
|
|
81
|
+
**Keep the key, stop writing it.** A reader left behind keeps a dead branch
|
|
82
|
+
alive and invites the question back to feed it. The gates assert the key's
|
|
83
|
+
absence for that reason, not merely the picker's.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# 16. The shape of a run is asked, not typed into its name
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted · 2026-09-21 · extends [ADR-0015](./0015-one-pipeline-no-depth-answer.md)
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
ADR-0015 removed the depth answer, leaving one pipeline. Three command names
|
|
8
|
+
still encoded a decision the run was able to ask about:
|
|
9
|
+
|
|
10
|
+
- `/multi-agent:local` and `/multi-agent:local-autopilot` answered "where does
|
|
11
|
+
the branch live" before the run started. Phase 0 Step 5b asks the same
|
|
12
|
+
question, so the same answer had two entry points and the command names were
|
|
13
|
+
the one that never appeared in the run's own record: `workspaceSource` could
|
|
14
|
+
say `command`, and nothing downstream could tell which command.
|
|
15
|
+
- `/multi-agent:resume-local` named the *kind* of unfinished work rather than
|
|
16
|
+
the work. A user who had stopped a run and a user who had hand-written a
|
|
17
|
+
change both wanted to continue; they had to know which of two commands
|
|
18
|
+
described their situation before they could ask for help with it.
|
|
19
|
+
|
|
20
|
+
Each name also multiplied surface: two more command directories, two more
|
|
21
|
+
Copilot mirrors, two more rows in seven gated inventories, and a preference
|
|
22
|
+
block (`global.resumeLocal`) named after a command.
|
|
23
|
+
|
|
24
|
+
## Decision
|
|
25
|
+
|
|
26
|
+
The workspace question is asked at Phase 0 Step 5b and nowhere else. The
|
|
27
|
+
`:local` and `:local-autopilot` commands are removed along with the `--local`
|
|
28
|
+
flag. `autopilot` resolves the workspace to a worktree without asking, because
|
|
29
|
+
an unattended run commits and pushes from wherever it stands.
|
|
30
|
+
|
|
31
|
+
`:resume-local` folds into `/multi-agent:resume`, which now builds a list from
|
|
32
|
+
both sources - tracked runs that stopped, and the current branch when it
|
|
33
|
+
carries work no run produced - and asks which one to pick up. The tail path
|
|
34
|
+
(Review → Commit → Report, no Plan and no Dev) is unchanged; only its entry
|
|
35
|
+
point moved. `global.resumeLocal` becomes `global.resume` under preferences
|
|
36
|
+
schema 2.8.0, carrying the `autoFix` value across.
|
|
37
|
+
|
|
38
|
+
Command inventory: 60 → 57.
|
|
39
|
+
|
|
40
|
+
## Consequences
|
|
41
|
+
|
|
42
|
+
- A run's shape is visible in the run. `workspaceSource` and the Step 5b
|
|
43
|
+
answer are the record, and there is no second way to set them.
|
|
44
|
+
- One fewer thing to know before asking. `/multi-agent:resume` with no argument
|
|
45
|
+
is a complete request; the list answers the question the command names used
|
|
46
|
+
to ask of the user.
|
|
47
|
+
- The manual-test offer at the end of Review follows the workspace answer
|
|
48
|
+
rather than a command name: a worktree run is asked whether to check the
|
|
49
|
+
branch out and test it, a local run already is that checkout.
|
|
50
|
+
- `phases.json` modes lose their `local` flag, since no mode sets it. The
|
|
51
|
+
generated dispatch blocks are byte-identical, so the drift gate holds.
|
|
52
|
+
- Old names stay in `COMMAND_RENAMES`, so a snapshot naming them still
|
|
53
|
+
resolves and the removal cannot happen silently in a later release.
|
|
54
|
+
|
|
55
|
+
## Alternatives
|
|
56
|
+
|
|
57
|
+
**Keep the commands as aliases.** An alias that answers a question the run also
|
|
58
|
+
asks is the exact shape this ADR removes; two paths to one answer is what made
|
|
59
|
+
`workspaceSource: "command"` unreadable.
|
|
60
|
+
|
|
61
|
+
**Keep `:resume-local` and have `:resume` delegate.** The user still has to
|
|
62
|
+
know which situation they are in to pick a verb, which is the cost being paid.
|
|
63
|
+
|
|
64
|
+
**Rename `:resume-local` to something clearer.** Any name still forces the
|
|
65
|
+
distinction at typing time, and the run can see the difference by looking.
|
|
66
|
+
|
|
67
|
+
**Leave `global.resumeLocal` alone.** A preference named after a command that
|
|
68
|
+
no longer exists is a name nobody can resolve from the code; the migration is
|
|
69
|
+
one hop and carries the value.
|
package/docs/adr/README.md
CHANGED
|
@@ -8,22 +8,24 @@ Format: lightly adapted from [Michael Nygard's ADR template](https://cognitect.c
|
|
|
8
8
|
|
|
9
9
|
## Index
|
|
10
10
|
|
|
11
|
-
| #
|
|
12
|
-
|
|
13
|
-
| [0001](./0001-three-model-triage.md)
|
|
14
|
-
| [0002](./0002-instruction-driven-flag.md)
|
|
15
|
-
| [0003](./0003-unified-shared-skills.md)
|
|
16
|
-
| [0004](./0004-zero-dependency-philosophy.md)
|
|
17
|
-
| [0005](./0005-lazy-phase-docs.md)
|
|
18
|
-
| [0006](./0006-skills-core-external-split.md)
|
|
19
|
-
| [0007](./0007-multi-tool-adapter-framework.md)
|
|
20
|
-
| [0008](./0008-installer-modularization-and-secret-leak-defense.md) | Installer modularization + secret-leak defense
|
|
21
|
-
| [0009](./0009-claude-stack-skills-plugin-only.md)
|
|
22
|
-
| [0010](./0010-own-code-graph.md)
|
|
23
|
-
| [0011](./0011-dormant-ci.md)
|
|
24
|
-
| [0012](./0012-macos-only.md)
|
|
25
|
-
| [0013](./0013-lsp-code-intelligence.md)
|
|
26
|
-
| [0014](./0014-six-phase-consolidation.md)
|
|
11
|
+
| # | Title | Status |
|
|
12
|
+
| ------------------------------------------------------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
13
|
+
| [0001](./0001-three-model-triage.md) | CLI-aware parallel review with top-tier triage | Accepted (amended v5.2.2, v10.6.0 Fable) |
|
|
14
|
+
| [0002](./0002-instruction-driven-flag.md) | instructionDriven flag as explicit pipeline fork | Accepted |
|
|
15
|
+
| [0003](./0003-unified-shared-skills.md) | Unified `skills/shared/` for Claude Code + Copilot | Accepted (amended v5.3.3) |
|
|
16
|
+
| [0004](./0004-zero-dependency-philosophy.md) | Keep the package zero-runtime-deps | Accepted |
|
|
17
|
+
| [0005](./0005-lazy-phase-docs.md) | Lazy-loaded phase docs with per-phase token budget | Accepted (amended by 0014: eight phase docs became six) |
|
|
18
|
+
| [0006](./0006-skills-core-external-split.md) | `shared/core/` vs `shared/external/` source org | Accepted |
|
|
19
|
+
| [0007](./0007-multi-tool-adapter-framework.md) | Multi-tool adapter framework + token-preserving uninstall | Superseded by v10.7.0 (adapters removed; Claude Code + Copilot CLI only) |
|
|
20
|
+
| [0008](./0008-installer-modularization-and-secret-leak-defense.md) | Installer modularization + secret-leak defense | Accepted (amended v10.7.0: adapter module removed) |
|
|
21
|
+
| [0009](./0009-claude-stack-skills-plugin-only.md) | Claude Code stack skills are plugin-only; local copy retired | Accepted (supersedes ADR-0006 install-destination clause) |
|
|
22
|
+
| [0010](./0010-own-code-graph.md) | Own code graph, referenced from graphify, not forked | Accepted |
|
|
23
|
+
| [0011](./0011-dormant-ci.md) | CI dormant in-repo; pre-push gate is primary | Accepted |
|
|
24
|
+
| [0012](./0012-macos-only.md) | macOS only; Linux and Windows support removed | Accepted |
|
|
25
|
+
| [0013](./0013-lsp-code-intelligence.md) | A language server for the answers regex cannot give | Accepted |
|
|
26
|
+
| [0014](./0014-six-phase-consolidation.md) | Six phases, because two of the eight were doing the same work twice | Accepted (amended by 0015: the depth answer is removed) |
|
|
27
|
+
| [0015](./0015-one-pipeline-no-depth-answer.md) | One pipeline: the depth question is removed | Accepted (extended by 0016: the workspace and resume names go too) |
|
|
28
|
+
| [0016](./0016-the-run-shape-is-asked-not-typed.md) | The shape of a run is asked, not typed into its name | Accepted |
|
|
27
29
|
|
|
28
30
|
## Writing a New ADR
|
|
29
31
|
|
package/docs/architecture.md
CHANGED
|
@@ -113,7 +113,7 @@ graph TB
|
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
subgraph "Pipeline Specs"
|
|
116
|
-
CMD[commands/<br/>
|
|
116
|
+
CMD[commands/<br/>57 command files]
|
|
117
117
|
AGT[agents/<br/>8 agent personas]
|
|
118
118
|
RUL[rules/<br/>12 domain rules]
|
|
119
119
|
PHS[multi-agent-refs/phases/<br/>phase specs + contracts]
|
|
@@ -169,7 +169,7 @@ revisions of this diagram - Codex CLI and the two independently-shipped repos
|
|
|
169
169
|
graph TD
|
|
170
170
|
CC["Claude Code<br/>(source of truth)"]
|
|
171
171
|
COP["Copilot CLI<br/>(instructions + 56 skills)"]
|
|
172
|
-
COD["Codex CLI<br/>(1 router skill +
|
|
172
|
+
COD["Codex CLI<br/>(1 router skill + 57 refs)"]
|
|
173
173
|
REPO["Pipeline Repo<br/>(npm package)"]
|
|
174
174
|
WEB["Website"]
|
|
175
175
|
PLUGREPO["multi-agent-plugins<br/>(5 stack plugins, own repo)"]
|