@mmerterden/multi-agent-pipeline 11.1.0 → 11.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +2 -2
  3. package/docs/FIGMA_PIPELINE.md +12 -25
  4. package/docs/architecture.md +3 -5
  5. package/docs/features.md +8 -8
  6. package/install/_common.mjs +9 -1
  7. package/install/_dev-only-files.mjs +0 -6
  8. package/install/claude.mjs +45 -18
  9. package/install/copilot.mjs +16 -14
  10. package/install/templates/copilot-instructions.md +3 -3
  11. package/package.json +1 -1
  12. package/pipeline/commands/{multi-agent.md → multi-agent/SKILL.md} +39 -39
  13. package/pipeline/commands/multi-agent/{analysis.md → analysis/SKILL.md} +18 -18
  14. package/pipeline/commands/multi-agent/{analysis-resolve.md → analysis-resolve/SKILL.md} +4 -4
  15. package/pipeline/commands/multi-agent/{autopilot.md → autopilot/SKILL.md} +4 -4
  16. package/pipeline/commands/multi-agent/{build-optimize.md → build-optimize/SKILL.md} +1 -1
  17. package/pipeline/commands/multi-agent/{channels.md → channels/SKILL.md} +12 -12
  18. package/pipeline/commands/multi-agent/{dev.md → dev/SKILL.md} +4 -4
  19. package/pipeline/commands/multi-agent/{dev-autopilot.md → dev-autopilot/SKILL.md} +4 -4
  20. package/pipeline/commands/multi-agent/{dev-local.md → dev-local/SKILL.md} +5 -5
  21. package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md} +4 -4
  22. package/pipeline/commands/multi-agent/{finish.md → finish/SKILL.md} +6 -6
  23. package/pipeline/commands/multi-agent/{generate.md → generate/SKILL.md} +3 -3
  24. package/pipeline/commands/multi-agent/{help.md → help/SKILL.md} +4 -4
  25. package/pipeline/commands/multi-agent/{local.md → local/SKILL.md} +5 -5
  26. package/pipeline/commands/multi-agent/{local-autopilot.md → local-autopilot/SKILL.md} +5 -5
  27. package/pipeline/commands/multi-agent/{manual-test.md → manual-test/SKILL.md} +1 -1
  28. package/pipeline/commands/multi-agent/refactor/SKILL.md +257 -0
  29. package/pipeline/commands/multi-agent/{resume.md → resume/SKILL.md} +1 -1
  30. package/pipeline/commands/multi-agent/{review.md → review/SKILL.md} +5 -5
  31. package/pipeline/commands/multi-agent/{setup.md → setup/SKILL.md} +1 -1
  32. package/pipeline/commands/multi-agent/{sync.md → sync/SKILL.md} +20 -58
  33. package/pipeline/{commands/multi-agent → multi-agent-refs}/_account-picker.md +2 -2
  34. package/pipeline/{commands/multi-agent → multi-agent-refs}/_dev-context.md +2 -2
  35. package/pipeline/{commands/multi-agent → multi-agent-refs}/_repo-picker.md +2 -2
  36. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/android-guide.md +1 -1
  37. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/jira.md +1 -1
  38. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/wiki.md +7 -7
  39. package/pipeline/multi-agent-refs/component-dispatch.md +92 -0
  40. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/cross-cli-contract.md +10 -77
  41. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/verify-by-test.md +1 -1
  42. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/generate-issue.md +2 -2
  43. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/issue-jira-triad.md +1 -1
  44. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/keychain.md +1 -1
  45. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/log-format.md +1 -1
  46. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/modes.md +2 -2
  47. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/operations.md +1 -1
  48. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-0-init.md +10 -10
  49. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-1-analysis.md +6 -6
  50. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-2-planning.md +3 -3
  51. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-3-dev.md +10 -10
  52. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-4-review.md +8 -8
  53. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-5-test.md +3 -3
  54. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-6-commit.md +4 -4
  55. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-7-report.md +6 -6
  56. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases.md +12 -12
  57. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/progress-contract.md +4 -4
  58. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/swiftui-guide.md +1 -1
  59. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/tracker-contract.md +3 -3
  60. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/wiki-capture.md +4 -4
  61. package/pipeline/preferences-template.json +17 -1
  62. package/pipeline/rules/figma-pipeline.md +2 -2
  63. package/pipeline/schemas/prefs.schema.json +0 -34
  64. package/pipeline/scripts/README.md +1 -3
  65. package/pipeline/scripts/build-stack-plugins.mjs +1 -1
  66. package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
  67. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  68. package/pipeline/scripts/phase-banner.sh +2 -2
  69. package/pipeline/scripts/review-scope.mjs +94 -0
  70. package/pipeline/scripts/scan-agent-config.sh +2 -2
  71. package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
  72. package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
  73. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
  74. package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
  75. package/pipeline/scripts/smoke-channels-flow.sh +5 -5
  76. package/pipeline/scripts/smoke-clarify.sh +1 -1
  77. package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
  78. package/pipeline/scripts/smoke-community-gates.sh +1 -1
  79. package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
  80. package/pipeline/scripts/smoke-cost-summary.sh +1 -1
  81. package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
  82. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
  83. package/pipeline/scripts/smoke-dev-critic.sh +1 -1
  84. package/pipeline/scripts/smoke-diff-explain.sh +1 -1
  85. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  86. package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
  87. package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
  88. package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
  89. package/pipeline/scripts/smoke-generate-issue.sh +8 -8
  90. package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
  91. package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
  92. package/pipeline/scripts/smoke-intent-guard.sh +1 -1
  93. package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
  94. package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
  95. package/pipeline/scripts/smoke-language-axis.sh +6 -6
  96. package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
  97. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
  98. package/pipeline/scripts/smoke-model-fallback.sh +3 -3
  99. package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
  100. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  101. package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
  102. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  103. package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
  104. package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
  105. package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
  106. package/pipeline/scripts/smoke-plan-todos.sh +3 -3
  107. package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
  108. package/pipeline/scripts/smoke-prefs-language.sh +1 -1
  109. package/pipeline/scripts/smoke-progress-contract.sh +2 -2
  110. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  111. package/pipeline/scripts/smoke-repo-map.sh +2 -2
  112. package/pipeline/scripts/smoke-shadow-git.sh +1 -1
  113. package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
  114. package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
  115. package/pipeline/scripts/smoke-test-gap.sh +1 -1
  116. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  117. package/pipeline/scripts/smoke-token-preflight.sh +2 -2
  118. package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
  119. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
  120. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  121. package/pipeline/scripts/smoke-update-check.sh +1 -1
  122. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  123. package/pipeline/scripts/smoke-validator-gates.sh +1 -1
  124. package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
  125. package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
  126. package/pipeline/scripts/smoke-work-summary.sh +1 -1
  127. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  128. package/pipeline/scripts/test-integrity-gate.mjs +83 -0
  129. package/pipeline/scripts/uninstall.mjs +2 -2
  130. package/pipeline/skills/.skill-manifest.json +40 -160
  131. package/pipeline/skills/.skills-index.json +21 -372
  132. package/pipeline/skills/shared/README.md +1 -1
  133. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
  134. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
  135. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
  136. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  137. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  138. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  139. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  140. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
  141. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
  142. package/pipeline/skills/shared/external/backlog/BACKLOG.md +32 -0
  143. package/pipeline/skills/shared/external/backlog/SKILL.md +49 -0
  144. package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
  145. package/pipeline/skills/shared/external/skill-creator/SKILL.md +48 -0
  146. package/pipeline/skills/shared/external/skill-creator/audit.md +59 -0
  147. package/pipeline/skills/shared/external/skill-creator/checklist.md +32 -0
  148. package/pipeline/skills/shared/external/skill-creator/examples.md +65 -0
  149. package/pipeline/skills/shared/external/skill-creator/label-check.md +43 -0
  150. package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +83 -0
  151. package/pipeline/skills/shared/external/skill-creator/template.md +67 -0
  152. package/pipeline/skills/skills-index.md +4 -43
  153. package/pipeline/commands/multi-agent/refactor.md +0 -188
  154. package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
  155. package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
  156. package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
  157. package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
  158. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
  159. package/pipeline/scripts/smoke-figma-sync.sh +0 -149
  160. package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
  161. package/pipeline/skills/figma-android/README.md +0 -38
  162. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
  163. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
  164. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
  165. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
  166. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
  167. package/pipeline/skills/figma-common/README.md +0 -64
  168. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
  169. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
  170. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
  171. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
  172. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
  173. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
  174. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
  175. package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
  176. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
  177. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
  178. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
  179. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
  180. package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
  181. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
  182. package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
  183. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
  184. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
  185. package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
  186. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
  187. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
  188. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
  189. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
  190. package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
  191. package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
  192. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
  193. package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
  194. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
  195. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
  196. package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
  197. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
  198. package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
  199. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
  200. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
  201. package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
  202. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
  203. package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
  204. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
  205. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
  206. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
  207. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
  208. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
  209. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
  210. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
  211. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
  212. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
  213. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
  214. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
  215. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
  216. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
  217. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
  218. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
  219. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
  220. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
  221. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
  222. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
  223. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
  224. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
  225. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
  226. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
  227. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
  228. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
  229. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
  230. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
  231. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
  232. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
  233. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
  234. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
  235. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
  236. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
  237. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
  238. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
  239. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
  240. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
  241. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
  242. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
  243. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
  244. package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
  245. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
  246. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
  247. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
  248. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
  249. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
  250. package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
  251. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
  252. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
  253. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
  254. package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
  255. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
  256. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
  257. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
  258. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
  259. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
  260. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
  261. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
  262. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
  263. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
  264. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
  265. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
  266. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
  267. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
  268. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
  269. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
  270. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
  271. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
  272. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
  273. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
  274. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
  275. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
  276. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
  277. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
  278. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
  279. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
  280. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
  281. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
  282. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
  283. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
  284. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
  285. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
  286. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
  287. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
  288. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
  289. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
  290. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
  291. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
  292. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
  293. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
  294. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
  295. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
  296. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
  297. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
  298. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
  299. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
  300. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
  301. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
  302. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
  303. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
  304. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
  305. /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
  306. /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
  307. /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
  308. /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
  309. /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
  310. /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
  311. /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
  312. /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
  313. /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
  314. /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
  315. /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
  316. /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
  317. /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
  318. /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
  319. /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
  320. /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
  321. /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
  322. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
  323. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
  324. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
  325. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
  326. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
  327. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
  328. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
  329. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
  330. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
  331. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
  332. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
  333. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
  334. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
  335. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
  336. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
  337. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
  338. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
  339. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
  340. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
  341. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
  342. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
@@ -1,503 +0,0 @@
1
- ---
2
- name: figma-cli-iterate-mend
3
- description: Runs the complete Figma-to-SwiftUI mend pipeline for a single issue whose component already exists under `Discarded/` and must be re-implemented from scratch: pick → start → pre-flight (locate + catalog old files) →.
4
- ---
5
-
6
- # /figma-cli-iterate-mend - Full Mend Pipeline Orchestrator for CLI
7
-
8
- ## Purpose
9
-
10
- Runs the complete Figma-to-SwiftUI **mend** pipeline for a single issue whose component already exists under `Discarded/` and must be re-implemented from scratch: pick → start → pre-flight (locate + catalog old files) → implement (phases 0-7 with selective old-file reference injection) → cleanup old files → commit. Returns a structured `ORCHESTRATOR_RESULT` block that the CLI orchestrator can parse.
11
-
12
- This skill IS the mend orchestrator. It is the union of:
13
- - `/figma-cli-iterate` - leaf-phase-only subagent dispatch, structured result output
14
- - `/figma-mend` - discarded-component location, old-file cataloging, per-phase reference injection, post-implementation cleanup
15
-
16
- **All leaf phase instructions, scripts, and references come from `.instructions/figma/figma-to-swiftui/`**. Nothing is duplicated. The only phases that differ from `/figma-cli-iterate` are:
17
-
18
- 1. A pre-flight step before Phase 0 that locates and catalogs the discarded files.
19
- 2. Every AI subagent dispatch prompt receives a `## Complementary Reference (Old Implementation)` section with phase-specific old file paths.
20
- 3. A cleanup step after Phase 7 that deletes the old files.
21
-
22
- ## Forbidden Dispatches
23
-
24
- **NEVER dispatch these as subagents - they are orchestrators that would try to dispatch further:**
25
-
26
- - `/figma-mend` (entire mend pipeline)
27
- - `/figma-to-swiftui` (entire regular pipeline)
28
- - `/figma-to-swift-ui-implement` (Phases 0-4)
29
- - `/figma-to-swift-ui-test` (Phase 5)
30
- - `/figma-to-swift-ui-code-connect` (Phase 6)
31
- - `/figma-to-swift-ui-wiki` (Phase 7)
32
- - `/figma-iteration-commit`
33
- - `/figma-cli-iterate`
34
-
35
- Instead, dispatch the **leaf phase instruction files** directly via the Agent tool.
36
-
37
- ## Parameters
38
-
39
- ```
40
- /figma-cli-iterate-mend #230 ← mend the component referenced by issue #230
41
- /figma-cli-iterate-mend ← auto-pick the next available mend issue
42
- ```
43
-
44
- The issue must reference a Figma node whose component exists under `Discarded/`. The pre-flight step locates it; if not found, the skill HALTs and asks the user to verify the Discarded/ catalog or fall back to `/figma-cli-iterate` for a fresh implementation.
45
-
46
- ---
47
-
48
- ## Constants
49
-
50
- ```
51
- GH_REPO = {github.componentsRepo}
52
- REPO_ROOT = git repo root (auto-detect)
53
- COMMON = ${REPO_ROOT}/{repos.common.path}
54
- UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
55
- WIKI = ${REPO_ROOT}/{repos.wiki.path}
56
- DISCARDED = ${UICOMPONENTS}/Sources/UIComponents/Discarded
57
- TESTS = ${UICOMPONENTS}/Tests/UIComponentsTests
58
- ARTIFACTS = ${REPO_ROOT}/{repos.artifactsRepo}/ImplementationArtifacts
59
- PHASE_DIR = .instructions/figma/figma-to-swiftui/phases
60
- REF_DIR = .instructions/figma/figma-to-swiftui/reference
61
- SCRIPT_DIR = .instructions/figma/figma-to-swiftui/scripts
62
- ```
63
-
64
- ---
65
-
66
- ## STEP 0 - Pick Issue
67
-
68
- Same logic as `/figma-iterate` STEP 0. Read `.instructions/figma/figma-iterate/SKILL.md` STEP 0 for details.
69
-
70
- Extract from issue body: `componentName`, `figmaUrl`, `nodeId`, `nodeIdDash` (dash form, e.g. `517-834`), `jiraKey`, `registryName`, `figmaPage`, `acceptanceCriteria`.
71
-
72
- If the issue does NOT have a `mend` label or the body does not reference `Discarded/`, you may still proceed - the PRE-FLIGHT step below is the authoritative check for whether this is a mend candidate.
73
-
74
- ---
75
-
76
- ## STEP 1 - Start
77
-
78
- Run inline (not as a skill). Read `.instructions/figma/figma-to-swift-ui-start/SKILL.md` for the full procedure:
79
-
80
- 1. Parse issue → extract metadata
81
- 2. Fetch latest → checkout `develop` (main stays on develop, NO feature branch), `iteration/develop` (submodules)
82
- 3. Create feature branches on **submodules only** (common, uicomponents)
83
- 4. Registry lookup → `componentLocation`, `artifactPath`
84
- 5. Save specs artifact if acceptance criteria exist
85
- 6. Assign (GitHub + Jira)
86
- 7. Update Projects V2 status
87
-
88
- ---
89
-
90
- ## STEP 2 - Pre-Flight: Locate and Catalog Old Component
91
-
92
- **Run entirely in the orchestrator - no subagents.** Uses `Grep`, `Glob`, and `Bash` directly.
93
-
94
- ### PRE-1: LOCATE_OLD_COMPONENT
95
-
96
- Search for the old component under `${DISCARDED}` using these strategies in order. The first match wins.
97
-
98
- ```bash
99
- # 1. By node ID (colon form) in any FIGMA.md under Discarded/
100
- grep -rl "{nodeId}" --include="FIGMA.md" "${DISCARDED}/"
101
-
102
- # 2. By node ID (dash form) in any FIGMA.md under Discarded/
103
- grep -rl "{nodeIdDash}" --include="FIGMA.md" "${DISCARDED}/"
104
-
105
- # 3. By node ID (colon form) in any .figma.swift under Discarded/
106
- grep -rl "{nodeId}" --include="*.figma.swift" "${DISCARDED}/"
107
-
108
- # 4. By component name directory match (if the issue provides one)
109
- find "${DISCARDED}/" -type d -name "{componentName}"
110
- ```
111
-
112
- If no match → HALT:
113
-
114
- ```
115
- STATUS: HALT
116
- PHASE: pre-flight
117
- GATE: LOCATE_OLD_COMPONENT
118
- REASON: No discarded component found for node {nodeId} under ${DISCARDED}/.
119
- USER_ACTION_REQUIRED: Verify the component exists under Discarded/, or run /figma-cli-iterate instead for a fresh implementation.
120
- ```
121
-
122
- Extract:
123
- - `oldComponentPath` = full path to the old component directory (the directory that contains its `{Name}.swift`, `FIGMA.md`, etc.)
124
- - `oldComponentName` = basename of `oldComponentPath`
125
-
126
- ### PRE-2: CATALOG_OLD_FILES
127
-
128
- Walk the filesystem and collect every file that belongs to the old component. Include not only the source directory but also its tests and artifacts.
129
-
130
- ```bash
131
- # Sources
132
- find "{oldComponentPath}" -type f -name "*.swift"
133
-
134
- # Tests (search by old component name across all test categories)
135
- find "${TESTS}/Snapshot" -type d -name "{oldComponentName}"
136
- find "${TESTS}/ViewInspector" -type d -name "{oldComponentName}"
137
- find "${TESTS}" -type f -name "*{oldComponentName}*"
138
-
139
- # Artifacts
140
- find "${ARTIFACTS}/Figma/Components" -type d -name "{oldComponentName}"
141
- find "${ARTIFACTS}/Confluence" -type d -name "{oldComponentName}"
142
- ```
143
-
144
- Build `oldFilesCatalog` as an in-memory structure:
145
-
146
- | Key | Value |
147
- |---|---|
148
- | `sources` | list of `.swift` paths under `{oldComponentPath}` excluding `.figma.swift` |
149
- | `codeConnect` | list of `.figma.swift` paths under `{oldComponentPath}` |
150
- | `documentation` | path to `{oldComponentPath}/FIGMA.md` if present, else null |
151
- | `modifiers` | list of `*+Modifiers.swift` paths under `{oldComponentPath}` |
152
- | `tests.snapshot` | snapshot test directory path if present, else null |
153
- | `tests.viewInspector` | viewInspector test directory path if present, else null |
154
- | `tests.unit` | list of unit test file paths if present |
155
- | `artifacts` | old `ImplementationArtifacts/Figma/Components/.../{oldComponentName}` directory if present |
156
- | `confluence` | old `ImplementationArtifacts/Confluence/.../{oldComponentName}` directory if present |
157
-
158
- ### PRE-3: RESOLVE_NAMES
159
-
160
- - `oldComponentName` - from PRE-1 (directory basename under `Discarded/`)
161
- - `newComponentName` - from the issue's `Component Name (PascalCase)` field, or from Phase 0 registry lookup if the issue does not specify
162
- - `nameChanged` - `true` if `oldComponentName != newComponentName`, else `false`
163
-
164
- ### PRE-4: DEFERRED_CONTEXT_PERSIST
165
-
166
- Hold `oldFilesCatalog` in memory. Write `{artifactPath}/mend-context.json` immediately after Phase 0 creates `{artifactPath}/`. See STEP 3 Phase 0 subsection below.
167
-
168
- ---
169
-
170
- ## STEP 3 - Implement (Phases 0-7)
171
-
172
- This is the core orchestration. Run each phase by dispatching leaf subagents and scripts - **same phase dispatch table as `/figma-cli-iterate`**.
173
-
174
- ### Spec Injection + Mend Injection
175
-
176
- Before dispatching any Phase 4+ subagent, check if `{artifactPath}/pass0/specs.md` exists. If it does, inject the specs as standard gates per `/figma-cli-iterate`'s rules.
177
-
178
- Additionally, **every AI subagent dispatch prompt for phases that should see old files** (see the Selective File Injection Table below) MUST append a `## Complementary Reference (Old Implementation)` section containing the relevant old file paths.
179
-
180
- ### Dispatch Prompt Template (mend variant)
181
-
182
- For each leaf subagent eligible for old-file injection:
183
-
184
- ```
185
- You are executing {Phase Name} of the Figma-to-SwiftUI workflow.
186
-
187
- ## Context
188
- - Component: {newComponentName}
189
- - File Key: {fileKey}
190
- - Node ID: {nodeId}
191
- - Artifact Path: {artifactPath}
192
- - Component Location: {componentLocation}
193
- - Mode: MEND (re-implementing a discarded component)
194
-
195
- ## CRITICAL SPEC GATES (only if specs exist)
196
- {Concrete requirements extracted from specs - phrased as mandatory instructions.}
197
-
198
- ## Tool Restrictions
199
- {from dispatch table}
200
-
201
- ## Your Instructions
202
- Read and STRICTLY FOLLOW your phase instructions gate-by-gate from this file:
203
- {PHASE_DIR}/{instruction file}
204
-
205
- Read the return protocol from:
206
- {REF_DIR}/halt-return-protocol.md
207
-
208
- ## Reference Files
209
- {relevant reference files from the read-order table in figma-to-swiftui/SKILL.md}
210
-
211
- ## Previous Phase Artifacts
212
- {artifact paths in read order - compact first}
213
-
214
- ## Complementary Reference (Old Implementation)
215
-
216
- This component is being RE-IMPLEMENTED from Discarded/.
217
- Old source files (read as reference - do NOT copy verbatim):
218
- {list of relevant old file paths for this phase, from oldFilesCatalog via the Selective File Injection Table}
219
-
220
- Preserve domain-specific patterns from the old implementation if architecturally sound:
221
- - Animations, transitions, gesture handling
222
- - UI refinements (feathered edges, gradients, shadows)
223
- - Domain logic (list handling, data transformation, state management)
224
- - Variant mappings that were manually refined
225
-
226
- IMPORTANT: The new implementation MUST follow current workflow standards
227
- (macros, Configuration pattern, design tokens, naming rules). Use old code
228
- ONLY as reference for domain logic - not as a template for architecture.
229
- If the old file violates a current rule (e.g. a concrete {Name}Item struct),
230
- do NOT copy the violation forward.
231
- ```
232
-
233
- ### Phase Dispatch Table
234
-
235
- Same as `/figma-cli-iterate`:
236
-
237
- | Phase | Instruction | Model | Subagent? |
238
- |-------|-------------|-------|-----------|
239
- | 0 | `phase-0-init.md` | opus | Yes (leaf) |
240
- | 1 | `${SCRIPT_DIR}/phase1-gather.py` | N/A | No (script) |
241
- | 2A | `phase-2a-testing-identifiers.md` | opus | Yes (leaf) |
242
- | 2B | `phase-2b-localization.md` | sonnet | Yes (leaf) |
243
- | 2C | `phase-2c-accessibility.md` | opus | Yes (leaf) |
244
- | 2D | `phase-2d-analytics.md` | sonnet | Yes (leaf) |
245
- | 3A | `phase-3a-location.md` | sonnet | Yes (leaf) |
246
- | 3C | `phase-3c-nested.md` | sonnet | Yes (leaf) |
247
- | 3H | `phase-3h-variant-config.md` | opus | Yes (leaf) |
248
- | 3D | `phase-3d-patterns.md` | opus | Yes (leaf) |
249
- | 4A | `phase-4a-configuration.md` | opus | Yes (leaf, COMPLEX only) |
250
- | 4B | `phase-4b-view.md` | opus | Yes (leaf) |
251
- | 4C | `phase-4c-documentation.md` | sonnet | Yes (leaf) |
252
- | 4D | `phase-4d-preview.md` | sonnet | Yes (leaf) |
253
- | 4E | `phase-4e-modifiers.md` | sonnet | Yes (leaf, COMPLEX only) |
254
- | 5A | `phase-5a-viewinspector.md` | sonnet | Yes (leaf) |
255
- | 5B | `phase-5b-snapshot.md` | sonnet | Yes (leaf) |
256
- | 5C | `phase-5c-unit.md` | sonnet | Yes (leaf, if applicable) |
257
- | 6 | `phase-6-code-connect.md` | opus | Yes (leaf) |
258
- | 7 | `phase-7a-wiki-generate.md` | sonnet | Yes (leaf) |
259
-
260
- ### Selective File Injection Table
261
-
262
- Each phase receives ONLY the relevant old files to keep context tight. Reference only, not a blanket copy.
263
-
264
- | Phase | Old files injected |
265
- |-------|--------------------|
266
- | 0 | None (standard init, but mend-context.json is written here) |
267
- | 1 | None (automated script - no subagent prompt) |
268
- | 2A | `oldFilesCatalog.documentation`, `oldFilesCatalog.sources` |
269
- | 2B | `oldFilesCatalog.documentation` |
270
- | 2C | `oldFilesCatalog.documentation`, `oldFilesCatalog.sources` |
271
- | 2D | `oldFilesCatalog.documentation` |
272
- | 3A | None |
273
- | 3C | `oldFilesCatalog.sources` |
274
- | 3H | `oldFilesCatalog.sources` (to see variant/Item classification in the old code) |
275
- | 3D | `oldFilesCatalog.sources`, `oldFilesCatalog.modifiers` |
276
- | 4A | Old Configuration and domain model files from `oldFilesCatalog.sources` |
277
- | 4B | ALL `oldFilesCatalog.sources` (primary reference phase) |
278
- | 4C | `oldFilesCatalog.documentation` |
279
- | 4D | `oldFilesCatalog.sources` |
280
- | 4E | `oldFilesCatalog.modifiers` |
281
- | 5A | `oldFilesCatalog.tests.viewInspector` (files if present) |
282
- | 5B | `oldFilesCatalog.tests.snapshot` (files if present) |
283
- | 5C | `oldFilesCatalog.tests.unit` (files if present) |
284
- | 6 | `oldFilesCatalog.codeConnect` |
285
- | 7 | None |
286
-
287
- ### Phase Execution Flow
288
-
289
- **Phase 0**: Dispatch subagent → verify `IMPLEMENTATION_HISTORY.md` created.
290
-
291
- **Immediately after Phase 0 COMPLETE**: write `{artifactPath}/mend-context.json`:
292
-
293
- ```json
294
- {
295
- "mode": "mend",
296
- "oldComponentName": "{oldComponentName}",
297
- "oldComponentPath": "{oldComponentPath}",
298
- "newComponentName": "{newComponentName}",
299
- "nameChanged": {true|false},
300
- "oldFiles": {
301
- "sources": ["{path1}", "{path2}"],
302
- "codeConnect": ["{path}"],
303
- "documentation": "{path or null}",
304
- "modifiers": ["{path}"],
305
- "tests": {
306
- "snapshot": "{dirPath or null}",
307
- "viewInspector": "{dirPath or null}",
308
- "unit": ["{path}"]
309
- },
310
- "artifacts": "{dirPath or null}",
311
- "confluence": "{dirPath or null}"
312
- }
313
- }
314
- ```
315
-
316
- Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
317
-
318
- ```markdown
319
- ## Mend Source
320
- - Discarded component: {oldComponentName}
321
- - Old path: {oldComponentPath}
322
- - Name changed: {true|false}
323
- - Old files catalogued in mend-context.json
324
- ```
325
-
326
- **Phase 1**: Run the gather script. No dispatch prompt, no old-file injection.
327
-
328
- **Phase 2**: Exact same structure as `/figma-cli-iterate`. Wave 1 dispatches 2A + 2B + 2C in parallel; Wave 2 dispatches 2D; then `phase2-finalize.py`. Apply the injection table above for each AI subagent.
329
-
330
- **Phase 3**: Same as `/figma-cli-iterate` - Wave 1 script + 3A/3C/3H, token resolution if needed, Wave 2 (3D), Wave 3 script, spec compile, write `pass3/_index.md`. Apply the injection table.
331
-
332
- **Phase 4**: Same as `/figma-cli-iterate` - read SIMPLE/COMPLEX, Wave 1 (4B + 4C + 4A if COMPLEX), Wave 2 (4D + 4E if COMPLEX), validate, build. Apply the injection table. Phase 4B is the primary reference phase and receives ALL old source files.
333
-
334
- **Phase 5**: Same as `/figma-cli-iterate` - switch to local common, Wave 1 (5A + 5B), Wave 2 (5C if applicable), run tests sequentially, revert Package.swift. Apply the injection table - if the old tests exist they are very valuable reference for the new ones.
335
-
336
- **Phase 6**: Dispatch subagent with `oldFilesCatalog.codeConnect` injected → run `phase6-finalize.py` as safety net.
337
-
338
- **Phase 7**: Dispatch subagent. No old-file injection.
339
-
340
- ---
341
-
342
- ## STEP 4 - Cleanup Old Files
343
-
344
- Runs automatically after Phase 7 SUCCESS, **before** STEP 5 commit. This ensures the deletions are part of the same commit as the new implementation.
345
-
346
- ### CLEANUP-1: VERIFY_NEW_IMPLEMENTATION
347
-
348
- ```bash
349
- # New component file exists
350
- ls "{componentLocation}/{newComponentName}.swift"
351
-
352
- # It builds (local common swap already done in Phase 5 if needed)
353
- cd "${UICOMPONENTS}"
354
- xcodebuild -scheme UIComponents -destination 'generic/platform=iOS Simulator' build 2>&1 | grep -E "(error:|BUILD (SUCCEEDED|FAILED))" | tail
355
- ```
356
-
357
- If the new file is missing or the build fails → HALT. Do NOT delete anything.
358
-
359
- ### CLEANUP-2: DELETE_OLD_SOURCE
360
-
361
- ```bash
362
- rm -rf "{oldComponentPath}"
363
- ```
364
-
365
- Walk up parent directories (max 3 levels) and `rmdir` any that are now empty.
366
-
367
- ### CLEANUP-3: DELETE_OLD_TESTS
368
-
369
- For each non-null entry in `oldFilesCatalog.tests`:
370
-
371
- ```bash
372
- rm -rf "{oldFilesCatalog.tests.snapshot}"
373
- rm -rf "{oldFilesCatalog.tests.viewInspector}"
374
- # Unit tests: rm each file individually since they may not share a directory
375
- for f in {oldFilesCatalog.tests.unit[*]}; do rm -f "$f"; done
376
- ```
377
-
378
- Walk up parent directories and `rmdir` any empty ones.
379
-
380
- ### CLEANUP-4: DELETE_OLD_ARTIFACTS
381
-
382
- ```bash
383
- rm -rf "{oldFilesCatalog.artifacts}"
384
- rm -rf "{oldFilesCatalog.confluence}"
385
- ```
386
-
387
- ### CLEANUP-5: VERIFY_BUILD_POST_DELETE
388
-
389
- ```bash
390
- cd "${UICOMPONENTS}"
391
- xcodebuild -scheme UIComponents -destination 'generic/platform=iOS Simulator' build 2>&1 | grep -E "(error:|BUILD (SUCCEEDED|FAILED))" | tail
392
- ```
393
-
394
- Since the old files lived in `Discarded/` (not in the compiled target), the delete should never break the build. If it does, HALT and report the broken references - do not attempt automatic recovery.
395
-
396
- ### CLEANUP-6: UPDATE_HISTORY
397
-
398
- Append to `{artifactPath}/IMPLEMENTATION_HISTORY.md`:
399
-
400
- ```markdown
401
- ## Mend Cleanup
402
- - Old component: {oldComponentName} at {oldComponentPath}
403
- - Sources deleted: {count} files
404
- - Tests deleted: {count} directories/files
405
- - Artifacts deleted: {count} directories
406
- - Build verified after delete: yes
407
- - Date: {YYYY-MM-DD}
408
- ```
409
-
410
- ---
411
-
412
- ## STEP 5 - Commit
413
-
414
- Run inline. Read `.instructions/figma/figma-iteration-commit/SKILL.md` for the full procedure. Same as `/figma-cli-iterate`:
415
-
416
- 1. Rebase submodules to `iteration/develop` if on feature branch
417
- 2. Build validation
418
- 3. Commit to `iteration/develop` (common → uicomponents → wiki)
419
- 4. Push with rebase-retry loop
420
- 5. Clean up feature branches
421
- 6. Issue housekeeping (comment, phase update, wiki link)
422
- 7. Auto-unblock dependents
423
-
424
- The commit on the uicomponents submodule will naturally include both the new component files AND the deletions from STEP 4 - one atomic mend commit.
425
-
426
- **Commit message hint**: use `feat(uicomponents): [JIRA-KEY] mend {newComponentName} component` instead of `feat(uicomponents): [JIRA-KEY] add {newComponentName} component` so reviewers see at a glance that this replaces a Discarded/ component.
427
-
428
- ---
429
-
430
- ## STEP 6 - Loop
431
-
432
- Same logic as `/figma-iterate` STEP 4. If specific issue → exit after one. Otherwise → pick next mend issue.
433
-
434
- ---
435
-
436
- ## STEP 7 - Output Result
437
-
438
- Output EXACTLY this block as your FINAL message. Nothing else after it.
439
-
440
- ### On success (per component):
441
-
442
- ```
443
- ORCHESTRATOR_RESULT:
444
- status: COMPLETE
445
- mode: mend
446
- issueNumber: <N>
447
- componentName: <newComponentName>
448
- oldComponentName: <oldComponentName>
449
- nameChanged: <true|false>
450
- figmaUrl: <url>
451
- nodeId: <nodeId>
452
- jiraKey: <key>
453
- commits:
454
- common: <SHA>
455
- uicomponents: <SHA>
456
- wiki: <SHA>
457
- phases: [0, 1, 2, 3, 4, 5, 6, 7]
458
- cleanup:
459
- sourcesDeleted: <count>
460
- testsDeleted: <count>
461
- artifactsDeleted: <count>
462
- testsRun: <count>
463
- summary: <one-line>
464
- ```
465
-
466
- ### On failure:
467
-
468
- ```
469
- ORCHESTRATOR_RESULT:
470
- status: FAILED
471
- mode: mend
472
- issueNumber: <N>
473
- componentName: <name>
474
- failedPhase: <phase or pre-flight or cleanup>
475
- reason: <exact reason>
476
- suggestion: <what to fix>
477
- ```
478
-
479
- ### On full iteration completion:
480
-
481
- ```
482
- ORCHESTRATOR_RESULT:
483
- status: ITERATION_COMPLETE
484
- mode: mend
485
- completed:
486
- - { issue: <N>, component: <name>, oldComponent: <name>, commits: { common: <SHA>, uicomponents: <SHA>, wiki: <SHA> } }
487
- failed:
488
- - { issue: <N>, component: <name>, phase: <phase>, reason: <reason> }
489
- remaining: <count>
490
- ```
491
-
492
- ---
493
-
494
- ## Error Handling
495
-
496
- - **No available issues**: Output ORCHESTRATOR_RESULT with status ITERATION_COMPLETE, empty completed/failed.
497
- - **Blocked issue**: Output FAILED.
498
- - **Pre-flight LOCATE_OLD_COMPONENT fails**: Output FAILED with phase `pre-flight` and suggest running `/figma-cli-iterate` (no mend needed).
499
- - **Phase HALT**: Show reason, ask user. If resolved → retry phase. If skipped → FAILED for this component, move to next.
500
- - **Build failure during Phase 4**: Attempt auto-fix. If unfixable → FAILED.
501
- - **Cleanup VERIFY_NEW_IMPLEMENTATION fails**: FAILED with phase `cleanup`. Old files are NOT deleted. New implementation must be fixed before re-running the skill with the same issue (which will resume from pre-flight - `mend-context.json` persists).
502
- - **3 consecutive failures**: Stop iteration.
503
- - **Subagents can't dispatch subagents**: This is why we dispatch only leaf phases. If a phase instruction file references dispatching subagents, ignore that - run its gates directly in the subagent.