@mmerterden/multi-agent-pipeline 19.1.4 → 20.1.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 (137) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/README.md +19 -36
  3. package/README.tr.md +18 -35
  4. package/SECURITY.md +3 -3
  5. package/docs/adr/0002-instruction-driven-flag.md +6 -5
  6. package/docs/adr/0005-lazy-phase-docs.md +2 -2
  7. package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +1 -0
  8. package/docs/adr/0009-claude-stack-skills-plugin-only.md +1 -1
  9. package/docs/adr/0010-own-code-graph.md +5 -4
  10. package/docs/adr/0011-dormant-ci.md +10 -1
  11. package/docs/adr/0012-macos-only.md +2 -2
  12. package/docs/adr/0013-lsp-code-intelligence.md +2 -2
  13. package/docs/adr/0014-six-phase-consolidation.md +9 -9
  14. package/docs/adr/0015-one-pipeline-no-depth-answer.md +83 -0
  15. package/docs/adr/0016-the-run-shape-is-asked-not-typed.md +69 -0
  16. package/docs/adr/README.md +18 -16
  17. package/docs/architecture.md +2 -2
  18. package/docs/ecosystem.md +5 -5
  19. package/docs/facts.json +7 -9
  20. package/docs/features.md +4 -5
  21. package/docs/token-budget-history.md +1 -1
  22. package/install/_codex-agents.mjs +1 -1
  23. package/install/_common.mjs +9 -1
  24. package/install/templates/copilot-instructions.md +7 -16
  25. package/manifest.json +133 -129
  26. package/package.json +1 -1
  27. package/pipeline/agents/code-reviewer.md +2 -2
  28. package/pipeline/agents/dev-critic.md +5 -5
  29. package/pipeline/agents/security-auditor.md +80 -72
  30. package/pipeline/commands/figma-to-swiftui.md +1 -1
  31. package/pipeline/commands/multi-agent/SKILL.md +7 -9
  32. package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -0
  33. package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +2 -0
  34. package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +2 -0
  35. package/pipeline/commands/multi-agent/autopilot/SKILL.md +2 -0
  36. package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +2 -0
  37. package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +1 -1
  38. package/pipeline/commands/multi-agent/build-optimize/SKILL.md +2 -0
  39. package/pipeline/commands/multi-agent/channels/SKILL.md +2 -2
  40. package/pipeline/commands/multi-agent/create-jira/SKILL.md +2 -0
  41. package/pipeline/commands/multi-agent/design-check/SKILL.md +1 -1
  42. package/pipeline/commands/multi-agent/diff-explain/SKILL.md +1 -1
  43. package/pipeline/commands/multi-agent/forget/SKILL.md +2 -0
  44. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -2
  45. package/pipeline/commands/multi-agent/help/SKILL.md +23 -27
  46. package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +5 -4
  47. package/pipeline/commands/multi-agent/issue/SKILL.md +2 -0
  48. package/pipeline/commands/multi-agent/jira/SKILL.md +2 -0
  49. package/pipeline/commands/multi-agent/language/SKILL.md +2 -0
  50. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +2 -0
  51. package/pipeline/commands/multi-agent/purge/SKILL.md +2 -0
  52. package/pipeline/commands/multi-agent/resume/SKILL.md +177 -48
  53. package/pipeline/commands/multi-agent/save/SKILL.md +2 -0
  54. package/pipeline/commands/multi-agent/scan/SKILL.md +2 -2
  55. package/pipeline/commands/multi-agent/security-review/SKILL.md +52 -0
  56. package/pipeline/commands/multi-agent/stack/SKILL.md +2 -0
  57. package/pipeline/commands/multi-agent/sync/SKILL.md +7 -8
  58. package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +2 -0
  59. package/pipeline/commands/multi-agent/uninstall/SKILL.md +2 -0
  60. package/pipeline/lib/repo-hygiene.sh +1 -1
  61. package/pipeline/multi-agent-refs/analysis/render.md +1 -1
  62. package/pipeline/multi-agent-refs/analysis/resolve.md +1 -1
  63. package/pipeline/multi-agent-refs/analysis/synthesis.md +1 -1
  64. package/pipeline/multi-agent-refs/analysis-template.md +1 -1
  65. package/pipeline/multi-agent-refs/component-dispatch.md +5 -13
  66. package/pipeline/multi-agent-refs/cross-cli-contract.md +14 -15
  67. package/pipeline/multi-agent-refs/features/external-context-injection.md +2 -0
  68. package/pipeline/multi-agent-refs/features/review-delta.md +1 -1
  69. package/pipeline/multi-agent-refs/features/review-multi-repo.md +3 -3
  70. package/pipeline/multi-agent-refs/features/security-audit.md +55 -0
  71. package/pipeline/multi-agent-refs/features/skill-conformance.md +1 -1
  72. package/pipeline/multi-agent-refs/features/visual-evidence.md +2 -1
  73. package/pipeline/multi-agent-refs/features/worktree-finalize.md +1 -1
  74. package/pipeline/multi-agent-refs/generate-issue.md +2 -0
  75. package/pipeline/multi-agent-refs/issue-jira-triad.md +2 -0
  76. package/pipeline/multi-agent-refs/keychain.md +2 -0
  77. package/pipeline/multi-agent-refs/knowledge.md +0 -7
  78. package/pipeline/multi-agent-refs/outside-the-pipeline.md +1 -1
  79. package/pipeline/multi-agent-refs/payload-contracts.md +1 -1
  80. package/pipeline/multi-agent-refs/phases/modes.md +33 -109
  81. package/pipeline/multi-agent-refs/phases/operations.md +2 -0
  82. package/pipeline/multi-agent-refs/phases/phase-0-init.md +23 -42
  83. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +7 -18
  84. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +13 -44
  85. package/pipeline/multi-agent-refs/phases/phase-3-review.md +28 -37
  86. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +6 -6
  87. package/pipeline/multi-agent-refs/phases/phase-5-report.md +3 -3
  88. package/pipeline/multi-agent-refs/phases.md +9 -11
  89. package/pipeline/multi-agent-refs/progress-contract.md +1 -1
  90. package/pipeline/multi-agent-refs/readiness-review.md +2 -0
  91. package/pipeline/multi-agent-refs/rules.md +1 -1
  92. package/pipeline/multi-agent-refs/threat-model.md +39 -0
  93. package/pipeline/multi-agent-refs/tracker-contract.md +9 -40
  94. package/pipeline/multi-agent-refs/wiki-capture.md +3 -2
  95. package/pipeline/preferences-template.json +2 -2
  96. package/pipeline/rules/figma-pipeline.md +1 -1
  97. package/pipeline/schemas/agent-state.schema.json +28 -10
  98. package/pipeline/schemas/migrations/prefs-2.7.0-to-2.8.0.mjs +33 -0
  99. package/pipeline/schemas/phases.json +4 -26
  100. package/pipeline/schemas/prefs.schema.json +5 -9
  101. package/pipeline/schemas/reviewer-output.schema.json +99 -2
  102. package/pipeline/schemas/security-finding.schema.json +144 -0
  103. package/pipeline/scripts/_stack-routing.mjs +1 -0
  104. package/pipeline/scripts/cost-table.json +1 -1
  105. package/pipeline/scripts/gc-abandoned.sh +16 -9
  106. package/pipeline/scripts/gc-refs.sh +1 -1
  107. package/pipeline/scripts/gen-mode-dispatch.mjs +11 -41
  108. package/pipeline/scripts/migrate-prefs.mjs +18 -17
  109. package/pipeline/scripts/phase-tracker.sh +2 -2
  110. package/pipeline/scripts/phase0-exit-gate.mjs +1 -1
  111. package/pipeline/scripts/plan-coverage-gate.mjs +3 -3
  112. package/pipeline/scripts/render-work-summary.sh +7 -4
  113. package/pipeline/scripts/run-aggregator.mjs +1 -1
  114. package/pipeline/scripts/usage-report.mjs +0 -2
  115. package/pipeline/scripts/worktree-finalize.sh +2 -2
  116. package/pipeline/skills/.skill-manifest.json +17 -21
  117. package/pipeline/skills/.skills-index.json +6 -39
  118. package/pipeline/skills/shared/README.md +5 -8
  119. package/pipeline/skills/shared/core/multi-agent/SKILL.md +11 -15
  120. package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +1 -1
  121. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +13 -16
  122. package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -3
  123. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +51 -15
  124. package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +2 -2
  125. package/pipeline/skills/shared/core/multi-agent-security-review/SKILL.md +29 -0
  126. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +7 -7
  127. package/pipeline/skills/shared/external/security-review/SKILL.md +64 -0
  128. package/pipeline/skills/shared/external/security-review/references/owasp-mobile-top10-2024.md +53 -0
  129. package/pipeline/skills/shared/external/security-review/references/owasp-web-api-top10-2021.md +56 -0
  130. package/pipeline/skills/skills-index.md +3 -6
  131. package/pipeline/commands/multi-agent/local/SKILL.md +0 -132
  132. package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +0 -142
  133. package/pipeline/commands/multi-agent/resume-local/SKILL.md +0 -114
  134. package/pipeline/commands/security-review.md +0 -6
  135. package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +0 -41
  136. package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +0 -55
  137. package/pipeline/skills/shared/core/multi-agent-resume-local/SKILL.md +0 -51
@@ -357,31 +357,32 @@ function migrate(prefs) {
357
357
  out.global.skillConformance.blockOnCoverageGap = false;
358
358
  changes.push("added skillConformance.blockOnCoverageGap=false (report, do not halt)");
359
359
  }
360
- // Rename chain for the pipeline-tail command: /multi-agent:finish (pre-v2.5.0)
361
- // -> :ship (v2.5.0) -> :resume-local (current). The autoFix value survives every
362
- // hop - carry whichever legacy block still holds one rather than reset it.
363
- if (!out.global.resumeLocal || typeof out.global.resumeLocal !== "object") {
364
- out.global.resumeLocal = {};
365
- changes.push("added resumeLocal (/multi-agent:ship renamed to :resume-local)");
366
- }
367
- if (typeof out.global.resumeLocal.autoFix !== "boolean") {
368
- const legacyAutoFix =
369
- typeof out.global.ship?.autoFix === "boolean"
370
- ? out.global.ship.autoFix
371
- : out.global.finish?.autoFix;
372
- out.global.resumeLocal.autoFix = typeof legacyAutoFix === "boolean" ? legacyAutoFix : false;
360
+ // Rename chain for the tail that runs over work already on the branch:
361
+ // global.finish -> global.ship -> global.resumeLocal -> global.resume, the
362
+ // last hop following the command itself into /multi-agent:resume. The
363
+ // autoFix value survives every hop - carry whichever legacy block still
364
+ // holds one rather than reset it.
365
+ if (!out.global.resume || typeof out.global.resume !== "object") {
366
+ out.global.resume = {};
367
+ changes.push("added resume (:resume-local folded into :resume)");
368
+ }
369
+ if (typeof out.global.resume.autoFix !== "boolean") {
370
+ const legacyAutoFix = ["resumeLocal", "ship", "finish"]
371
+ .map((k) => out.global[k]?.autoFix)
372
+ .find((v) => typeof v === "boolean");
373
+ out.global.resume.autoFix = typeof legacyAutoFix === "boolean" ? legacyAutoFix : false;
373
374
  changes.push(
374
375
  typeof legacyAutoFix === "boolean"
375
- ? "moved ship/finish autoFix -> resumeLocal.autoFix (value preserved)"
376
- : "added resumeLocal.autoFix=false",
376
+ ? "moved tail autoFix -> resume.autoFix (value preserved)"
377
+ : "added resume.autoFix=false",
377
378
  );
378
379
  }
379
- for (const legacy of ["ship", "finish"]) {
380
+ for (const legacy of ["resumeLocal", "ship", "finish"]) {
380
381
  if (out.global[legacy] && typeof out.global[legacy] === "object") {
381
382
  delete out.global[legacy].autoFix;
382
383
  if (Object.keys(out.global[legacy]).length === 0) {
383
384
  delete out.global[legacy];
384
- changes.push(`removed obsolete ${legacy} block (renamed to resumeLocal)`);
385
+ changes.push(`removed obsolete ${legacy} block (renamed to resume)`);
385
386
  }
386
387
  }
387
388
  }
@@ -1132,7 +1132,7 @@ case "$ACTION" in
1132
1132
  state=$(load_state)
1133
1133
  # Idempotent: a phase id that already exists is a no-op (name, status, and
1134
1134
  # token history are preserved). This is what lets continuation commands
1135
- # (/multi-agent:resume-local, resume) re-declare their phase set against a
1135
+ # (/multi-agent:resume, /multi-agent:manual-test) re-declare their phase set against a
1136
1136
  # pre-existing tracker without duplicating or resetting tiles.
1137
1137
  new=$(echo "$state" | jq --arg id "$PID" --arg name "$PNAME" '
1138
1138
  if any(.phases[]?; .id == $id) then .
@@ -1167,7 +1167,7 @@ case "$ACTION" in
1167
1167
  # completion is recoverable (record, then re-run) and loses no work; a
1168
1168
  # phase that genuinely made no LLM call says so with --no-llm.
1169
1169
  if [ "$STATUS" = "completed" ] && [ "$NO_LLM" -eq 0 ]; then
1170
- case " ${TRACKER_LLM_PHASES:-1 2 3 4} " in
1170
+ case " ${TRACKER_LLM_PHASES:-1 2 3 4 5} " in
1171
1171
  *" $PID "*)
1172
1172
  RECORDED=$(load_state | jq -r --arg id "$PID" \
1173
1173
  '(.phases[] | select(.id == $id) | (.tokens_in // 0) + (.tokens_out // 0)) // 0')
@@ -270,7 +270,7 @@ export function evaluate(state, extraInput = "") {
270
270
  failures.push(
271
271
  `workspaceSource="autopilot" on an interactive run. Autopilot resolves the workspace ` +
272
272
  `to a worktree because an unattended commit in the user's own checkout is what ` +
273
- `worktrees prevent; an interactive run asks (Step 5b) or is told by :local / --local.`,
273
+ `worktrees prevent; an interactive run asks at Step 5b, and the multi-repo bridge records "command".`,
274
274
  );
275
275
  }
276
276
 
@@ -150,9 +150,9 @@ if (isMain) {
150
150
 
151
151
  // No plan at all is not a pass, and neither is an empty one: a Phase 2 that
152
152
  // produced no steps, or a state whose todos got cleared, would otherwise read
153
- // as "0/0 accounted for" and let the commit through. A Short run has no Phase
154
- // 2, and the caller is expected to skip this gate for those modes rather than
155
- // let it report clean.
153
+ // as "0/0 accounted for" and let the commit through. A mode with no Phase 2
154
+ // (analysis) is expected to skip this gate explicitly rather than let it
155
+ // report clean.
156
156
  if (!Array.isArray(todos) || todos.length === 0) {
157
157
  const msg = Array.isArray(todos)
158
158
  ? "the plan has zero steps - that is an unusable plan, not a clean one; skip this gate explicitly for modes with no Phase 2"
@@ -34,7 +34,7 @@
34
34
  # - <A> accepted · <D> deferred · <R> rejected · approved=<bool>
35
35
  #
36
36
  # #### Phases
37
- # - 0 Init done · 1 Analysis done · 2 Planning done · 3 Dev done · 4 Review done · 5 Test done · 6 Commit done · 7 Report active
37
+ # - 0 Init done · 1 Plan done · 2 Dev done · 3 Review done · 4 Commit done · 5 Report active
38
38
  #
39
39
  # Exit codes: 0 = rendered, 2 = missing state (caller should skip section).
40
40
 
@@ -171,7 +171,11 @@ fi
171
171
  # Phase tick marks
172
172
  phase_ticks=""
173
173
  if [ -n "$TRACKER_FILE" ]; then
174
- phase_ticks=$(jq -r '
174
+ # The phase vocabulary is the contract's, not a literal pinned to one
175
+ # numbering: "<id> <name>" per phase, in id order, straight from phases.json.
176
+ PHASES_JSON="$_MA_RP_HERE/../schemas/phases.json"
177
+ LABELS=$(jq -c '[.phases | sort_by(.id) | .[] | "\(.id) \(.name)"]' "$PHASES_JSON" 2>/dev/null || echo '[]')
178
+ phase_ticks=$(jq -r --argjson labels "$LABELS" '
175
179
  # Normalize both tracker shapes: phase-tracker.sh writes phases as an
176
180
  # array of {id,...}; older fixtures keyed an object by phase id. The
177
181
  # string-index below errors on an array and 2>/dev/null would swallow
@@ -179,8 +183,7 @@ if [ -n "$TRACKER_FILE" ]; then
179
183
  (if (.phases | type) == "array"
180
184
  then (.phases | map({key: (.id | tostring), value: .}) | from_entries)
181
185
  else (.phases // {}) end) as $ph |
182
- ["0 Init","1 Analysis","2 Planning","3 Dev","4 Review","5 Test","6 Commit","7 Report"] as $labels |
183
- [range(0;8) | tostring] as $ids |
186
+ [range(0; ($labels | length)) | tostring] as $ids |
184
187
  $ids
185
188
  | map(. as $i |
186
189
  ($labels[$i | tonumber]) as $label |
@@ -159,7 +159,7 @@ function computeCost(modelKey, tokensIn, tokensOut, costTable) {
159
159
 
160
160
  /**
161
161
  * Heuristic: Plan (1) uses Opus per personas + dev-mode docs; Dev (2) uses
162
- * Sonnet by default unless the run is a Short pipeline (Opus); Review (3)
162
+ * Sonnet by default unless routing names another rung; Review (3)
163
163
  * triage is Opus and the reviewer breakdown comes from spans.
164
164
  *
165
165
  * This is a fallback when phase-tracker doesn't record the model used. Live
@@ -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,
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-09-21T08:28:08Z",
4
- "skillCount": 216,
3
+ "generatedAt": "2026-09-21T16:14:01Z",
4
+ "skillCount": 215,
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",
@@ -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",
@@ -189,12 +177,16 @@
189
177
  },
190
178
  {
191
179
  "path": "shared/core/multi-agent-scan/SKILL.md",
192
- "sha256": "544b29d001e677c579c89705c81c8bc7fb9e8037297e512a2bfad379bd07ee55"
180
+ "sha256": "71cdbf40a40edf80b61985ea4cd6b7d43511e91ad3d7c4121512134a9e94f2a8"
193
181
  },
194
182
  {
195
183
  "path": "shared/core/multi-agent-search/SKILL.md",
196
184
  "sha256": "32541ceca20c489814f9d948763d5237d4a71473a05683d9da262b8f6dea815b"
197
185
  },
186
+ {
187
+ "path": "shared/core/multi-agent-security-review/SKILL.md",
188
+ "sha256": "a3d4d1e99a8be67f179b08d79ee421108f3e62c8d4190cf4e9af7dd4391a8c11"
189
+ },
198
190
  {
199
191
  "path": "shared/core/multi-agent-setup/SKILL.md",
200
192
  "sha256": "d2c167082f40af3c2a7cbb0be55a8cdf8076a4f06a3df54c89b1318759421a29"
@@ -217,7 +209,7 @@
217
209
  },
218
210
  {
219
211
  "path": "shared/core/multi-agent-sync/SKILL.md",
220
- "sha256": "3d3331d34f9610ea02b96ee27c8029734f3a3447d2857fc0dca92d5b43d0f8e2"
212
+ "sha256": "70b81f275fa430eb7382d0fa16f0a07ec29d92d9476655c496ce38565833fa13"
221
213
  },
222
214
  {
223
215
  "path": "shared/core/multi-agent-test-accessibility/SKILL.md",
@@ -253,7 +245,7 @@
253
245
  },
254
246
  {
255
247
  "path": "shared/core/multi-agent/SKILL.md",
256
- "sha256": "7ea676d07cd0104cc929b825463c521aff66047c6dcdfc28e9e37ca3752107da"
248
+ "sha256": "7a8a1e51d7e1f9e6cf00e09a5b1d680db4609d79cb629ab4b80e7a27bee5ef5e"
257
249
  },
258
250
  {
259
251
  "path": "shared/external/accessibility-compliance-accessibility-audit/SKILL.md",
@@ -663,6 +655,10 @@
663
655
  "path": "shared/external/search-first/SKILL.md",
664
656
  "sha256": "4730d95babebecb3070a23e09cfce57f687467e0d45bbc332ae612cf01066e10"
665
657
  },
658
+ {
659
+ "path": "shared/external/security-review/SKILL.md",
660
+ "sha256": "6bf82c336b7067d3e8a874e09916fcdbad4867634881f0a58d721b78fc9e83b2"
661
+ },
666
662
  {
667
663
  "path": "shared/external/shareplay-activities/SKILL.md",
668
664
  "sha256": "508e3123039bc114e4239e66d86f8d550fe94fc259d827e4985e0aed3ff54090"
@@ -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
@@ -425,16 +422,15 @@ Two halves, one phase, one approval gate (Phases 1 and 2 until 19.0.0).
425
422
 
426
423
  **1a - Analysis** (claude-sonnet-5, `explorer` persona)
427
424
  1. Launch **explore agents** (parallel) to scan the codebase: related files, existing patterns and conventions, potential impact areas
428
- 2. Optionally launch **security-auditor** agent for pre-check
429
- 3. Summarize findings
430
- 4. Log: `📊 Phase 1: Plan (analysis) - {N} files identified, {summary}`
425
+ 2. Summarize findings
426
+ 3. Log: `📊 Phase 1: Plan (analysis) - {N} files identified, {summary}`
431
427
 
432
428
  **1b - Planning** (claude-fable-5)
433
429
  1. Create task breakdown → todos with dependencies
434
430
  2. Launch **ios-architect** agent for architecture review (if structural changes)
435
431
  3. Determine development approach per todo (new file, modify, refactor)
436
432
  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:
433
+ 5. **Plan Approval Gate** (interactive only - autopilot may not ask). Full flow in `refs/phases/phase-1-plan.md` Step 5:
438
434
  - **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
435
  - **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
436
  - Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["1"]`.
@@ -636,7 +632,7 @@ Sub-agents have embedded skills in their `.agent.md` files. Each agent is pre-lo
636
632
  |-------|----------------|----------------|
637
633
  | **code-reviewer** | Code Review Excellence, Security Audit, Performance Review, TDD Verification, Error Detective | Phase 3: Review |
638
634
  | **ios-architect** | Spec-Driven Architecture, Context Management, Multi-Agent Coordination, API Design, Performance Architecture, Design System Governance | Phase 1: Plan |
639
- | **security-auditor** | iOS Security Deep Dive, App Store Review Gates, Third-Party SDK Risk, Error Detective (Security) | Phase 1: Plan (analysis half, pre-check) + Phase 3: Review |
635
+ | **security-auditor** | iOS Security Deep Dive, App Store Review Gates, Third-Party SDK Risk, Error Detective (Security) | Phase 3: Review |
640
636
 
641
637
  ### Phase → Agent → Skills Flow
642
638
 
@@ -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
 
@@ -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,