@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,288 +0,0 @@
1
- ---
2
- name: figma-cli-lean-iterate
3
- description: Runs a lean Figma-to-SwiftUI pipeline for one or more issues: pick → start → implement (phases 0-4) → code connect (phase 6) → commit. Skips testing (phase 5) and wiki (phase 7).
4
- ---
5
-
6
- # /figma-cli-lean-iterate - Lean Pipeline Orchestrator for CLI
7
-
8
- ## Purpose
9
-
10
- Runs a **lean** Figma-to-SwiftUI pipeline for one or more issues: pick → start → implement (phases 0-4) → code connect (phase 6) → commit. **Skips testing (phase 5) and wiki (phase 7).** Returns a structured `ORCHESTRATOR_RESULT` block that the CLI orchestrator can parse.
11
-
12
- This skill is identical in structure to `/figma-cli-iterate` - the only difference is that phases 5 and 7 are omitted. Use this when you want a faster turnaround and will run tests/wiki separately (or not at all).
13
-
14
- This skill IS the orchestrator. It dispatches **only leaf-phase subagents** - individual phase instruction files that read one doc, execute gates, and return. It never delegates to multi-phase meta-skills.
15
-
16
- ## Forbidden Dispatches
17
-
18
- **NEVER dispatch these as subagents - they are orchestrators that would try to dispatch further:**
19
-
20
- - `/figma-to-swift-ui-implement` (Phases 0-4)
21
- - `/figma-to-swift-ui-test` (Phase 5)
22
- - `/figma-to-swift-ui-code-connect` (Phase 6)
23
- - `/figma-to-swift-ui-wiki` (Phase 7)
24
- - `/figma-iteration-commit`
25
- - `/figma-to-swiftui` (entire pipeline)
26
-
27
- Instead, dispatch the **leaf phase instruction files** directly via Agent tool.
28
-
29
- ## Parameters
30
-
31
- ```
32
- /figma-cli-lean-iterate #230 ← implement specific issue (lean)
33
- /figma-cli-lean-iterate ← auto-pick next available (lean)
34
- ```
35
-
36
- ---
37
-
38
- ## Constants
39
-
40
- ```
41
- GH_REPO = {github.componentsRepo}
42
- REPO_ROOT = git repo root (auto-detect)
43
- COMMON = ${REPO_ROOT}/{repos.common.path}
44
- UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
45
- PHASE_DIR = .instructions/figma/figma-to-swiftui/phases
46
- REF_DIR = .instructions/figma/figma-to-swiftui/reference
47
- SCRIPT_DIR = .instructions/figma/figma-to-swiftui/scripts
48
- ```
49
-
50
- Note: the `WIKI` submodule is intentionally omitted from the constants - the lean flow never touches it.
51
-
52
- ---
53
-
54
- ## STEP 0 - Pick Issue
55
-
56
- Same logic as `/figma-iterate` STEP 0. Read `.instructions/figma/figma-iterate/SKILL.md` STEP 0 for details.
57
-
58
- Extract from issue body: `componentName`, `figmaUrl`, `nodeId`, `jiraKey`, `registryName`, `figmaPage`, `acceptanceCriteria`.
59
-
60
- ---
61
-
62
- ## STEP 1 - Start
63
-
64
- Run inline (not as a skill). Read `.instructions/figma/figma-to-swift-ui-start/SKILL.md` for the full procedure:
65
-
66
- 1. Parse issue → extract metadata
67
- 2. Fetch latest → checkout `develop` (main stays on develop, NO feature branch), `iteration/develop` (submodules)
68
- 3. Create feature branches on **submodules only** (common, uicomponents) - wiki submodule is NOT checked out
69
- 4. Registry lookup → `componentLocation`, `artifactPath`
70
- 5. Save specs artifact if acceptance criteria exist
71
- 6. Assign (GitHub + Jira)
72
- 7. **Move GitHub issue to "In Develop" on the Projects V2 board** - required. Read STEP 5 of the start skill. Run both GraphQL mutations: set Status option `bc6c45f7` (In Develop) and Phase option `0577dcda` (Implementation). Do NOT skip this - new issues are created with Status=Todo, so this transition is how the board reflects "someone is working on it".
73
-
74
- ---
75
-
76
- ## required PRE-READ
77
-
78
- Before dispatching any phase subagent, read:
79
- ${REF_DIR}/orchestrator-discipline.md
80
-
81
- These 6 rules govern orchestrator behavior. Violations have caused repeated failures. Follow them strictly.
82
-
83
- ---
84
-
85
- ## STEP 2 - Implement (Phases 0-4, 6)
86
-
87
- This is the core orchestration. Run each phase by dispatching leaf subagents and scripts.
88
-
89
- **Phases 5 (testing) and 7 (wiki) are INTENTIONALLY skipped in the lean flow.** The `status.ios.tested` and `status.ios.wiki` registry flags will remain their previous values.
90
-
91
- ### Spec Injection (Option A)
92
-
93
- Before dispatching any Phase 4+ subagent, check if `{artifactPath}/pass0/specs.md` exists. If it does:
94
- 1. Read the specs
95
- 2. Extract concrete requirements
96
- 3. Inject them as **CRITICAL SPEC GATES** in the subagent dispatch prompt - NOT as a sidecar "also read this file" instruction
97
-
98
- This ensures spec requirements become indistinguishable from standard gates.
99
-
100
- ### Phase Dispatch Table
101
-
102
- All instruction files relative to `${PHASE_DIR}/`.
103
-
104
- | Phase | Instruction | Model | Subagent? |
105
- |-------|-------------|-------|-----------|
106
- | 0 | `phase-0-init.md` | opus | Yes (leaf) |
107
- | 1 | `${SCRIPT_DIR}/phase1-gather.py` | N/A | No (script) |
108
- | 2A | `phase-2a-testing-identifiers.md` | opus | Yes (leaf) |
109
- | 2B | `phase-2b-localization.md` | sonnet | Yes (leaf) |
110
- | 2C | `phase-2c-accessibility.md` | opus | Yes (leaf) |
111
- | 2D | `phase-2d-analytics.md` | sonnet | Yes (leaf) |
112
- | 3A | `phase-3a-location.md` | sonnet | Yes (leaf) |
113
- | 3C | `phase-3c-nested.md` | sonnet | Yes (leaf) |
114
- | 3H | `phase-3h-variant-config.md` | opus | Yes (leaf) |
115
- | 3D | `phase-3d-patterns.md` | opus | Yes (leaf) |
116
- | 4A | `phase-4a-configuration.md` | opus | Yes (leaf, COMPLEX only) |
117
- | 4B | `phase-4b-view.md` | opus | Yes (leaf) |
118
- | 4C | `phase-4c-documentation.md` | sonnet | Yes (leaf) |
119
- | 4D | `phase-4d-preview.md` | sonnet | Yes (leaf) |
120
- | 4E | `phase-4e-modifiers.md` | sonnet | Yes (leaf, COMPLEX only) |
121
- | ~~5A~~ | *(skipped - lean)* | - | - |
122
- | ~~5B~~ | *(skipped - lean)* | - | - |
123
- | ~~5C~~ | *(skipped - lean)* | - | - |
124
- | 6 | `phase-6-code-connect.md` | opus | Yes (leaf) |
125
- | ~~7~~ | *(skipped - lean)* | - | - |
126
-
127
- ### Dispatch Prompt Template
128
-
129
- For each leaf subagent:
130
-
131
- ```
132
- You are executing {Phase Name} of the Figma-to-SwiftUI workflow (lean run - no testing, no wiki).
133
-
134
- ## Context
135
- - Component: {componentName}
136
- - File Key: {fileKey}
137
- - Node ID: {nodeId}
138
- - Artifact Path: {artifactPath}
139
- - Component Location: {componentLocation}
140
-
141
- ## CRITICAL SPEC GATES (only if specs exist)
142
- {Concrete requirements extracted from specs - phrased as mandatory instructions, not a file reference}
143
-
144
- ## Tool Restrictions
145
- {from dispatch table}
146
-
147
- ## Your Instructions
148
- Read and STRICTLY FOLLOW your phase instructions gate-by-gate from this file:
149
- {PHASE_DIR}/{instruction file}
150
-
151
- Read the return protocol from:
152
- {REF_DIR}/halt-return-protocol.md
153
-
154
- ## Reference Files
155
- {relevant reference files from the read-order table in figma-to-swiftui/SKILL.md}
156
-
157
- ## Previous Phase Artifacts
158
- {artifact paths in read order - compact first}
159
- ```
160
-
161
- ### Phase Execution Flow
162
-
163
- **Phase 0**: Dispatch subagent → verify `IMPLEMENTATION_HISTORY.md` created.
164
-
165
- **Phase 1**: Run script:
166
- ```bash
167
- python3 ${SCRIPT_DIR}/phase1-gather.py \
168
- --file-key "{fileKey}" --node-id "{nodeId}" \
169
- --artifact-path "{artifactPath}" --component-name "{componentName}"
170
- ```
171
- If `COMPLETE_WITH_DEFERRED` → dispatch Phase 1 deferred resolution subagent.
172
-
173
- **Phase 2**:
174
- 1. Pre-check: verify `pass1/_index.md`
175
- 2. Normalize: check sublayers in `design_context_response.json`
176
- 3. Registry lookup: `FigmaRegistryUtility utility-lookup --node-id '{nodeId}'`
177
- 4. Wave 1 (parallel): dispatch 2A + 2B + 2C subagents simultaneously
178
- 5. Wave 2: dispatch 2D subagent
179
- 6. Finalize: `python3 ${SCRIPT_DIR}/phase2-finalize.py ...`
180
-
181
- **Phase 3**:
182
- 1. Wave 1 (parallel): `python3 ${SCRIPT_DIR}/phase3-scripts.py wave1 ...` + dispatch 3A + 3C + 3H subagents
183
- 2. Missing token resolution: check `pass3/02_token_mapping.md` for "⚠️ not found". If any → dispatch resolution subagent
184
- 3. Wave 2: dispatch 3D subagent
185
- 4. Wave 3: `python3 ${SCRIPT_DIR}/phase3-scripts.py 3g ...`
186
- 5. Spec: `python3 ${SCRIPT_DIR}/phase3-scripts.py spec ...`
187
- 6. Write `pass3/_index.md`
188
-
189
- **Phase 4**:
190
- 1. Read `pass3/05_complexity.md` → SIMPLE or COMPLEX
191
- 2. Prepare directory: `mkdir -p {componentLocation}`
192
- 3. Wave 1 (parallel): dispatch 4B + 4C (+ 4A if COMPLEX)
193
- 4. Wave 2 (parallel): dispatch 4D (+ 4E if COMPLEX)
194
- 5. Validate: `bash ${SCRIPT_DIR}/validate-phase4.sh ...`
195
- 6. Build: `xcodebuild build ...` - fix errors if any
196
- 7. Registry finalize: `python3 ${SCRIPT_DIR}/phase4-finalize.py ...`
197
-
198
- **Phase 5 (TESTING)**: **SKIPPED - lean flow.** Do NOT switch Package.swift to local common. Do NOT dispatch 5A/5B/5C. Do NOT run tests. The `status.ios.tested` flag will stay at its previous value.
199
-
200
- **Phase 6**: Dispatch subagent → run `${SCRIPT_DIR}/phase6-finalize.py` as safety net.
201
-
202
- **Phase 7 (WIKI)**: **SKIPPED - lean flow.** Do NOT dispatch 7A. Do NOT touch the wiki submodule. The `status.ios.wiki` flag will stay at its previous value.
203
-
204
- ---
205
-
206
- ## STEP 3 - Commit
207
-
208
- Run inline. Read `.instructions/figma/figma-iteration-commit/SKILL.md` for the full procedure, with these lean-mode adjustments:
209
-
210
- 1. Rebase submodules to `iteration/develop` if on feature branch
211
- 2. Build validation
212
- 3. Commit to `iteration/develop` (**common → uicomponents only** - wiki submodule is intentionally untouched)
213
- 4. Push with rebase-retry loop
214
- 5. Clean up feature branches (common + uicomponents only)
215
- 6. Issue housekeeping (comment, progress table - but the Tests and Wiki rows stay at their previous state)
216
- 7. Auto-unblock dependents
217
-
218
- **Skip any step in `/figma-iteration-commit` that writes to or pushes the wiki submodule.**
219
-
220
- ---
221
-
222
- ## STEP 4 - Loop
223
-
224
- Same logic as `/figma-iterate` STEP 4. If specific issue → exit after one. If `--count` → decrement. Otherwise → pick next.
225
-
226
- ---
227
-
228
- ## STEP 5 - Output Result
229
-
230
- Output EXACTLY this block as your FINAL message. Nothing else after it.
231
-
232
- ### On success (per component):
233
-
234
- ```
235
- ORCHESTRATOR_RESULT:
236
- status: COMPLETE
237
- mode: lean
238
- issueNumber: <N>
239
- componentName: <name>
240
- figmaUrl: <url>
241
- nodeId: <nodeId>
242
- jiraKey: <key>
243
- commits:
244
- common: <SHA>
245
- uicomponents: <SHA>
246
- wiki: null # lean run - wiki not touched
247
- phases: [0, 1, 2, 3, 4, 6] # 5 and 7 intentionally omitted
248
- testsRun: 0 # lean run - no tests executed
249
- summary: <one-line>
250
- ```
251
-
252
- ### On failure:
253
-
254
- ```
255
- ORCHESTRATOR_RESULT:
256
- status: FAILED
257
- mode: lean
258
- issueNumber: <N>
259
- componentName: <name>
260
- failedPhase: <phase>
261
- reason: <exact reason>
262
- suggestion: <what to fix>
263
- ```
264
-
265
- ### On full iteration completion:
266
-
267
- ```
268
- ORCHESTRATOR_RESULT:
269
- status: ITERATION_COMPLETE
270
- mode: lean
271
- completed:
272
- - { issue: <N>, component: <name>, commits: { common: <SHA>, uicomponents: <SHA> } }
273
- failed:
274
- - { issue: <N>, component: <name>, phase: <phase>, reason: <reason> }
275
- remaining: <count>
276
- ```
277
-
278
- ---
279
-
280
- ## Error Handling
281
-
282
- - **No available issues**: Output ORCHESTRATOR_RESULT with status ITERATION_COMPLETE, empty completed/failed.
283
- - **Blocked issue**: Output FAILED.
284
- - **Phase HALT**: Show reason, ask user. If resolved → retry phase. If skipped → FAILED for this component, move to next.
285
- - **Build failure**: Attempt auto-fix. If unfixable → FAILED.
286
- - **3 consecutive failures**: Stop iteration.
287
- - **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.
288
- - **Accidental phase-5 / phase-7 dispatch**: If you catch yourself dispatching a 5A/5B/5C/7A subagent, STOP immediately. This is the lean flow - those phases must not run.
@@ -1,362 +0,0 @@
1
- ---
2
- name: figma-cli-skip
3
- description: CLI variant of /figma-skip - fetches origin iteration/develop on mobile-common, marks a Figma component as skipped in the registry, commits, pushes, and returns a structured ORCHESTRATOR_RESULT block for the CLI.
4
- user-invocable: true
5
- argument-hint: <figma-url> [<figma-url> ...] [--reason <reason>]
6
- allowed-tools: Bash, Read, Write, Edit
7
- status: wip-v5
8
- sourced-from: upstream/figma-cli-skip
9
- ---
10
-
11
- # /figma-cli-skip - CLI Skip Orchestrator
12
-
13
- ## Purpose
14
-
15
- CLI-friendly variant of `/figma-skip`. Marks one or more Figma components as
16
- skipped in the `mobile-common` component registry, then **commits and pushes
17
- to `origin/iteration/develop`** so the skip state is visible to other tools
18
- and teammates immediately. Returns a structured `ORCHESTRATOR_RESULT` block
19
- the CLI orchestrator can parse.
20
-
21
- This skill wraps the existing `/figma-skip` logic with:
22
- - A mandatory `git fetch origin iteration/develop` + fast-forward/rebase on
23
- `mobile-common` **before** touching registry files.
24
- - A mandatory commit + push on `mobile-common` **after** writing the registry
25
- entries and regenerating the catalog.
26
- - A structured machine-readable output block.
27
-
28
- It does **not** update Confluence (that's VPN-gated and not a CLI concern).
29
- Use `/figma-skip` directly when you need the Confluence dashboard refreshed.
30
-
31
- ## Forbidden Operations
32
-
33
- > **NEVER create branches on the main repo (REPO_ROOT).** This skill only
34
- > touches the `mobile-common` submodule. Main repo submodule pointer updates
35
- > are out of scope - handle them separately.
36
-
37
- > **NEVER commit unrelated working-tree changes.** Stage only the registry
38
- > JSON(s) you wrote and the catalog output files the `FigmaRegistryUtility
39
- > catalog` command produced. Use explicit file paths with `git add` - never
40
- > `git add -A` / `git add .`.
41
-
42
- > **NEVER skip hooks (`--no-verify`) or force-push.** If push is rejected
43
- > because the remote moved, rebase and retry; do not force.
44
-
45
- ## Parameters
46
-
47
- ```
48
- /figma-cli-skip https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId}
49
- /figma-cli-skip https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId} --reason "Cursor component, not needed on mobile"
50
- /figma-cli-skip <url1> <url2> <url3> --reason "Legacy components removed from scope"
51
- ```
52
-
53
- | Parameter | Required | Description |
54
- |-----------|----------|-------------|
55
- | `<figma-url>` | Yes | One or more Figma URLs (space-separated for batch). |
56
- | `--reason <reason>` | No | Free-form skip reason. Captured in the commit message body. |
57
-
58
- ### URL Parsing
59
-
60
- For each URL, extract:
61
- ```
62
- https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId}
63
- ```
64
- Convert `-` to `:` in node-id (e.g., `3-9045` → `3:9045`). The registry
65
- filename is `{nodeId-with-colon-replaced-by-dash}.json` (e.g., `3-9045.json`).
66
-
67
- ## Constants
68
-
69
- ```
70
- REPO_ROOT = git repo root (auto-detect via `git rev-parse --show-toplevel`)
71
- COMMON = ${REPO_ROOT}/{repos.common.path}
72
- REGISTRY_DIR = ${COMMON}/Shared/Figma/Components
73
- UTILITY = ${COMMON}/.build/debug/FigmaRegistryUtility
74
- ```
75
-
76
- ---
77
-
78
- ## STEP 0 - Parse Arguments
79
-
80
- Split `$ARGUMENTS` into URLs and flags. Extract:
81
- - `urls[]` - every non-flag argument that looks like a Figma URL
82
- - `reason` - value after `--reason` (may be empty)
83
-
84
- If `urls` is empty → output `FAILED` with `reason: "No Figma URL provided"`.
85
-
86
- For each URL, extract `fileKey` and `nodeId` (colon form).
87
-
88
- ---
89
-
90
- ## STEP 1 - Sync `mobile-common` to `origin/iteration/develop`
91
-
92
- ```bash
93
- cd "${COMMON}"
94
- git fetch origin iteration/develop
95
- ```
96
-
97
- Check current branch:
98
- ```bash
99
- CURRENT_BRANCH=$(git branch --show-current)
100
- ```
101
-
102
- **If `CURRENT_BRANCH == iteration/develop`**:
103
- ```bash
104
- git pull --ff-only origin iteration/develop
105
- ```
106
- If fast-forward fails (local has diverged work) → HALT with
107
- `FAILED / reason: "mobile-common iteration/develop has diverged from origin - resolve manually before running figma-cli-skip"`.
108
-
109
- **If on a different branch**:
110
- Check whether the working tree is clean:
111
- ```bash
112
- git status --porcelain
113
- ```
114
- - If dirty → HALT with `FAILED / reason: "mobile-common working tree is dirty on {branch} - commit or stash before running figma-cli-skip"`.
115
- - If clean → checkout and fast-forward:
116
- ```bash
117
- git checkout iteration/develop
118
- git pull --ff-only origin iteration/develop
119
- ```
120
-
121
- After this step, `mobile-common` must be on `iteration/develop` and even with
122
- `origin/iteration/develop`.
123
-
124
- ---
125
-
126
- ## STEP 2 - Ensure `FigmaRegistryUtility` Is Built
127
-
128
- ```bash
129
- cd "${COMMON}"
130
- if [[ ! -x "${UTILITY}" ]]; then
131
- swift build --product FigmaRegistryUtility
132
- fi
133
- ```
134
-
135
- If the build fails → HALT with `FAILED / reason: "FigmaRegistryUtility build failed"` and include the build error tail.
136
-
137
- ---
138
-
139
- ## STEP 3 - Process Each URL
140
-
141
- For each `(fileKey, nodeId)` pair:
142
-
143
- ### 3a. Resolve Component Name
144
-
145
- ```bash
146
- cd "${COMMON}"
147
- "${UTILITY}" lookup --node-id '{nodeId-with-colon}'
148
- ```
149
-
150
- Parse `suggestedComponentName` from the JSON output. If the lookup fails
151
- (node not in registry), still proceed - the lookup may return a suggested
152
- name even for unknown nodes. If no name is returned at all, use the raw
153
- `{nodeId}` as a placeholder and note it in the summary.
154
-
155
- ### 3b. Check Existing Registry Entry
156
-
157
- Path: `${REGISTRY_DIR}/{nodeId-with-colon-replaced-by-dash}.json`
158
-
159
- **If file exists**:
160
- - Read it.
161
- - If `"skip": true` is already set → record this component as `ALREADY_SKIPPED` (no changes) and continue to next URL. Do NOT short-circuit the whole batch.
162
- - If not skipped → overwrite with the skip payload (below). Log that you're overwriting pre-existing implementation data.
163
-
164
- **If file does not exist**:
165
- - Create it with the skip payload.
166
-
167
- ### 3c. Write the Skip Payload
168
-
169
- ```json
170
- {
171
- "nodeId": "{nodeId-with-colon}",
172
- "componentName": {
173
- "ios": "{componentName}",
174
- "android": "{componentName}"
175
- },
176
- "skip": true,
177
- "codeConnect": {
178
- "ios": false,
179
- "android": false
180
- },
181
- "confluence": {
182
- "page": null,
183
- "ios": null,
184
- "android": null
185
- },
186
- "fileKey": "{fileKey}",
187
- "lastUpdated": "{YYYY-MM-DD}",
188
- "updatedBy": "ios",
189
- "testingIdentifiers": [],
190
- "localizationKeys": [],
191
- "accessibilityKeys": [],
192
- "analyticsEvents": []
193
- }
194
- ```
195
-
196
- Use the current date (UTC) for `lastUpdated`.
197
-
198
- Collect the relative path (`Shared/Figma/Components/{filename}.json`) into a
199
- `written_files[]` list for later staging.
200
-
201
- ---
202
-
203
- ## STEP 4 - Regenerate Catalog
204
-
205
- Run once **after all URLs have been processed**, not per-URL:
206
-
207
- ```bash
208
- cd "${COMMON}"
209
- "${UTILITY}" catalog
210
- ```
211
-
212
- Capture the list of files the catalog command wrote/modified. In practice
213
- this writes into `Shared/Figma/Catalog/` (or similar). Use `git status
214
- --porcelain` to discover everything that changed under `Shared/Figma/` and
215
- stage those paths explicitly in STEP 5.
216
-
217
- If catalog regeneration fails → HALT with `FAILED / reason: "Catalog regeneration failed"`.
218
-
219
- ---
220
-
221
- ## STEP 5 - Commit & Push
222
-
223
- ### 5a. Stage only the intended files
224
-
225
- ```bash
226
- cd "${COMMON}"
227
- # Registry JSONs we wrote
228
- git add Shared/Figma/Components/{file1}.json Shared/Figma/Components/{file2}.json ...
229
- # Catalog files the utility regenerated (discover via `git status --porcelain`
230
- # - stage every modified/untracked path that lives under Shared/Figma/ AND was
231
- # not already present before STEP 4)
232
- git add <catalog paths discovered from git status>
233
- ```
234
-
235
- **Do NOT** use `git add -A` or `git add .`. If there are unrelated dirty
236
- files in the working tree (there shouldn't be, STEP 1 guaranteed it), leave
237
- them alone.
238
-
239
- ### 5b. Verify the index is what we expect
240
-
241
- ```bash
242
- git diff --cached --name-only
243
- ```
244
-
245
- Only `Shared/Figma/Components/*.json` and `Shared/Figma/Catalog/*` paths
246
- should appear. If anything else shows up → HALT with
247
- `FAILED / reason: "Unexpected files staged: {list}"`.
248
-
249
- ### 5c. Commit
250
-
251
- Commit message format:
252
-
253
- - **Single skip**:
254
- ```
255
- chore(common): skip {componentName} [{nodeId}]
256
-
257
- Reason: {reason or "Not specified"}
258
- ```
259
- - **Batch skip (2+)**:
260
- ```
261
- chore(common): skip {N} components
262
-
263
- - {componentName1} [{nodeId1}]
264
- - {componentName2} [{nodeId2}]
265
- - ...
266
-
267
- Reason: {reason or "Not specified"}
268
- ```
269
-
270
- Pass the body via HEREDOC to preserve formatting:
271
-
272
- ```bash
273
- git commit -m "$(cat <<'EOF'
274
- chore(common): skip {componentName} [{nodeId}]
275
-
276
- Reason: {reason or "Not specified"}
277
- EOF
278
- )"
279
- ```
280
-
281
- Capture the resulting commit SHA from `git rev-parse HEAD`.
282
-
283
- ### 5d. Push with rebase retry
284
-
285
- ```bash
286
- git push origin iteration/develop
287
- ```
288
-
289
- **If push is rejected (non-fast-forward)**:
290
- ```bash
291
- git fetch origin iteration/develop
292
- git rebase origin/iteration/develop
293
- git push origin iteration/develop
294
- ```
295
- Allow up to 3 rebase-retry attempts. If it still fails → HALT with
296
- `FAILED / reason: "Push rejected after 3 rebase retries"`.
297
-
298
- After a successful rebase, re-read the new HEAD SHA for the output.
299
-
300
- ---
301
-
302
- ## STEP 6 - Output `ORCHESTRATOR_RESULT`
303
-
304
- Output EXACTLY this block as your FINAL message. Nothing else after it.
305
-
306
- ### On success (single or batch, all components either skipped now or already skipped):
307
-
308
- ```
309
- ORCHESTRATOR_RESULT:
310
- status: COMPLETE
311
- commit: <SHA>
312
- pushed: true
313
- branch: iteration/develop
314
- skipped:
315
- - { nodeId: <nodeId>, componentName: <name>, fileKey: <fileKey>, state: NEWLY_SKIPPED }
316
- - { nodeId: <nodeId>, componentName: <name>, fileKey: <fileKey>, state: ALREADY_SKIPPED }
317
- reason: <reason or "Not specified">
318
- summary: <one-line - e.g. "Skipped 2 components, 1 already skipped">
319
- ```
320
-
321
- If **all** components were `ALREADY_SKIPPED` (nothing new written, nothing
322
- committed, nothing pushed), the block looks like:
323
-
324
- ```
325
- ORCHESTRATOR_RESULT:
326
- status: NOOP
327
- commit: -
328
- pushed: false
329
- branch: iteration/develop
330
- skipped:
331
- - { nodeId: <nodeId>, componentName: <name>, fileKey: <fileKey>, state: ALREADY_SKIPPED }
332
- reason: <reason or "Not specified">
333
- summary: All components already skipped
334
- ```
335
-
336
- ### On failure:
337
-
338
- ```
339
- ORCHESTRATOR_RESULT:
340
- status: FAILED
341
- failedStep: <STEP 0 | 1 | 2 | 3 | 4 | 5>
342
- reason: <exact reason>
343
- branch: iteration/develop
344
- skippedBeforeFailure:
345
- - { nodeId: <nodeId>, componentName: <name>, state: <NEWLY_SKIPPED | ALREADY_SKIPPED> }
346
- suggestion: <what to fix - e.g. "resolve rebase conflicts manually and re-run">
347
- ```
348
-
349
- ---
350
-
351
- ## Error Handling Quick Reference
352
-
353
- | Failure | Action |
354
- |---------|--------|
355
- | No URLs provided | `FAILED / STEP 0 / "No Figma URL provided"` |
356
- | Dirty working tree on feature branch | `FAILED / STEP 1 / "mobile-common working tree is dirty"` |
357
- | Diverged `iteration/develop` | `FAILED / STEP 1 / "mobile-common has diverged from origin"` |
358
- | `FigmaRegistryUtility` build failure | `FAILED / STEP 2` + build error tail |
359
- | `FigmaRegistryUtility lookup` returns nothing usable | Continue with `{nodeId}` as placeholder; note in summary |
360
- | Catalog regeneration failure | `FAILED / STEP 4` |
361
- | Unexpected files staged | `FAILED / STEP 5 / "Unexpected files staged: ..."` |
362
- | Push rejected after 3 rebase retries | `FAILED / STEP 5 / "Push rejected after 3 rebase retries"` |