@mmerterden/multi-agent-pipeline 11.5.0 → 12.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/docs/adr/0007-multi-tool-adapter-framework.md +2 -2
  3. package/install/claude.mjs +25 -1
  4. package/install/index.mjs +34 -1
  5. package/package.json +1 -1
  6. package/pipeline/commands/multi-agent/SKILL.md +1 -0
  7. package/pipeline/commands/multi-agent/analysis/SKILL.md +1 -0
  8. package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +1 -0
  9. package/pipeline/commands/multi-agent/autopilot/SKILL.md +1 -0
  10. package/pipeline/commands/multi-agent/build-optimize/SKILL.md +1 -0
  11. package/pipeline/commands/multi-agent/channels/SKILL.md +1 -0
  12. package/pipeline/commands/multi-agent/create-jira/SKILL.md +1 -0
  13. package/pipeline/commands/multi-agent/dev/SKILL.md +1 -0
  14. package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +1 -0
  15. package/pipeline/commands/multi-agent/dev-local/SKILL.md +1 -0
  16. package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +1 -0
  17. package/pipeline/commands/multi-agent/diff-explain/SKILL.md +1 -0
  18. package/pipeline/commands/multi-agent/finish/SKILL.md +1 -0
  19. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +29 -3
  20. package/pipeline/commands/multi-agent/help/SKILL.md +3 -2
  21. package/pipeline/commands/multi-agent/issue/SKILL.md +1 -0
  22. package/pipeline/commands/multi-agent/jira/SKILL.md +1 -0
  23. package/pipeline/commands/multi-agent/kill/SKILL.md +1 -0
  24. package/pipeline/commands/multi-agent/language/SKILL.md +20 -1
  25. package/pipeline/commands/multi-agent/local/SKILL.md +1 -0
  26. package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +1 -0
  27. package/pipeline/commands/multi-agent/log/SKILL.md +1 -0
  28. package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -0
  29. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +1 -0
  30. package/pipeline/commands/multi-agent/purge/SKILL.md +27 -24
  31. package/pipeline/commands/multi-agent/refactor/SKILL.md +1 -0
  32. package/pipeline/commands/multi-agent/resume/SKILL.md +1 -0
  33. package/pipeline/commands/multi-agent/review/SKILL.md +1 -0
  34. package/pipeline/commands/multi-agent/review-issue/SKILL.md +1 -0
  35. package/pipeline/commands/multi-agent/review-jira/SKILL.md +1 -0
  36. package/pipeline/commands/multi-agent/scan/SKILL.md +1 -0
  37. package/pipeline/commands/multi-agent/search/SKILL.md +1 -0
  38. package/pipeline/commands/multi-agent/setup/SKILL.md +1 -0
  39. package/pipeline/commands/multi-agent/stack/SKILL.md +1 -0
  40. package/pipeline/commands/multi-agent/status/SKILL.md +1 -0
  41. package/pipeline/commands/multi-agent/sync/SKILL.md +20 -2
  42. package/pipeline/commands/multi-agent/test/SKILL.md +1 -0
  43. package/pipeline/commands/multi-agent/uninstall/SKILL.md +87 -0
  44. package/pipeline/commands/multi-agent/update/SKILL.md +1 -0
  45. package/pipeline/multi-agent-refs/cross-cli-contract.md +5 -5
  46. package/pipeline/multi-agent-refs/phases/phase-0-init.md +12 -1
  47. package/pipeline/scripts/fixtures/install-layout.tsv +4 -2
  48. package/pipeline/scripts/gc-tmp.sh +67 -8
  49. package/pipeline/scripts/gc-worktrees.sh +140 -0
  50. package/pipeline/scripts/localize-commands.mjs +130 -0
  51. package/pipeline/scripts/prune-logs.sh +100 -15
  52. package/pipeline/scripts/purge.sh +235 -0
  53. package/pipeline/scripts/smoke-description-tr.sh +82 -0
  54. package/pipeline/scripts/smoke-gc-tmp.sh +50 -4
  55. package/pipeline/scripts/smoke-gc-worktrees.sh +125 -0
  56. package/pipeline/scripts/smoke-prune-logs.sh +57 -7
  57. package/pipeline/scripts/smoke-purge.sh +138 -0
  58. package/pipeline/scripts/smoke-update-check.sh +13 -0
  59. package/pipeline/scripts/uninstall.mjs +41 -6
  60. package/pipeline/scripts/update-check.sh +9 -0
  61. package/pipeline/skills/.skill-manifest.json +7 -7
  62. package/pipeline/skills/.skills-index.json +9 -9
  63. package/pipeline/skills/shared/README.md +19 -10
  64. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -0
  65. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +2 -2
  66. package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +74 -0
  67. package/pipeline/skills/skills-index.md +1 -1
  68. package/pipeline/commands/multi-agent/delete/SKILL.md +0 -67
  69. package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +0 -66
package/CHANGELOG.md CHANGED
@@ -14,6 +14,60 @@ Internal file-layout changes that don't affect the slash-command surface are sti
14
14
 
15
15
  ---
16
16
 
17
+ ## [12.0.0] - 2026-07-20
18
+
19
+ Command rename (breaking), a full-cleanup uninstall mode, outputLanguage-aware
20
+ picker descriptions, worktree residue cleanup, and cleanup-command hardening.
21
+
22
+ ### Breaking
23
+
24
+ - **`/multi-agent:delete` renamed to `/multi-agent:uninstall`.** The old name is
25
+ gone (no alias). The Copilot twin is now `multi-agent-uninstall`. Command
26
+ count stays 38; the canonical inventory, sync list, help, and cross-cli
27
+ contract were updated. Per the versioning policy a renamed command forces a
28
+ major bump.
29
+
30
+ ### Added
31
+
32
+ - **`uninstall --all-data` full-cleanup mode.** Standard uninstall still keeps
33
+ settings + logs; `--all-data` additionally removes
34
+ `multi-agent-preferences.json` and the entire `~/.claude/logs/multi-agent/`
35
+ tree (task logs, state, metrics, audit). Tokens, `CLAUDE.md`, and the
36
+ user-owned `rules/` are preserved in both modes. The slash command asks a
37
+ scope picker (Standard vs Full cleanup) before the double confirmation.
38
+ - **outputLanguage-aware slash-command descriptions.** Every command ships an
39
+ English `description` plus a `description-tr`; when `outputLanguage=tr`, the
40
+ installer and the `/multi-agent:language` toggle swap the installed
41
+ `~/.claude` descriptions to Turkish (reversible via a `description-en`
42
+ sidecar). Repo and npm files stay English; `/multi-agent:sync` normalizes and
43
+ gates the round trip so localized text can never leak back into the repo.
44
+ New `localize-commands.mjs` + `smoke-description-tr.sh`.
45
+ - **`/multi-agent:garbage-collect` worktree phase.** New `gc-worktrees.sh`
46
+ (dry-run by default) prunes stale worktree admin entries, removes orphan
47
+ `.worktrees/*` dirs no longer registered as worktrees, unstages gitlink
48
+ ("Subproject commit") residue from a pre-guard `git add -A`, and ensures the
49
+ `.worktrees/` `info/exclude` guard. Registered worktrees are never touched.
50
+ - **Worktree residue guard on creation.** Phase 0 (single- and multi-repo) and
51
+ the Copilot core skill now append `.worktrees/` to the clone-local
52
+ `.git/info/exclude` before every `worktree add`, so a blanket `git add -A`
53
+ can no longer record `.worktrees/{id}` gitlinks into shared branches.
54
+ - **update-check reaches npx-only installs.** The installer stamps
55
+ `~/.claude/.pipeline-version` (and the Copilot equivalent); `update-check.sh`
56
+ falls back to it when no repo clone is present, so users who never cloned the
57
+ repo still see the "update available" prompt. Uninstall removes the marker.
58
+
59
+ ### Changed / hardened
60
+
61
+ - **`/multi-agent:purge` now runs a real backend** (`purge.sh`): dry-run by
62
+ default, every `rm` target resolved strictly inside `<repo>/.worktrees/`,
63
+ refuses `/`, `$HOME`, and the project root; main worktree and
64
+ main/master/develop always preserved. `--delete-remote` gates remote-branch
65
+ deletion behind `--yes`.
66
+ - **`prune-logs.sh` / `gc-tmp.sh` hardened**: safe id/path validation, the
67
+ audit trail + metrics corpus never removed, containment guards on deletion
68
+ roots. New/expanded smokes: `smoke-purge.sh`, plus prune-logs and gc-tmp
69
+ coverage.
70
+
17
71
  ## [11.5.0] - 2026-07-16
18
72
 
19
73
  Full-project refactor round: 20 verified defect fixes (install lifecycle, shell
@@ -64,7 +64,7 @@ Each adapter exports a `{ name, install, uninstall }` contract. New adapters are
64
64
 
65
65
  ### Token-preserving uninstall
66
66
 
67
- Every install path has a documented opposite via `npx @mmerterden/multi-agent-pipeline uninstall` (or `delete` alias). Slash command: `/multi-agent:delete` with a Copilot CLI peer `multi-agent-delete`.
67
+ Every install path has a documented opposite via `npx @mmerterden/multi-agent-pipeline uninstall`. Slash command: `/multi-agent:uninstall` (renamed from `:delete` in v12.0.0) with a Copilot CLI peer `multi-agent-uninstall`. A `--all-data` flag extends it to also clear pipeline settings and the log root; tokens are never touched.
68
68
 
69
69
  The uninstaller is **contractually forbidden** from touching:
70
70
 
@@ -94,7 +94,7 @@ Positive:
94
94
  Negative / costs:
95
95
 
96
96
  - 6 adapters means 6 places where the format mapping can drift from upstream tool changes. Mitigation: round-trip smoke tests for each adapter exercise install + uninstall on every PR.
97
- - `--all-tools` writes ~900 files (174 cursor + ~50 windsurf concat + 173 cline + 161 copilot-chat + 161 continue + 1 zed) into the user's repo. Acceptable `.gitignore` patterns already cover most of these (`.cursor/`, `.continue/`, `.clinerules/`), and `:delete` cleans them all in one step.
97
+ - `--all-tools` writes ~900 files (174 cursor + ~50 windsurf concat + 173 cline + 161 copilot-chat + 161 continue + 1 zed) into the user's repo. Acceptable: `.gitignore` patterns already cover most of these (`.cursor/`, `.continue/`, `.clinerules/`), and `:uninstall` cleans them all in one step.
98
98
  - Per-tool format drift across tool versions (e.g. Cursor's `.mdc` format changes in 2027) requires per-adapter maintenance. Insulated from the orchestrator: bumping a Tier 2/3 tool format never touches Phase 1-7 logic.
99
99
 
100
100
  ## Alternatives Considered
@@ -15,9 +15,11 @@
15
15
  */
16
16
 
17
17
  import { existsSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "fs";
18
- import { join } from "path";
18
+ import { join, dirname } from "path";
19
19
  import { execSync } from "child_process";
20
20
 
21
+ import { localizeCommands } from "../pipeline/scripts/localize-commands.mjs";
22
+
21
23
  import {
22
24
  copyDir,
23
25
  copyFile,
@@ -117,6 +119,28 @@ function installCommands(pipelineSrc, dest, useSymlinks) {
117
119
  if (restored > 0) {
118
120
  console.log(` -> preserved ${restored} local-only alias wrapper(s)`);
119
121
  }
122
+ localizeCommandDescriptions(pipelineSrc, ownedCmdDir);
123
+ }
124
+
125
+ // Picker descriptions follow prefs.global.outputLanguage: files shipping a
126
+ // description-tr frontmatter line get their description swapped in the
127
+ // INSTALLED tree only (repo and npm package stay English; /multi-agent:sync
128
+ // restores English before mirroring back). Failure is non-fatal.
129
+ function localizeCommandDescriptions(pipelineSrc, ownedCmdDir) {
130
+ if (isDryRun()) return;
131
+ try {
132
+ const home = dirname(dirname(ownedCmdDir));
133
+ const prefsPath = join(home, "multi-agent-preferences.json");
134
+ if (!existsSync(prefsPath)) return;
135
+ const prefs = JSON.parse(readFileSync(prefsPath, "utf-8"));
136
+ if (prefs?.global?.outputLanguage !== "tr") return;
137
+ const changed = localizeCommands(ownedCmdDir, "apply");
138
+ if (changed > 0) {
139
+ console.log(` -> localized ${changed} command description(s) to outputLanguage=tr`);
140
+ }
141
+ } catch {
142
+ // advisory only - installed tree simply stays English
143
+ }
120
144
  }
121
145
 
122
146
  // Snapshot single-level command dirs whose SKILL.md declares `local-only: true`
package/install/index.mjs CHANGED
@@ -11,9 +11,12 @@
11
11
  import { dirname } from "path";
12
12
  import { fileURLToPath } from "url";
13
13
 
14
+ import { readFileSync } from "fs";
15
+ import { join } from "path";
16
+
14
17
  import { installClaude } from "./claude.mjs";
15
18
  import { installCopilot } from "./copilot.mjs";
16
- import { setDryRun } from "./_common.mjs";
19
+ import { setDryRun, writeFile } from "./_common.mjs";
17
20
  import { sendInstallTelemetry } from "./_telemetry.mjs";
18
21
 
19
22
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -95,6 +98,10 @@ export async function runInstall(argv) {
95
98
  if (forClaude) installClaude(installerCtx);
96
99
  if (forCopilot) installCopilot(installerCtx);
97
100
 
101
+ // Version marker: update-check.sh falls back to this for npx-only installs
102
+ // that have no pipeline repo clone to read a version from.
103
+ writeVersionMarkers({ home: HOME, forClaude, forCopilot });
104
+
98
105
  if (dryRun) {
99
106
  console.log("");
100
107
  console.log(" Dry-run complete — nothing was written. Re-run without --dry-run to install.");
@@ -108,6 +115,32 @@ export async function runInstall(argv) {
108
115
  sendInstallTelemetry({ packageRoot: PIPELINE_ROOT, flags });
109
116
  }
110
117
 
118
+ /**
119
+ * Stamp the installed package version into each target so the advisory
120
+ * update check works without a repo clone. Failure is non-fatal.
121
+ *
122
+ * @param {{home: string, forClaude: boolean, forCopilot: boolean}} opts
123
+ */
124
+ export function writeVersionMarkers({ home, forClaude, forCopilot }) {
125
+ let version;
126
+ try {
127
+ version = JSON.parse(readFileSync(join(PIPELINE_ROOT, "package.json"), "utf-8")).version;
128
+ } catch {
129
+ return;
130
+ }
131
+ if (!version) return;
132
+ const targets = [];
133
+ if (forClaude) targets.push(join(home, ".claude", ".pipeline-version"));
134
+ if (forCopilot) targets.push(join(home, ".copilot", ".pipeline-version"));
135
+ for (const target of targets) {
136
+ try {
137
+ writeFile(target, `${version}\n`);
138
+ } catch {
139
+ // advisory only - never fail the install over the marker
140
+ }
141
+ }
142
+ }
143
+
111
144
  /**
112
145
  * @param {string[]} flags
113
146
  * @returns {"ios"|"android"|"all"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmerterden/multi-agent-pipeline",
3
- "version": "11.5.0",
3
+ "version": "12.0.0",
4
4
  "description": "8-phase AI development pipeline with full orchestration on Claude Code and Copilot 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",
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Task orchestrator - full pipeline via Jira ID + branch or GitHub Issue URL: analysis, plan, TDD development, parallel review + Fable triage (CLI-aware: 2-model on Claude Code, 3-model on Copilot CLI), commit, log"
3
+ description-tr: "Görev orkestratörü - Jira ID + branch veya GitHub Issue URL ile tam pipeline: analiz, plan, TDD geliştirme, paralel review + Fable triyajı (CLI'ya göre: Claude Code'da 2, Copilot CLI'da 3 model), commit, log"
3
4
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, NotebookEdit, Skill
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Standalone feature-spec analysis. Platform-agnostic concept layer with repo-driven convention extraction (Phase 1c) and per-platform Pass B render. 23 main sections + 3 footer in Full mode; 7 sections in Lite mode (auto for small features). Collects Figma / Swagger / Confluence / Jira / Standards (Confluence + Wiki + local file) / Firebase / repo inputs. Stops after emit - does not chain into /multi-agent:dev."
3
+ description-tr: "Bağımsız özellik-spesifikasyonu analizi. Repo'dan konvansiyon çıkarımıyla (Faz 1c) platform-bağımsız kavram katmanı ve platform başına Pass B render. Full modda 23 ana + 3 dipnot bölümü; Lite modda 7 bölüm (küçük işlerde otomatik). Figma / Swagger / Confluence / Jira / Standartlar (Confluence + Wiki + yerel dosya) / Firebase / repo girdilerini toplar. Çıktıyı üretince durur - /multi-agent:dev'e zincirlenmez."
3
4
  argument-hint: "[\"<analysis-name>\"] [--lite | --full] [--no-cache] [--preview-conventions]"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Resolve the Section 20 Risks and Open Questions of an analysis v3 document one row at a time. Proposes up to 3 source-labeled answer candidates per row (from evidence / from repo / AI reasoned), merges the chosen answer into the target body section, and updates the doc in place with a Section 23 changelog bump. Companion to /multi-agent:analysis - same Locked decisions apply (citation discipline, humanizer punctuation, no MCP, no auto-commit). Optional sibling propagation for per-platform file sets."
3
+ description-tr: "Analiz v3 dokümanının Bölüm 20 Riskler ve Açık Sorular satırlarını tek tek çözer. Satır başına en fazla 3 kaynak-etiketli cevap adayı önerir (kanıttan / repodan / AI çıkarımı), seçilen cevabı ilgili gövde bölümüne işler ve dokümanı Bölüm 23 changelog artışıyla yerinde günceller. /multi-agent:analysis'in eşlikçisi - aynı Kilitli kararlar geçerli (alıntı disiplini, humanizer noktalama, MCP yok, otomatik commit yok). Platform bazlı dosya setleri için isteğe bağlı kardeş yayılımı."
3
4
  argument-hint: "[path/to/analysis/<feature>-<platform>.md] [--autonomous]"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Launch any task in autopilot mode: skips every confirmation, runs end-to-end autonomously."
3
+ description-tr: "Herhangi bir görevi autopilot modunda başlatır: tüm onayları atlar, uçtan uca otonom çalışır."
3
4
  argument-hint: '"task" - issue URL, Jira ID, free-text, or #id (for resume)'
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Thin wrapper that dispatches to xcode-build-orchestrator on iOS projects. Benchmarks current Xcode build, runs compilation / project / SPM analyzers, produces a recommend-first optimization plan, and re-benchmarks after the developer approves changes."
3
+ description-tr: "iOS projelerinde xcode-build-orchestrator'a delege eden ince sarmalayıcı. Mevcut Xcode build'ini ölçer, derleme / proje / SPM analizlerini koşar, önce-öneri yaklaşımlı bir optimizasyon planı üretir ve geliştirici onayından sonra yeniden ölçer."
3
4
  argument-hint: "(none - operates on current repo)"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Multi-channel reporter - Jira/Confluence/Wiki/PR description/Board status. Multi-select channels + content, humanizer pass, reviewer-preserving Bitbucket PR PUT, GitHub Projects v2 board status move. Phase 7 delegates to this skill; users can invoke post-hoc by Jira ID / PR URL / branch."
3
+ description-tr: "Çok kanallı raporlayıcı - Jira/Confluence/Wiki/PR açıklaması/Board durumu. Çoklu kanal + içerik seçimi, humanizer geçişi, reviewer'ı koruyan Bitbucket PR PUT, GitHub Projects v2 board durum taşıma. Faz 7 bu skill'e delege eder; Jira ID / PR URL / branch ile sonradan da çağrılabilir."
3
4
  argument-hint: '<Jira-id | PR-url | #N | Jira-url> [--channels pr,jira,confluence,wiki,board] [--content normal,technical,test,auto-diff,note] [--message "..."] [--message-file path] [--board-status <key>] [--dry-run] [--append] [--ready]'
4
5
  allowed-tools: Read, Write, Edit, Bash, Grep, WebFetch, AskUserQuestion
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Create a standards-compliant Jira issue (Task / Bug / Story): asks the type, mines project conventions, drafts from a standard template with auto-sizing sections, full preview + explicit approval before create."
3
+ description-tr: "Standartlara uygun Jira issue oluşturur (Task / Bug / Story): türü sorar, proje konvansiyonlarını çıkarır, otomatik boyutlanan bölümlerle standart şablondan taslak hazırlar, oluşturmadan önce tam önizleme + açık onay alır."
3
4
  argument-hint: "[\"<free-text description>\"] [figma-url] [swagger-url] - all optional, asked interactively when missing"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis, planning, and review phases are skipped."
3
+ description-tr: "Hızlı geliştirme modu: Init → Dev (Opus) → Test → Commit → Report. Analiz, planlama ve review fazları atlanır."
3
4
  ---
4
5
 
5
6
  # multi-agent dev - Fast Development Mode (--dev)
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Commit → Report with zero confirmations."
3
+ description-tr: "En hızlı mod: Dev (Opus) + Autopilot. Init → Dev → Commit → Report, sıfır onay."
3
4
  ---
4
5
 
5
6
  # multi-agent dev autopilot - Fastest Path
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Fast mode + local - Init → Dev(Opus) → Commit → Report, no worktree."
3
+ description-tr: "Hızlı mod + lokal - Init → Dev(Opus) → Commit → Report, worktree yok."
3
4
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, Skill
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Fastest + local - Dev(Opus) + autopilot, no worktree, zero interaction."
3
+ description-tr: "En hızlı + lokal - Dev(Opus) + autopilot, worktree yok, sıfır etkileşim."
3
4
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, WebFetch, Skill
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Map Phase 4 triage findings to branch diff lines. Read-only post-hoc command, used after review to answer 'which finding lines up with which code change'."
3
+ description-tr: "Faz 4 triyaj bulgularını branch diff satırlarına eşler. Review sonrası kullanılan salt-okunur komut: hangi bulgu hangi kod değişikliğine denk geliyor sorusunu cevaplar."
3
4
  argument-hint: "[#task-id | --triage <path> | --state <path>] [--branch <name>] [--base <name>]"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Continue already-done LOCAL work through the pipeline tail: Review → Build+Test → Commit/PR → Report (technical analysis + Jira test-scenario comment). No dev phase."
3
+ description-tr: "Halihazırda bitmiş LOKAL işi pipeline kuyruğundan geçirir: Review → Build+Test → Commit/PR → Report (teknik analiz + Jira test-senaryosu yorumu). Dev fazı yok."
3
4
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, Skill
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
- description: "Sweep leftover /tmp scratch (picker state, review diffs, channel payloads, analysis drafts) from past runs. Dry-run first; confirms before deleting."
2
+ description: "Sweep leftover /tmp scratch (picker state, review diffs, channel payloads, analysis drafts) and worktree residue (orphan .worktrees dirs, gitlink index entries) from past runs. Dry-run first; confirms before deleting."
3
+ description-tr: "Geçmiş çalışmalardan kalan /tmp scratch'ini (picker durumu, review diff'leri, kanal payload'ları, analiz taslakları) ve worktree kalıntılarını (sahipsiz .worktrees klasörleri, gitlink index kayıtları) süpürür. Önce dry-run; silmeden önce onay alır."
3
4
  argument-hint: "[--older-than=<minutes>] [--yes] - dry-run unless confirmed"
4
5
  ---
5
6
 
@@ -48,11 +49,36 @@ deletes nothing until you confirm.
48
49
  5. **Report** - echo the `══ garbage-collect: removed N item(s), freed ~X ══`
49
50
  summary line.
50
51
 
52
+ 6. **Worktree residue sweep (second phase)** - when the current directory is
53
+ a git repo, also preview worktree leftovers:
54
+
55
+ ```bash
56
+ bash $HOME/.claude/scripts/gc-worktrees.sh ${ARGUMENTS}
57
+ ```
58
+
59
+ This covers: stale worktree admin entries (`git worktree prune`, applied
60
+ immediately - it only drops bookkeeping for dirs that are already gone),
61
+ orphan `.worktrees/*` dirs no longer registered as worktrees, gitlink
62
+ residue in the index (`.worktrees/{id}` recorded as a "Subproject commit"
63
+ entry by a pre-guard `git add -A`), and a missing `.worktrees/` line in
64
+ `.git/info/exclude`. Registered, healthy worktrees are NEVER touched -
65
+ those belong to `/multi-agent:finish` / `/multi-agent:kill`.
66
+
67
+ - Output says `nothing to do` -> skip silently, no question.
68
+ - Otherwise surface a second `AskUserQuestion` (in `outputLanguage`):
69
+ `question`: "Apply the listed worktree cleanups?" (include the dry-run
70
+ lines), `header`: "Worktrees", options `{ label: "Apply cleanups" }` /
71
+ `{ label: "Cancel", description: "Keep everything, change nothing" }`.
72
+ - On confirm, re-run with `--yes` and echo its summary line. If a gitlink
73
+ was unstaged, remind the user the removal still needs a commit.
74
+
51
75
  ## Notes
52
76
 
53
77
  - An in-flight analysis keeps its drafts in `/tmp/analysis-<slug>-<timestamp>/`
54
78
  and `/multi-agent:resume` re-uses them. If a run is paused at
55
79
  `awaiting_output_decision`, pass `--older-than=<minutes>` so fresh drafts are
56
80
  spared, or finish the run first.
57
- - This only touches `/tmp` scratch. Persistent per-task logs live under
58
- `~/.claude/logs/multi-agent/` and are cleaned by `/multi-agent:prune-logs`.
81
+ - The /tmp phase only touches `/tmp` scratch; the worktree phase only touches
82
+ the current repo's `.worktrees/` residue and index. Persistent per-task logs
83
+ live under `~/.claude/logs/multi-agent/` and are cleaned by
84
+ `/multi-agent:prune-logs`.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Multi-agent pipeline usage guide - renders in EN or TR per prefs.global.outputLanguage (falls back to promptLanguage for backward compatibility)."
3
+ description-tr: "Multi-agent pipeline kullanım kılavuzu - prefs.global.outputLanguage'e göre EN veya TR render edilir (geriye uyumluluk için promptLanguage'e düşer)."
3
4
  ---
4
5
 
5
6
  # multi-agent help
@@ -126,7 +127,7 @@ Setup & Maintenance:
126
127
  /multi-agent:stack <id> Select stack by enabling the matching marketplace plugin(s) (ios / android / mobile / backend / frontend / fullstack / all)
127
128
  /multi-agent:sync Sync ecosystem (Claude Code + Copilot CLI + pipeline + website)
128
129
  /multi-agent:update Pull latest pipeline + reinstall + run migrations
129
- /multi-agent:delete Uninstall pipeline from every CLI (Keychain tokens left intact, double confirm)
130
+ /multi-agent:uninstall Uninstall pipeline from every CLI (--all-data also clears settings + logs; Keychain tokens always intact, double confirm)
130
131
 
131
132
  ------------------------------------------------------------
132
133
 
@@ -340,7 +341,7 @@ Setup & Maintenance:
340
341
  /multi-agent:stack <id> Stack'i eşleşen marketplace plugin'i etkinleştirerek seç (ios / android / mobile / backend / frontend / fullstack / all)
341
342
  /multi-agent:sync Ekosistemi senkronize et (Claude Code + Copilot CLI + pipeline + website)
342
343
  /multi-agent:update En son pipeline'ı çek + reinstall + migration çalıştır
343
- /multi-agent:delete Pipeline'ı tüm CLI'lerden kaldır (Keychain token dokunulmaz, çift onay)
344
+ /multi-agent:uninstall Pipeline'ı tüm CLI'lerden kaldır (--all-data ayar + logları da siler; Keychain token her zaman dokunulmaz, çift onay)
344
345
 
345
346
  ------------------------------------------------------------
346
347
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "List unassigned GitHub issues, pick one, auto-assign, and launch the multi-agent pipeline."
3
+ description-tr: "Atanmamış GitHub issue'larını listeler, birini seçtirir, otomatik atar ve multi-agent pipeline'ı başlatır."
3
4
  argument-hint: "[autopilot] - optional: run the pipeline without confirmations"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "List open Jira issues, pick one, and launch the multi-agent pipeline."
3
+ description-tr: "Açık Jira issue'larını listeler, birini seçtirir ve multi-agent pipeline'ı başlatır."
3
4
  argument-hint: "[autopilot] - optional: run the pipeline without confirmations"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Stop the given task, then remove its worktree and branch. Asks for confirmation."
3
+ description-tr: "Verilen görevi durdurur, ardından worktree'sini ve branch'ini kaldırır. Onay ister."
3
4
  argument-hint: "#id - task ID to delete (e.g. #2)"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Toggle outputLanguage (assistant explanations). promptLanguage is fixed to English. External payloads stay English."
3
+ description-tr: "outputLanguage'i değiştirir (asistan açıklamaları). promptLanguage İngilizce sabittir. Dış payload'lar İngilizce kalır."
3
4
  argument-hint: "[en|tr] - sets outputLanguage; omit for interactive picker; use 'output en|tr' for explicit form"
4
5
  ---
5
6
 
@@ -16,7 +17,9 @@ Two-axis language preference for the pipeline:
16
17
 
17
18
  **Why promptLanguage is fixed:** Pipeline picker UI, confirmation prompts, and error messages are authored in English to keep tooling consistent across CLIs. Mixing Turkish prompts into otherwise-English skill output looks inconsistent. Only the assistant's free-form replies follow `outputLanguage`.
18
19
 
19
- **Always English regardless of either field**: commit messages, PR titles/bodies, Jira comments, wiki pages, reviewer/triage system prompts, agent-log.md payloads, skill-picker / confirmation / error UI exposed by the CLI host.
20
+ **Always English regardless of either field**: commit messages, PR titles/bodies, Jira comments, wiki pages, reviewer/triage system prompts, agent-log.md payloads, confirmation / error UI exposed by the CLI host.
21
+
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.
20
23
 
21
24
  ## Invocations
22
25
 
@@ -73,6 +76,22 @@ jq --arg ol "$NEW_OUTPUT" '
73
76
  ' "$PREFS" > "$TMP" && mv "$TMP" "$PREFS"
74
77
  ```
75
78
 
79
+ ### Localize picker descriptions
80
+
81
+ After a successful write, swap the installed command descriptions to match the
82
+ new outputLanguage (repo files are never touched; the swap is reversible):
83
+
84
+ ```bash
85
+ if [ "$NEW_OUTPUT" = "tr" ]; then
86
+ node "$HOME/.claude/scripts/localize-commands.mjs" apply
87
+ else
88
+ node "$HOME/.claude/scripts/localize-commands.mjs" restore
89
+ fi
90
+ ```
91
+
92
+ Note: the CLI host caches the picker list per session; descriptions refresh on
93
+ the next session start.
94
+
76
95
  ### Confirmation echo
77
96
 
78
97
  Render in the **new** outputLanguage:
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Full pipeline in local mode - no worktree, runs directly on the current branch."
3
+ description-tr: "Tam pipeline lokal modda - worktree yok, doğrudan mevcut branch üzerinde çalışır."
3
4
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, Skill
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Full pipeline + local + autopilot - no worktree, no confirmations; runs 7 phases (User Test skipped) end-to-end on the current branch."
3
+ description-tr: "Tam pipeline + lokal + autopilot - worktree yok, onay yok; 7 fazı (Kullanıcı Testi atlanır) mevcut branch üzerinde uçtan uca koşar."
3
4
  argument-hint: '"task" - issue URL, Jira ID, free-text, or #id (for resume)'
4
5
  allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, Skill
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Show the agent-log.md for the given task. With no ID, shows the most recent task."
3
+ description-tr: "Verilen görevin agent-log.md dosyasını gösterir. ID verilmezse en son görevi gösterir."
3
4
  argument-hint: "[#id] - optional: task ID (e.g. #3). If omitted, the most recent task is used."
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 5 standalone (the UI Bug Hunter lives at /multi-agent:test)."
3
+ description-tr: "Aktif görevin branch'ine geçer ve Xcode'da manuel test için hazırlar. Faz 5'in bağımsız hali (UI Bug Hunter /multi-agent:test'te)."
3
4
  ---
4
5
 
5
6
  # multi-agent manual-test - Phase 5 Manual Test Mode
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run first; confirms before deleting."
3
+ description-tr: "~/.claude/logs/multi-agent altındaki görev bazlı proje loglarını siler (yaş/proje/görev filtresi). Denetim izi + metrikler korunur. Önce dry-run; silmeden önce onay alır."
3
4
  argument-hint: "[--older-than=<days>] [--project=<name>] [--task=<id>] [--yes]"
4
5
  ---
5
6
 
@@ -1,42 +1,45 @@
1
1
  ---
2
2
  description: "⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation."
3
+ description-tr: "⚠️ Tüm worktree, branch, log ve state dosyalarını siler. Geri alınamaz; çift onay ister."
3
4
  ---
4
5
 
5
6
  # multi-agent purge - Full Reset
6
7
 
7
- Reset every multi-agent state. Nuclear option - requires double confirmation.
8
+ Reset every multi-agent worktree, its local branch, and the project task
9
+ counter. Nuclear option - requires double confirmation. Backed by
10
+ `$HOME/.claude/scripts/purge.sh`, which is safe by default (dry-run, deletes
11
+ nothing until `--yes`), resolves every `rm` target strictly inside
12
+ `<repo>/.worktrees/`, and never touches the main worktree or main/master/develop.
13
+
14
+ Task log dirs are NOT purge territory - use `/multi-agent:prune-logs`. The
15
+ audit trail and metrics corpus at the log root are always preserved.
8
16
 
9
17
  ## Steps
10
18
 
11
- 1. **Scan** - find every worktree:
19
+ 1. **Preview (dry-run)** - list every worktree, branch, and the counter that
20
+ would be removed in the current repo:
12
21
  ```bash
13
- find {repo}/.worktrees/ -name "agent-state.json" -maxdepth 2
14
- ```
15
-
16
- 2. **Show the list**:
17
- ```
18
- ⚠️ WARNING - these will be deleted:
19
- - .worktrees/{JIRA-KEY}-12345/ (branch: feature/{JIRA-KEY}-12345-...)
20
- - .worktrees/{JIRA-KEY}-12345/ (branch: feature/{JIRA-KEY}-12345-...)
21
- - $HOME/.claude/logs/multi-agent/{project}/.counter
22
- Total: N worktrees, N branches
22
+ bash $HOME/.claude/scripts/purge.sh
23
23
  ```
24
+ Nothing to remove -> report "nothing to purge" and stop.
24
25
 
25
- 3. **First confirmation**: "This is irreversible. Are you sure?"
26
+ 2. **First confirmation** - native `AskUserQuestion` picker (no typed keyword),
27
+ in `outputLanguage`, including the dry-run counts:
28
+ - `question`: "Wipe the listed worktrees, branches, and counter?"
29
+ - `header`: "Purge" · `options`: `{ label: "Continue", description: "Proceed to the final confirmation" }`, `{ label: "Cancel", description: "Abort, change nothing" }`
30
+ - **Cancel** → exit.
26
31
 
27
- 4. **Second confirmation** (paranoia gate) - a native `AskUserQuestion` picker (no typed keyword):
28
- - `question`: "This is irreversible. Permanently wipe every worktree, branch, log, and state file now?" (`outputLanguage`)
29
- - `header`: "Purge" (English, <=12 chars) · `options`: `{ label: "Purge permanently", description: "Delete all worktrees, branches, logs, and state" }`, `{ label: "Cancel", description: "Abort, change nothing" }`
32
+ 3. **Second confirmation** (paranoia gate) - a second `AskUserQuestion` picker:
33
+ - `question`: "This is irreversible. Permanently wipe every worktree, branch, and state now?" (`outputLanguage`)
34
+ - `header`: "Confirm" · `options`: `{ label: "Purge permanently", description: "Delete all worktrees, branches, and the counter" }`, `{ label: "Cancel", description: "Abort, change nothing" }`
30
35
  - Anything other than **Purge permanently** → cancel.
31
36
 
32
- 5. **Delete** (per worktree):
37
+ 4. **Remote branches** - ask once whether to delete the remote branches too;
38
+ on yes, add `--delete-remote` to the apply command.
39
+
40
+ 5. **Purge** - re-run with `--yes` (plus `--delete-remote` if chosen):
33
41
  ```bash
34
- git worktree remove .worktrees/{JIRA-KEY}-{id} --force
35
- git branch -D {branch-name}
42
+ bash $HOME/.claude/scripts/purge.sh --yes
36
43
  ```
37
44
 
38
- 6. **Remote branches** - ask: "Delete the remote branches too?"
39
-
40
- 7. **Reset the counter** - remove `$HOME/.claude/logs/multi-agent/{project}/.counter`
41
-
42
- 8. **Confirm**: `🔥 Purge complete`
45
+ 6. **Report** - echo the script's summary line.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, draft one plan, take approval, develop, then ask whether to sync."
3
+ description-tr: "Projeyi analiz eder: uyarlanmış best-practice'leri çıkarır, gerçek bug + iyileştirme alanlarını avlar, türetilmiş skill'lerin upstream drift'ini kontrol eder, tek plan taslağı çıkarır, onay alır, geliştirir, sonra sync isteyip istemediğini sorar."
3
4
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, WebFetch
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Resume a stopped or failed task from the phase where it left off."
3
+ description-tr: "Durmuş veya hata almış bir görevi kaldığı fazdan devam ettirir."
3
4
  argument-hint: "[#id] - optional: task ID (e.g. #2). If omitted, the most recent paused task is used."
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Run parallel review on a branch's diff or a Pull Request: 2 models on Claude Code (Fable + Sonnet), 3 models on Copilot CLI (GPT + Opus + Sonnet). On PR input, posts per-finding inline comments and sets approve/needs-work review state."
3
+ description-tr: "Bir branch diff'i veya Pull Request üzerinde paralel review koşar: Claude Code'da 2 model (Fable + Sonnet), Copilot CLI'da 3 model (GPT + Opus + Sonnet). PR girdisinde bulgu başına inline yorum atar ve approve/needs-work durumunu işaretler."
3
4
  argument-hint: "[#N | repo#N | PR-URL | branch] - optional: PR by number/URL, repo+number, or local branch. Supports GitHub and Bitbucket Server URLs. If omitted (interactive), open GitHub + Bitbucket PRs are listed for multi-select; autopilot falls back to the current branch."
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack readiness, then (after confirm) post the gaps as an issue comment. Read-only on code."
3
+ description-tr: "Bir GitHub issue'sunun multi-agent geliştirmeye hazır olup olmadığını değerlendirir: getirir; kapsam / kabul kriterleri / repro / tasarım / API / stack hazırlığını puanlar, sonra (onay sonrası) eksikleri issue yorumu olarak gönderir. Kodda salt-okunur."
3
4
  argument-hint: "[#N | repo#N | GitHub issue URL] - optional; with no argument, pick from open issues"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Assess whether a Jira issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / stack readiness, then (after confirm) post the gaps as a Jira comment. Read-only on code."
3
+ description-tr: "Bir Jira issue'sunun multi-agent geliştirmeye hazır olup olmadığını değerlendirir: getirir; kapsam / kabul kriterleri / repro / tasarım / API / stack hazırlığını puanlar, sonra (onay sonrası) eksikleri Jira yorumu olarak gönderir. Kodda salt-okunur."
3
4
  argument-hint: "[JIRA-KEY | Jira URL] - optional; with no argument, pick from your open Jira issues"
4
5
  ---
5
6
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Skill security scan: walks local skill directories against a tiered pattern catalog."
3
+ description-tr: "Skill güvenlik taraması: yerel skill dizinlerini kademeli desen kataloğuna göre tarar."
3
4
  allowed-tools: Bash, Read
4
5
  argument-hint: "[--strict] [--threshold critical|high|medium|low] [--json] [--root PATH]"
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Log search across every agent-log.md with smart ranking and filters. Optional --semantic flag queries the per-repo triage corpus."
3
+ description-tr: "Tüm agent-log.md dosyalarında akıllı sıralama ve filtrelerle log araması. İsteğe bağlı --semantic bayrağı repo bazlı triyaj korpusunu sorgular."
3
4
  allowed-tools: Bash, Read
4
5
  argument-hint: "\"query\" [--project NAME] [--since 7d] [--phase N] [--semantic] [--json|--tsv]"
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "First-run setup wizard: keychain token discovery, Git Identity onboarding, and pipeline preparation."
3
+ description-tr: "İlk kurulum sihirbazı: keychain token keşfi, Git Identity kaydı ve pipeline hazırlığı."
3
4
  allowed-tools: Bash, Read, Write, AskUserQuestion, WebFetch
4
5
  ---
5
6