@mmerterden/multi-agent-pipeline 11.1.0 → 11.3.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 (342) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +2 -2
  3. package/docs/FIGMA_PIPELINE.md +12 -25
  4. package/docs/architecture.md +3 -5
  5. package/docs/features.md +8 -8
  6. package/install/_common.mjs +9 -1
  7. package/install/_dev-only-files.mjs +0 -6
  8. package/install/claude.mjs +45 -18
  9. package/install/copilot.mjs +16 -14
  10. package/install/templates/copilot-instructions.md +3 -3
  11. package/package.json +1 -1
  12. package/pipeline/commands/{multi-agent.md → multi-agent/SKILL.md} +39 -39
  13. package/pipeline/commands/multi-agent/{analysis.md → analysis/SKILL.md} +18 -18
  14. package/pipeline/commands/multi-agent/{analysis-resolve.md → analysis-resolve/SKILL.md} +4 -4
  15. package/pipeline/commands/multi-agent/{autopilot.md → autopilot/SKILL.md} +4 -4
  16. package/pipeline/commands/multi-agent/{build-optimize.md → build-optimize/SKILL.md} +1 -1
  17. package/pipeline/commands/multi-agent/{channels.md → channels/SKILL.md} +12 -12
  18. package/pipeline/commands/multi-agent/{dev.md → dev/SKILL.md} +4 -4
  19. package/pipeline/commands/multi-agent/{dev-autopilot.md → dev-autopilot/SKILL.md} +4 -4
  20. package/pipeline/commands/multi-agent/{dev-local.md → dev-local/SKILL.md} +5 -5
  21. package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md} +4 -4
  22. package/pipeline/commands/multi-agent/{finish.md → finish/SKILL.md} +6 -6
  23. package/pipeline/commands/multi-agent/{generate.md → generate/SKILL.md} +3 -3
  24. package/pipeline/commands/multi-agent/{help.md → help/SKILL.md} +4 -4
  25. package/pipeline/commands/multi-agent/{local.md → local/SKILL.md} +5 -5
  26. package/pipeline/commands/multi-agent/{local-autopilot.md → local-autopilot/SKILL.md} +5 -5
  27. package/pipeline/commands/multi-agent/{manual-test.md → manual-test/SKILL.md} +1 -1
  28. package/pipeline/commands/multi-agent/refactor/SKILL.md +257 -0
  29. package/pipeline/commands/multi-agent/{resume.md → resume/SKILL.md} +1 -1
  30. package/pipeline/commands/multi-agent/{review.md → review/SKILL.md} +5 -5
  31. package/pipeline/commands/multi-agent/{setup.md → setup/SKILL.md} +1 -1
  32. package/pipeline/commands/multi-agent/{sync.md → sync/SKILL.md} +20 -58
  33. package/pipeline/{commands/multi-agent → multi-agent-refs}/_account-picker.md +2 -2
  34. package/pipeline/{commands/multi-agent → multi-agent-refs}/_dev-context.md +2 -2
  35. package/pipeline/{commands/multi-agent → multi-agent-refs}/_repo-picker.md +2 -2
  36. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/android-guide.md +1 -1
  37. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/jira.md +1 -1
  38. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/wiki.md +7 -7
  39. package/pipeline/multi-agent-refs/component-dispatch.md +92 -0
  40. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/cross-cli-contract.md +10 -77
  41. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/verify-by-test.md +1 -1
  42. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/generate-issue.md +2 -2
  43. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/issue-jira-triad.md +1 -1
  44. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/keychain.md +1 -1
  45. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/log-format.md +1 -1
  46. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/modes.md +2 -2
  47. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/operations.md +1 -1
  48. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-0-init.md +10 -10
  49. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-1-analysis.md +6 -6
  50. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-2-planning.md +3 -3
  51. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-3-dev.md +10 -10
  52. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-4-review.md +8 -8
  53. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-5-test.md +3 -3
  54. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-6-commit.md +4 -4
  55. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-7-report.md +6 -6
  56. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases.md +12 -12
  57. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/progress-contract.md +4 -4
  58. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/swiftui-guide.md +1 -1
  59. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/tracker-contract.md +3 -3
  60. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/wiki-capture.md +4 -4
  61. package/pipeline/preferences-template.json +17 -1
  62. package/pipeline/rules/figma-pipeline.md +2 -2
  63. package/pipeline/schemas/prefs.schema.json +0 -34
  64. package/pipeline/scripts/README.md +1 -3
  65. package/pipeline/scripts/build-stack-plugins.mjs +1 -1
  66. package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
  67. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  68. package/pipeline/scripts/phase-banner.sh +2 -2
  69. package/pipeline/scripts/review-scope.mjs +94 -0
  70. package/pipeline/scripts/scan-agent-config.sh +2 -2
  71. package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
  72. package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
  73. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
  74. package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
  75. package/pipeline/scripts/smoke-channels-flow.sh +5 -5
  76. package/pipeline/scripts/smoke-clarify.sh +1 -1
  77. package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
  78. package/pipeline/scripts/smoke-community-gates.sh +1 -1
  79. package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
  80. package/pipeline/scripts/smoke-cost-summary.sh +1 -1
  81. package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
  82. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
  83. package/pipeline/scripts/smoke-dev-critic.sh +1 -1
  84. package/pipeline/scripts/smoke-diff-explain.sh +1 -1
  85. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  86. package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
  87. package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
  88. package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
  89. package/pipeline/scripts/smoke-generate-issue.sh +8 -8
  90. package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
  91. package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
  92. package/pipeline/scripts/smoke-intent-guard.sh +1 -1
  93. package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
  94. package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
  95. package/pipeline/scripts/smoke-language-axis.sh +6 -6
  96. package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
  97. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
  98. package/pipeline/scripts/smoke-model-fallback.sh +3 -3
  99. package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
  100. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  101. package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
  102. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  103. package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
  104. package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
  105. package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
  106. package/pipeline/scripts/smoke-plan-todos.sh +3 -3
  107. package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
  108. package/pipeline/scripts/smoke-prefs-language.sh +1 -1
  109. package/pipeline/scripts/smoke-progress-contract.sh +2 -2
  110. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  111. package/pipeline/scripts/smoke-repo-map.sh +2 -2
  112. package/pipeline/scripts/smoke-shadow-git.sh +1 -1
  113. package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
  114. package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
  115. package/pipeline/scripts/smoke-test-gap.sh +1 -1
  116. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  117. package/pipeline/scripts/smoke-token-preflight.sh +2 -2
  118. package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
  119. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
  120. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  121. package/pipeline/scripts/smoke-update-check.sh +1 -1
  122. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  123. package/pipeline/scripts/smoke-validator-gates.sh +1 -1
  124. package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
  125. package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
  126. package/pipeline/scripts/smoke-work-summary.sh +1 -1
  127. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  128. package/pipeline/scripts/test-integrity-gate.mjs +83 -0
  129. package/pipeline/scripts/uninstall.mjs +2 -2
  130. package/pipeline/skills/.skill-manifest.json +40 -160
  131. package/pipeline/skills/.skills-index.json +21 -372
  132. package/pipeline/skills/shared/README.md +1 -1
  133. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
  134. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
  135. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
  136. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  137. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  138. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  139. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  140. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
  141. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
  142. package/pipeline/skills/shared/external/backlog/BACKLOG.md +32 -0
  143. package/pipeline/skills/shared/external/backlog/SKILL.md +49 -0
  144. package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
  145. package/pipeline/skills/shared/external/skill-creator/SKILL.md +48 -0
  146. package/pipeline/skills/shared/external/skill-creator/audit.md +59 -0
  147. package/pipeline/skills/shared/external/skill-creator/checklist.md +32 -0
  148. package/pipeline/skills/shared/external/skill-creator/examples.md +65 -0
  149. package/pipeline/skills/shared/external/skill-creator/label-check.md +43 -0
  150. package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +83 -0
  151. package/pipeline/skills/shared/external/skill-creator/template.md +67 -0
  152. package/pipeline/skills/skills-index.md +4 -43
  153. package/pipeline/commands/multi-agent/refactor.md +0 -188
  154. package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
  155. package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
  156. package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
  157. package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
  158. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
  159. package/pipeline/scripts/smoke-figma-sync.sh +0 -149
  160. package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
  161. package/pipeline/skills/figma-android/README.md +0 -38
  162. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
  163. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
  164. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
  165. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
  166. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
  167. package/pipeline/skills/figma-common/README.md +0 -64
  168. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
  169. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
  170. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
  171. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
  172. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
  173. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
  174. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
  175. package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
  176. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
  177. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
  178. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
  179. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
  180. package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
  181. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
  182. package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
  183. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
  184. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
  185. package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
  186. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
  187. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
  188. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
  189. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
  190. package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
  191. package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
  192. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
  193. package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
  194. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
  195. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
  196. package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
  197. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
  198. package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
  199. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
  200. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
  201. package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
  202. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
  203. package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
  204. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
  205. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
  206. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
  207. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
  208. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
  209. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
  210. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
  211. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
  212. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
  213. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
  214. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
  215. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
  216. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
  217. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
  218. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
  219. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
  220. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
  221. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
  222. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
  223. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
  224. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
  225. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
  226. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
  227. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
  228. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
  229. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
  230. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
  231. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
  232. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
  233. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
  234. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
  235. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
  236. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
  237. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
  238. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
  239. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
  240. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
  241. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
  242. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
  243. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
  244. package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
  245. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
  246. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
  247. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
  248. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
  249. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
  250. package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
  251. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
  252. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
  253. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
  254. package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
  255. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
  256. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
  257. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
  258. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
  259. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
  260. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
  261. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
  262. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
  263. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
  264. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
  265. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
  266. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
  267. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
  268. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
  269. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
  270. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
  271. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
  272. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
  273. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
  274. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
  275. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
  276. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
  277. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
  278. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
  279. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
  280. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
  281. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
  282. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
  283. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
  284. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
  285. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
  286. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
  287. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
  288. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
  289. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
  290. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
  291. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
  292. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
  293. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
  294. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
  295. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
  296. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
  297. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
  298. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
  299. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
  300. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
  301. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
  302. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
  303. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
  304. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
  305. /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
  306. /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
  307. /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
  308. /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
  309. /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
  310. /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
  311. /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
  312. /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
  313. /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
  314. /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
  315. /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
  316. /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
  317. /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
  318. /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
  319. /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
  320. /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
  321. /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
  322. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
  323. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
  324. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
  325. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
  326. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
  327. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
  328. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
  329. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
  330. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
  331. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
  332. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
  333. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
  334. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
  335. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
  336. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
  337. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
  338. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
  339. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
  340. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
  341. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
  342. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **TLDR** - Component tasks can auto-generate wiki docs + Figma screenshots. The Wiki adapter is invoked from `/multi-agent:channels` (Phase 7 delegates, or user invokes post-hoc). Four layouts supported (`submodule`, `in-repo`, `github-wiki`, `separate-repo`) - adapter picked from `figmaConfig.wiki.mode`. Non-blocking: failures log a warning and channels continues to other adapters. The Wiki adapter supports scope multi-select (Case A) and a precondition-failure menu (Case B) - see below.
4
4
 
5
- This doc is referenced from `commands/multi-agent/channels.md` (Wiki adapter) and indirectly from `refs/phases/phase-7-report.md` (which delegates all external delivery to channels). Keeping it separate keeps both files under their token budgets and gives the contract a stable location for Claude-side + Copilot-side implementations.
5
+ This doc is referenced from `commands/multi-agent/channels/SKILL.md` (Wiki adapter) and indirectly from `$HOME/.claude/multi-agent-refs/phases/phase-7-report.md` (which delegates all external delivery to channels). Keeping it separate keeps both files under their token budgets and gives the contract a stable location for Claude-side + Copilot-side implementations.
6
6
 
7
7
  ## Applicability
8
8
 
@@ -77,9 +77,9 @@ Save the answer to `prefs.global.wikiDefault` for next run. Migration script (`m
77
77
 
78
78
  ## Dispatch
79
79
 
80
- 1. Resolve wiki mode from `figmaConfig.wiki.mode` - one of `submodule`, `in-repo`, `github-wiki`, `separate-repo`. Each has a dedicated adapter inside the `figma-component-wiki` skill; see `pipeline/skills/figma-ios/figma-component-wiki/SKILL.md` for per-mode path layout and push semantics.
80
+ 1. Resolve wiki mode from `figmaConfig.wiki.mode` - one of `submodule`, `in-repo`, `github-wiki`, `separate-repo`. Each has a dedicated adapter inside the `figma-component-wiki` skill; see the `ai-ios-engineering-toolkit:figma-component-wiki` plugin skill for per-mode path layout and push semantics.
81
81
  2. Emit progress line: `→ writing wiki {componentName} (mode: {mode})`.
82
- 3. Dispatch to `pipeline/skills/figma-ios/figma-component-wiki` (iOS) or `pipeline/skills/figma-android/figma-component-wiki` (Android), passing `{componentName, componentPath, figmaConfig, agentState}`.
82
+ 3. Dispatch to the plugin skill `ai-ios-engineering-toolkit:figma-component-wiki` (iOS) or `ai-android-engineering-toolkit:figma-component-wiki` (Android), passing `{componentName, componentPath, figmaConfig}`.
83
83
  4. Skill returns `{ writtenPaths[], committedSha?, pushedRemote? }`. Write `writtenPaths` to Phase 7 summary's "Files written" section and push metadata (if any) to "External publishes".
84
84
  5. On adapter failure - log the adapter + mode + error, continue Phase 7. Wiki is a non-blocking augmentation; the Jira comment in Step 3 already carries the component summary, so the developer is never left in the dark if wiki misfires.
85
85
 
@@ -107,6 +107,6 @@ Claude Code and Copilot CLI MUST:
107
107
  - Render byte-identical Case A / Case B menus (spacing, brackets, numbering).
108
108
  - Respect `prefs.global.wikiScope` array. Legacy `wikiDefault` boolean is migrated on first v5.7 load.
109
109
  - Treat adapter failures as non-blocking with the same log shape.
110
- - Pause the Case A / Case B menu in autopilot - per Phase 7 autopilot exception (`refs/phases/modes.md`). 30-min timeout ends session cleanly; resume re-opens menu.
110
+ - Pause the Case A / Case B menu in autopilot - per Phase 7 autopilot exception (`$HOME/.claude/multi-agent-refs/phases/modes.md`). 30-min timeout ends session cleanly; resume re-opens menu.
111
111
 
112
112
  `smoke-wiki-integration.sh` asserts every contract item documented above.
@@ -71,7 +71,8 @@
71
71
  "warnPct": 80,
72
72
  "onExceed": "warn",
73
73
  "pricingModel": "opus"
74
- }
74
+ },
75
+ "derivedSkillSources": []
75
76
  },
76
77
  "projects": {},
77
78
  "_figmaConfigTemplate": {
@@ -153,5 +154,20 @@
153
154
  "complex": "opus",
154
155
  "overrides": {}
155
156
  }
157
+ },
158
+ "_derivedSkillSourcesTemplate": {
159
+ "_comment": "Optional. Populate global.derivedSkillSources[] to let /multi-agent:refactor check whether skills you derived from an upstream marketplace plugin have been updated. Kept in your LOCAL prefs only (never synced), so it may reference private sources. Copy an entry like the one below.",
160
+ "_example": {
161
+ "label": "Component toolkit skills",
162
+ "localPath": "plugins/<my-plugin>/skills/workflow",
163
+ "upstreamMarketplace": "<installed-marketplace-name>",
164
+ "upstreamPlugin": "<upstream-plugin-name>",
165
+ "upstreamSkills": [
166
+ "<skill-a>",
167
+ "<skill-b>"
168
+ ],
169
+ "derivedFromVersion": "0.0.0",
170
+ "upstreamRepoUrl": "https://github.com/<org>/<repo>"
171
+ }
156
172
  }
157
173
  }
@@ -1,6 +1,6 @@
1
1
  ## Figma -> Component Generation
2
2
 
3
- Skill set under `pipeline/skills/figma-ios/` (iOS), `pipeline/skills/figma-android/` (Android), and `pipeline/skills/figma-common/` (shared). Activated when the task contains a Figma URL and target files are `.swift` (iOS) or `.kt` (Android).
3
+ Skill set lives in the marketplace plugins - `ai-ios-engineering-toolkit` (iOS/SwiftUI) and `ai-android-engineering-toolkit` (Android/Compose). Activated when the task contains a Figma URL and target files are `.swift` (iOS) or `.kt` (Android).
4
4
 
5
5
  ### MUST: Figma access - 3-tier fallback chain (BLOCKING, pipeline-wide)
6
6
 
@@ -190,7 +190,7 @@ Phase 3.3: figma-iteration-commit → Batch iteration commit (if iterating)
190
190
  | Wiki | enabled/disabled | `wiki.enabled` |
191
191
  | Figma API | MCP / REST fallback | `figma.mcpEnabled` |
192
192
 
193
- Provider interfaces are defined inline in the platform skill sets - see `pipeline/skills/figma-common/`, `pipeline/skills/figma-ios/`, and `pipeline/skills/figma-android/`.
193
+ Provider interfaces are defined inline in the plugin skill sets - see the `ai-ios-engineering-toolkit` and `ai-android-engineering-toolkit` marketplace plugins.
194
194
 
195
195
  ### Optional Features (graceful skip when disabled)
196
196
 
@@ -613,40 +613,6 @@
613
613
  "default": true,
614
614
  "description": "When the Wiki channel produces component wiki content AND a Jira issue is linked (`state.jiraId` set), also post a humanizer-passed summary of the wiki content as a Jira comment so QA + PMs see the component docs inline. Independent of `reportChannels.jira` (which controls whether the main Jira comment runs). Set `false` to suppress only the wiki-summary comment."
615
615
  },
616
- "figmaSource": {
617
- "type": [
618
- "object",
619
- "null"
620
- ],
621
- "additionalProperties": false,
622
- "description": "Upstream figma-to-component source for incremental sync (WS-9). Set manually by users who maintain a separate source project and want `/multi-agent:sync` to keep `pipeline/skills/figma-ios/` in step. Null = no sync, import was one-shot.",
623
- "properties": {
624
- "path": {
625
- "type": "string",
626
- "description": "Absolute path to the source project root (expects `.instructions/figma/` and `.claude/skills/` subtrees)."
627
- },
628
- "branch": {
629
- "type": "string",
630
- "default": "develop",
631
- "description": "Source branch to pull from."
632
- },
633
- "lastSyncedAt": {
634
- "type": [
635
- "string",
636
- "null"
637
- ],
638
- "format": "date-time",
639
- "description": "ISO timestamp of the most recent successful sync."
640
- },
641
- "lastCommit": {
642
- "type": [
643
- "string",
644
- "null"
645
- ],
646
- "description": "Source commit SHA captured at the most recent successful sync. Used as the floor for incremental diff."
647
- }
648
- }
649
- },
650
616
  "promptLanguage": {
651
617
  "type": "string",
652
618
  "enum": [
@@ -15,7 +15,7 @@ Validate contracts. Each emits `══ <name> smoke: N passed, M failed ══`
15
15
  - `smoke-figma-cross-cli-inventory.sh` - figma skill cross-CLI source-tree parity (39 assertions)
16
16
 
17
17
  ### Figma pipeline (see `pipeline/scripts/README-figma-smokes.md` for the full index)
18
- - `smoke-figma-android-parity.sh`, `smoke-figma-config-schema.sh`, `smoke-figma-dispatch.sh`, `smoke-figma-skill-import.sh`, `smoke-figma-sync.sh`
18
+ - `smoke-figma-config-schema.sh`, `smoke-figma-dispatch.sh`
19
19
 
20
20
  ### Phase contracts
21
21
  - `smoke-phase-0-multi-repo.sh` - Phase 0 multi-repo mode fetch + worktree atomicity
@@ -78,8 +78,6 @@ Shell scripts invoked during pipeline execution.
78
78
  - `search-logs.sh` - backs `/multi-agent:search`
79
79
  - `scan-skills.sh` - backs `/multi-agent:scan`
80
80
  - `benchmark-phase-0.sh` - Phase 0 perf harness
81
- - `sync-figma-source.sh` - WS-9 source sync (figma)
82
- - `import-figma-skills.sh` - developer-only import harness (not run at runtime)
83
81
  - `github-ssh-setup.sh` - first-run SSH key setup helper
84
82
  - `sync-parity-check.sh` - manual parity verification helper
85
83
 
@@ -36,7 +36,7 @@ const EXTERNAL = join(PIPE_ROOT, 'pipeline/skills/shared/external');
36
36
  const DRY = args.includes('--dry-run');
37
37
 
38
38
  const COMMON_PLUGIN = 'ai-common-engineering-toolkit';
39
- const COMMON_SKILLS = ['accessibility-compliance-accessibility-audit', 'firebase', 'humanizer', 'council', 'search-first', 'agent-introspection-debugging'];
39
+ const COMMON_SKILLS = ['accessibility-compliance-accessibility-audit', 'firebase', 'humanizer', 'council', 'search-first', 'agent-introspection-debugging', 'skill-creator', 'backlog'];
40
40
 
41
41
  // Apple/Xcode-only skills that match no stack pattern → iOS plugin only.
42
42
  const APPLE_ONLY = [
@@ -1,16 +1,17 @@
1
1
  .claude/CLAUDE.md 1
2
2
  .claude/agents 8
3
- .claude/commands 92
3
+ .claude/commands 42
4
4
  .claude/lib 24
5
5
  .claude/multi-agent-preferences.json 1
6
+ .claude/multi-agent-refs 50
6
7
  .claude/rules 12
7
8
  .claude/schemas 23
8
- .claude/scripts 180
9
+ .claude/scripts 177
9
10
  .claude/settings.json 1
10
- .claude/skills 563
11
+ .claude/skills 428
11
12
  .copilot/agents 8
12
13
  .copilot/copilot-instructions.md 1
13
14
  .copilot/lib 24
14
15
  .copilot/schemas 23
15
- .copilot/scripts 180
16
- .copilot/skills 600
16
+ .copilot/scripts 177
17
+ .copilot/skills 465
@@ -97,7 +97,7 @@ const skipNote = skippedIds.length > 0
97
97
  ? `${modeLabel} mode does NOT TaskCreate phases ${skippedIds.join("/")} - those are not part of the ${modeLabel} phase set (\`${spec.phases.join(" ")}\`). Only register tiles for the active set.`
98
98
  : `${modeLabel} mode TaskCreates all 8 phases (no phase is skipped).`;
99
99
 
100
- const orderingNote = `**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For ${modeLabel} that means: ${phaseSequence}. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in \`refs/tracker-contract.md\` section "TaskCreate ordering (strict)".`;
100
+ const orderingNote = `**All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied.** For ${modeLabel} that means: ${phaseSequence}. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks. Full ordering contract in \`$HOME/.claude/multi-agent-refs/tracker-contract.md\` section "TaskCreate ordering (strict)".`;
101
101
 
102
102
  const localCaveat = spec.local
103
103
  ? `\n> **Local mode:** no worktree is created, work happens on the current branch. Phase 0 Init still calls \`init\` - the \`--local\` flag is stored in tracker-state.json, and \`:resume\` restores the correct CWD.\n`
@@ -109,7 +109,7 @@ const banner = spec.autopilot
109
109
 
110
110
  const out = `## Required: Phase Tracker Contract
111
111
 
112
- **The phase tracker is mandatory** - the agent cannot skip it. Full spec: [\`refs/tracker-contract.md\`](./refs/tracker-contract.md).
112
+ **The phase tracker is mandatory** - the agent cannot skip it. Full spec: [\`$HOME/.claude/multi-agent-refs/tracker-contract.md\`]($HOME/.claude/multi-agent-refs/tracker-contract.md).
113
113
  ${banner}${localCaveat}
114
114
  Two channels run in parallel at every phase boundary:
115
115
 
@@ -135,7 +135,7 @@ bash $HOME/.claude/scripts/phase-tracker.sh tokens <N> <in> <out>
135
135
 
136
136
  In Claude Code the agent MUST also drive the native TaskList widget so the user sees a sticky phase tile stack - this is the only progress signal Claude Code surfaces. Skipping these calls is the #1 source of "I don't see any phases" complaints.
137
137
 
138
- **TaskCreate ordering (strict)**: All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks (e.g. \`1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐\`) even when the underlying state is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN - register the tile in order, then flip status via TaskUpdate when the phase actually short-circuits. Full contract in \`refs/tracker-contract.md\` section "TaskCreate ordering (strict)".
138
+ **TaskCreate ordering (strict)**: All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied. The native widget renders by creation order, not by phase number - out-of-order calls produce visually scrambled tile stacks (e.g. \`1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐\`) even when the underlying state is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN - register the tile in order, then flip status via TaskUpdate when the phase actually short-circuits. Full contract in \`$HOME/.claude/multi-agent-refs/tracker-contract.md\` section "TaskCreate ordering (strict)".
139
139
 
140
140
  \`\`\`text
141
141
  # Phase 0 startup - register one tile per phase (0..N), capture the taskId, persist it:
@@ -21,7 +21,7 @@
21
21
  # Localization:
22
22
  # PHASE_LANG=en (default) | tr - when set to tr, canonical labels resolve to
23
23
  # Turkish. The `auto` sentinel in place of [name] triggers a table lookup.
24
- # Canonical label set mirrors pipeline/commands/multi-agent/refs/phases.md.
24
+ # Canonical label set mirrors pipeline/multi-agent-refs/phases.md.
25
25
  #
26
26
  # Output is colored when stdout is a TTY (TERM != dumb). Plain otherwise so
27
27
  # logs and CI artifacts stay readable. Always written to stdout - log
@@ -32,7 +32,7 @@ set -uo pipefail
32
32
  PHASE_LANG="${PHASE_LANG:-en}"
33
33
 
34
34
  # Canonical phase label table. Keep synced with
35
- # pipeline/commands/multi-agent/refs/phases.md and the table in
35
+ # pipeline/multi-agent-refs/phases.md and the table in
36
36
  # pipeline/skills/shared/multi-agent/SKILL.md.
37
37
  phase_label() {
38
38
  local phase="$1" lang="${2:-en}"
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @file review-scope.mjs - v11.3.0
4
+ *
5
+ * Diff-complexity gate for Phase 4 Stage 2. On trivial diffs, every reviewer
6
+ * model agrees and the 2nd/3rd model + triage cost is paid for nothing (a
7
+ * recurring practitioner complaint about multi-model review). This decides how
8
+ * many reviewers to dispatch from the deterministic diff-risk report - no LLM.
9
+ *
10
+ * Pure function of the diff-risk JSON (read on stdin or --file). A diff is
11
+ * "trivial" (→ single reviewer) only when ALL hold:
12
+ * - total churn (loc_added + loc_removed) <= --loc-floor (default 20)
13
+ * - totals.max_score < --risk-floor (default 3.0)
14
+ * - NO file carries a high-stakes signal: security_path, migration,
15
+ * public_api, no_test_change, test_lines_removed
16
+ * Otherwise → full (the CLI-aware set: 2 on Claude Code, 3 on Copilot CLI).
17
+ *
18
+ * Conservative by design: any doubt → full review. Skipping reviewers trades
19
+ * coverage for cost, so the bar for "trivial" is deliberately high.
20
+ *
21
+ * Usage:
22
+ * node diff-risk-score.mjs --base B --head H | node review-scope.mjs
23
+ * node test-review-scope: node review-scope.mjs --file risk.json --loc-floor 20 --risk-floor 3.0
24
+ *
25
+ * Output (stdout, JSON): { scope: "single"|"full", reason, churn, maxScore, blockers }
26
+ * Exit 0 always. Invalid/empty input → fail SAFE to "full" (never under-review).
27
+ */
28
+ import { readFileSync } from "node:fs";
29
+
30
+ const args = process.argv.slice(2);
31
+ const num = (flag, dflt) => {
32
+ const i = args.indexOf(flag);
33
+ return i !== -1 && args[i + 1] != null ? Number(args[i + 1]) : dflt;
34
+ };
35
+ const LOC_FLOOR = num("--loc-floor", 20);
36
+ const RISK_FLOOR = num("--risk-floor", 3.0);
37
+ const fileFlag = args.indexOf("--file");
38
+
39
+ const HIGH_STAKES = new Set([
40
+ "security_path",
41
+ "migration",
42
+ "public_api",
43
+ "no_test_change",
44
+ "test_lines_removed",
45
+ ]);
46
+
47
+ function readInput() {
48
+ try {
49
+ return fileFlag !== -1 && args[fileFlag + 1]
50
+ ? readFileSync(args[fileFlag + 1], "utf8")
51
+ : readFileSync(0, "utf8");
52
+ } catch {
53
+ return "";
54
+ }
55
+ }
56
+
57
+ function emit(o) {
58
+ process.stdout.write(JSON.stringify(o));
59
+ }
60
+
61
+ function main() {
62
+ let report;
63
+ try {
64
+ report = JSON.parse(readInput());
65
+ } catch {
66
+ emit({ scope: "full", reason: "no-risk-data-fail-safe", churn: null, maxScore: null, blockers: [] });
67
+ return;
68
+ }
69
+
70
+ const t = report?.totals || {};
71
+ const churn = (t.loc_added ?? 0) + (t.loc_removed ?? 0);
72
+ const maxScore = t.max_score ?? 0;
73
+ const files = Array.isArray(report?.files) ? report.files : [];
74
+
75
+ const blockers = [];
76
+ for (const f of files) {
77
+ for (const s of f.signals || []) {
78
+ if (HIGH_STAKES.has(s.name)) blockers.push({ file: f.file, signal: s.name });
79
+ }
80
+ }
81
+
82
+ const trivial = churn <= LOC_FLOOR && maxScore < RISK_FLOOR && blockers.length === 0;
83
+ const reason = trivial
84
+ ? `trivial: churn ${churn}<=${LOC_FLOOR}, maxScore ${maxScore}<${RISK_FLOOR}, no high-stakes signals`
85
+ : blockers.length
86
+ ? `high-stakes signal(s): ${[...new Set(blockers.map((b) => b.signal))].join(", ")}`
87
+ : churn > LOC_FLOOR
88
+ ? `churn ${churn} > ${LOC_FLOOR}`
89
+ : `maxScore ${maxScore} >= ${RISK_FLOOR}`;
90
+
91
+ emit({ scope: trivial ? "single" : "full", reason, churn, maxScore, blockers });
92
+ }
93
+
94
+ main();
@@ -31,8 +31,8 @@ add "$ROOT/install/templates/claude-hooks.json"
31
31
  add "$ROOT/install/templates/copilot-instructions.md"
32
32
  add "$ROOT/pipeline/preferences-template.json"
33
33
  for f in "$ROOT"/pipeline/agents/*.md; do add "$f"; done
34
- for f in "$ROOT"/pipeline/skills/figma-common/figma-setup/scripts/*.py \
35
- "$ROOT"/pipeline/skills/figma-ios/figma-to-component/scripts/*.py; do add "$f"; done
34
+ # (figma component skills + their scripts now live in the ai-*-engineering-toolkit
35
+ # marketplace plugin, not in this repo, so there is nothing figma to scan here.)
36
36
  add "$ROOT/pipeline/scripts/agent-guard.sh"
37
37
  add "$ROOT/pipeline/scripts/pre-commit-check.sh"
38
38
 
@@ -20,7 +20,7 @@ RENDERER="$ROOT/pipeline/scripts/render-agent-log-cost.sh"
20
20
  TRACKER="$ROOT/pipeline/scripts/phase-tracker.sh"
21
21
  LOG_METRIC="$ROOT/pipeline/scripts/log-metric.sh"
22
22
  TABLE="$ROOT/pipeline/scripts/cost-table.json"
23
- LOG_FORMAT_DOC="$ROOT/pipeline/commands/multi-agent/refs/phases/log-format.md"
23
+ LOG_FORMAT_DOC="$ROOT/pipeline/multi-agent-refs/phases/log-format.md"
24
24
 
25
25
  pass=0
26
26
  fail=0
@@ -15,8 +15,8 @@ set -euo pipefail
15
15
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
16
16
  AGENTS_DIR="$ROOT/pipeline/agents"
17
17
  ORCH_SKILL="$ROOT/pipeline/skills/shared/core/multi-agent/SKILL.md"
18
- ORCH_CMD="$ROOT/pipeline/commands/multi-agent.md"
19
- PHASE4="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-4-review.md"
18
+ ORCH_CMD="$ROOT/pipeline/commands/multi-agent/SKILL.md"
19
+ PHASE4="$ROOT/pipeline/multi-agent-refs/phases/phase-4-review.md"
20
20
 
21
21
  pass=0
22
22
  fail=0
@@ -66,9 +66,9 @@ fi
66
66
 
67
67
  # --- 4b: orchestrator command file references ---
68
68
  if grep -q 'preferredModel' "$ORCH_CMD"; then
69
- record_pass "commands/multi-agent.md references preferredModel"
69
+ record_pass "commands/multi-agent/SKILL.md references preferredModel"
70
70
  else
71
- record_fail "commands/multi-agent.md missing preferredModel reference"
71
+ record_fail "commands/multi-agent/SKILL.md missing preferredModel reference"
72
72
  fi
73
73
 
74
74
  # --- 5: Phase 4 review doc references override ---
@@ -8,8 +8,8 @@
8
8
  set -uo pipefail
9
9
 
10
10
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
11
- DOC="$ROOT/pipeline/commands/multi-agent/refs/features/autopilot-circuit-breaker.md"
12
- MODES="$ROOT/pipeline/commands/multi-agent/refs/phases/modes.md"
11
+ DOC="$ROOT/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md"
12
+ MODES="$ROOT/pipeline/multi-agent-refs/phases/modes.md"
13
13
 
14
14
  PASS=0; FAIL=0
15
15
  pass() { PASS=$((PASS+1)); echo " ✓ $1"; }
@@ -13,8 +13,8 @@ set -euo pipefail
13
13
 
14
14
  HERE="$(cd "$(dirname "$0")" && pwd)"
15
15
  ROOT="$(cd "$HERE/../.." && pwd)"
16
- CHANNELS="$ROOT/pipeline/commands/multi-agent/channels.md"
17
- PHASE7="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-7-report.md"
16
+ CHANNELS="$ROOT/pipeline/commands/multi-agent/channels/SKILL.md"
17
+ PHASE7="$ROOT/pipeline/multi-agent-refs/phases/phase-7-report.md"
18
18
 
19
19
  PASS=0
20
20
  FAIL=0
@@ -18,13 +18,13 @@
18
18
  set -uo pipefail
19
19
 
20
20
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
21
- CLAUDE_CMD="$ROOT/pipeline/commands/multi-agent/channels.md"
21
+ CLAUDE_CMD="$ROOT/pipeline/commands/multi-agent/channels/SKILL.md"
22
22
  COPILOT_SKILL="$ROOT/pipeline/skills/shared/core/multi-agent-channels/SKILL.md"
23
- ENRICH_CMD="$ROOT/pipeline/commands/multi-agent/enrich.md"
23
+ ENRICH_CMD="$ROOT/pipeline/commands/multi-agent/enrich/SKILL.md"
24
24
  ENRICH_SKILL_DIR="$ROOT/pipeline/skills/shared/core/multi-agent-enrich"
25
- PHASE7="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-7-report.md"
26
- MODES="$ROOT/pipeline/commands/multi-agent/refs/phases/modes.md"
27
- WIKI_CAPTURE="$ROOT/pipeline/commands/multi-agent/refs/wiki-capture.md"
25
+ PHASE7="$ROOT/pipeline/multi-agent-refs/phases/phase-7-report.md"
26
+ MODES="$ROOT/pipeline/multi-agent-refs/phases/modes.md"
27
+ WIKI_CAPTURE="$ROOT/pipeline/multi-agent-refs/wiki-capture.md"
28
28
  SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
29
29
  MIGRATE="$ROOT/pipeline/scripts/migrate-prefs.mjs"
30
30
  TEMPLATE="$ROOT/pipeline/preferences-template.json"
@@ -24,7 +24,7 @@ ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
24
24
  AGENT="$ROOT/pipeline/agents/task-clarifier.md"
25
25
  SCHEMA="$ROOT/pipeline/schemas/clarify-output.schema.json"
26
26
  PREFS_SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
27
- PHASE_DOC="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-0-init.md"
27
+ PHASE_DOC="$ROOT/pipeline/multi-agent-refs/phases/phase-0-init.md"
28
28
 
29
29
  pass=0
30
30
  fail=0
@@ -36,7 +36,7 @@ fail() { FAIL=$((FAIL+1)); echo " ✗ $1"; }
36
36
  # Underscore-prefixed files (e.g. _account-picker.md) are internal fragments
37
37
  # loaded by other commands via Read; they're not invocable slash commands and
38
38
  # intentionally have no matching skill.
39
- CMDS=$(find "$CMDS_DIR" -maxdepth 1 -name "*.md" ! -name "_*" -exec basename {} .md \; | sort)
39
+ CMDS=$(find "$CMDS_DIR" -mindepth 2 -maxdepth 2 -name "SKILL.md" -exec dirname {} \; | xargs -n1 basename | sort)
40
40
 
41
41
  # help.md in commands maps to multi-agent-help skill; the main "multi-agent"
42
42
  # skill covers the behavior documented across multiple command files, so we
@@ -67,7 +67,7 @@ echo "→ Checking that every multi-agent-* skill has a corresponding command"
67
67
  SKILLS=$(find "$SKILLS_DIR" -maxdepth 1 -type d -name "multi-agent-*" -exec basename {} \; | sed 's/^multi-agent-//' | sort)
68
68
 
69
69
  for skill in $SKILLS; do
70
- cmd_file="$CMDS_DIR/$skill.md"
70
+ cmd_file="$CMDS_DIR/$skill/SKILL.md"
71
71
  # A few skills are Copilot-CLI-style conveniences without a Claude slash equivalent:
72
72
  case "$skill" in
73
73
  autopilot | dev-autopilot) # dash-style shortcut skills, the flags are documented in help.md
@@ -76,7 +76,7 @@ for skill in $SKILLS; do
76
76
  ;;
77
77
  esac
78
78
  if [ -f "$cmd_file" ]; then
79
- pass "skills/shared/multi-agent-$skill/ ↔ commands/multi-agent/$skill.md"
79
+ pass "skills/shared/multi-agent-$skill/ ↔ commands/multi-agent/$skill/SKILL.md"
80
80
  else
81
81
  fail "skills/shared/multi-agent-$skill/ has no matching command"
82
82
  fi
@@ -18,7 +18,7 @@
18
18
  set -euo pipefail
19
19
 
20
20
  REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
21
- PHASES_DIR="$REPO_ROOT/pipeline/commands/multi-agent/refs/phases"
21
+ PHASES_DIR="$REPO_ROOT/pipeline/multi-agent-refs/phases"
22
22
 
23
23
  PASS=0
24
24
  FAIL=0
@@ -24,9 +24,9 @@ APPLE_SKILL="$ROOT/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md
24
24
  GOOGLE_SKILL="$ROOT/pipeline/skills/shared/core/google-play-compliance/SKILL.md"
25
25
  SIM_TEST="$ROOT/pipeline/commands/sim-test.md"
26
26
  SEC_AUDITOR="$ROOT/pipeline/agents/security-auditor.md"
27
- REVIEW_CMD="$ROOT/pipeline/commands/multi-agent/review.md"
27
+ REVIEW_CMD="$ROOT/pipeline/commands/multi-agent/review/SKILL.md"
28
28
  REVIEW_SKILL="$ROOT/pipeline/skills/shared/core/multi-agent-review/SKILL.md"
29
- CHANNELS_CMD="$ROOT/pipeline/commands/multi-agent/channels.md"
29
+ CHANNELS_CMD="$ROOT/pipeline/commands/multi-agent/channels/SKILL.md"
30
30
  CHANNELS_SKILL="$ROOT/pipeline/skills/shared/core/multi-agent-channels/SKILL.md"
31
31
 
32
32
  PASS=0
@@ -18,7 +18,7 @@ ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
18
18
  RENDERER="$ROOT/pipeline/scripts/render-cost-summary.sh"
19
19
  TABLE="$ROOT/pipeline/scripts/cost-table.json"
20
20
  SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
21
- CHANNELS_DOC="$ROOT/pipeline/commands/multi-agent/channels.md"
21
+ CHANNELS_DOC="$ROOT/pipeline/commands/multi-agent/channels/SKILL.md"
22
22
 
23
23
  pass=0
24
24
  fail=0
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
  # smoke-cross-cli-behavior.sh - enforces the cross-CLI parity invariant
3
- # defined in ~/.claude/commands/multi-agent/refs/cross-cli-contract.md.
3
+ # defined in ~/.claude/multi-agent-refs/cross-cli-contract.md.
4
4
  #
5
5
  # This is a behavioral complement to smoke-sync-parity.sh (which tests the
6
6
  # parity checker itself). This script asserts the actual Claude Code and
@@ -41,7 +41,10 @@ fi
41
41
  # Underscore-prefixed Claude files (e.g. _account-picker.md) are internal
42
42
  # fragments lazy-loaded by other commands; they're not invocable on either CLI
43
43
  # and intentionally have no Copilot skill counterpart.
44
- CLAUDE_LIST=$(find "$CLAUDE_CMDS" -maxdepth 1 -name "*.md" ! -name "_*" -type f -exec basename {} \; 2>/dev/null | sed 's/\.md$//' | sort)
44
+ # Also exclude local-only alias wrappers (frontmatter `local-only: true`) - personal
45
+ # aliases to private marketplace-plugin skills, intentionally Claude-only, no Copilot peer.
46
+ CLAUDE_LIST=$(find "$CLAUDE_CMDS" -mindepth 2 -maxdepth 2 -name "SKILL.md" 2>/dev/null \
47
+ | while IFS= read -r f; do grep -q "^local-only: true" "$f" || basename "$(dirname "$f")"; done | sort)
45
48
  COPILOT_LIST=$(find "$COPILOT_SKILLS" -maxdepth 1 -type d -name "multi-agent-*" -exec basename {} \; 2>/dev/null | sed 's/^multi-agent-//' | sort)
46
49
 
47
50
  if [ "$CLAUDE_LIST" = "$COPILOT_LIST" ]; then
@@ -69,7 +72,7 @@ DEPRECATED=(
69
72
  )
70
73
  for p in "${DEPRECATED[@]}"; do
71
74
  # grep -l returns filenames; empty = no matches
72
- FOUND=$(grep -l -F -- "$p" "$CLAUDE_CMDS"/*.md 2>/dev/null || true)
75
+ FOUND=$(grep -l -F -- "$p" $(find "$CLAUDE_CMDS" -name SKILL.md 2>/dev/null) 2>/dev/null || true)
73
76
  if [ -z "$FOUND" ]; then
74
77
  pass "no '$p' in Claude commands"
75
78
  else
@@ -85,7 +88,7 @@ PERSONAL_HARDCODES=(
85
88
  "${USER}_tkgithub"
86
89
  )
87
90
  for p in "${PERSONAL_HARDCODES[@]}"; do
88
- FOUND=$(grep -l -F -- "$p" "$CLAUDE_CMDS"/*.md 2>/dev/null || true)
91
+ FOUND=$(grep -l -F -- "$p" $(find "$CLAUDE_CMDS" -name SKILL.md 2>/dev/null) 2>/dev/null || true)
89
92
  if [ -z "$FOUND" ]; then
90
93
  pass "no '$p' leaked into Claude commands"
91
94
  else
@@ -97,13 +100,13 @@ done
97
100
  echo ""
98
101
  echo "→ 4. Canonical placeholders present (sanity)"
99
102
  # These MUST exist (regressions would mean someone undid a drift fix)
100
- if grep -q -F "{owner}" "$CLAUDE_CMDS/sync.md" 2>/dev/null; then
103
+ if grep -q -F "{owner}" "$CLAUDE_CMDS/sync/SKILL.md" 2>/dev/null; then
101
104
  pass "sync.md uses canonical '{owner}'"
102
105
  else
103
106
  fail "sync.md missing '{owner}' - drift fix may have regressed"
104
107
  fi
105
108
 
106
- if grep -q -F "{website-host}" "$CLAUDE_CMDS/sync.md" 2>/dev/null; then
109
+ if grep -q -F "{website-host}" "$CLAUDE_CMDS/sync/SKILL.md" 2>/dev/null; then
107
110
  pass "sync.md uses canonical '{website-host}'"
108
111
  else
109
112
  fail "sync.md missing '{website-host}' - drift fix may have regressed"
@@ -114,7 +117,7 @@ echo ""
114
117
  echo "→ 5. Canonical project-name vocabulary in log.md"
115
118
  CANONICAL_PROJECTS=("my-ui-components" "my-figma-app" "my-ios-app")
116
119
  for c in "${CANONICAL_PROJECTS[@]}"; do
117
- if grep -q -F -- "$c" "$CLAUDE_CMDS/log.md" 2>/dev/null; then
120
+ if grep -q -F -- "$c" "$CLAUDE_CMDS/log/SKILL.md" 2>/dev/null; then
118
121
  pass "log.md references '$c'"
119
122
  else
120
123
  fail "log.md missing canonical '$c'"
@@ -124,7 +127,7 @@ done
124
127
  # ──────────────────────────────────────────────────────────────────────────
125
128
  echo ""
126
129
  echo "→ 6. Contract doc exists (required source of truth)"
127
- CONTRACT="$CLAUDE_CMDS/refs/cross-cli-contract.md"
130
+ CONTRACT="$HOME/.claude/multi-agent-refs/cross-cli-contract.md"
128
131
  if [ -f "$CONTRACT" ]; then
129
132
  SIZE=$(wc -l < "$CONTRACT" | tr -d ' ')
130
133
  if [ "$SIZE" -ge 100 ]; then
@@ -138,40 +141,11 @@ fi
138
141
 
139
142
  # ──────────────────────────────────────────────────────────────────────────
140
143
  echo ""
141
- echo "→ 7. Figma skill trees deployed to both CLIs (WS-8b, v5.0.1+)"
142
-
143
- CLAUDE_SKILLS="$HOME/.claude/skills"
144
- FIGMA_TREES=(figma-ios figma-android figma-common)
145
-
146
- for tree in "${FIGMA_TREES[@]}"; do
147
- claude_tree="$CLAUDE_SKILLS/$tree"
148
- claude_note=""
149
- # /multi-agent:stack parks inactive-platform trees under skills-inactive/.
150
- # A parked tree is still deployed - count it from its parked location so
151
- # iOS-stack machines don't fail on the android tree (and vice versa).
152
- if [ ! -d "$claude_tree" ] && [ -d "$HOME/.claude/skills-inactive/$tree" ]; then
153
- claude_tree="$HOME/.claude/skills-inactive/$tree"
154
- claude_note=" (claude: parked by /multi-agent:stack)"
155
- fi
156
- copilot_tree="$COPILOT_SKILLS/$tree"
157
- if [ -d "$claude_tree" ] && [ -d "$copilot_tree" ]; then
158
- claude_count=$(find "$claude_tree" -maxdepth 1 -mindepth 1 -type d | wc -l | tr -d ' ')
159
- copilot_count=$(find "$copilot_tree" -maxdepth 1 -mindepth 1 -type d | wc -l | tr -d ' ')
160
- if [ "$claude_count" -eq "$copilot_count" ]; then
161
- pass "$tree deployed to both CLIs ($claude_count skills each)$claude_note"
162
- else
163
- fail "$tree count mismatch (claude=$claude_count copilot=$copilot_count)$claude_note"
164
- fi
165
- elif [ -d "$claude_tree" ] || [ -d "$copilot_tree" ]; then
166
- fail "$tree deployed to only ONE CLI"
167
- else
168
- echo " (tree not installed on either CLI - run \`node install.js --all\` to deploy)"
169
- fi
170
- done
171
-
172
- # ──────────────────────────────────────────────────────────────────────────
173
- echo ""
174
- echo "→ 8. Agent personas deployed to both CLIs"
144
+ # Figma/component skill trees no longer ship in the pipeline (v11.2.0+): they
145
+ # live in the marketplace component plugins (ai-ios-engineering-toolkit /
146
+ # multi-agent-plugins), which each CLI loads through its own plugin channel.
147
+ # The pipeline therefore has no figma tree to deploy or parity-check here.
148
+ echo "→ 7. Agent personas deployed to both CLIs"
175
149
 
176
150
  CLAUDE_AGENTS="$HOME/.claude/agents"
177
151
  COPILOT_AGENTS="$HOME/.copilot/agents"
@@ -207,7 +181,7 @@ fi
207
181
  # drift across the phase doc, the schema, and the consensus block.
208
182
  echo "→ reviewer-count contract (Claude=2, Copilot=3)"
209
183
  REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
210
- P4="$REPO_ROOT/pipeline/commands/multi-agent/refs/phases/phase-4-review.md"
184
+ P4="$REPO_ROOT/pipeline/multi-agent-refs/phases/phase-4-review.md"
211
185
  REVSCHEMA="$REPO_ROOT/pipeline/schemas/reviewer-output.schema.json"
212
186
  TRSCHEMA="$REPO_ROOT/pipeline/schemas/triage-output.schema.json"
213
187
  if grep -qiE "Claude Code (dispatches|=|:) ?2|2-model" "$P4" && grep -qiE "Copilot CLI (dispatches|=|:) ?3|3-model" "$P4"; then
@@ -24,7 +24,7 @@
24
24
  set -euo pipefail
25
25
 
26
26
  REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
27
- PHASE_DIR="$REPO_ROOT/pipeline/commands/multi-agent/refs/phases"
27
+ PHASE_DIR="$REPO_ROOT/pipeline/multi-agent-refs/phases"
28
28
  SCHEMA_DIR="$REPO_ROOT/pipeline/schemas"
29
29
 
30
30
  PASS=0
@@ -16,7 +16,7 @@ set -euo pipefail
16
16
 
17
17
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
18
18
  AGENT="$ROOT/pipeline/agents/dev-critic.md"
19
- PHASE_DOC="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md"
19
+ PHASE_DOC="$ROOT/pipeline/multi-agent-refs/phases/phase-3-dev.md"
20
20
  PREFS_SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
21
21
  CRITIC_SCHEMA="$ROOT/pipeline/schemas/dev-critic-output.schema.json"
22
22