@mmerterden/multi-agent-pipeline 11.4.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.
- package/CHANGELOG.md +172 -0
- package/README.md +1 -0
- package/docs/adr/0007-multi-tool-adapter-framework.md +2 -2
- package/index.js +9 -2
- package/install/_common.mjs +107 -5
- package/install/_telemetry.mjs +5 -23
- package/install/claude.mjs +95 -11
- package/install/copilot.mjs +75 -6
- package/install/index.mjs +34 -1
- package/package.json +4 -10
- package/pipeline/commands/multi-agent/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/analysis/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/dev/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +2 -1
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/diff-explain/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/finish/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +29 -3
- package/pipeline/commands/multi-agent/help/SKILL.md +3 -2
- package/pipeline/commands/multi-agent/issue/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/jira/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/kill/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/language/SKILL.md +20 -1
- package/pipeline/commands/multi-agent/local/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/log/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/purge/SKILL.md +27 -24
- package/pipeline/commands/multi-agent/refactor/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/resume/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/review/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/review-issue/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/review-jira/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/scan/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/search/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/setup/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/stack/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/status/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/sync/SKILL.md +20 -2
- package/pipeline/commands/multi-agent/test/SKILL.md +1 -0
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +87 -0
- package/pipeline/commands/multi-agent/update/SKILL.md +1 -0
- package/pipeline/lib/account-resolver.sh +61 -23
- package/pipeline/lib/channels-multi-repo.sh +7 -2
- package/pipeline/lib/count-lib.sh +27 -0
- package/pipeline/lib/credential-store.sh +23 -6
- package/pipeline/lib/extract-conventions.sh +27 -21
- package/pipeline/lib/fetch-confluence.sh +25 -13
- package/pipeline/lib/fetch-crashlytics.sh +30 -8
- package/pipeline/lib/fetch-fortify.sh +11 -2
- package/pipeline/lib/fetch-swagger.sh +18 -7
- package/pipeline/lib/figma-mcp-refresh.sh +26 -11
- package/pipeline/lib/figma-screenshot.sh +11 -2
- package/pipeline/lib/issue-fetcher.sh +31 -6
- package/pipeline/lib/multi-repo-pipeline.sh +84 -20
- package/pipeline/lib/plan-todos.sh +12 -3
- package/pipeline/lib/post-pr-review.sh +5 -3
- package/pipeline/lib/repo-cache.sh +53 -9
- package/pipeline/lib/review-watch.sh +26 -6
- package/pipeline/lib/shadow-git.sh +45 -4
- package/pipeline/lib/vercel-deploy.sh +10 -1
- package/pipeline/multi-agent-refs/cross-cli-contract.md +5 -5
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +12 -1
- package/pipeline/scripts/audit-log-rotate.sh +38 -10
- package/pipeline/scripts/check-md-links.mjs +34 -9
- package/pipeline/scripts/diff-risk-score.mjs +4 -1
- package/pipeline/scripts/evidence-gate.mjs +10 -1
- package/pipeline/scripts/fixtures/install-layout.tsv +6 -4
- package/pipeline/scripts/fixtures/pack-expected-count.txt +1 -0
- package/pipeline/scripts/gc-tmp.sh +67 -8
- package/pipeline/scripts/gc-worktrees.sh +140 -0
- package/pipeline/scripts/keychain-save.sh +13 -9
- package/pipeline/scripts/lint-skills.mjs +40 -2
- package/pipeline/scripts/localize-commands.mjs +130 -0
- package/pipeline/scripts/migrate-prefs.mjs +26 -7
- package/pipeline/scripts/phase-tracker.sh +71 -0
- package/pipeline/scripts/pre-commit-check.sh +39 -0
- package/pipeline/scripts/prune-logs.sh +100 -15
- package/pipeline/scripts/purge.sh +235 -0
- package/pipeline/scripts/scan-skills.sh +217 -127
- package/pipeline/scripts/smoke-bitbucket-contract.sh +21 -5
- package/pipeline/scripts/smoke-description-tr.sh +82 -0
- package/pipeline/scripts/smoke-fetchers-offline.sh +382 -0
- package/pipeline/scripts/smoke-gc-tmp.sh +50 -4
- package/pipeline/scripts/smoke-gc-worktrees.sh +125 -0
- package/pipeline/scripts/smoke-install-layout.sh +11 -3
- package/pipeline/scripts/smoke-lib-scripts.sh +54 -1
- package/pipeline/scripts/smoke-pack-contents.sh +140 -0
- package/pipeline/scripts/smoke-plugin-validate.sh +64 -0
- package/pipeline/scripts/smoke-prune-logs.sh +57 -7
- package/pipeline/scripts/smoke-purge.sh +138 -0
- package/pipeline/scripts/smoke-shadow-git.sh +48 -1
- package/pipeline/scripts/smoke-skill-authoring.sh +1 -1
- package/pipeline/scripts/smoke-update-check.sh +13 -0
- package/pipeline/scripts/smoke-workflow-audit.sh +69 -0
- package/pipeline/scripts/test-gap-scan.mjs +12 -1
- package/pipeline/scripts/triage-memory.mjs +10 -1
- package/pipeline/scripts/uninstall.mjs +146 -42
- package/pipeline/scripts/update-check.sh +9 -0
- package/pipeline/scripts/update-issue-progress.sh +60 -41
- package/pipeline/scripts/write-state.mjs +14 -4
- package/pipeline/skills/.skill-manifest.json +7 -7
- package/pipeline/skills/.skills-index.json +9 -9
- package/pipeline/skills/shared/README.md +19 -10
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -0
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +74 -0
- package/pipeline/skills/skills-index.md +1 -1
- package/pipeline/commands/multi-agent/delete/SKILL.md +0 -67
- package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +0 -66
package/install/copilot.mjs
CHANGED
|
@@ -22,7 +22,9 @@ import {
|
|
|
22
22
|
copyFile,
|
|
23
23
|
countFiles,
|
|
24
24
|
ensureDir,
|
|
25
|
+
ensureRealDir,
|
|
25
26
|
isDryRun,
|
|
27
|
+
removePipelineAgentFiles,
|
|
26
28
|
wipeDir,
|
|
27
29
|
writeFile,
|
|
28
30
|
} from "./_common.mjs";
|
|
@@ -61,17 +63,55 @@ export function installCopilot(ctx) {
|
|
|
61
63
|
installSkills({ pipelineSrc, dest: COPILOT_SKILLS, indexOnly, useSymlinks, platformFlag });
|
|
62
64
|
}
|
|
63
65
|
|
|
66
|
+
/** Start of the pipeline-managed span in copilot-instructions.md. */
|
|
67
|
+
export const INSTRUCTIONS_START_MARKER = "# Multi-Agent Development Pipeline";
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Explicit end marker written after the pipeline section (v11.4.1+). Updates
|
|
71
|
+
* replace only the start..end span, so anything the user appends AFTER the
|
|
72
|
+
* pipeline section survives. Pre-marker files fall back to
|
|
73
|
+
* `legacyTrailingContent` bounding.
|
|
74
|
+
*/
|
|
75
|
+
export const INSTRUCTIONS_END_MARKER =
|
|
76
|
+
"<!-- multi-agent-pipeline:copilot-instructions:end -->";
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Legacy files (written before the end marker existed) have no explicit
|
|
80
|
+
* terminator. Bound the pipeline span at the next top-level "# " heading
|
|
81
|
+
* after the start marker when one exists OUTSIDE fenced code blocks (the
|
|
82
|
+
* pipeline body carries bash comments like "# Bootstrap once ..." inside
|
|
83
|
+
* fences that must not be mistaken for headings); otherwise the span runs
|
|
84
|
+
* to EOF, which matches the pre-marker behavior.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} section - file content from the start marker onward
|
|
87
|
+
* @returns {string} user content trailing the pipeline span ("" if none)
|
|
88
|
+
*/
|
|
89
|
+
export function legacyTrailingContent(section) {
|
|
90
|
+
const lines = section.split("\n");
|
|
91
|
+
let inFence = false;
|
|
92
|
+
for (let i = 1; i < lines.length; i++) {
|
|
93
|
+
if (/^\s*(```|~~~)/.test(lines[i])) {
|
|
94
|
+
inFence = !inFence;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (!inFence && /^# /.test(lines[i])) return lines.slice(i).join("\n");
|
|
98
|
+
}
|
|
99
|
+
return "";
|
|
100
|
+
}
|
|
101
|
+
|
|
64
102
|
function writeInstructionsFile(path) {
|
|
65
103
|
const pipelineSection = generateCopilotInstructions();
|
|
104
|
+
const managedBlock =
|
|
105
|
+
pipelineSection.trimEnd() + "\n\n" + INSTRUCTIONS_END_MARKER + "\n";
|
|
66
106
|
|
|
67
107
|
if (!existsSync(path)) {
|
|
68
|
-
writeFile(path,
|
|
108
|
+
writeFile(path, managedBlock);
|
|
69
109
|
console.log(" -> Created copilot-instructions.md with pipeline");
|
|
70
110
|
return;
|
|
71
111
|
}
|
|
72
112
|
|
|
73
113
|
let existing = readFileSync(path, "utf-8");
|
|
74
|
-
const marker =
|
|
114
|
+
const marker = INSTRUCTIONS_START_MARKER;
|
|
75
115
|
|
|
76
116
|
// Drift cleanup (v5.6.2): detect pre-v5.0 pipeline sections that predate
|
|
77
117
|
// the stable marker and strip them. These blocks ("## Multi-Agent Task
|
|
@@ -103,12 +143,26 @@ function writeInstructionsFile(path) {
|
|
|
103
143
|
}
|
|
104
144
|
|
|
105
145
|
if (existing.includes(marker)) {
|
|
106
|
-
const
|
|
107
|
-
|
|
146
|
+
const startIdx = existing.indexOf(marker);
|
|
147
|
+
const before = existing.slice(0, startIdx).trimEnd();
|
|
148
|
+
const fromStart = existing.slice(startIdx);
|
|
149
|
+
// Replace only the start..end span. User content appended AFTER the
|
|
150
|
+
// pipeline section (below the end marker, or below the next top-level
|
|
151
|
+
// heading in legacy files) is preserved.
|
|
152
|
+
const endIdx = fromStart.indexOf(INSTRUCTIONS_END_MARKER);
|
|
153
|
+
const trailing =
|
|
154
|
+
endIdx >= 0
|
|
155
|
+
? fromStart.slice(endIdx + INSTRUCTIONS_END_MARKER.length)
|
|
156
|
+
: legacyTrailingContent(fromStart);
|
|
157
|
+
let out = before.length > 0 ? before + "\n\n" : "";
|
|
158
|
+
out += managedBlock;
|
|
159
|
+
const trailingClean = trailing.replace(/^[\r\n]+/, "").trimEnd();
|
|
160
|
+
if (trailingClean.length > 0) out += "\n" + trailingClean + "\n";
|
|
161
|
+
writeFile(path, out);
|
|
108
162
|
const suffix = cleaned ? " (also scrubbed pre-v5.0 drift section)" : "";
|
|
109
163
|
console.log(` -> Updated existing pipeline section in copilot-instructions.md${suffix}`);
|
|
110
164
|
} else {
|
|
111
|
-
writeFile(path, existing.trimEnd() + "\n\n" +
|
|
165
|
+
writeFile(path, existing.trimEnd() + "\n\n" + managedBlock);
|
|
112
166
|
console.log(" -> Appended pipeline section to copilot-instructions.md");
|
|
113
167
|
}
|
|
114
168
|
}
|
|
@@ -117,6 +171,9 @@ function installScripts(pipelineSrc, dest, useSymlinks) {
|
|
|
117
171
|
console.log(" [Copilot CLI] Installing scripts...");
|
|
118
172
|
const scriptsSrc = join(pipelineSrc, "scripts");
|
|
119
173
|
if (!existsSync(scriptsSrc)) return;
|
|
174
|
+
// Replace a --link-era symlink with a real dir before wiping/copying so the
|
|
175
|
+
// install can never land inside the developer's repo checkout.
|
|
176
|
+
if (!useSymlinks) ensureRealDir(dest);
|
|
120
177
|
wipeDir(dest);
|
|
121
178
|
copyDir(scriptsSrc, dest, { exclude: DEV_ONLY_SCRIPTS, useSymlinks });
|
|
122
179
|
// Count files actually excluded, not the array length: DEV_ONLY_SCRIPTS mixes
|
|
@@ -133,7 +190,13 @@ function installAgents(pipelineSrc, dest, useSymlinks) {
|
|
|
133
190
|
console.log(" [Copilot CLI] Installing agent definitions...");
|
|
134
191
|
const agentsSrc = join(pipelineSrc, "agents");
|
|
135
192
|
if (!existsSync(agentsSrc)) return;
|
|
136
|
-
|
|
193
|
+
// ~/.copilot/agents also holds user-authored agent files. Never wipe the
|
|
194
|
+
// whole dir; remove only the pipeline-shipped agent files (name set derived
|
|
195
|
+
// from the source tree so it cannot go stale), then copy the fresh set in.
|
|
196
|
+
if (!useSymlinks) {
|
|
197
|
+
ensureRealDir(dest);
|
|
198
|
+
removePipelineAgentFiles(dest, agentsSrc);
|
|
199
|
+
}
|
|
137
200
|
copyDir(agentsSrc, dest, { useSymlinks });
|
|
138
201
|
console.log(` -> ${countFiles(agentsSrc)} files copied to ${dest}`);
|
|
139
202
|
}
|
|
@@ -142,6 +205,7 @@ function installSchemas(pipelineSrc, dest, useSymlinks) {
|
|
|
142
205
|
console.log(" [Copilot CLI] Installing JSON schemas...");
|
|
143
206
|
const schemasSrc = join(pipelineSrc, "schemas");
|
|
144
207
|
if (!existsSync(schemasSrc)) return;
|
|
208
|
+
if (!useSymlinks) ensureRealDir(dest);
|
|
145
209
|
wipeDir(dest);
|
|
146
210
|
copyDir(schemasSrc, dest, { useSymlinks });
|
|
147
211
|
console.log(` -> ${countFiles(schemasSrc)} files copied to ${dest}`);
|
|
@@ -151,6 +215,7 @@ function installLib(pipelineSrc, dest, useSymlinks) {
|
|
|
151
215
|
console.log(" [Copilot CLI] Installing shell libraries...");
|
|
152
216
|
const libSrc = join(pipelineSrc, "lib");
|
|
153
217
|
if (!existsSync(libSrc)) return;
|
|
218
|
+
if (!useSymlinks) ensureRealDir(dest);
|
|
154
219
|
wipeDir(dest);
|
|
155
220
|
copyDir(libSrc, dest, { useSymlinks });
|
|
156
221
|
console.log(` -> ${countFiles(libSrc)} files copied to ${dest}`);
|
|
@@ -160,6 +225,10 @@ function installSkills(opts) {
|
|
|
160
225
|
const { pipelineSrc, dest, indexOnly, useSymlinks, platformFlag } = opts;
|
|
161
226
|
console.log(" [Copilot CLI] Installing skills...");
|
|
162
227
|
|
|
228
|
+
// Same symlink guard as the other owned trees: never prune or copy through
|
|
229
|
+
// a --link-era symlink into the repo checkout.
|
|
230
|
+
if (!useSymlinks) ensureRealDir(dest);
|
|
231
|
+
|
|
163
232
|
if (indexOnly) {
|
|
164
233
|
try {
|
|
165
234
|
mkdirSync(dest, { recursive: 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": "
|
|
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",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"test:unit": "node --test test/*.test.mjs",
|
|
19
19
|
"test:smoke": "node pipeline/scripts/run-smokes.mjs",
|
|
20
20
|
"lint:skills": "node pipeline/scripts/lint-skills.mjs",
|
|
21
|
-
"test:
|
|
21
|
+
"test:quick": "node --test test/*.test.mjs && node pipeline/scripts/lint-skills.mjs",
|
|
22
|
+
"test:coverage": "c8 --check-coverage --reporter=text --reporter=lcov node --test test/*.test.mjs && c8 report",
|
|
22
23
|
"lint": "eslint .",
|
|
23
24
|
"lint:fix": "eslint . --fix",
|
|
24
25
|
"format": "prettier --write \"**/*.{js,mjs,json,md,yml}\" --ignore-path .gitignore",
|
|
@@ -69,17 +70,10 @@
|
|
|
69
70
|
"README.md",
|
|
70
71
|
"CHANGELOG.md",
|
|
71
72
|
"LICENSE",
|
|
72
|
-
"!pipeline/scripts/figma-placeholder-map.json",
|
|
73
|
-
"!pipeline/scripts/sync-figma-source.sh",
|
|
74
|
-
"!pipeline/scripts/import-figma-skills.sh",
|
|
75
|
-
"!pipeline/scripts/smoke-figma-skill-import.sh",
|
|
76
73
|
"!pipeline/scripts/smoke-figma-config-schema.sh",
|
|
77
74
|
"!pipeline/scripts/smoke-personal-data.sh",
|
|
78
75
|
"!pipeline/scripts/smoke-install-leak-gate.sh",
|
|
79
|
-
"!
|
|
80
|
-
"!pipeline/scripts/.last-figma-sync-plan.json",
|
|
81
|
-
"!docs/GENERICITY-REVIEW.md",
|
|
82
|
-
"!docs/STABILITY-FIX-PLAN.md"
|
|
76
|
+
"!docs/internal/**"
|
|
83
77
|
],
|
|
84
78
|
"devDependencies": {
|
|
85
79
|
"@eslint/js": "^10.0.1",
|
|
@@ -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: "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
|
|
|
@@ -20,7 +21,7 @@ Phase 7: Report → Jira / Wiki + log + knowledge/memory
|
|
|
20
21
|
|
|
21
22
|
`--dev local` skips Phase 1 (Analysis), Phase 2 (Planning + Approval Gate), Phase 4 (Review), and Phase 5 (User Test - local/autopilot variants skip the interactive test gate). It differs from `--dev` on two axes: no git worktree is created (development happens directly on the current branch in `$PROJECT_ROOT`), and the interactive User Test phase is skipped.
|
|
22
23
|
|
|
23
|
-
> **Want the quality tail afterwards?** Since this mode skips Review + Test, run [`/multi-agent:finish`](
|
|
24
|
+
> **Want the quality tail afterwards?** Since this mode skips Review + Test, run [`/multi-agent:finish`](../finish/SKILL.md) on the same branch when you're done to add parallel review, a build+test success gate, PR, and a Jira technical-analysis + test-scenario comment - without re-developing.
|
|
24
25
|
|
|
25
26
|
## When to use it
|
|
26
27
|
|
|
@@ -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
|
-
-
|
|
58
|
-
|
|
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:
|
|
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:
|
|
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: "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,
|
|
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
|
|
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. **
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
28
|
-
- `question`: "This is irreversible. Permanently wipe every worktree, branch,
|
|
29
|
-
- `header`: "
|
|
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
|
-
|
|
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
|
-
|
|
35
|
-
git branch -D {branch-name}
|
|
42
|
+
bash $HOME/.claude/scripts/purge.sh --yes
|
|
36
43
|
```
|
|
37
44
|
|
|
38
|
-
6. **
|
|
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
|
|