@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
|
@@ -26,11 +26,10 @@ LIVE_PREFS="$HOME/.claude/multi-agent-preferences.json"
|
|
|
26
26
|
|
|
27
27
|
# The migration target, derived the way migrate-prefs.mjs derives it: the last
|
|
28
28
|
# entry of the schema's schemaVersion enum, read from the schema that sits
|
|
29
|
-
# beside the migrator being checked.
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
# on it reported "no reference point". A gate that reads the source of truth
|
|
29
|
+
# beside the migrator being checked. Not grepped as a `TARGET_VERSION = "x.y.z"`
|
|
30
|
+
# literal out of the migrator: a literal drifts, and the moment it is replaced by
|
|
31
|
+
# a schema read the grep matches nothing and both checks that depend on it report
|
|
32
|
+
# "no reference point". A gate that reads the source of truth
|
|
34
33
|
# cannot go stale against it; a gate that reads a transcription of it can.
|
|
35
34
|
migration_target() {
|
|
36
35
|
local schema="$1/../schemas/prefs.schema.json"
|
|
@@ -213,15 +212,13 @@ if [ -f "$LIVE_PREFS" ]; then
|
|
|
213
212
|
|
|
214
213
|
# The target is read from migrate-prefs.mjs, never hardcoded here.
|
|
215
214
|
#
|
|
216
|
-
#
|
|
217
|
-
#
|
|
218
|
-
#
|
|
219
|
-
#
|
|
220
|
-
# correctly migrated to 2.4.0 hit the else arm and FAILED as "unknown". The
|
|
221
|
-
# gate was rejecting the only fully-migrated state it exists to encourage.
|
|
215
|
+
# A hardcoded version here inverts the gate the moment the migration target
|
|
216
|
+
# moves: the stale version passes as "already current" and the correctly
|
|
217
|
+
# migrated one falls through to "unknown schemaVersion", so the gate rejects
|
|
218
|
+
# the only fully-migrated state it exists to encourage.
|
|
222
219
|
#
|
|
223
220
|
# Reading the target and the accepted set from the same schema enum the
|
|
224
|
-
# migrator reads means this
|
|
221
|
+
# migrator reads means this cannot disagree with it.
|
|
225
222
|
MIGRATOR="$SMOKE_DIR/migrate-prefs.mjs"
|
|
226
223
|
TARGET=$(migration_target "$(dirname "$MIGRATOR")")
|
|
227
224
|
KNOWN=$(node -e "
|
|
@@ -277,7 +277,6 @@ function commandOf(state) {
|
|
|
277
277
|
const c = state.command;
|
|
278
278
|
if (typeof c === "string" && c.trim()) return c.trim().slice(0, 60);
|
|
279
279
|
if (state.mode) return state.mode;
|
|
280
|
-
if (state.onlyDevelop) return "dev";
|
|
281
280
|
if (state.localMode) return "local";
|
|
282
281
|
return "full";
|
|
283
282
|
}
|
|
@@ -501,7 +500,6 @@ function buildEvent(state) {
|
|
|
501
500
|
m: state.mode || null,
|
|
502
501
|
ap: Boolean(state.autopilot),
|
|
503
502
|
lo: Boolean(state.localMode),
|
|
504
|
-
dev: Boolean(state.onlyDevelop),
|
|
505
503
|
in: inputType(state),
|
|
506
504
|
rp: projectDigest(state.project),
|
|
507
505
|
ph: typeof state.currentPhase === "number" ? state.currentPhase : null,
|
|
@@ -612,11 +610,11 @@ if (invokedDirectly) {
|
|
|
612
610
|
// Exit 0 stays: usage telemetry must never be the reason a run fails, and a
|
|
613
611
|
// non-zero exit here would propagate into whatever called it.
|
|
614
612
|
//
|
|
615
|
-
// But the silence goes. `catch(() => process.exit(0))`
|
|
616
|
-
// every failure, so a telemetry path
|
|
617
|
-
//
|
|
618
|
-
//
|
|
619
|
-
//
|
|
613
|
+
// But the silence goes. A bare `catch(() => process.exit(0))` reports success
|
|
614
|
+
// for every failure, so a broken telemetry path looks exactly like one that
|
|
615
|
+
// works and there is no surface on which to notice it. One line on stderr
|
|
616
|
+
// costs nothing and is the difference between a degraded feature and an
|
|
617
|
+
// invisible one.
|
|
620
618
|
main().catch((err) => {
|
|
621
619
|
process.stderr.write(`usage-report: not sent - ${err?.message ?? err}\n`);
|
|
622
620
|
process.exit(0);
|
|
@@ -935,10 +935,10 @@ function main() {
|
|
|
935
935
|
|
|
936
936
|
mark("placeholder-bodies", profile === "global" ? undefined : "corporate profile");
|
|
937
937
|
|
|
938
|
-
// 4b. Locked 2's numbering half
|
|
938
|
+
// 4b. Locked 2's numbering half.
|
|
939
939
|
//
|
|
940
|
-
// It is NOT "numbering re-flows 1..N"
|
|
941
|
-
//
|
|
940
|
+
// It is NOT "numbering re-flows 1..N", which could not hold: Locked 30
|
|
941
|
+
// threads ids across the document by section
|
|
942
942
|
// NUMBER ("Section 15.1 scenario", "Section 4.4", "Section 3/5 layout cells"),
|
|
943
943
|
// so a re-flowed document sends every one of those references to the wrong
|
|
944
944
|
// section. No emitted document ever re-flowed. The rule was the wrong half.
|
|
@@ -116,13 +116,13 @@ fi
|
|
|
116
116
|
|
|
117
117
|
# --- preconditions ---------------------------------------------------------
|
|
118
118
|
|
|
119
|
-
#
|
|
119
|
+
# A local workspace has no worktree: worktreePath equals the project root. Removing
|
|
120
120
|
# it would delete the user's checkout.
|
|
121
121
|
rp_wt="$(cd "$WORKTREE" 2>/dev/null && pwd -P || echo "")"
|
|
122
122
|
rp_pr="$(cd "$PROJECT_ROOT" 2>/dev/null && pwd -P || echo "")"
|
|
123
123
|
[ -n "$rp_wt" ] || skip "worktree path does not exist: $WORKTREE"
|
|
124
124
|
[ -n "$rp_pr" ] || skip "project root does not exist: $PROJECT_ROOT"
|
|
125
|
-
[ "$rp_wt" != "$rp_pr" ] || skip "worktree equals project root (
|
|
125
|
+
[ "$rp_wt" != "$rp_pr" ] || skip "worktree equals project root (local workspace) - nothing to remove"
|
|
126
126
|
|
|
127
127
|
# Refuse if the caller is standing inside the tree being removed. A shell left on
|
|
128
128
|
# a deleted inode is worse than a leftover directory, and Phase 4 legitimately
|
|
@@ -40,6 +40,9 @@
|
|
|
40
40
|
* WRITE_STATE_LOCK_ABANDON_MS ceiling past which even a lock that probes as
|
|
41
41
|
* alive is reclaimed, covering PID reuse
|
|
42
42
|
* (default: 10x STALE_MS)
|
|
43
|
+
* WRITE_STATE_TEST_DELAY_MS test seam: pause between acquiring the lock
|
|
44
|
+
* and the write, so the exit-4 refusal can be
|
|
45
|
+
* driven on purpose (default 0, off)
|
|
43
46
|
* A dead holder (PID no longer alive) is reclaimed immediately regardless of
|
|
44
47
|
* age. A live holder keeps its lock: liveness outranks age. See
|
|
45
48
|
* lockIdentityIfStale() for why that order is load-bearing.
|
|
@@ -109,11 +112,11 @@ async function acquireLock(
|
|
|
109
112
|
const staleMs = Number(process.env.WRITE_STATE_LOCK_STALE_MS) || 30_000;
|
|
110
113
|
const deadline = Date.now() + timeoutMs;
|
|
111
114
|
// The lock file must never be observable without its owning PID inside it.
|
|
112
|
-
//
|
|
113
|
-
// between those two calls
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
//
|
|
115
|
+
// Created with openSync(wx) and filled on the next line, it exists and is
|
|
116
|
+
// empty between those two calls. A writer arriving in that window reads an
|
|
117
|
+
// unparseable PID, concludes the lock is stale, and deletes a live one -
|
|
118
|
+
// after which two writers hold it and one write is lost. The window is only
|
|
119
|
+
// wide enough to hit under CPU load, which is where it matters.
|
|
117
120
|
//
|
|
118
121
|
// Writing the PID into a private temp file and hard-linking it into place
|
|
119
122
|
// closes the window: link() fails with EEXIST if the lock is held, and the
|
|
@@ -141,8 +144,8 @@ async function acquireLock(
|
|
|
141
144
|
// deleting it, the holder can release and a THIRD writer can acquire a
|
|
142
145
|
// fresh one - and an unlink by path deletes that live lock, after which
|
|
143
146
|
// two writers hold it and one update is lost. Same failure the PID window
|
|
144
|
-
// above
|
|
145
|
-
//
|
|
147
|
+
// above describes, at a different point in the loop, and it only reproduces
|
|
148
|
+
// under load, where the gap is wide enough to lose.
|
|
146
149
|
//
|
|
147
150
|
// The inode is the identity: a newly acquired lock is a different file
|
|
148
151
|
// even at the same path. Delete only if the file we judged is still the
|
|
@@ -176,10 +179,10 @@ async function acquireLock(
|
|
|
176
179
|
* A lock is stale when its owning PID is no longer alive. Age alone is not
|
|
177
180
|
* staleness.
|
|
178
181
|
*
|
|
179
|
-
* The order here is the whole point.
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
182
|
+
* The order here is the whole point. Checking age first and returning "stale" on
|
|
183
|
+
* its own costs a holder that is demonstrably ALIVE its lock the moment the file
|
|
184
|
+
* passes 30 seconds - and the next writer then deletes a live lock and overwrites
|
|
185
|
+
* the update behind it. Liveness is direct evidence;
|
|
183
186
|
* a timestamp is a guess about it, and a guess must not overrule the evidence.
|
|
184
187
|
*
|
|
185
188
|
* Age survives for the one case liveness cannot answer: PID reuse. A dead
|
|
@@ -330,6 +333,14 @@ async function main() {
|
|
|
330
333
|
try {
|
|
331
334
|
heldLockIno = await acquireLock(path);
|
|
332
335
|
heldLockFor = path;
|
|
336
|
+
// Test seam. The refusal below is the one path that cannot be reached on
|
|
337
|
+
// demand: it needs another writer to take the lock inside the window
|
|
338
|
+
// between acquiring it and renaming, which on an idle machine is too
|
|
339
|
+
// narrow to hit and on a loaded one is a coin flip. A gate that can only
|
|
340
|
+
// observe this path by accident is not holding it. Unset in every real
|
|
341
|
+
// run; the whole seam is one sleep.
|
|
342
|
+
const testDelayMs = Number(process.env.WRITE_STATE_TEST_DELAY_MS) || 0;
|
|
343
|
+
if (testDelayMs > 0) await new Promise((r) => setTimeout(r, testDelayMs));
|
|
333
344
|
} catch (err) {
|
|
334
345
|
if (err.code === "LOCK_TIMEOUT") {
|
|
335
346
|
console.error(err.message);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
4
|
-
"skillCount":
|
|
3
|
+
"generatedAt": "2026-09-21T11:25:15Z",
|
|
4
|
+
"skillCount": 213,
|
|
5
5
|
"entries": [
|
|
6
6
|
{
|
|
7
7
|
"path": "shared/core/apple-archive-compliance/SKILL.md",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"path": "shared/core/multi-agent-autopilot-status/SKILL.md",
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "f706d3fe4a0db86691d525f4bc008c095fddffbf69026fc553b780b2389eac6e"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "shared/core/multi-agent-autopilot/SKILL.md",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"path": "shared/core/multi-agent-channels/SKILL.md",
|
|
48
|
-
"sha256": "
|
|
48
|
+
"sha256": "e4f59e784d77018326e719632ef371e50e9fb9af61318a7d5bf713c386c0fd3f"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
"path": "shared/core/multi-agent-complaint-analysis/SKILL.md",
|
|
@@ -85,11 +85,11 @@
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"path": "shared/core/multi-agent-help/SKILL.md",
|
|
88
|
-
"sha256": "
|
|
88
|
+
"sha256": "4d6181bd8d612f758db5b60df1b18668cf39a5fa3b5174c19b063491d240c054"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"path": "shared/core/multi-agent-ios-coding-standard/SKILL.md",
|
|
92
|
-
"sha256": "
|
|
92
|
+
"sha256": "a424507424e883be63886da79b294314e03c73129c658b4ad3d080315f60e325"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"path": "shared/core/multi-agent-issue/SKILL.md",
|
|
@@ -107,14 +107,6 @@
|
|
|
107
107
|
"path": "shared/core/multi-agent-language/SKILL.md",
|
|
108
108
|
"sha256": "63e746bc63ec9963c54e852e6ca5cdb30afd9309a02ee3fdb35965eb931d0300"
|
|
109
109
|
},
|
|
110
|
-
{
|
|
111
|
-
"path": "shared/core/multi-agent-local-autopilot/SKILL.md",
|
|
112
|
-
"sha256": "5e367258e57fa710d16a1ad6363d5974b89aa99fb0ac791d1ce0070c81191f6b"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"path": "shared/core/multi-agent-local/SKILL.md",
|
|
116
|
-
"sha256": "0a5f20782de81ac3376088579ff6fbc3a6f3781cb285860aae796408aa57e6aa"
|
|
117
|
-
},
|
|
118
110
|
{
|
|
119
111
|
"path": "shared/core/multi-agent-log/SKILL.md",
|
|
120
112
|
"sha256": "34bb9841af478abfd4a052d13b821ab4ccd9b5ba29154e9a06029312955b45a4"
|
|
@@ -143,13 +135,9 @@
|
|
|
143
135
|
"path": "shared/core/multi-agent-refactor/SKILL.md",
|
|
144
136
|
"sha256": "56eb2be076a6840ddfbf57b8e82c8b4bcf76209553d41a06cc71e56dc894364e"
|
|
145
137
|
},
|
|
146
|
-
{
|
|
147
|
-
"path": "shared/core/multi-agent-resume-local/SKILL.md",
|
|
148
|
-
"sha256": "9f5089c748a8f0ae5983a3f392879a86017a33c883a87607169e32705c68c5e9"
|
|
149
|
-
},
|
|
150
138
|
{
|
|
151
139
|
"path": "shared/core/multi-agent-resume/SKILL.md",
|
|
152
|
-
"sha256": "
|
|
140
|
+
"sha256": "57b97c497d34d10afdd030f44b74628a0d9f054431fec424dab7114cba775cf7"
|
|
153
141
|
},
|
|
154
142
|
{
|
|
155
143
|
"path": "shared/core/multi-agent-review-analysis/SKILL.md",
|
|
@@ -217,7 +205,7 @@
|
|
|
217
205
|
},
|
|
218
206
|
{
|
|
219
207
|
"path": "shared/core/multi-agent-sync/SKILL.md",
|
|
220
|
-
"sha256": "
|
|
208
|
+
"sha256": "34aea52bbbe86018011edc1c96a986d1ee2aba8bdb82b19212714bac80bea076"
|
|
221
209
|
},
|
|
222
210
|
{
|
|
223
211
|
"path": "shared/core/multi-agent-test-accessibility/SKILL.md",
|
|
@@ -253,7 +241,7 @@
|
|
|
253
241
|
},
|
|
254
242
|
{
|
|
255
243
|
"path": "shared/core/multi-agent/SKILL.md",
|
|
256
|
-
"sha256": "
|
|
244
|
+
"sha256": "ca1286f3f17d76b75547320ec9b39af575a88828da14b4ed4ffe79932c7406a3"
|
|
257
245
|
},
|
|
258
246
|
{
|
|
259
247
|
"path": "shared/external/accessibility-compliance-accessibility-audit/SKILL.md",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"skillCount":
|
|
3
|
+
"skillCount": 213,
|
|
4
4
|
"entries": [
|
|
5
5
|
{
|
|
6
6
|
"name": "accessibility-compliance-accessibility-audit",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"name": "apple-archive-compliance",
|
|
183
|
-
"description": "Apple App Store Review compliance - wraps the multi-agent-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates. Consumed by: /multi-agent:test 'store-ready' (primary dispatch), Phase
|
|
183
|
+
"description": "Apple App Store Review compliance - wraps the multi-agent-toolkit-mcp `ios_app_store_audit` tool (18-rule deep scan) with ITMS error code mapping + EN/TR humanizer templates. Consumed by: /multi-agent:test 'store-ready' (primary dispatch), Phase 3 Security Auditor (catalog cross-ref on Info.plist ",
|
|
184
184
|
"platform": null,
|
|
185
185
|
"group": "core",
|
|
186
186
|
"plugin": null,
|
|
@@ -587,7 +587,7 @@
|
|
|
587
587
|
},
|
|
588
588
|
{
|
|
589
589
|
"name": "google-play-compliance",
|
|
590
|
-
"description": "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates. Consumed by: /multi-agent:test 'store-ready' (primary dispatch), Phase
|
|
590
|
+
"description": "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates. Consumed by: /multi-agent:test 'store-ready' (primary dispatch), Phase 3 Security Auditor (catalog cross-ref on AndroidManifest / bu",
|
|
591
591
|
"platform": null,
|
|
592
592
|
"group": "core",
|
|
593
593
|
"plugin": null,
|
|
@@ -1159,7 +1159,7 @@
|
|
|
1159
1159
|
},
|
|
1160
1160
|
{
|
|
1161
1161
|
"name": "multi-agent-ios-coding-standard",
|
|
1162
|
-
"description": "Audit an iOS module against the shared coding-standard registry (99 stable-ID rules), produce a remediation plan, then hand off to /multi-agent
|
|
1162
|
+
"description": "Audit an iOS module against the shared coding-standard registry (99 stable-ID rules), produce a remediation plan, then hand off to /multi-agent. Use for a standards pass on a module, or when a review needs rule IDs rather than opinions.",
|
|
1163
1163
|
"platform": null,
|
|
1164
1164
|
"group": "core",
|
|
1165
1165
|
"plugin": null,
|
|
@@ -1212,28 +1212,6 @@
|
|
|
1212
1212
|
"triggerPaths": [],
|
|
1213
1213
|
"relativePath": "shared/core/multi-agent-language/SKILL.md"
|
|
1214
1214
|
},
|
|
1215
|
-
{
|
|
1216
|
-
"name": "multi-agent-local",
|
|
1217
|
-
"description": "Full pipeline in local mode - no worktree, runs directly on the current branch. Use when the full pipeline should run on the current branch without creating a worktree.",
|
|
1218
|
-
"platform": null,
|
|
1219
|
-
"group": "core",
|
|
1220
|
-
"plugin": null,
|
|
1221
|
-
"invokeAs": "multi-agent-local",
|
|
1222
|
-
"triggerKeywords": [],
|
|
1223
|
-
"triggerPaths": [],
|
|
1224
|
-
"relativePath": "shared/core/multi-agent-local/SKILL.md"
|
|
1225
|
-
},
|
|
1226
|
-
{
|
|
1227
|
-
"name": "multi-agent-local-autopilot",
|
|
1228
|
-
"description": "Full pipeline + local + autopilot - no worktree, no confirmations, all 6 phases run end-to-end on the current branch. Use when the full pipeline should run on the current branch with no worktree and no prompts.",
|
|
1229
|
-
"platform": null,
|
|
1230
|
-
"group": "core",
|
|
1231
|
-
"plugin": null,
|
|
1232
|
-
"invokeAs": "multi-agent-local-autopilot",
|
|
1233
|
-
"triggerKeywords": [],
|
|
1234
|
-
"triggerPaths": [],
|
|
1235
|
-
"relativePath": "shared/core/multi-agent-local-autopilot/SKILL.md"
|
|
1236
|
-
},
|
|
1237
1215
|
{
|
|
1238
1216
|
"name": "multi-agent-log",
|
|
1239
1217
|
"description": "Show the agent-log.md for the given task. With no ID, shows the most recent task. Use when asked what a task did, or to read its log.",
|
|
@@ -1247,7 +1225,7 @@
|
|
|
1247
1225
|
},
|
|
1248
1226
|
{
|
|
1249
1227
|
"name": "multi-agent-manual-test",
|
|
1250
|
-
"description": "Switch to the active task's branch and prepare it for manual testing in Xcode. Phase
|
|
1228
|
+
"description": "Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 3 user-test step, standalone (the UI Bug Hunter lives at multi-agent-test). Use when a finished change needs trying by hand on a device or simulator.",
|
|
1251
1229
|
"platform": null,
|
|
1252
1230
|
"group": "core",
|
|
1253
1231
|
"plugin": null,
|
|
@@ -1313,7 +1291,7 @@
|
|
|
1313
1291
|
},
|
|
1314
1292
|
{
|
|
1315
1293
|
"name": "multi-agent-resume",
|
|
1316
|
-
"description": "
|
|
1294
|
+
"description": "Pick up unfinished work: a pipeline run that stopped mid-phase, or work already written on the current branch that never went through the pipeline. Use when a task stopped or failed, or when hand-written local work needs review, build, PR and reporting.",
|
|
1317
1295
|
"platform": null,
|
|
1318
1296
|
"group": "core",
|
|
1319
1297
|
"plugin": null,
|
|
@@ -1322,17 +1300,6 @@
|
|
|
1322
1300
|
"triggerPaths": [],
|
|
1323
1301
|
"relativePath": "shared/core/multi-agent-resume/SKILL.md"
|
|
1324
1302
|
},
|
|
1325
|
-
{
|
|
1326
|
-
"name": "multi-agent-resume-local",
|
|
1327
|
-
"description": "Continue already-done LOCAL work through the pipeline tail: Review (with its build gate) → Commit/PR → Report (technical analysis + Jira test-scenario comment). No dev phase. Use when local work is already done and only review, build, commit and reporting remain.",
|
|
1328
|
-
"platform": null,
|
|
1329
|
-
"group": "core",
|
|
1330
|
-
"plugin": null,
|
|
1331
|
-
"invokeAs": "multi-agent-resume-local",
|
|
1332
|
-
"triggerKeywords": [],
|
|
1333
|
-
"triggerPaths": [],
|
|
1334
|
-
"relativePath": "shared/core/multi-agent-resume-local/SKILL.md"
|
|
1335
|
-
},
|
|
1336
1303
|
{
|
|
1337
1304
|
"name": "multi-agent-review",
|
|
1338
1305
|
"description": "Run parallel review on a branch diff or a Pull Request: 3 models on Claude Code (Fable + Opus + Sonnet), 3 models on Copilot CLI (GPT + Opus + Sonnet). On PR input, posts per-finding inline comments + approve/needs-work. With no input (interactive), lists open GitHub + Bitbucket PRs to multi-select.",
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Single source of truth for skills delivered to both Claude Code (`~/.claude/skills/`) and Copilot CLI (`~/.copilot/skills/`) by the installer.
|
|
4
4
|
|
|
5
|
-
**Total:**
|
|
5
|
+
**Total:** 213 skills (60 core + 153 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
|
|
6
6
|
|
|
7
7
|
## Directory layout
|
|
8
8
|
|
|
9
|
-
- **`core/`** -
|
|
9
|
+
- **`core/`** - 60 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
|
|
10
10
|
- **`external/`** - 153 iOS / Android / generic skills imported from the upstream skill library. Mirrors of third-party guidance.
|
|
11
11
|
- Install destinations (ADR-0009): Claude Code gets NO local copy of `external/` - it loads those skills from the `multi-agent-plugins` marketplace, namespaced (`ai-<stack>-toolkit:<name>`); only the two compliance catalogs from `core/` land in `~/.claude/skills/`. Copilot CLI and Codex CLI receive a flat copy filtered to the enabled stacks. `external/` remains the single authoring source that `build-stack-plugins.mjs` publishes from.
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
14
14
|
|
|
15
15
|
## Categories
|
|
16
16
|
|
|
17
|
-
- [Pipeline Orchestration](#pipeline-orchestration) -
|
|
17
|
+
- [Pipeline Orchestration](#pipeline-orchestration) - 60
|
|
18
18
|
- [iOS / Apple Ecosystem](#ios-apple-ecosystem) - 90
|
|
19
19
|
- [Android / Kotlin](#android-kotlin) - 13
|
|
20
20
|
- [Web](#web) - 10
|
|
@@ -52,17 +52,14 @@ Source layout is logical grouping only - skill discovery at runtime is unchang
|
|
|
52
52
|
| [`multi-agent-jira`](./core/multi-agent-jira/) | `core` | List open Jira issues, pick one, and launch the multi-agent pipeline. Use when a Jira issue should be picked up and started without knowing |
|
|
53
53
|
| [`multi-agent-kill`](./core/multi-agent-kill/) | `core` | Stop the given task, then remove its worktree and branch. Asks for confirmation. Use when a running or stuck task should be stopped and its |
|
|
54
54
|
| [`multi-agent-language`](./core/multi-agent-language/) | `core` | Toggle outputLanguage (assistant explanations, picker questions, PR/Jira/Confluence bodies). promptLanguage is fixed to English; commit mess |
|
|
55
|
-
| [`multi-agent-local`](./core/multi-agent-local/) | `core` | Full pipeline in local mode - no worktree, runs directly on the current branch. Use when the full pipeline should run on the current branc |
|
|
56
|
-
| [`multi-agent-local-autopilot`](./core/multi-agent-local-autopilot/) | `core` | Full pipeline + local + autopilot - no worktree, no confirmations, all 6 phases run end-to-end on the current branch. Use when the full pi |
|
|
57
55
|
| [`multi-agent-log`](./core/multi-agent-log/) | `core` | Show the agent-log.md for the given task. With no ID, shows the most recent task. Use when asked what a task did, or to read its log. |
|
|
58
|
-
| [`multi-agent-manual-test`](./core/multi-agent-manual-test/) | `core` | Switch to the active task's branch and prepare it for manual testing in Xcode. Phase
|
|
56
|
+
| [`multi-agent-manual-test`](./core/multi-agent-manual-test/) | `core` | Switch to the active task's branch and prepare it for manual testing in Xcode. Phase 3 user-test step, standalone (the UI Bug Hunter lives a |
|
|
59
57
|
| [`multi-agent-model`](./core/multi-agent-model/) | `core` | Turn the top model rung on or off and keep the cost ledger's pricing in step with it. Use when asked to enable or disable Fable, or which mo |
|
|
60
58
|
| [`multi-agent-prune-logs`](./core/multi-agent-prune-logs/) | `core` | Delete per-task project logs under ~/.claude/logs/multi-agent (filter by age/project/task). Audit trail + metrics are preserved. Dry-run fir |
|
|
61
59
|
| [`multi-agent-prune-prompts`](./core/multi-agent-prune-prompts/) | `core` | Zero-base prompt review: measure the always-on instruction footprint, classify every rule block, propose keep/trial-removal/delete; applies |
|
|
62
60
|
| [`multi-agent-purge`](./core/multi-agent-purge/) | `core` | ⚠️ Wipes every worktree, branch, log, and state file. Irreversible; asks for double confirmation. Use when every worktree, branch, log and s |
|
|
63
61
|
| [`multi-agent-refactor`](./core/multi-agent-refactor/) | `core` | Analyse the project: extract adapted best-practices, hunt real bugs + improvement areas, check upstream drift of derived skills, research th |
|
|
64
|
-
| [`multi-agent-resume`](./core/multi-agent-resume/) | `core` |
|
|
65
|
-
| [`multi-agent-resume-local`](./core/multi-agent-resume-local/) | `core` | Continue already-done LOCAL work through the pipeline tail: Review (with its build gate) → Commit/PR → Report (technical analysis + Jira tes |
|
|
62
|
+
| [`multi-agent-resume`](./core/multi-agent-resume/) | `core` | Pick up unfinished work: a pipeline run that stopped mid-phase, or work already written on the current branch that never went through the pi |
|
|
66
63
|
| [`multi-agent-review`](./core/multi-agent-review/) | `core` | Run parallel review on a branch diff or a Pull Request: 3 models on Claude Code (Fable + Opus + Sonnet), 3 models on Copilot CLI (GPT + Opus |
|
|
67
64
|
| [`multi-agent-review-analysis`](./core/multi-agent-review-analysis/) | `core` | Review a written analysis document instead of a diff: resolve it from a path, a Confluence page or a Jira issue, run the deterministic gates |
|
|
68
65
|
| [`multi-agent-review-issue`](./core/multi-agent-review-issue/) | `core` | Assess whether a GitHub issue is ready for multi-agent development: fetch it, grade scope / acceptance criteria / repro / design / API / sta |
|
|
@@ -311,25 +311,22 @@ Every user-facing phase title - TaskCreate cards, `phase-banner.sh` headers, a
|
|
|
311
311
|
|
|
312
312
|
All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied (Claude Code path; Copilot CLI does not have a TaskList widget so this rule is Claude-only). The native widget renders by creation order, not by phase-number metadata - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state file is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN: register the tile in order with default `pending` status, then flip via TaskUpdate when the phase actually short-circuits. Mode-specific phase sets:
|
|
313
313
|
|
|
314
|
-
- `multi-agent`: 0 → 1 → 2 → 3 → 4 → 5
|
|
315
|
-
- `multi-agent-
|
|
316
|
-
- `multi-agent-analysis`: 0 → 1 → 2 → 4 → 6 → 7 (no code, so no Dev and no Test)
|
|
314
|
+
- `multi-agent`, `multi-agent-autopilot`: 0 → 1 → 2 → 3 → 4 → 5 (the user-test gate inside Phase 3 needs a worktree checkout and an attended run; the phase set is the same either way)
|
|
315
|
+
- `multi-agent-analysis`: 0 → 1 → 3 → 4 → 5 (no code is written, so Dev is not in the set)
|
|
317
316
|
|
|
318
|
-
|
|
317
|
+
Every mode registers its whole set at Step -1: the set is a property of the command, so nothing is deferred.
|
|
319
318
|
|
|
320
319
|
Full contract: `refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
321
320
|
|
|
322
321
|
### Phase 0: Init
|
|
323
322
|
|
|
324
|
-
> **Contract (strict)** - Phase 0 has **8 sequential interactive steps
|
|
325
|
-
> Step 7.5 depth question (`/multi-agent` and `:local` only; the autopilot entries
|
|
326
|
-
> skip it and always run Full), defined in
|
|
323
|
+
> **Contract (strict)** - Phase 0 has **8 sequential interactive steps**, defined in
|
|
327
324
|
> `refs/phases/phase-0-init.md`. Read it before every Phase 0 run and execute all of
|
|
328
325
|
> them. Do **NOT** short-circuit: even when the input is a Jira ID plus a branch, the
|
|
329
326
|
> prefs load, the multi-repo offer, the branch picker and the branch-name confirm are
|
|
330
|
-
> required UX checkpoints.
|
|
331
|
-
>
|
|
332
|
-
>
|
|
327
|
+
> required UX checkpoints. Skipping them lets a Jira ID land straight on the local
|
|
328
|
+
> checkout with neither the project nor the branch picker ever shown, and nothing
|
|
329
|
+
> fails, so nothing catches it. The walkthrough below covers input parsing and worktree
|
|
333
330
|
> creation only; it is not the contract.
|
|
334
331
|
>
|
|
335
332
|
> **Exit gate (BLOCKING).** Prose alone did not stop that run. Before marking Phase 0
|
|
@@ -434,7 +431,7 @@ Two halves, one phase, one approval gate (Phases 1 and 2 until 19.0.0).
|
|
|
434
431
|
2. Launch **ios-architect** agent for architecture review (if structural changes)
|
|
435
432
|
3. Determine development approach per todo (new file, modify, refactor)
|
|
436
433
|
4. Log: `🧠 Phase 1: Plan - {N} todos created`
|
|
437
|
-
5. **Plan Approval Gate** (
|
|
434
|
+
5. **Plan Approval Gate** (interactive only - autopilot may not ask). Full flow in `refs/phases/phase-1-plan.md` Step 5:
|
|
438
435
|
- **5a - Clarification** (conditional, max 2 rounds): if the Jira/issue description is ambiguous (vague acceptance, UI task without Figma, API task without endpoint contract, `ambiguityScore >= 2`, parent-story scope drift), ask structured questions before rendering the plan. User answers → plan regenerated. If it is still unclear after the 2nd round, render the plan with a "best-effort" banner.
|
|
439
436
|
- **5b - Approval loop**: render plan → user: `onayla`/`iptal`/free-text. A free-text edit request → the planning model (Fable) revises the plan → show it again. No iteration cap; user controls exit via `onayla` or `iptal`.
|
|
440
437
|
- Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["1"]`.
|
|
@@ -708,5 +705,5 @@ When `multi-agent status` is called, show:
|
|
|
708
705
|
## Help Display
|
|
709
706
|
|
|
710
707
|
Rendered by the `multi-agent-help` skill (`/multi-agent:help`), which owns
|
|
711
|
-
the full text in both languages.
|
|
712
|
-
|
|
708
|
+
the full text in both languages. Duplicating it here would mean English only,
|
|
709
|
+
on a path this skill takes for exactly one input.
|
|
@@ -37,7 +37,7 @@ not a fault.
|
|
|
37
37
|
|
|
38
38
|
When `swiftc` was available at `autopilot-on` time, `~/.claude/autopilot/bin/menubar`
|
|
39
39
|
shows the same thing in the top right, refreshing on its own: one row per item
|
|
40
|
-
with its id,
|
|
40
|
+
with its id, the phase as a fraction, the
|
|
41
41
|
elapsed time and the stack, then the queue, then what is waiting, then the PRs of
|
|
42
42
|
the last day - each one clickable.
|
|
43
43
|
|
|
@@ -152,11 +152,10 @@ h2. Bağlantılar
|
|
|
152
152
|
Reproduction scenarios first, then regressions for whatever the change could
|
|
153
153
|
have disturbed. Full contract: `channels/jira.md`.
|
|
154
154
|
|
|
155
|
-
`{{file.ext → func}}`, `*Root cause:*` and `*Changed files:*`
|
|
156
|
-
template.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
smiley.
|
|
155
|
+
`{{file.ext → func}}`, `*Root cause:*` and `*Changed files:*` are deliberately
|
|
156
|
+
NOT this template. That shape puts a hash-table mutation walk in front of a
|
|
157
|
+
tester, and `{{file → func}}` is exactly where a Swift selector like
|
|
158
|
+
`hash(into:)` ends up - whose trailing `:)` Jira renders as a smiley.
|
|
160
159
|
|
|
161
160
|
**Post through the publisher, never a hand-rolled `curl`:**
|
|
162
161
|
|
|
@@ -38,8 +38,8 @@ Render **exactly one** of the two blocks below - the one matching `LANG`. Do n
|
|
|
38
38
|
multi-agent "#316" -> GitHub Issue #
|
|
39
39
|
multi-agent "bug/feature description" -> Free-text
|
|
40
40
|
|
|
41
|
-
(Copilot CLI uses the dash form: multi-agent-
|
|
42
|
-
Claude Code uses colon form: /multi-agent:
|
|
41
|
+
(Copilot CLI uses the dash form: multi-agent-channels, etc.
|
|
42
|
+
Claude Code uses colon form: /multi-agent:channels, etc.)
|
|
43
43
|
|
|
44
44
|
------------------------------------------------------------
|
|
45
45
|
|
|
@@ -52,7 +52,7 @@ How It Works (Phase 0 - Interactive Flow):
|
|
|
52
52
|
5. BRANCH NAME bugfix/{jiraId} or feature/{jiraId} -> confirm
|
|
53
53
|
6. GIT ID Select identity from preferences (multiple supported)
|
|
54
54
|
7. INSTRUCTION Auto-detect if .instructions/ exists (figma etc.)
|
|
55
|
-
8. WORKSPACE
|
|
55
|
+
8. WORKSPACE Ask where the branch lives: worktree (default) or project root
|
|
56
56
|
|
|
57
57
|
------------------------------------------------------------
|
|
58
58
|
|
|
@@ -76,17 +76,15 @@ Pipeline (after Phase 0):
|
|
|
76
76
|
|
|
77
77
|
Modes:
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Recommended from taskType. Review is never skipped either way.
|
|
79
|
+
One pipeline. Every mode runs its whole phase set:
|
|
80
|
+
Plan -> Dev(Sonnet) -> Review -> Commit -> Report
|
|
81
|
+
What a run costs follows the evidence the task carries.
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
it always runs Full (EXCEPT Phase 5 channels menu)
|
|
83
|
+
autopilot Skip all confirmations and resolve the workspace to a
|
|
84
|
+
worktree (EXCEPT Phase 5 channels menu)
|
|
87
85
|
|
|
88
86
|
Dedicated dash commands (Copilot):
|
|
89
|
-
multi-agent-
|
|
87
|
+
multi-agent-autopilot
|
|
90
88
|
|
|
91
89
|
------------------------------------------------------------
|
|
92
90
|
|
|
@@ -212,8 +210,8 @@ Logs: $HOME/.copilot/logs/multi-agent/{project}/{task-id}/ (Copilot)
|
|
|
212
210
|
multi-agent "#316" -> GitHub Issue #
|
|
213
211
|
multi-agent "bug/özellik açıklaması" -> Serbest metin
|
|
214
212
|
|
|
215
|
-
(Copilot CLI dash form kullanır: multi-agent-
|
|
216
|
-
Claude Code colon form kullanır: /multi-agent:
|
|
213
|
+
(Copilot CLI dash form kullanır: multi-agent-channels vb.
|
|
214
|
+
Claude Code colon form kullanır: /multi-agent:channels vb.)
|
|
217
215
|
|
|
218
216
|
------------------------------------------------------------
|
|
219
217
|
|
|
@@ -226,7 +224,7 @@ Nasıl Çalışır (Phase 0 - İnteraktif Akış):
|
|
|
226
224
|
5. BRANCH NAME bugfix/{jiraId} veya feature/{jiraId} -> onayla
|
|
227
225
|
6. GIT ID Kimlik seç (prefs'ten; birden fazla desteklenir)
|
|
228
226
|
7. INSTRUCTION .instructions/ varsa otomatik algıla
|
|
229
|
-
8. WORKSPACE
|
|
227
|
+
8. WORKSPACE Branch nerede yaşayacak: worktree (default) ya da proje kökü
|
|
230
228
|
|
|
231
229
|
------------------------------------------------------------
|
|
232
230
|
|
|
@@ -255,12 +253,11 @@ Modlar:
|
|
|
255
253
|
Kısa Dev(Opus, kendi kendine yeten) -> Review -> Commit -> Report
|
|
256
254
|
taskType'a göre önerilir. Review iki durumda da atlanmaz.
|
|
257
255
|
|
|
258
|
-
--local Worktree yok - doğrudan local branch'te çalışır
|
|
259
256
|
autopilot Derinlik sorusu dahil tüm onayları atlar, bu yüzden her
|
|
260
257
|
zaman Tam koşar (İSTİSNA: Phase 5 channels menüsü)
|
|
261
258
|
|
|
262
259
|
Dedicated dash komutlar (Copilot):
|
|
263
|
-
multi-agent-
|
|
260
|
+
multi-agent-autopilot
|
|
264
261
|
|
|
265
262
|
------------------------------------------------------------
|
|
266
263
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-ios-coding-standard
|
|
3
3
|
language: en
|
|
4
|
-
description: "Audit an iOS module against the shared coding-standard registry (99 stable-ID rules), produce a remediation plan, then hand off to /multi-agent
|
|
4
|
+
description: "Audit an iOS module against the shared coding-standard registry (99 stable-ID rules), produce a remediation plan, then hand off to /multi-agent. Use for a standards pass on a module, or when a review needs rule IDs rather than opinions."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: "[module name or path]"
|
|
7
7
|
---
|
|
@@ -237,10 +237,9 @@ Show a concise version of the plan to the user too.
|
|
|
237
237
|
|
|
238
238
|
| Option | What it does |
|
|
239
239
|
|---|---|
|
|
240
|
-
| `/multi-agent:local` | No worktree; branches from the main development branch, fixes on the current checkout |
|
|
241
240
|
| `/multi-agent` | Opens a worktree; fixes on a fresh branch + PR |
|
|
242
241
|
|
|
243
|
-
Both
|
|
242
|
+
Both run the whole pipeline; a standards sweep is usually already scoped, so Phase 1 has little to say and its document is short.
|
|
244
243
|
|
|
245
244
|
Invoke the chosen command with the plan file as the task input, branching off the repo's main
|
|
246
245
|
development branch (e.g. `chore/<module>-coding-standard`). The dev pipeline applies the fixes,
|