@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.
Files changed (138) hide show
  1. package/CHANGELOG.md +150 -7
  2. package/README.md +60 -50
  3. package/README.tr.md +55 -46
  4. package/docs/adr/0002-instruction-driven-flag.md +6 -5
  5. package/docs/adr/0005-lazy-phase-docs.md +2 -2
  6. package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +1 -0
  7. package/docs/adr/0009-claude-stack-skills-plugin-only.md +1 -1
  8. package/docs/adr/0010-own-code-graph.md +5 -4
  9. package/docs/adr/0012-macos-only.md +2 -2
  10. package/docs/adr/0013-lsp-code-intelligence.md +2 -2
  11. package/docs/adr/0014-six-phase-consolidation.md +9 -9
  12. package/docs/adr/0015-one-pipeline-no-depth-answer.md +83 -0
  13. package/docs/adr/0016-the-run-shape-is-asked-not-typed.md +69 -0
  14. package/docs/adr/README.md +18 -16
  15. package/docs/architecture.md +2 -2
  16. package/docs/ecosystem.md +8 -9
  17. package/docs/facts.json +5 -8
  18. package/docs/features.md +4 -5
  19. package/docs/token-budget-history.md +1 -1
  20. package/install/_common.mjs +14 -6
  21. package/install/_mcp-register.mjs +1 -1
  22. package/install/_plugin-skills.mjs +3 -4
  23. package/install/copilot.mjs +5 -5
  24. package/install/templates/copilot-instructions.md +7 -16
  25. package/manifest.json +135 -138
  26. package/package.json +1 -1
  27. package/pipeline/commands/multi-agent/SKILL.md +6 -8
  28. package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -0
  29. package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +2 -0
  30. package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -0
  31. package/pipeline/commands/multi-agent/autopilot/SKILL.md +2 -0
  32. package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +2 -0
  33. package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +1 -1
  34. package/pipeline/commands/multi-agent/build-optimize/SKILL.md +2 -0
  35. package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
  36. package/pipeline/commands/multi-agent/create-jira/SKILL.md +2 -0
  37. package/pipeline/commands/multi-agent/design-check/SKILL.md +1 -1
  38. package/pipeline/commands/multi-agent/forget/SKILL.md +2 -0
  39. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -2
  40. package/pipeline/commands/multi-agent/help/SKILL.md +21 -27
  41. package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +5 -4
  42. package/pipeline/commands/multi-agent/issue/SKILL.md +2 -0
  43. package/pipeline/commands/multi-agent/jira/SKILL.md +2 -0
  44. package/pipeline/commands/multi-agent/language/SKILL.md +2 -0
  45. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +2 -0
  46. package/pipeline/commands/multi-agent/purge/SKILL.md +2 -0
  47. package/pipeline/commands/multi-agent/resume/SKILL.md +177 -48
  48. package/pipeline/commands/multi-agent/save/SKILL.md +2 -0
  49. package/pipeline/commands/multi-agent/setup/SKILL.md +4 -4
  50. package/pipeline/commands/multi-agent/stack/SKILL.md +2 -0
  51. package/pipeline/commands/multi-agent/sync/SKILL.md +6 -7
  52. package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +2 -0
  53. package/pipeline/commands/multi-agent/uninstall/SKILL.md +2 -0
  54. package/pipeline/commands/sim-test.md +4 -4
  55. package/pipeline/lib/repo-hygiene.sh +1 -1
  56. package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
  57. package/pipeline/multi-agent-refs/analysis/render.md +1 -1
  58. package/pipeline/multi-agent-refs/analysis/resolve.md +1 -1
  59. package/pipeline/multi-agent-refs/analysis/synthesis.md +1 -1
  60. package/pipeline/multi-agent-refs/analysis-template.md +1 -1
  61. package/pipeline/multi-agent-refs/channels/jira.md +8 -8
  62. package/pipeline/multi-agent-refs/component-dispatch.md +0 -8
  63. package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -11
  64. package/pipeline/multi-agent-refs/features/base-branch-evidence.md +2 -2
  65. package/pipeline/multi-agent-refs/features/external-context-injection.md +2 -0
  66. package/pipeline/multi-agent-refs/features/review-delta.md +1 -1
  67. package/pipeline/multi-agent-refs/features/review-multi-repo.md +3 -3
  68. package/pipeline/multi-agent-refs/features/scope-check.md +1 -1
  69. package/pipeline/multi-agent-refs/features/skill-conformance.md +1 -1
  70. package/pipeline/multi-agent-refs/features/stack-skill-routing.md +1 -1
  71. package/pipeline/multi-agent-refs/features/visual-evidence.md +2 -1
  72. package/pipeline/multi-agent-refs/features/worktree-finalize.md +1 -1
  73. package/pipeline/multi-agent-refs/generate-issue.md +2 -0
  74. package/pipeline/multi-agent-refs/issue-jira-triad.md +2 -0
  75. package/pipeline/multi-agent-refs/keychain.md +2 -0
  76. package/pipeline/multi-agent-refs/knowledge.md +0 -7
  77. package/pipeline/multi-agent-refs/outside-the-pipeline.md +1 -1
  78. package/pipeline/multi-agent-refs/payload-contracts.md +1 -1
  79. package/pipeline/multi-agent-refs/phases/modes.md +32 -108
  80. package/pipeline/multi-agent-refs/phases/operations.md +3 -1
  81. package/pipeline/multi-agent-refs/phases/phase-0-init.md +23 -42
  82. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +10 -21
  83. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +13 -44
  84. package/pipeline/multi-agent-refs/phases/phase-3-review.md +19 -22
  85. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +6 -6
  86. package/pipeline/multi-agent-refs/phases/phase-5-report.md +2 -2
  87. package/pipeline/multi-agent-refs/phases.md +9 -11
  88. package/pipeline/multi-agent-refs/progress-contract.md +1 -1
  89. package/pipeline/multi-agent-refs/readiness-review.md +2 -0
  90. package/pipeline/multi-agent-refs/rules.md +2 -2
  91. package/pipeline/multi-agent-refs/tracker-contract.md +9 -40
  92. package/pipeline/multi-agent-refs/wiki-capture.md +3 -2
  93. package/pipeline/preferences-template.json +2 -2
  94. package/pipeline/rules/figma-pipeline.md +1 -1
  95. package/pipeline/schemas/agent-state.schema.json +5 -10
  96. package/pipeline/schemas/migrations/prefs-2.7.0-to-2.8.0.mjs +33 -0
  97. package/pipeline/schemas/phases.json +3 -24
  98. package/pipeline/schemas/prefs.schema.json +5 -5
  99. package/pipeline/scripts/autopilot-runner.mjs +6 -7
  100. package/pipeline/scripts/build-references.mjs +3 -3
  101. package/pipeline/scripts/build-stack-plugins.mjs +1 -1
  102. package/pipeline/scripts/bulk-read.sh +6 -4
  103. package/pipeline/scripts/cost-table.json +1 -1
  104. package/pipeline/scripts/doctor.mjs +4 -4
  105. package/pipeline/scripts/gc-refs.sh +1 -1
  106. package/pipeline/scripts/gen-mode-dispatch.mjs +11 -41
  107. package/pipeline/scripts/learnings-ledger.mjs +1 -1
  108. package/pipeline/scripts/match-skills.mjs +4 -4
  109. package/pipeline/scripts/memory-load.sh +3 -3
  110. package/pipeline/scripts/migrate-prefs.mjs +18 -17
  111. package/pipeline/scripts/phase-tracker.sh +2 -2
  112. package/pipeline/scripts/phase0-exit-gate.mjs +1 -1
  113. package/pipeline/scripts/plan-coverage-gate.mjs +6 -6
  114. package/pipeline/scripts/run-aggregator.mjs +3 -3
  115. package/pipeline/scripts/runs-index.mjs +7 -7
  116. package/pipeline/scripts/scope-check-gate.mjs +1 -1
  117. package/pipeline/scripts/smoke-schema-validation.sh +9 -12
  118. package/pipeline/scripts/usage-report.mjs +5 -7
  119. package/pipeline/scripts/validate-analysis-doc.mjs +3 -3
  120. package/pipeline/scripts/worktree-finalize.sh +2 -2
  121. package/pipeline/scripts/write-state.mjs +22 -11
  122. package/pipeline/skills/.skill-manifest.json +9 -21
  123. package/pipeline/skills/.skills-index.json +6 -39
  124. package/pipeline/skills/shared/README.md +5 -8
  125. package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -13
  126. package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +1 -1
  127. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +4 -5
  128. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +13 -16
  129. package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -3
  130. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +51 -15
  131. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +6 -6
  132. package/pipeline/skills/skills-index.md +3 -6
  133. package/pipeline/commands/multi-agent/local/SKILL.md +0 -132
  134. package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +0 -142
  135. package/pipeline/commands/multi-agent/resume-local/SKILL.md +0 -114
  136. package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +0 -41
  137. package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +0 -55
  138. 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. It used to be grepped as a
30
- # `TARGET_VERSION = "x.y.z"` literal out of the migrator, and when that literal
31
- # was replaced by the schema read - precisely because a literal had drifted a
32
- # minor behind - the grep started matching nothing and both checks that depend
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
- # This block used to say `if [ "$LVER" = "2.1.0" ]; then pass "already v2.1.0"`
217
- # with everything else falling through to `fail "unknown schemaVersion"`. The
218
- # migration target had since moved to 2.4.0, which inverted the gate: a prefs
219
- # file left behind at 2.1.0 reported PASS as "already current", while a file
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 can never disagree with it again.
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))` reported success for
616
- // every failure, so a telemetry path that had been broken for weeks looked
617
- // exactly like one that worked - there was no surface on which anyone could
618
- // notice. One line on stderr costs nothing and is the difference between a
619
- // degraded feature and an invisible one.
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, which was ungated until v19.0.0.
938
+ // 4b. Locked 2's numbering half.
939
939
  //
940
- // It is NOT "numbering re-flows 1..N". That is what the rule used to say and
941
- // it could not hold: Locked 30 threads ids across the document by section
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
- # `--local` mode has no worktree: worktreePath equals the project root. Removing
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 (--local mode) - nothing to remove"
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
- // It used to be created with openSync(wx) and filled on the next line, so
113
- // between those two calls it existed and was empty. A writer arriving in
114
- // that window read an unparseable PID, concluded the lock was stale, and
115
- // deleted a live one - after which two writers held it and one write was
116
- // lost. Under CPU load that reproduced 3 times in 15 runs.
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 once caused, at a different point in the loop; it survived because
145
- // it only reproduces under load, where the gap is wide enough to lose.
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. Age used to be checked first and returned
180
- * "stale" on its own, so a holder that was demonstrably ALIVE lost its lock the
181
- * moment the file passed 30 seconds - and the next writer then deleted a live
182
- * lock and overwrote the update behind it. Liveness is direct evidence;
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-21T06:17:16Z",
4
- "skillCount": 216,
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": "065958fb3ff608d7d0ea36b3eef4614da442742dc69b00799cf1658848cee786"
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": "414eead38b461c8aa95f6af3175366be905338233e6872313f5d4f59a02351af"
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": "6ebe7d4de1a1ff815f572abb5d5db5d5af9ea507b3047ec60597a54455176da5"
88
+ "sha256": "4d6181bd8d612f758db5b60df1b18668cf39a5fa3b5174c19b063491d240c054"
89
89
  },
90
90
  {
91
91
  "path": "shared/core/multi-agent-ios-coding-standard/SKILL.md",
92
- "sha256": "15a8d583cb7c772d5223c66c158062f25fdff4c41c6d353b7b70590a441dea38"
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": "6701424edde0a19b55a7de62bb5ba5f9dbaef7d9fb9ea2bce632374863145774"
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": "3d3331d34f9610ea02b96ee27c8029734f3a3447d2857fc0dca92d5b43d0f8e2"
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": "9ab7af2ffb01f8eb0fae624ae40ea9ff2f6d69ad61544bd266b1b97f60eb4a0f"
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": 216,
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 4 Security Auditor (catalog cross-ref on Info.plist ",
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 4 Security Auditor (catalog cross-ref on AndroidManifest / bu",
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 or :local. Use for a standards pass on a module, or when a review needs rule IDs rather than opinions.",
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 5 standalone (the UI Bug Hunter lives at multi-agent-test). Use when a finished change needs trying by hand on a device or simulator.",
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": "Resume a stopped or failed task from the phase where it left off. Use when a task stopped or failed and should carry on from where it left off.",
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:** 216 skills (63 core + 153 external). Auto-generated by `scripts/gen-skills-index.mjs` - do not edit by hand.
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/`** - 63 `multi-agent*` orchestration skills that are pipeline-critical. Edits here are core-code changes.
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) - 63
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 5 standalone (the UI Bug Hunter lives at multi-agent-te |
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` | Resume a stopped or failed task from the phase where it left off. Use when a task stopped or failed and should carry on from where it left o |
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 → 6 → 7
315
- - `multi-agent-local`, `multi-agent-autopilot`, `multi-agent-local-autopilot`: 0 → 1 → 2 → 3 → 4 → 5 (the interactive Phase 5 gate needs a worktree checkout and an attended run)
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
- Depth decides WHICH of the command's set is registered. The tracker boots at Step -1, long before the depth question can be asked, so it registers Phase 0 alone and the remaining tiles are created at Step 7.5 once the answer is known - a Short run never draws an Analysis or Planning tile.
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** plus the
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. A run once took a Jira ID and implemented straight onto the
331
- > local checkout with neither the project nor the branch picker ever shown, and nothing
332
- > failed, so nothing caught it. The walkthrough below covers input parsing and worktree
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** (Full + interactive only - a Short run has no plan, autopilot may not ask). Full flow in `refs/phases/phase-1-plan.md` Step 5:
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. It used to be duplicated here in English
712
- only, on a path this skill takes for exactly one input.
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, whether it is running Full or Short, the phase as a fraction, the
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:*` used to be this
156
- template. They are gone deliberately: that shape put a hash-table mutation
157
- walk in front of a tester, and `{{file → func}}` is exactly where a Swift
158
- selector like `hash(into:)` ends up - whose trailing `:)` Jira renders as a
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-local, multi-agent-channels, etc.
42
- Claude Code uses colon form: /multi-agent:local, /multi-agent:channels, etc.)
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 Create worktree (default) or local branch (--local)
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
- Depth is asked at Phase 0 Step 7.5, not passed as a flag:
80
- Full Plan -> Dev(Sonnet) -> Review -> Commit -> Report
81
- Short Dev(Opus, self-contained) -> Review -> Commit -> Report
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
- --local No worktree - works directly on local branch
85
- autopilot Skip all confirmations, including the depth question, so
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-local, multi-agent-autopilot, multi-agent-local-autopilot
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-local, multi-agent-channels vb.
216
- Claude Code colon form kullanır: /multi-agent:local, /multi-agent:channels vb.)
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 Worktree yarat (default) ya da local branch (--local)
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-local, multi-agent-autopilot, multi-agent-local-autopilot
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 or :local. Use for a standards pass on a module, or when a review needs rule IDs rather than opinions."
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 ask Full or Short at Phase 0 Step 7.5; a standards sweep is usually already scoped, so Short is the common answer.
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,