@mmerterden/multi-agent-pipeline 11.2.0 → 11.3.1

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 (335) hide show
  1. package/CHANGELOG.md +68 -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 +39 -17
  8. package/install/copilot.mjs +22 -16
  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/lib/credential-store.sh +8 -4
  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-skills-index.mjs +3 -6
  66. package/pipeline/scripts/eval-mine-corpus.mjs +187 -0
  67. package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
  68. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  69. package/pipeline/scripts/lint-skills.mjs +26 -1
  70. package/pipeline/scripts/phase-banner.sh +2 -2
  71. package/pipeline/scripts/review-scope.mjs +94 -0
  72. package/pipeline/scripts/scan-agent-config.sh +2 -2
  73. package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
  74. package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
  75. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
  76. package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
  77. package/pipeline/scripts/smoke-channels-flow.sh +5 -5
  78. package/pipeline/scripts/smoke-clarify.sh +1 -1
  79. package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
  80. package/pipeline/scripts/smoke-community-gates.sh +1 -1
  81. package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
  82. package/pipeline/scripts/smoke-cost-summary.sh +1 -1
  83. package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
  84. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
  85. package/pipeline/scripts/smoke-dev-critic.sh +1 -1
  86. package/pipeline/scripts/smoke-diff-explain.sh +1 -1
  87. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  88. package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
  89. package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
  90. package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
  91. package/pipeline/scripts/smoke-generate-issue.sh +8 -8
  92. package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
  93. package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
  94. package/pipeline/scripts/smoke-intent-guard.sh +1 -1
  95. package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
  96. package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
  97. package/pipeline/scripts/smoke-language-axis.sh +6 -6
  98. package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
  99. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
  100. package/pipeline/scripts/smoke-model-fallback.sh +3 -3
  101. package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
  102. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  103. package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
  104. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  105. package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
  106. package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
  107. package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
  108. package/pipeline/scripts/smoke-plan-todos.sh +3 -3
  109. package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
  110. package/pipeline/scripts/smoke-prefs-language.sh +1 -1
  111. package/pipeline/scripts/smoke-progress-contract.sh +2 -2
  112. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  113. package/pipeline/scripts/smoke-repo-map.sh +2 -2
  114. package/pipeline/scripts/smoke-shadow-git.sh +1 -1
  115. package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
  116. package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
  117. package/pipeline/scripts/smoke-test-gap.sh +1 -1
  118. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  119. package/pipeline/scripts/smoke-token-preflight.sh +2 -2
  120. package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
  121. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
  122. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  123. package/pipeline/scripts/smoke-update-check.sh +1 -1
  124. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  125. package/pipeline/scripts/smoke-validator-gates.sh +1 -1
  126. package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
  127. package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
  128. package/pipeline/scripts/smoke-work-summary.sh +1 -1
  129. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  130. package/pipeline/scripts/test-integrity-gate.mjs +83 -0
  131. package/pipeline/scripts/uninstall.mjs +17 -6
  132. package/pipeline/skills/.skill-manifest.json +40 -160
  133. package/pipeline/skills/.skills-index.json +3 -373
  134. package/pipeline/skills/shared/README.md +1 -1
  135. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
  136. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
  137. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
  138. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  139. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  140. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  141. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  142. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
  143. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
  144. package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
  145. package/pipeline/skills/skills-index.md +3 -44
  146. package/pipeline/commands/multi-agent/refactor.md +0 -188
  147. package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
  148. package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
  149. package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
  150. package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
  151. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
  152. package/pipeline/scripts/smoke-figma-sync.sh +0 -149
  153. package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
  154. package/pipeline/skills/figma-android/README.md +0 -38
  155. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
  156. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
  157. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
  158. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
  159. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
  160. package/pipeline/skills/figma-common/README.md +0 -64
  161. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
  162. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
  163. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
  164. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
  165. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
  166. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
  167. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
  168. package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
  169. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
  170. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
  171. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
  172. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
  173. package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
  174. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
  175. package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
  176. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
  177. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
  178. package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
  179. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
  180. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
  181. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
  182. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
  183. package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
  184. package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
  185. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
  186. package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
  187. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
  188. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
  189. package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
  190. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
  191. package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
  192. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
  193. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
  194. package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
  195. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
  196. package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
  197. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
  198. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
  199. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
  200. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
  201. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
  202. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
  203. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
  204. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
  205. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
  206. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
  207. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
  208. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
  209. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
  210. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
  211. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
  212. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
  213. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
  214. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
  215. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
  216. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
  217. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
  218. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
  219. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
  220. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
  221. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
  222. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
  223. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
  224. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
  225. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
  226. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
  227. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
  228. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
  229. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
  230. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
  231. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
  232. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
  233. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
  234. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
  235. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
  236. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
  237. package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
  238. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
  239. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
  240. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
  241. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
  242. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
  243. package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
  244. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
  245. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
  246. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
  247. package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
  248. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
  249. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
  250. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
  251. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
  252. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
  253. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
  254. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
  255. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
  256. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
  257. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
  258. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
  259. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
  260. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
  261. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
  262. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
  263. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
  264. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
  265. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
  266. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
  267. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
  268. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
  269. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
  270. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
  271. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
  272. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
  273. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
  274. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
  275. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
  276. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
  277. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
  278. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
  279. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
  280. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
  281. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
  282. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
  283. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
  284. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
  285. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
  286. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
  287. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
  288. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
  289. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
  290. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
  291. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
  292. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
  293. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
  294. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
  295. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
  296. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
  297. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
  298. /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
  299. /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
  300. /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
  301. /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
  302. /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
  303. /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
  304. /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
  305. /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
  306. /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
  307. /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
  308. /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
  309. /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
  310. /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
  311. /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
  312. /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
  313. /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
  314. /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
  315. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
  316. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
  317. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
  318. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
  319. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
  320. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
  321. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
  322. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
  323. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
  324. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
  325. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
  326. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
  327. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
  328. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
  329. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
  330. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
  331. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
  332. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
  333. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
  334. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
  335. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, website, and remote-control."
2
+ description: "One-shot sync of the entire multi-agent ecosystem: Claude Code, Copilot CLI, pipeline repo, and website."
3
3
  argument-hint: "[release] [--platform=<macos|linux|windows>]"
4
4
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, WebFetch
5
5
  ---
@@ -8,13 +8,13 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, WebFetch
8
8
 
9
9
  **One command. Full ecosystem sync. No arguments needed.**
10
10
 
11
- When invoked, it synchronizes all 7 targets in order. It detects what changed, updates only the stale ones, and returns a result report. The host platform (macOS / Linux / Windows) is auto-detected; all dispatch commands stay platform-agnostic through `~/.claude/lib/credential-store.sh`.
11
+ When invoked, it synchronizes all targets in order. It detects what changed, updates only the stale ones, and returns a result report. The host platform (macOS / Linux / Windows) is auto-detected; all dispatch commands stay platform-agnostic through `~/.claude/lib/credential-store.sh`.
12
12
 
13
13
  **Input**: $ARGUMENTS (optional)
14
14
 
15
15
  | Arg | Meaning |
16
16
  |---|---|
17
- | (none) | Full ecosystem sync: Claude Code, Copilot CLI, pipeline repo, website, remote-control. |
17
+ | (none) | Full ecosystem sync: Claude Code, Copilot CLI, pipeline repo, website. |
18
18
  | `release` | Full sync + version bump + tag + npm publish + website deploy |
19
19
  | `--platform=<macos\|linux\|windows>` | Override automatic platform detection. For CI / cross-platform smoke. |
20
20
  | `"change description"` | Apply the description to every target at once |
@@ -23,12 +23,10 @@ When invoked, it synchronizes all 7 targets in order. It detects what changed, u
23
23
 
24
24
  | # | Target | Path | Direction |
25
25
  |---|-------|-----|-----|
26
- | 0 | Figma source (deprecated) | `prefs.global.figmaSource.path` | skip (see memory `feedback_figma_source_deprecated`) |
27
26
  | 1 | Claude Code (source of truth) | `~/.claude/commands/multi-agent.md` + `~/.claude/commands/multi-agent/` + `~/.claude/agents/` + `~/.claude/scripts/` + `~/.claude/lib/` | source |
28
27
  | 2 | Copilot CLI | `~/.copilot/copilot-instructions.md` + `~/.copilot/skills/` | <- from Claude |
29
28
  | 3 | multi-agent-pipeline repo | `~/multi-agent-pipeline/pipeline/` | <- from Claude (genericized) |
30
29
  | 4 | Website | `{owner}/{website-host}` | <- version + features |
31
- | 5 | Remote Control | `{owner}/remote-control` | <- pipeline references |
32
30
 
33
31
  ## Platform Support (macOS / Linux / Windows)
34
32
 
@@ -55,7 +53,6 @@ The sync skill must run on all three platforms. Commands go through the platform
55
53
  Run every step automatically:
56
54
 
57
55
  ```
58
- Step 0: FIGMA_SYNC SKIP (deprecated - feedback_figma_source_deprecated)
59
56
  Step 1: PLATFORM Detect macOS / Linux / Windows (Git Bash / WSL); export PLATFORM env
60
57
  Step 1.5: DETECT Compare timestamps, find stale targets
61
58
  Step 2: COPILOT Claude Code -> Copilot CLI (instructions + 36 sub-command skills)
@@ -63,38 +60,10 @@ Step 3: REPO Claude Code -> pipeline repo (genericized, personal data scr
63
60
  Step 3c: PLUGINS pipeline shared/external -> multi-agent-plugins marketplace (rebuild knowledge/,
64
61
  bump changed plugins' patch version, commit + push the plugins repo)
65
62
  Step 4: WEBSITE Version + phase/model counts -> {website-host} (i18n + projects.ts)
66
- Step 5: REMOTE Pipeline references -> remote-control README
67
- Step 6: Commit Commit + push all changed repos
68
- Step 7: Report Summary: synced targets, platform, changed files, deploy status
63
+ Step 5: Commit Commit + push all changed repos
64
+ Step 6: Report Summary: synced targets, platform, changed files, deploy status
69
65
  ```
70
66
 
71
- ### Step 0 - Figma source sync (opt-in)
72
-
73
- If `prefs.global.figmaSource.path` is set, run a plan-driven figma sync BEFORE any other step:
74
-
75
- ```bash
76
- # 1. Once plan:
77
- bash "$REPO_ROOT/pipeline/scripts/sync-figma-source.sh" --plan
78
-
79
- # 2. Review the plan (.last-figma-sync-plan.json), confirm overlay skips,
80
- # and approve the figma-ios vs figma-common routing for new upstream skills.
81
-
82
- # 3. If approved, apply:
83
- bash "$REPO_ROOT/pipeline/scripts/sync-figma-source.sh"
84
- ```
85
-
86
- - **Plan-driven flow**: `--plan` once rebuilds the "what would change" view -
87
- upstream skill → local name (post-rename) → target tree (figma-ios vs
88
- figma-common) → overlay-skip status. Writes `.last-figma-sync-plan.json`.
89
- Apply mode (no flag) executes the plan.
90
- - Script is idempotent - incremental, uses the `lastCommit` watermark.
91
- - Updates the figma-ios / figma-common skills (transform + placeholder).
92
- - Files marked `local-overlay: true` are preserved (they appear as `overlaySkip: true` in the plan).
93
- - figma-android/ trees are NOT touched (no upstream source today).
94
- - Appends a `### Sync YYYY-MM-DD (@ sha)` block to CHANGELOG.md.
95
- - The output of this step is committed in Step 3 (REPO).
96
- - If `figmaSource.path` is unset, the step is silently skipped.
97
-
98
67
  If nothing is stale → report "All targets up to date" and stop.
99
68
 
100
69
  ## Special inputs
@@ -142,6 +111,7 @@ If nothing is stale → report "All targets up to date" and stop.
142
111
  ```
143
112
  ~/.claude/commands/multi-agent.md -> pipeline/commands/multi-agent.md
144
113
  ~/.claude/commands/multi-agent/ -> pipeline/commands/multi-agent/
114
+ ~/.claude/multi-agent-refs/ -> pipeline/multi-agent-refs/ (refs + pickers, non-command)
145
115
  ~/.claude/commands/sim-test.md -> pipeline/commands/sim-test.md
146
116
  ~/.claude/agents/*.md -> pipeline/agents/
147
117
  ```
@@ -150,6 +120,16 @@ If nothing is stale → report "All targets up to date" and stop.
150
120
  - `~/.claude/CLAUDE.md`, `~/.claude/rules/`, `~/.claude/knowledge/`
151
121
  - `~/.claude/scripts/` - EXCEPT `pre-commit-check.sh`, `agent-guard.sh`, `agent-guard.py`, and `build-stack-plugins.mjs` (generic, synced)
152
122
  - `~/.claude/settings.json`
123
+ - **Any `~/.claude/commands/multi-agent/*.md` whose frontmatter has `local-only: true`** — these are user/repo-specific alias wrappers that delegate to a private marketplace plugin (e.g. corporate `ai-ios-engineering-toolkit` skills exposed as `multi-agent:<name>`). Syncing them would leak the private plugin/skill names into the public pipeline. Filter before copy: skip every source file containing `local-only: true`, and after copy assert none reached `pipeline/commands/`.
124
+ ```bash
125
+ # backstop: no local-only wrapper may exist in the synced target
126
+ grep -rl "^local-only: true" ~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
127
+ && { echo "ABORT: local-only wrapper leaked into pipeline/commands"; exit 1; } || true
128
+ # backstop: no corporate marketplace/skill reference in the synced tree
129
+ grep -rniE "ai-ios-engineering-toolkit:(create-ui-component|evolve-ui-component|component-wiki|figma-setup|resource-utility)" \
130
+ ~/multi-agent-pipeline/pipeline/commands/ 2>/dev/null \
131
+ && { echo "ABORT: corporate reference leaked into pipeline/commands"; exit 1; } || true
132
+ ```
153
133
 
154
134
  6. **Cross-platform smoke gate** (final step of the REPO sync, before push):
155
135
  ```bash
@@ -233,23 +213,6 @@ git push origin main # Vercel auto-deploy
233
213
 
234
214
  ---
235
215
 
236
- ## Remote Control Sync (Step 5)
237
-
238
- ```bash
239
- REMOTE_DIR="$HOME/remote-control"
240
- [ ! -d "$REMOTE_DIR" ] && gh repo clone {owner}/remote-control "$REMOTE_DIR"
241
- cd "$REMOTE_DIR" && git pull origin main
242
- ```
243
-
244
- | File | What to sync |
245
- |-------|--------------|
246
- | `README.md` | Pipeline feature description |
247
- | `src/index.ts` | Help text / chip labels (if any) |
248
-
249
- Update only if the pipeline's public-facing features changed.
250
-
251
- ---
252
-
253
216
  ## Release Flow
254
217
 
255
218
  When invoked with the `release` argument:
@@ -262,9 +225,8 @@ When invoked with the `release` argument:
262
225
  5. Commit + TAG git commit + git tag v{VERSION}
263
226
  6. PUSH git push --tags -> release.yml auto-publish
264
227
  7. WEBSITE Version + features -> {website-host}
265
- 8. REMOTE Update remote-control references
266
- 9. COPILOT Copilot CLI instructions + skills sync
267
- 10. Report Summary: version, touched repos, deploy status
228
+ 8. COPILOT Copilot CLI instructions + skills sync
229
+ 9. Report Summary: version, touched repos, deploy status
268
230
  ```
269
231
 
270
232
  ---
@@ -275,7 +237,7 @@ This runs on the Claude <-> Copilot axis — the two CLIs the pipeline supports
275
237
 
276
238
  | Claude Code | Copilot CLI |
277
239
  |-------------|-------------|
278
- | `~/.claude/commands/multi-agent/{cmd}.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
240
+ | `~/.claude/commands/multi-agent/{cmd}/SKILL.md` | `~/.copilot/skills/multi-agent-{cmd}/SKILL.md` |
279
241
 
280
242
  **36 commands are synced** (canonical inventory - must match `cross-cli-contract.md` section 1; drift = contract violation):
281
243
 
@@ -287,7 +249,7 @@ local-autopilot, log, manual-test, prune-logs, purge, refactor, resume, review,
287
249
  scan, search, setup, stack, status, sync, test, update
288
250
  ```
289
251
 
290
- **NOT synced**: `refs/*` - lazy-load references, Claude Code specific
252
+ **NOT synced**: `$HOME/.claude/multi-agent-refs/*` - lazy-load references, Claude Code specific
291
253
 
292
254
  **Claude -> Copilot**: add SKILL.md frontmatter (`name`, `description`, `user-invocable: true`, `argument-hint`)
293
255
  **Copilot -> Claude**: simplify the frontmatter (`description` + `allowed-tools`), add `$ARGUMENTS`
@@ -105,9 +105,11 @@ do_get() {
105
105
  val=$(secret-tool lookup service "$key" 2>/dev/null || true)
106
106
  ;;
107
107
  windows)
108
+ # Escape single quotes for PowerShell single-quoted strings ('' = literal ').
109
+ local key_esc="${key//\'/\'\'}"
108
110
  val=$(ps_run "
109
111
  \$ErrorActionPreference='SilentlyContinue'
110
- \$c = Get-StoredCredential -Target '$key'
112
+ \$c = Get-StoredCredential -Target '$key_esc'
111
113
  if (\$c) { \$c.GetNetworkCredential().Password }
112
114
  " 2>/dev/null | tr -d '\r' || true)
113
115
  ;;
@@ -137,11 +139,13 @@ do_set() {
137
139
  printf '%s' "$val" | secret-tool store --label="$key" service "$key" >/dev/null
138
140
  ;;
139
141
  windows)
142
+ # Escape single quotes for PowerShell single-quoted strings ('' = literal ').
143
+ local key_esc="${key//\'/\'\'}" val_esc="${val//\'/\'\'}"
140
144
  # CredentialManager module: New-StoredCredential
141
145
  ps_run "
142
146
  \$ErrorActionPreference='Stop'
143
- \$pwd = ConvertTo-SecureString '$val' -AsPlainText -Force
144
- New-StoredCredential -Target '$key' -UserName '${USER:-${USERNAME:-claude}}' -SecurePassword \$pwd -Persist LocalMachine | Out-Null
147
+ \$pwd = ConvertTo-SecureString '$val_esc' -AsPlainText -Force
148
+ New-StoredCredential -Target '$key_esc' -UserName '${USER:-${USERNAME:-claude}}' -SecurePassword \$pwd -Persist LocalMachine | Out-Null
145
149
  " >/dev/null
146
150
  ;;
147
151
  *)
@@ -159,7 +163,7 @@ do_delete() {
159
163
  case "$PLATFORM" in
160
164
  macos) security delete-generic-password -s "$key" >/dev/null 2>&1 || true ;;
161
165
  linux) secret-tool clear service "$key" >/dev/null 2>&1 || true ;;
162
- windows) ps_run "Remove-StoredCredential -Target '$key' -ErrorAction SilentlyContinue" >/dev/null 2>&1 || true ;;
166
+ windows) local key_esc="${key//\'/\'\'}"; ps_run "Remove-StoredCredential -Target '$key_esc' -ErrorAction SilentlyContinue" >/dev/null 2>&1 || true ;;
163
167
  esac
164
168
  }
165
169
 
@@ -14,7 +14,7 @@ First step of every `multi-agent` flow **that touches a remote provider**.
14
14
  > repos, account-picker is bypassed and the state file's `accountId` is left
15
15
  > `null` with `tokens={}`. Phases 6/7 read these as "local-only" signals.
16
16
 
17
- > **Language**: Per `refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
17
+ > **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
18
18
 
19
19
  ## Steps
20
20
 
@@ -28,7 +28,7 @@ First step of every `multi-agent` flow **that touches a remote provider**.
28
28
  - Bitbucket-based flow → `--providers bitbucket`
29
29
 
30
30
  3. **Picker UI** - show via AskUserQuestion (single-select):
31
- - Breadcrumb (per `refs/picker-contract.md` Step narration): before the question, print the narrator line `<localized: "Step 1/N: account selection">` (`N` = total Phase 0 steps for the active flow).
31
+ - Breadcrumb (per `$HOME/.claude/multi-agent-refs/picker-contract.md` Step narration): before the question, print the narrator line `<localized: "Step 1/N: account selection">` (`N` = total Phase 0 steps for the active flow).
32
32
  - `header`: "Account" (English chip)
33
33
  - `question`: `<localized: "Which account should this run use?">`
34
34
  - one option per account: `label` = account label (English), `description` = providers in `outputLanguage`
@@ -6,7 +6,7 @@ description: "Internal - dev context (extra repos) picker for multi-agent."
6
6
 
7
7
  Selects extra repos the pipeline may touch beyond the primary repo(s) - typically submodules (e.g. SDKs vendored inside an app repo) or sibling libraries. Each candidate is enriched with a `canPush` flag so the picker can pre-select repos that the active account is allowed to edit, and surface read-only ones as advisory context the pipeline will not modify.
8
8
 
9
- > **Language**: Per `refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira/Wiki payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
9
+ > **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira/Wiki payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
10
10
 
11
11
  ## Steps
12
12
 
@@ -34,7 +34,7 @@ Selects extra repos the pipeline may touch beyond the primary repo(s) - typica
34
34
  - `editable` - `canPush=true` → picker options, pre-selected
35
35
  - `readonly` - `canPush=false` → printed as an advisory note; not selectable
36
36
 
37
- 3. **AskUserQuestion (multiSelect=true)**. Print the breadcrumb narrator line first (per `refs/picker-contract.md` Step narration): `<localized: "Step N/N: extra dev repos">`.
37
+ 3. **AskUserQuestion (multiSelect=true)**. Print the breadcrumb narrator line first (per `$HOME/.claude/multi-agent-refs/picker-contract.md` Step narration): `<localized: "Step N/N: extra dev repos">`.
38
38
  ```
39
39
  [N/N] Extra editable dev repos (multi):
40
40
  [x] <submodule-a> (suggestion: from .gitmodules)
@@ -6,7 +6,7 @@ description: "Internal - multi-select repo picker for multi-agent."
6
6
 
7
7
  Used by `picker-issue`, `picker-jira`, `gh-num`, and `freetext` flows.
8
8
 
9
- > **Language**: Per `refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira/Wiki payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
9
+ > **Language**: Per `$HOME/.claude/multi-agent-refs/rules.md` Language Application matrix - `AskUserQuestion.label` and `header` stay English (UI button + chip contract); `question` and `description` follow `outputLanguage`. Commit/PR/Jira/Wiki payloads: subject + branch names + code identifiers stay English; body text follows `outputLanguage`.
10
10
 
11
11
  ## Steps
12
12
 
@@ -30,7 +30,7 @@ Used by `picker-issue`, `picker-jira`, `gh-num`, and `freetext` flows.
30
30
  Local rows expose `localPath` (filesystem path) and a redacted `remoteUrl`
31
31
  (credentials stripped at cache time).
32
32
 
33
- 2. **Show list** via AskUserQuestion (multiSelect=true). Print the breadcrumb narrator line first (per `refs/picker-contract.md` Step narration): `<localized: "Step 2/N: repo selection">`.
33
+ 2. **Show list** via AskUserQuestion (multiSelect=true). Print the breadcrumb narrator line first (per `$HOME/.claude/multi-agent-refs/picker-contract.md` Step narration): `<localized: "Step 2/N: repo selection">`.
34
34
  ```
35
35
  [2/N] Select repos (multi):
36
36
  [ ] <repo-a> (github)
@@ -1,6 +1,6 @@
1
1
  ## Android/Kotlin Component Generation Guide
2
2
 
3
- > **MUST: Figma MCP-first (BLOCKING).** If the task references any Figma frame (URL, node ID, or "from the design"), the Dev phase MUST call `mcp__claude_ai_Figma__get_design_context` for every frame BEFORE writing a single Composable line. Use the `CodeConnectSnippet` component name verbatim - no sound-alike substitutions. Authentication failure is not a skip path. Full rule, trigger conditions, and gate failure modes: `pipeline/rules/figma-pipeline.md` "MUST: Figma MCP-first (BLOCKING)". Phase wiring: `refs/phases/phase-3-dev.md` "MUST: Figma MCP-first (BLOCKING pre-step)".
3
+ > **MUST: Figma MCP-first (BLOCKING).** If the task references any Figma frame (URL, node ID, or "from the design"), the Dev phase MUST call `mcp__claude_ai_Figma__get_design_context` for every frame BEFORE writing a single Composable line. Use the `CodeConnectSnippet` component name verbatim - no sound-alike substitutions. Authentication failure is not a skip path. Full rule, trigger conditions, and gate failure modes: `pipeline/rules/figma-pipeline.md` "MUST: Figma MCP-first (BLOCKING)". Phase wiring: `$HOME/.claude/multi-agent-refs/phases/phase-3-dev.md` "MUST: Figma MCP-first (BLOCKING pre-step)".
4
4
 
5
5
  When the task involves creating an Android UI component (Jetpack Compose), follow this architecture.
6
6
 
@@ -116,7 +116,7 @@ The dispatch summary line includes the comment URL with `?focusedCommentId=...`
116
116
 
117
117
  ## Wiki → Jira auto-link triad
118
118
 
119
- When the **Wiki** adapter writes pages on the same run AND `prefs.global.wikiToJiraComment === true`, the Wiki adapter also posts a humanizer-passed Jira comment summarizing wiki pages (component name + variant count + wiki URL). That secondary comment is independent of this adapter - both can coexist on the same issue. Full contract: `refs/issue-jira-triad.md`.
119
+ When the **Wiki** adapter writes pages on the same run AND `prefs.global.wikiToJiraComment === true`, the Wiki adapter also posts a humanizer-passed Jira comment summarizing wiki pages (component name + variant count + wiki URL). That secondary comment is independent of this adapter - both can coexist on the same issue. Full contract: `$HOME/.claude/multi-agent-refs/issue-jira-triad.md`.
120
120
 
121
121
  ## Hard rules (must not regress)
122
122
 
@@ -1,6 +1,6 @@
1
1
  # Channel adapter - Wiki
2
2
 
3
- > Detailed contract for the `wiki` channel of `/multi-agent:channels`. Split out of `channels.md` in v8.0.0; the parent doc keeps a one-line summary and a link here. Full Case A/Case B handling lives in `refs/wiki-capture.md`.
3
+ > Detailed contract for the `wiki` channel of `/multi-agent:channels`. Split out of `channels.md` in v8.0.0; the parent doc keeps a one-line summary and a link here. Full Case A/Case B handling lives in `$HOME/.claude/multi-agent-refs/wiki-capture.md`.
4
4
 
5
5
  The Wiki adapter generates component documentation pages - main page, platform sub-pages (iOS / Android), screenshots, and index updates. It is the only channel gated by **task type** (`component` only) and the only one that writes to a separate repo (the wiki repo configured in `figma-config.json`).
6
6
 
@@ -11,7 +11,7 @@ state.taskType === "component" AND figmaConfig.wiki.enabled === true
11
11
  ```
12
12
 
13
13
  If both are met → **Case A** (preconditions met) - proceed to scope multi-select.
14
- Otherwise → **Case B** (preconditions missing) - show the menu from `refs/wiki-capture.md` (setup / skip / disable / manual-note).
14
+ Otherwise → **Case B** (preconditions missing) - show the menu from `$HOME/.claude/multi-agent-refs/wiki-capture.md` (setup / skip / disable / manual-note).
15
15
 
16
16
  In multi-repo tasks, wiki scope is the **primary** repo's `figma-config.wikiRepo` (single repo). Extras are not written to wiki - their PRs link back via the `## Related PRs` block injected by the PR adapter.
17
17
 
@@ -34,17 +34,17 @@ The selected scope routes to a platform skill:
34
34
 
35
35
  | Platform | Skill | Notes |
36
36
  |---|---|---|
37
- | iOS / SwiftUI | `pipeline/skills/figma-ios/figma-component-wiki` | Reads `Configuration` + `+Modifiers` from the source, captures Figma screenshots via MCP / REST, runs Snapshot tests for iOS dark/light/RTL. |
38
- | Android / Compose | `pipeline/skills/figma-android/figma-component-wiki` | Reads Compose composables + previews, runs Paparazzi screenshots if available, otherwise generates from layout inspector. |
39
- | Generic | `pipeline/skills/figma-common/figma-component-wiki` | Used when `state.platform` is unknown (fallback path - typically a flag). |
37
+ | iOS / SwiftUI | `ai-ios-engineering-toolkit:figma-component-wiki` | Reads `Configuration` + `+Modifiers` from the source, captures Figma screenshots via MCP / REST, runs Snapshot tests for iOS dark/light/RTL. |
38
+ | Android / Compose | `ai-android-engineering-toolkit:figma-component-wiki` | Reads Compose composables + previews, runs Paparazzi screenshots if available, otherwise generates from layout inspector. |
39
+ | Generic | `ai-ios-engineering-toolkit:figma-component-wiki` (fallback) | Used when `state.platform` is unknown (fallback path - typically a flag). |
40
40
 
41
- Full per-skill contract: `refs/wiki-capture.md`.
41
+ Full per-skill contract: `$HOME/.claude/multi-agent-refs/wiki-capture.md`.
42
42
 
43
43
  ## Wiki → Jira auto-link triad
44
44
 
45
45
  When the adapter writes pages **AND** `state.jiraId` is set **AND** `prefs.global.wikiToJiraComment === true`, the adapter posts a humanizer-passed summary as an additional Jira comment (component name + variant count + wiki URL).
46
46
 
47
- This comment is **independent** of the main `jira` channel comment - both can coexist on the same issue. Full triad contract: `refs/issue-jira-triad.md`.
47
+ This comment is **independent** of the main `jira` channel comment - both can coexist on the same issue. Full triad contract: `$HOME/.claude/multi-agent-refs/issue-jira-triad.md`.
48
48
 
49
49
  ## Wiki adapter modes (figma-config.wiki.mode)
50
50
 
@@ -0,0 +1,92 @@
1
+ # Component Dispatch (Phase 3 short-circuit)
2
+
3
+ > **TLDR** - When `taskType === "component"` (Figma URL in task description or instruction-driven figma workflow), multi-agent Phase 3 **does not run the TDD loop**. It delegates the entire phase to the enabled `ai-<platform>-engineering-toolkit` **marketplace plugin's** component skill (`create-component`, falling back to `create-ui-component`) via the Skill tool. Implementation lives in the plugin; multi-agent's job is classification, dispatch, and state report. The pipeline no longer bundles its own `figma-to-component` orchestrator - component skills live in one place, the plugin marketplace.
4
+
5
+ This doc is referenced from `$HOME/.claude/multi-agent-refs/phases/phase-3-dev.md`. Keeping it separate lets `phase-3-dev.md` remain tight (it's already the largest phase doc) and gives the orchestrator-report contract a stable URL for both Claude-side and Copilot-side implementations.
6
+
7
+ ## Entry conditions
8
+
9
+ Phase 3 checks, in order:
10
+
11
+ 1. `agent-state.json` has `taskType: "component"` (set by Phase 0 Step 7).
12
+ 2. `agent-state.json` has a non-null `figmaUrl`.
13
+
14
+ Either missing → log the anomaly to `agent-log.md` ("component dispatch expected but state incomplete"), fall through to the standard TDD path. Never silently skip the Figma work.
15
+
16
+ ## Plugin skill resolution
17
+
18
+ ```
19
+ project.platform → component skill (enabled marketplace plugin, Claude Code)
20
+ ──────────────────────────────────────────────────────────────────────────────
21
+ ios → Skill: ai-ios-engineering-toolkit:create-component
22
+ (fallback: ai-ios-engineering-toolkit:create-ui-component)
23
+ android → Skill: ai-android-engineering-toolkit:create-component
24
+ (fallback: ai-android-engineering-toolkit:create-ui-component)
25
+ web, multi-* → HALT with clear error (no web target)
26
+ ```
27
+
28
+ **Dual-name resolution.** The public (`multi-agent-plugins`) and a corporate/private marketplace named the same skill differently - `create-component` vs `create-ui-component`. Dispatch tries `create-component` first; if it is not available in the current repo, tries `create-ui-component`. (Same dual-name rule applies when `taskType` maps to evolve → `evolve-component`/`evolve-ui-component`, or fix → `fix-bug`.)
29
+
30
+ If **neither** resolves, the platform's `ai-<platform>-engineering-toolkit` plugin is not enabled in this repo. **Halt with a user-visible error**: "component task requires the ai-<platform>-engineering-toolkit plugin enabled in this repo (`.claude/settings.local.json`)." Do not silently fall back to TDD - a component task ran through the bugfix path would produce wrong artefacts.
31
+
32
+ ## Dispatch call
33
+
34
+ Emit `→ dispatching create-component <componentName>` via the progress contract, then invoke the resolved plugin skill via the **Skill tool** with:
35
+
36
+ - `figmaUrl` - primary argument (the plugin skill's `<figma-url>`)
37
+ - the component name + the analysis Section 6 (Bileşen Envanteri) row + Section 13.1 conventions as context (the plugin skill does not re-read the pipeline's analysis doc on its own - pass what it needs)
38
+ - `mode` - `"dev"` vs `"full"` communicated so the plugin can elide tests/wiki on `--dev`
39
+
40
+ Plugin skills are user-facing lifecycle skills; they do **not** accept an `agentState` path and do **not** write `agent-state.json`. State tracking therefore moves to the dispatch layer (next section).
41
+
42
+ ## Subphase contract (dispatch-layer owned)
43
+
44
+ Because the plugin skill does not write pipeline state, **multi-agent's dispatch layer owns `state.phases["3"].subphases[]`**, not the skill. On dispatch, seed one coarse component-build subphase; on return, finalize it:
45
+
46
+ ```json
47
+ {
48
+ "id": "3.component",
49
+ "name": "component-build (plugin: create-component)",
50
+ "status": "done",
51
+ "startedAt": "2026-04-16T18:12:02Z",
52
+ "endedAt": "2026-04-16T18:13:47Z",
53
+ "buildStatus": "green",
54
+ "testStatus": "green"
55
+ }
56
+ ```
57
+
58
+ This is the accepted behavioral change from the old bundled orchestrator: subphase granularity is coarse (one component-build row) rather than the former 3.0-3.8 breakdown, because the plugin reports at its own granularity. If the plugin emits structured progress, the dispatch layer MAY map it to finer subphase rows, but coarse is the contract floor. Multi-agent's `phase-tracker` reads the array unchanged.
59
+
60
+ ## Multi-repo report
61
+
62
+ When multi-repo mode is active (`state.projects.length > 1`), the dispatch layer passes `state.projects[]` to the plugin skill and sequences writes across the repo graph:
63
+
64
+ - Tokens, accessibility metadata, testing identifiers, localisation keys → `repos.common`
65
+ - View / Configuration / Modifiers / Preview → `repos.components`
66
+ - Wiki markdown → `repos.wiki` (if `wiki.mode === submodule` or `separate-repo`) or `repos.components/.wiki/components/` (if `wiki.mode === in-repo`)
67
+
68
+ Multi-agent does **not** split the component task into per-repo Phase 3 runs - the dispatch layer sequences the plugin invocation so token writes to `common` precede component reads in `components`. If the plugin skill is not repo-graph aware, dispatch runs it against `repos.components` and performs the `common` token/key writes itself around the call.
69
+
70
+ ## Failure + resume
71
+
72
+ On failure (the plugin skill returns an unrecoverable build/test error, or the dispatch hits retry cap):
73
+
74
+ 1. The dispatch layer persists `{error, buildLog, testLog}` to `state.phases["3"].errors[]`.
75
+ 2. Multi-agent increments `state.phases["3"].retryCount`.
76
+ 3. Retry re-invokes the plugin skill (it is idempotent on an existing component; it reconciles rather than duplicating). There is no bundled `phase-<N>` resume anymore.
77
+ 4. Hard kill at `retryCount === 3` → surface the errors to the user, halt Phase 3. Do not loop indefinitely.
78
+
79
+ ## `--dev` mode behaviour
80
+
81
+ When multi-agent is invoked with `--dev` (fast path: Init → Dev → Commit → Report), the dispatch layer passes `mode: "dev"` so the plugin skill can elide unit tests and wiki (structural + snapshot still required; wiki deferred to Phase 7). If the plugin does not honor a `mode` hint, dispatch simply skips the post-build wiki step itself.
82
+
83
+ Phase 4 reviewer-skipping is **not** Phase 3's concern - Phase 4 decides based on `mode: "dev"` itself.
84
+
85
+ ## Cross-CLI behaviour (intentional divergence)
86
+
87
+ Component dispatch is **no longer byte-identical across CLIs** and that is by design (see `cross-cli-contract.md` §1.1):
88
+
89
+ - **Claude Code**: dispatches to the enabled `ai-<platform>-engineering-toolkit` marketplace plugin via the Skill tool (this doc).
90
+ - **Copilot CLI**: has no plugin loader; it continues to use its standalone `~/.copilot/skills/figma-*` skill copies (frozen fallback). Copilot's resolution + progress lines follow those local skills.
91
+
92
+ What still MUST match across CLIs: the `taskType === "component"` classification, the `state.phases["3"].subphases[]` shape the dispatch layer writes, and `--dev` elision semantics. Figma-skill *inventory* parity is no longer enforced. `smoke-cross-cli-behavior.sh` asserts only the classification + state-shape axis for components.
@@ -28,65 +28,13 @@ Categories:
28
28
 
29
29
  > **Inventory drift is a contract violation.** Adding a slash command under `pipeline/commands/multi-agent/` without updating this list + its counterpart Copilot dir (`pipeline/skills/shared/core/multi-agent-<cmd>/`) is a merge blocker. `smoke-commands-skills-parity.sh` enforces command ↔ skill directory parity; `smoke-cross-cli-behavior.sh` enforces behavior parity. This doc is the authoritative command list - bump the count + table together.
30
30
 
31
- ### 1.1 Figma component subphase skills
31
+ ### 1.1 Figma / component work (plugin-based on Claude Code; NOT parity-enforced)
32
32
 
33
- In addition to the 36 top-level multi-agent commands, the figma-to-component pipeline ships platform-specific skills that multi-agent dispatches from Phase 3 (see `refs/component-dispatch.md`). The structure is **platform-parallel iOS + Android with a shared common pool**:
33
+ Component work is **no longer a bundled pipeline skill set**. Claude Code dispatches `taskType === "component"` to the enabled `ai-<platform>-engineering-toolkit` **marketplace plugin** (`create-component`, fallback `create-ui-component`) via the Skill tool - full contract in `$HOME/.claude/multi-agent-refs/component-dispatch.md`. The pipeline no longer ships `pipeline/skills/figma-ios|figma-android|figma-common`; the pipeline-unique component skills (iterate loops, performance harness, validate/review, commit, adapters, wiki) were absorbed into the `ai-ios-engineering-toolkit` plugin so component skills live in one place.
34
34
 
35
- | Location | Skill count | Purpose |
36
- |---|---|---|
37
- | `pipeline/skills/figma-ios/` | 5 | iOS-only Phase 3 sub-skills (SwiftUI-specific) |
38
- | `pipeline/skills/figma-android/` | 5 | Android-only Phase 3 sub-skills (Jetpack Compose-specific) |
39
- | `pipeline/skills/figma-common/` | 31 | Platform-agnostic helpers (iterate / commit / wiki setup / MCP auth / performance harness / cross-cutting integration adapters / etc.) |
40
-
41
- Both Claude Code and Copilot CLI MUST expose every skill with identical argument shape, identical progress-line emission, and identical state writes. Inventory divergence (skill exists on one side but not the other) is a contract violation and blocks merge.
42
-
43
- **iOS and Android parallel set** (same 5 skill names under each platform dir):
44
-
45
- | Skill | Scope | iOS path | Android path |
46
- |---|---|---|---|
47
- | `figma-to-component` | Orchestrator (3.0-3.8) | `pipeline/skills/figma-ios/figma-to-component/` | `pipeline/skills/figma-android/figma-to-component/` |
48
- | `figma-component-implement` | 3.4 code gen | `pipeline/skills/figma-ios/figma-component-implement/` | `pipeline/skills/figma-android/figma-component-implement/` |
49
- | `figma-component-test` | 3.5 tests | `pipeline/skills/figma-ios/figma-component-test/` | `pipeline/skills/figma-android/figma-component-test/` |
50
- | `figma-component-code-connect` | 3.6 mapping publish | `pipeline/skills/figma-ios/figma-component-code-connect/` | `pipeline/skills/figma-android/figma-component-code-connect/` |
51
- | `figma-component-wiki` | 3.7 wiki (4 adapters) | `pipeline/skills/figma-ios/figma-component-wiki/` | `pipeline/skills/figma-android/figma-component-wiki/` |
52
-
53
- **Common pool** (all 31 skills under `pipeline/skills/figma-common/` - platform-agnostic, dispatched regardless of iOS/Android):
35
+ **Intentional cross-CLI divergence.** Copilot CLI has no marketplace-plugin loader, so it retains its own standalone `~/.copilot/skills/figma-*` copies as a frozen fallback. Component/figma dispatch is therefore **not** byte-identical across CLIs, and figma-skill *inventory* parity is **no longer enforced** - this is a deliberate exception to the parity rule, not drift.
54
36
 
55
- | Skill | Scope |
56
- |---|---|
57
- | `figma-component-start` | Issue → branches |
58
- | `figma-component-confluence-sync` | 7b confluence XHTML |
59
- | `figma-component-status-update` | Confluence dashboard refresh |
60
- | `figma-commit` | 14-item review + PR |
61
- | `figma-iteration-commit` | Iteration/develop commit |
62
- | `figma-issue` | Issue + Jira auto-create |
63
- | `figma-iterate` | Auto batch loop |
64
- | `figma-cli-iterate` | CLI iterate (all phases) |
65
- | `figma-cli-lean-iterate` | CLI iterate (skip test+wiki) |
66
- | `figma-cli-iterate-mend` | Re-implement discarded |
67
- | `figma-cli-skip` | Mark skipped |
68
- | `figma-fix` | Targeted bug fix |
69
- | `figma-mend` | Re-implement from scratch |
70
- | `figma-review` | Interactive review |
71
- | `figma-validate` | Pre-impl validation |
72
- | `figma-setup` | Env wizard |
73
- | `figma-remote-mcp-auth` | Figma MCP OAuth |
74
- | `figma-ui-patterns` | Pattern index |
75
- | `figma-utility` | Figma data fetch |
76
- | `figma-skip` | Skip + update Confluence |
77
- | `figma-form-integration` | Form protocol adapter |
78
- | `figma-price-integration` | Price protocol adapter |
79
- | `figma-navigation` | Navigation pattern adapter (native-first / `ui.navigationSystem`) |
80
- | `figma-overlays` | Overlay pattern adapter (native-first / `ui.overlaySystem`) |
81
- | `figma-bottom-sheets` | Bottom-sheet/detent adapter (native-first / `ui.sheetSystem`) |
82
- | `figma-evolve-component` | Reconcile drift + additive extend (human-gated) |
83
- | `performance-start` | Perf-tracked component start |
84
- | `performance-swiftui` | Perf-optimized pipeline |
85
- | `performance-tour` | Batch produce components |
86
- | `performance-review-next` | Interactive batch review |
87
- | `performance-iteration-commit-all` | Batch validate + push all |
88
-
89
- Total figma skill count: **41** (5 iOS + 5 Android + 31 Common).
37
+ What still MUST match across CLIs for component tasks: the `taskType === "component"` classification, the `state.phases["3"].subphases[]` shape the dispatch layer writes, and `--dev` elision semantics. Resolution/routing is Claude-plugin vs Copilot-local-copy by design.
90
38
 
91
39
  ### 1.2 Store-compliance skills
92
40
 
@@ -99,24 +47,9 @@ Two parallel shared/core skills under `pipeline/skills/shared/core/` wrap extern
99
47
 
100
48
  Both skills are wired to 4 consumers: `/multi-agent:test "store-ready"` (primary), Phase 4 Security Auditor (`pipeline/agents/security-auditor.md`), `/multi-agent:review` + SKILL.md counterpart, `/multi-agent:channels` PR-body auto-augmentation. Contract enforced by `smoke-compliance-skills.sh` (46 assertions).
101
49
 
102
- ### 1.2 Figma-skill routing from multi-agent
103
-
104
- Multi-agent Phase 3 resolves the orchestrator via `figmaConfig.project.platform`:
105
-
106
- - `"ios"` → `pipeline/skills/figma-ios/figma-to-component/SKILL.md`
107
- - `"android"` → `pipeline/skills/figma-android/figma-to-component/SKILL.md`
108
- - anything else → halt with a clear error
109
-
110
- Resolution logic MUST be byte-identical across CLIs. The full routing contract lives in `refs/component-dispatch.md`.
111
-
112
- ### 1.3 Figma skill frontmatter MUST carry (platform-specific skills only)
113
-
114
- - `name` matching the directory name
115
- - `status: wip-v5` (or `stable`/`deprecated` once released)
116
- - `sourced-from: upstream/<orig>` or `sourced-from: derived-from/<peer-path>` for platform-specific peers
117
- - `platform: ios` or `platform: android` when the skill is platform-specific
50
+ ### 1.3 Figma-skill routing from multi-agent (superseded)
118
51
 
119
- Enforced by `smoke-figma-skill-import.sh` (iOS), `smoke-figma-android-parity.sh` (Android), `smoke-cross-cli-behavior.sh` (cross-platform inventory parity).
52
+ Superseded by §1.1: Claude Code resolves component dispatch to the marketplace plugin (dual-name `create-component`/`create-ui-component`; full contract in `$HOME/.claude/multi-agent-refs/component-dispatch.md`); Copilot CLI uses its local `~/.copilot/skills/figma-*` copies. No shared filesystem-path routing table or figma-skill frontmatter/inventory parity remains under enforcement.
120
53
 
121
54
  ---
122
55
 
@@ -182,7 +115,7 @@ The top-level orchestrator has two deliberately different shapes on the two CLIs
182
115
 
183
116
  | Surface | File | Shape | Why |
184
117
  |---|---|---|---|
185
- | Claude Code (colon-form) | `pipeline/commands/multi-agent.md` | ~300 lines - thin dispatcher that routes to `refs/phases/phase-N-*.md` on demand | Claude Code supports lazy-loaded reference files (`@refs/phases/...`), so only the active phase's docs enter the context window. Saves tokens. |
118
+ | Claude Code (colon-form) | `pipeline/commands/multi-agent.md` | ~300 lines - thin dispatcher that routes to `$HOME/.claude/multi-agent-refs/phases/phase-N-*.md` on demand | Claude Code supports lazy-loaded reference files (`@refs/phases/...`), so only the active phase's docs enter the context window. Saves tokens. |
186
119
  | Copilot CLI (dash-form) | `pipeline/skills/shared/core/multi-agent/SKILL.md` | ~830 lines - full inline orchestrator with all 8 phase specs embedded | Copilot CLI loads the whole SKILL.md into context once the skill is dispatched; it doesn't have an equivalent of Claude's ref-file loading pattern. Embedding keeps behavior identical without relying on a feature Copilot lacks. |
187
120
 
188
121
  **What must stay identical** (byte-level) across the two files:
@@ -293,7 +226,7 @@ Modifier flags are orthogonal and compose:
293
226
 
294
227
  ## 7. Platform Guards (macOS / Linux / WSL)
295
228
 
296
- Commands invoked via Copilot CLI may run on Linux or WSL. Claude Code currently macOS-only. Shell code in `pipeline/skills/figma-common/` command files must be portable.
229
+ Commands invoked via Copilot CLI may run on Linux or WSL. Claude Code currently macOS-only. Shell code in `pipeline/skills/shared/core/` command files and in `pipeline/lib` / `pipeline/scripts` must be portable.
297
230
 
298
231
  For Keychain I/O the canonical path is **`~/.claude/lib/credential-store.sh`** (or `~/.copilot/lib/credential-store.sh` on Copilot installs). The shell driver detects platform internally and auto-delegates to `keychain.py` (Python helper, macOS / Linux) or PowerShell `CredentialManager` (Windows). Call sites stay platform-agnostic - no per-OS branching needed.
299
232
 
@@ -304,7 +237,7 @@ For Keychain I/O the canonical path is **`~/.claude/lib/credential-store.sh`** (
304
237
  | Clipboard read | - (still needs a per-platform branch - there is no helper) | `pbpaste` (macOS) · `wl-paste` (Wayland) · `xclip -selection clipboard -o` (X11) |
305
238
  | Clipboard clear | - | `pbcopy < /dev/null` (macOS) · `printf '' \| wl-copy` (Wayland) · `printf '' \| xclip -selection clipboard` (X11) |
306
239
 
307
- For clipboard ops, callers still gate with `if command -v pbpaste >/dev/null; then ...; elif command -v wl-paste ...; elif command -v xclip ...; fi`. A future `pipeline/lib/clipboard.sh` could absorb that pattern; until it exists, keep the inline guard in figma skill bash blocks.
240
+ For clipboard ops, callers still gate with `if command -v pbpaste >/dev/null; then ...; elif command -v wl-paste ...; elif command -v xclip ...; fi`. A future `pipeline/lib/clipboard.sh` could absorb that pattern; until it exists, keep the inline guard in skill bash blocks.
308
241
 
309
242
  ---
310
243
 
@@ -316,7 +249,7 @@ This contract is validated by:
316
249
  - `smoke-commands-skills-parity.sh` (50 assertions) - enforces colon-form command ↔ dash-form skill directory parity
317
250
  - `smoke-compliance-skills.sh` (45 assertions) - enforces store-compliance skill catalog + 4 consumer wiring
318
251
  - `smoke-personal-data.sh` - extended in 0.5.5 to treat deprecated placeholders (`{github-username}`, `{your-website}`, `{website-repo}`) as leaks; adds `mmerterden` to public-handle blocklist for generic docs
319
- - `pre-push-check.sh` - runs both smoke tests before any push that touches `pipeline/skills/figma-common/` commands
252
+ - `pre-push-check.sh` - runs the cross-CLI + personal-data smoke tests before any push that touches `pipeline/skills/shared/core/` commands
320
253
  - `sync.md` (Section 2 REPO step) - genericization lookup table MUST match Section 2 of this contract
321
254
 
322
255
  ---
@@ -38,4 +38,4 @@ Adds one Sonnet call plus up to `maxFindings` single-test runs (and build-lock c
38
38
 
39
39
  ## Reference
40
40
 
41
- Wiring: `refs/phases/phase-4-review.md` Step 3.7. Schema: `pipeline/schemas/triage-output.schema.json` v3.2.0 (`$defs.verification`). Evidence gate: `pipeline/scripts/evidence-gate.mjs`. Prefs: `prefs.global.verifyByTest` in `pipeline/schemas/prefs.schema.json`.
41
+ Wiring: `$HOME/.claude/multi-agent-refs/phases/phase-4-review.md` Step 3.7. Schema: `pipeline/schemas/triage-output.schema.json` v3.2.0 (`$defs.verification`). Evidence gate: `pipeline/scripts/evidence-gate.mjs`. Prefs: `prefs.global.verifyByTest` in `pipeline/schemas/prefs.schema.json`.
@@ -11,7 +11,7 @@ Consumed by `generate.md`. This ref is never invoked directly.
11
11
  - **Standard template is the baseline.** The description structure comes from the type's standard template (see [7/12]), not from a mined heading set. Mining informs summary prefix, labels, components, priority norm, sprint placement, and test-scenario style - never replaces the standard section skeleton.
12
12
  - **Auto-sizing.** A conditional section renders only when its trigger is present. No empty placeholder headings - if there is nothing to put in a conditional section, it does not appear.
13
13
  - **Issue content language follows `prefs.global.outputLanguage`.** Summary and description are written in the user's output language (intentional exception to the "external payloads stay English" default - the issue is authored FOR the user's team). Code identifiers, file paths, and URLs stay verbatim. AskUserQuestion `question`/`description` also follow `outputLanguage`; `label`/`header` stay English.
14
- - **UTF-8 verbatim POST path** (same as `refs/channels/jira.md`): description body goes to a file, `jq -n --rawfile` builds the payload, `curl --data-binary @file` ships it. Never round-trip through `unicode_escape`/`latin-1`, never hand-roll a re-encoding helper. Jira wiki markup (`h3.` headings, `[text|url]` links), real newlines, no HTML entities.
14
+ - **UTF-8 verbatim POST path** (same as `$HOME/.claude/multi-agent-refs/channels/jira.md`): description body goes to a file, `jq -n --rawfile` builds the payload, `curl --data-binary @file` ships it. Never round-trip through `unicode_escape`/`latin-1`, never hand-roll a re-encoding helper. Jira wiki markup (`h3.` headings, `[text|url]` links), real newlines, no HTML entities.
15
15
  - **Humanizer pass** on the description body after composition, before the preview render.
16
16
  - **Read-only until approval.** Steps 1-9 perform only GET requests. The first write of any kind is the `POST /rest/api/2/issue` in step [10/12].
17
17
 
@@ -65,7 +65,7 @@ TOKEN=$(~/.claude/lib/credential-store.sh get "$ACCOUNT_JIRA_TOKEN_KEY")
65
65
 
66
66
  ### [2/12] Resolve project key
67
67
 
68
- Fallback chain (same as `refs/issue-jira-triad.md` Create path):
68
+ Fallback chain (same as `$HOME/.claude/multi-agent-refs/issue-jira-triad.md` Create path):
69
69
  1. `figmaConfig.jira.projectKey` (per-project config, when running inside a configured repo)
70
70
  2. `prefs.global.defaultJiraKey`
71
71
  3. Fetch and ask:
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **TLDR** - When a GitHub issue triggers the pipeline and has no Jira ID, the `autoJiraFromGithubIssue` policy decides whether to auto-create a Jira task (and patch the GitHub issue body with the new Jira link). Phase 7 then posts a humanizer'd wiki-content summary back as a Jira comment, closing the loop. Autopilot treats `ask` as `always`.
4
4
 
5
- This doc is referenced from `refs/phases/phase-0-init.md` Step 1 (GitHub issue input) and `refs/phases/phase-7-report.md` Step 2 (component wiki). Keeps the phase docs tight and gives the triad contract a stable home.
5
+ This doc is referenced from `$HOME/.claude/multi-agent-refs/phases/phase-0-init.md` Step 1 (GitHub issue input) and `$HOME/.claude/multi-agent-refs/phases/phase-7-report.md` Step 2 (component wiki). Keeps the phase docs tight and gives the triad contract a stable home.
6
6
 
7
7
  ## The triad at a glance
8
8
 
@@ -21,7 +21,7 @@ When a token resolves but the service rejects it (401 / 403), do not silently sk
21
21
 
22
22
  The question asks a *choice*; the replacement value still flows through the clipboard, never chat. `smoke-no-token-prompt.sh` greps for value-prompts (`enter token`, `paste token`, `API key:`) - decision labels like `Regenerate` / `Skip and continue` do not trip it.
23
23
 
24
- Expiry is also checked **proactively at init**: Phase 0 Step 0.7 (`refs/phases/phase-0-init.md`) probes every token the run will need with one cheap call each (cached via `global.serviceStatus`, TTL 300s) and runs this same decision at init instead of waiting for the first mid-run 401. The mid-run 401 path stays as the safety net.
24
+ Expiry is also checked **proactively at init**: Phase 0 Step 0.7 (`$HOME/.claude/multi-agent-refs/phases/phase-0-init.md`) probes every token the run will need with one cheap call each (cached via `global.serviceStatus`, TTL 300s) and runs this same decision at init instead of waiting for the first mid-run 401. The mid-run 401 path stays as the safety net.
25
25
 
26
26
  #### Figma MCP token lifecycle (critical)
27
27
 
@@ -75,7 +75,7 @@ Verdict: unverified (2 reviewers)
75
75
 
76
76
  ## Handoff - end of Phase {N} ({name}) - {ISO timestamp}
77
77
 
78
- (v10.8.0, appended chronologically by the phase-boundary checkpoint - one block per phase transition, the LATEST block is authoritative. Written by the orchestrator from state it already holds; no LLM call, ~15 lines max. `resume.md` Step 3 and post-`/compact` re-grounding read this block FIRST. Format spec: `refs/phases/operations.md`.)
78
+ (v10.8.0, appended chronologically by the phase-boundary checkpoint - one block per phase transition, the LATEST block is authoritative. Written by the orchestrator from state it already holds; no LLM call, ~15 lines max. `resume.md` Step 3 and post-`/compact` re-grounding read this block FIRST. Format spec: `$HOME/.claude/multi-agent-refs/phases/operations.md`.)
79
79
 
80
80
  - Done: {up to 3 bullets of completed outcomes}
81
81
  - Remaining: {ordered list of remaining phases / sub-steps}