@mmerterden/multi-agent-pipeline 11.2.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 (331) hide show
  1. package/CHANGELOG.md +37 -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/_dev-only-files.mjs +0 -6
  7. package/install/claude.mjs +33 -15
  8. package/install/copilot.mjs +16 -14
  9. package/install/templates/copilot-instructions.md +3 -3
  10. package/package.json +1 -1
  11. package/pipeline/commands/{multi-agent.md → multi-agent/SKILL.md} +39 -39
  12. package/pipeline/commands/multi-agent/{analysis.md → analysis/SKILL.md} +18 -18
  13. package/pipeline/commands/multi-agent/{analysis-resolve.md → analysis-resolve/SKILL.md} +4 -4
  14. package/pipeline/commands/multi-agent/{autopilot.md → autopilot/SKILL.md} +4 -4
  15. package/pipeline/commands/multi-agent/{build-optimize.md → build-optimize/SKILL.md} +1 -1
  16. package/pipeline/commands/multi-agent/{channels.md → channels/SKILL.md} +12 -12
  17. package/pipeline/commands/multi-agent/{dev.md → dev/SKILL.md} +4 -4
  18. package/pipeline/commands/multi-agent/{dev-autopilot.md → dev-autopilot/SKILL.md} +4 -4
  19. package/pipeline/commands/multi-agent/{dev-local.md → dev-local/SKILL.md} +5 -5
  20. package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md} +4 -4
  21. package/pipeline/commands/multi-agent/{finish.md → finish/SKILL.md} +6 -6
  22. package/pipeline/commands/multi-agent/{generate.md → generate/SKILL.md} +3 -3
  23. package/pipeline/commands/multi-agent/{help.md → help/SKILL.md} +4 -4
  24. package/pipeline/commands/multi-agent/{local.md → local/SKILL.md} +5 -5
  25. package/pipeline/commands/multi-agent/{local-autopilot.md → local-autopilot/SKILL.md} +5 -5
  26. package/pipeline/commands/multi-agent/{manual-test.md → manual-test/SKILL.md} +1 -1
  27. package/pipeline/commands/multi-agent/refactor/SKILL.md +257 -0
  28. package/pipeline/commands/multi-agent/{resume.md → resume/SKILL.md} +1 -1
  29. package/pipeline/commands/multi-agent/{review.md → review/SKILL.md} +5 -5
  30. package/pipeline/commands/multi-agent/{setup.md → setup/SKILL.md} +1 -1
  31. package/pipeline/commands/multi-agent/{sync.md → sync/SKILL.md} +20 -58
  32. package/pipeline/{commands/multi-agent → multi-agent-refs}/_account-picker.md +2 -2
  33. package/pipeline/{commands/multi-agent → multi-agent-refs}/_dev-context.md +2 -2
  34. package/pipeline/{commands/multi-agent → multi-agent-refs}/_repo-picker.md +2 -2
  35. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/android-guide.md +1 -1
  36. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/jira.md +1 -1
  37. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/wiki.md +7 -7
  38. package/pipeline/multi-agent-refs/component-dispatch.md +92 -0
  39. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/cross-cli-contract.md +10 -77
  40. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/verify-by-test.md +1 -1
  41. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/generate-issue.md +2 -2
  42. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/issue-jira-triad.md +1 -1
  43. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/keychain.md +1 -1
  44. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/log-format.md +1 -1
  45. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/modes.md +2 -2
  46. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/operations.md +1 -1
  47. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-0-init.md +10 -10
  48. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-1-analysis.md +6 -6
  49. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-2-planning.md +3 -3
  50. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-3-dev.md +10 -10
  51. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-4-review.md +8 -8
  52. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-5-test.md +3 -3
  53. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-6-commit.md +4 -4
  54. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-7-report.md +6 -6
  55. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases.md +12 -12
  56. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/progress-contract.md +4 -4
  57. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/swiftui-guide.md +1 -1
  58. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/tracker-contract.md +3 -3
  59. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/wiki-capture.md +4 -4
  60. package/pipeline/preferences-template.json +17 -1
  61. package/pipeline/rules/figma-pipeline.md +2 -2
  62. package/pipeline/schemas/prefs.schema.json +0 -34
  63. package/pipeline/scripts/README.md +1 -3
  64. package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
  65. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  66. package/pipeline/scripts/phase-banner.sh +2 -2
  67. package/pipeline/scripts/review-scope.mjs +94 -0
  68. package/pipeline/scripts/scan-agent-config.sh +2 -2
  69. package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
  70. package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
  71. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
  72. package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
  73. package/pipeline/scripts/smoke-channels-flow.sh +5 -5
  74. package/pipeline/scripts/smoke-clarify.sh +1 -1
  75. package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
  76. package/pipeline/scripts/smoke-community-gates.sh +1 -1
  77. package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
  78. package/pipeline/scripts/smoke-cost-summary.sh +1 -1
  79. package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
  80. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
  81. package/pipeline/scripts/smoke-dev-critic.sh +1 -1
  82. package/pipeline/scripts/smoke-diff-explain.sh +1 -1
  83. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  84. package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
  85. package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
  86. package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
  87. package/pipeline/scripts/smoke-generate-issue.sh +8 -8
  88. package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
  89. package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
  90. package/pipeline/scripts/smoke-intent-guard.sh +1 -1
  91. package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
  92. package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
  93. package/pipeline/scripts/smoke-language-axis.sh +6 -6
  94. package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
  95. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
  96. package/pipeline/scripts/smoke-model-fallback.sh +3 -3
  97. package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
  98. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  99. package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
  100. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  101. package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
  102. package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
  103. package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
  104. package/pipeline/scripts/smoke-plan-todos.sh +3 -3
  105. package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
  106. package/pipeline/scripts/smoke-prefs-language.sh +1 -1
  107. package/pipeline/scripts/smoke-progress-contract.sh +2 -2
  108. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  109. package/pipeline/scripts/smoke-repo-map.sh +2 -2
  110. package/pipeline/scripts/smoke-shadow-git.sh +1 -1
  111. package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
  112. package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
  113. package/pipeline/scripts/smoke-test-gap.sh +1 -1
  114. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  115. package/pipeline/scripts/smoke-token-preflight.sh +2 -2
  116. package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
  117. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
  118. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  119. package/pipeline/scripts/smoke-update-check.sh +1 -1
  120. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  121. package/pipeline/scripts/smoke-validator-gates.sh +1 -1
  122. package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
  123. package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
  124. package/pipeline/scripts/smoke-work-summary.sh +1 -1
  125. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  126. package/pipeline/scripts/test-integrity-gate.mjs +83 -0
  127. package/pipeline/scripts/uninstall.mjs +2 -2
  128. package/pipeline/skills/.skill-manifest.json +40 -160
  129. package/pipeline/skills/.skills-index.json +3 -372
  130. package/pipeline/skills/shared/README.md +1 -1
  131. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
  132. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
  133. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
  134. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  135. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  136. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  137. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  138. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
  139. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
  140. package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
  141. package/pipeline/skills/skills-index.md +2 -43
  142. package/pipeline/commands/multi-agent/refactor.md +0 -188
  143. package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
  144. package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
  145. package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
  146. package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
  147. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
  148. package/pipeline/scripts/smoke-figma-sync.sh +0 -149
  149. package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
  150. package/pipeline/skills/figma-android/README.md +0 -38
  151. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
  152. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
  153. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
  154. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
  155. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
  156. package/pipeline/skills/figma-common/README.md +0 -64
  157. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
  158. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
  159. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
  160. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
  161. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
  162. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
  163. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
  164. package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
  165. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
  166. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
  167. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
  168. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
  169. package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
  170. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
  171. package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
  172. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
  173. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
  174. package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
  175. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
  176. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
  177. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
  178. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
  179. package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
  180. package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
  181. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
  182. package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
  183. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
  184. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
  185. package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
  186. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
  187. package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
  188. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
  189. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
  190. package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
  191. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
  192. package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
  193. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
  194. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
  195. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
  196. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
  197. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
  198. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
  199. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
  200. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
  201. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
  202. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
  203. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
  204. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
  205. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
  206. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
  207. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
  208. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
  209. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
  210. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
  211. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
  212. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
  213. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
  214. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
  215. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
  216. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
  217. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
  218. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
  219. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
  220. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
  221. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
  222. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
  223. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
  224. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
  225. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
  226. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
  227. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
  228. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
  229. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
  230. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
  231. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
  232. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
  233. package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
  234. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
  235. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
  236. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
  237. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
  238. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
  239. package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
  240. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
  241. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
  242. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
  243. package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
  244. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
  245. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
  246. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
  247. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
  248. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
  249. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
  250. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
  251. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
  252. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
  253. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
  254. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
  255. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
  256. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
  257. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
  258. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
  259. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
  260. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
  261. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
  262. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
  263. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
  264. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
  265. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
  266. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
  267. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
  268. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
  269. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
  270. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
  271. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
  272. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
  273. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
  274. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
  275. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
  276. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
  277. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
  278. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
  279. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
  280. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
  281. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
  282. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
  283. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
  284. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
  285. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
  286. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
  287. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
  288. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
  289. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
  290. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
  291. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
  292. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
  293. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
  294. /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
  295. /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
  296. /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
  297. /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
  298. /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
  299. /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
  300. /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
  301. /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
  302. /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
  303. /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
  304. /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
  305. /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
  306. /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
  307. /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
  308. /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
  309. /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
  310. /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
  311. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
  312. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
  313. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
  314. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
  315. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
  316. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
  317. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
  318. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
  319. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
  320. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
  321. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
  322. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
  323. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
  324. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
  325. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
  326. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
  327. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
  328. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
  329. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
  330. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
  331. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
@@ -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
 
@@ -28,7 +28,7 @@ TMP=$(mktemp -d)
28
28
 
29
29
  # ──────────────────────────────────────────────────────────────────────────
30
30
  echo "→ 1. Command + skill files exist"
31
- [ -f "$REPO_ROOT/pipeline/commands/multi-agent/diff-explain.md" ] && pass "diff-explain.md present" || fail "diff-explain.md missing"
31
+ [ -f "$REPO_ROOT/pipeline/commands/multi-agent/diff-explain/SKILL.md" ] && pass "diff-explain.md present" || fail "diff-explain.md missing"
32
32
  [ -f "$REPO_ROOT/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md" ] && pass "multi-agent-diff-explain SKILL.md present" || fail "Copilot peer missing"
33
33
  [ -x "$SCRIPT" ] && pass "diff-explain.mjs is executable" || fail "diff-explain.mjs not executable"
34
34
 
@@ -22,7 +22,7 @@ ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
22
22
  SCORE="$ROOT/pipeline/scripts/diff-risk-score.mjs"
23
23
  VALIDATE="$ROOT/pipeline/scripts/validate-diff-risk.mjs"
24
24
  SCHEMA="$ROOT/pipeline/schemas/diff-risk.schema.json"
25
- PHASE4="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-4-review.md"
25
+ PHASE4="$ROOT/pipeline/multi-agent-refs/phases/phase-4-review.md"
26
26
  REVIEWER="$ROOT/pipeline/agents/code-reviewer.md"
27
27
  PREFS="$ROOT/pipeline/schemas/prefs.schema.json"
28
28
  FIX_IOS="$ROOT/pipeline/scripts/fixtures/diff-risk-ios.diff"
@@ -80,7 +80,7 @@ echo ""
80
80
  echo "→ 5. Wiring: phase docs reference the gate"
81
81
  GREP_HITS=0
82
82
  for doc in phase-3-dev phase-4-review phase-6-commit; do
83
- grep -q "evidence-gate" "$ROOT/pipeline/commands/multi-agent/refs/phases/$doc.md" && GREP_HITS=$((GREP_HITS+1))
83
+ grep -q "evidence-gate" "$ROOT/pipeline/multi-agent-refs/phases/$doc.md" && GREP_HITS=$((GREP_HITS+1))
84
84
  done
85
85
  if [ "$GREP_HITS" -ge 2 ]; then
86
86
  pass "evidence-gate referenced in $GREP_HITS phase docs"
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env bash
2
- # smoke-figma-dispatch.sh - Phase 3 component dispatch contract.
2
+ # smoke-figma-dispatch.sh - Phase 3 component dispatch contract (plugin-based).
3
3
  #
4
- # Verifies that multi-agent Phase 3 delegates to the figma-to-component
5
- # orchestrator (WS-4) instead of embedding figma logic inline.
4
+ # Verifies that multi-agent Phase 3 dispatches component tasks to the
5
+ # ai-<platform>-engineering-toolkit MARKETPLACE PLUGIN (create-component,
6
+ # fallback create-ui-component) instead of a bundled figma-to-component skill.
6
7
  #
7
- # Runs offline - scans docs only, no orchestrator invocation.
8
+ # Runs offline - scans docs only, no skill invocation.
8
9
 
9
10
  set -euo pipefail
10
11
 
11
12
  HERE="$(cd "$(dirname "$0")" && pwd)"
12
13
  ROOT="$(cd "$HERE/../.." && pwd)"
13
- PHASE0="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-0-init.md"
14
- PHASE3="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md"
15
- DISPATCH="$ROOT/pipeline/commands/multi-agent/refs/component-dispatch.md"
16
- ORCH_IOS="$ROOT/pipeline/skills/figma-ios/figma-to-component/SKILL.md"
14
+ PHASE0="$ROOT/pipeline/multi-agent-refs/phases/phase-0-init.md"
15
+ PHASE3="$ROOT/pipeline/multi-agent-refs/phases/phase-3-dev.md"
16
+ DISPATCH="$ROOT/pipeline/multi-agent-refs/component-dispatch.md"
17
17
 
18
18
  PASS=0
19
19
  FAIL=0
@@ -22,62 +22,47 @@ fail() { FAIL=$((FAIL+1)); echo " ✗ $1"; }
22
22
 
23
23
  [ -f "$PHASE0" ] || { echo "error: $PHASE0 missing" >&2; exit 1; }
24
24
  [ -f "$PHASE3" ] || { echo "error: $PHASE3 missing" >&2; exit 1; }
25
- [ -f "$DISPATCH" ] || { echo "error: $DISPATCH missing (WS-4 extracted contract)" >&2; exit 1; }
26
- [ -f "$ORCH_IOS" ] || { echo "error: orchestrator skill missing at $ORCH_IOS (run WS-2 import first)" >&2; exit 1; }
25
+ [ -f "$DISPATCH" ] || { echo "error: $DISPATCH missing" >&2; exit 1; }
27
26
 
28
- # Combined scan - both Phase 3 itself and the extracted contract may carry the
29
- # canonical strings. Use a function so each check reads both.
30
- has_in_phase3_or_dispatch() {
31
- grep -Fq "$1" "$PHASE3" || grep -Fq "$1" "$DISPATCH"
32
- }
33
-
34
- echo "→ 1. Phase 0 classification routes component → figma-to-component"
35
- if grep -Fq "pipeline/skills/figma-ios/figma-to-component" "$PHASE0"; then
36
- pass "Phase 0 references the new orchestrator path"
37
- else
38
- fail "Phase 0 does NOT reference pipeline/skills/figma-ios/figma-to-component"
39
- fi
40
-
41
- if grep -Fq "figma-to-swiftui" "$PHASE0"; then
42
- fail "Phase 0 still references legacy 'figma-to-swiftui' (expected 'figma-to-component')"
27
+ echo "→ 1. no bundled figma orchestrator remains in the tree"
28
+ if [ -e "$ROOT/pipeline/skills/figma-ios" ] || [ -e "$ROOT/pipeline/skills/figma-android" ] || [ -e "$ROOT/pipeline/skills/figma-common" ]; then
29
+ fail "bundled pipeline/skills/figma-* tree still present (should be plugin-only)"
43
30
  else
44
- pass "Phase 0 has no legacy figma-to-swiftui reference"
31
+ pass "no pipeline/skills/figma-* tree (component skills live in the plugin)"
45
32
  fi
46
33
 
47
34
  echo ""
48
- echo "→ 2. Phase 3 has a component dispatch section"
49
- if grep -Fq "Component tasks - delegated dispatch" "$PHASE3"; then
50
- pass "Phase 3 has 'Component tasks - delegated dispatch' section"
35
+ echo "→ 2. Phase 0 routes component tasks to the plugin component skill"
36
+ if grep -Fq "create-component" "$PHASE0"; then
37
+ pass "Phase 0 references the plugin create-component skill"
51
38
  else
52
- fail "Phase 3 missing component dispatch section"
39
+ fail "Phase 0 does NOT reference create-component"
53
40
  fi
54
-
55
- if grep -Fq 'taskType === "component"' "$DISPATCH"; then
56
- pass "dispatch contract mentions taskType guard"
41
+ if grep -Fq "figma-to-swiftui" "$PHASE0" || grep -Fq "skills/figma-ios/figma-to-component" "$PHASE0"; then
42
+ fail "Phase 0 still references a legacy/bundled figma orchestrator path"
57
43
  else
58
- fail "dispatch contract missing taskType guard"
44
+ pass "Phase 0 has no legacy/bundled figma orchestrator reference"
59
45
  fi
60
46
 
61
47
  echo ""
62
- echo "→ 3. dispatch documents platform routing (iOS + Android orchestrator selection)"
63
- if grep -Fq "figma-ios/figma-to-component" "$DISPATCH" && grep -Fq "figma-android" "$DISPATCH"; then
64
- pass "dispatch documents iOS + Android orchestrator routing"
48
+ echo "→ 3. dispatch guards taskType and resolves the plugin (dual-name)"
49
+ if grep -Fq 'taskType === "component"' "$DISPATCH"; then
50
+ pass "dispatch mentions taskType guard"
65
51
  else
66
- fail "dispatch missing platform-aware orchestrator routing"
52
+ fail "dispatch missing taskType guard"
67
53
  fi
68
-
69
- echo ""
70
- echo "→ 4. dispatch delegates subphase tracking to orchestrator"
71
- if grep -Fq "subphases[]" "$DISPATCH" || grep -Fq 'subphases\[\]' "$DISPATCH"; then
72
- pass "dispatch documents state.phases[3].subphases[] report"
54
+ if grep -Fq "create-component" "$DISPATCH" && grep -Fq "create-ui-component" "$DISPATCH"; then
55
+ pass "dispatch documents dual-name resolution (create-component / create-ui-component)"
73
56
  else
74
- fail "dispatch missing subphases[] documentation"
57
+ fail "dispatch missing dual-name plugin resolution"
75
58
  fi
76
59
 
77
- if grep -Fq "phase-tracker" "$DISPATCH"; then
78
- pass "dispatch refers to phase-tracker for subphase rendering"
60
+ echo ""
61
+ echo "→ 4. dispatch layer owns subphase state + phase-tracker"
62
+ if grep -Fq 'subphases[]' "$DISPATCH" && grep -Fq "phase-tracker" "$DISPATCH"; then
63
+ pass "dispatch documents state.phases[3].subphases[] + phase-tracker"
79
64
  else
80
- fail "dispatch missing phase-tracker reference"
65
+ fail "dispatch missing subphases[]/phase-tracker documentation"
81
66
  fi
82
67
 
83
68
  echo ""
@@ -87,7 +72,6 @@ if grep -Fq "<!-- progress-contract: applied -->" "$PHASE3"; then
87
72
  else
88
73
  fail "Phase 3 missing the adoption marker"
89
74
  fi
90
-
91
75
  if grep -Fq "<!-- progress-contract: applied -->" "$PHASE0"; then
92
76
  pass "Phase 0 carries the adoption marker"
93
77
  else
@@ -95,28 +79,33 @@ else
95
79
  fi
96
80
 
97
81
  echo ""
98
- echo "→ 6. Phase 3 emits dispatch progress lines"
99
- if grep -qE '→ dispatching figma-to-component' "$PHASE3"; then
100
- pass "Phase 3 documents '→ dispatching figma-to-component <name>' emission"
82
+ echo "→ 6. Phase 3 emits the plugin dispatch progress line"
83
+ if grep -qE '→ dispatching create-component' "$PHASE3"; then
84
+ pass "Phase 3 documents '→ dispatching create-component <name>' emission"
101
85
  else
102
86
  fail "Phase 3 missing dispatch progress line"
103
87
  fi
104
88
 
105
89
  echo ""
106
- echo "→ 7. dispatch has failure + retry semantics for orchestrator"
107
- if grep -Fq "retryCount" "$DISPATCH" && grep -qE '(resume via|resumes instead of restarting)' "$DISPATCH"; then
108
- pass "dispatch documents retryCount + orchestrator resume path"
90
+ echo "→ 7. dispatch has failure + retry semantics"
91
+ if grep -Fq "retryCount" "$DISPATCH"; then
92
+ pass "dispatch documents retryCount"
109
93
  else
110
- fail "dispatch missing retry / resume documentation"
94
+ fail "dispatch missing retryCount documentation"
111
95
  fi
112
96
 
113
97
  echo ""
114
- echo "→ 8. dispatch covers multi-repo report"
115
- if grep -Fq "state.projects[]" "$DISPATCH" || grep -Fq 'state\.projects\[\]' "$DISPATCH"; then
98
+ echo "→ 8. dispatch covers multi-repo + intentional cross-CLI divergence"
99
+ if grep -Fq 'state.projects[]' "$DISPATCH"; then
116
100
  pass "dispatch documents multi-repo report"
117
101
  else
118
102
  fail "dispatch missing multi-repo report paragraph"
119
103
  fi
104
+ if grep -Fiq "Copilot" "$DISPATCH"; then
105
+ pass "dispatch documents the Copilot cross-CLI divergence"
106
+ else
107
+ fail "dispatch missing cross-CLI divergence note"
108
+ fi
120
109
 
121
110
  echo ""
122
111
  echo "══ figma-dispatch smoke: $PASS passed, $FAIL failed ══"
@@ -62,7 +62,7 @@ else
62
62
  fi
63
63
 
64
64
  # 4. picker-contract documents the hook template + the phase-enforced caveat
65
- PC="$ROOT/pipeline/commands/multi-agent/refs/picker-contract.md"
65
+ PC="$ROOT/pipeline/multi-agent-refs/picker-contract.md"
66
66
  if grep -q "claude-hooks.json" "$PC" && grep -q "phase-enforced" "$PC"; then
67
67
  pass "picker-contract references the template + the phase-enforced gates caveat"
68
68
  else