@mmerterden/multi-agent-pipeline 11.2.0 → 11.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +2 -2
  3. package/docs/FIGMA_PIPELINE.md +12 -25
  4. package/docs/architecture.md +3 -5
  5. package/docs/features.md +8 -8
  6. package/install/_dev-only-files.mjs +0 -6
  7. package/install/claude.mjs +33 -15
  8. package/install/copilot.mjs +16 -14
  9. package/install/templates/copilot-instructions.md +3 -3
  10. package/package.json +1 -1
  11. package/pipeline/commands/{multi-agent.md → multi-agent/SKILL.md} +39 -39
  12. package/pipeline/commands/multi-agent/{analysis.md → analysis/SKILL.md} +18 -18
  13. package/pipeline/commands/multi-agent/{analysis-resolve.md → analysis-resolve/SKILL.md} +4 -4
  14. package/pipeline/commands/multi-agent/{autopilot.md → autopilot/SKILL.md} +4 -4
  15. package/pipeline/commands/multi-agent/{build-optimize.md → build-optimize/SKILL.md} +1 -1
  16. package/pipeline/commands/multi-agent/{channels.md → channels/SKILL.md} +12 -12
  17. package/pipeline/commands/multi-agent/{dev.md → dev/SKILL.md} +4 -4
  18. package/pipeline/commands/multi-agent/{dev-autopilot.md → dev-autopilot/SKILL.md} +4 -4
  19. package/pipeline/commands/multi-agent/{dev-local.md → dev-local/SKILL.md} +5 -5
  20. package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md} +4 -4
  21. package/pipeline/commands/multi-agent/{finish.md → finish/SKILL.md} +6 -6
  22. package/pipeline/commands/multi-agent/{generate.md → generate/SKILL.md} +3 -3
  23. package/pipeline/commands/multi-agent/{help.md → help/SKILL.md} +4 -4
  24. package/pipeline/commands/multi-agent/{local.md → local/SKILL.md} +5 -5
  25. package/pipeline/commands/multi-agent/{local-autopilot.md → local-autopilot/SKILL.md} +5 -5
  26. package/pipeline/commands/multi-agent/{manual-test.md → manual-test/SKILL.md} +1 -1
  27. package/pipeline/commands/multi-agent/refactor/SKILL.md +257 -0
  28. package/pipeline/commands/multi-agent/{resume.md → resume/SKILL.md} +1 -1
  29. package/pipeline/commands/multi-agent/{review.md → review/SKILL.md} +5 -5
  30. package/pipeline/commands/multi-agent/{setup.md → setup/SKILL.md} +1 -1
  31. package/pipeline/commands/multi-agent/{sync.md → sync/SKILL.md} +20 -58
  32. package/pipeline/{commands/multi-agent → multi-agent-refs}/_account-picker.md +2 -2
  33. package/pipeline/{commands/multi-agent → multi-agent-refs}/_dev-context.md +2 -2
  34. package/pipeline/{commands/multi-agent → multi-agent-refs}/_repo-picker.md +2 -2
  35. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/android-guide.md +1 -1
  36. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/jira.md +1 -1
  37. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/wiki.md +7 -7
  38. package/pipeline/multi-agent-refs/component-dispatch.md +92 -0
  39. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/cross-cli-contract.md +10 -77
  40. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/verify-by-test.md +1 -1
  41. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/generate-issue.md +2 -2
  42. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/issue-jira-triad.md +1 -1
  43. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/keychain.md +1 -1
  44. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/log-format.md +1 -1
  45. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/modes.md +2 -2
  46. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/operations.md +1 -1
  47. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-0-init.md +10 -10
  48. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-1-analysis.md +6 -6
  49. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-2-planning.md +3 -3
  50. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-3-dev.md +10 -10
  51. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-4-review.md +8 -8
  52. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-5-test.md +3 -3
  53. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-6-commit.md +4 -4
  54. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-7-report.md +6 -6
  55. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases.md +12 -12
  56. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/progress-contract.md +4 -4
  57. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/swiftui-guide.md +1 -1
  58. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/tracker-contract.md +3 -3
  59. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/wiki-capture.md +4 -4
  60. package/pipeline/preferences-template.json +17 -1
  61. package/pipeline/rules/figma-pipeline.md +2 -2
  62. package/pipeline/schemas/prefs.schema.json +0 -34
  63. package/pipeline/scripts/README.md +1 -3
  64. package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
  65. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  66. package/pipeline/scripts/phase-banner.sh +2 -2
  67. package/pipeline/scripts/review-scope.mjs +94 -0
  68. package/pipeline/scripts/scan-agent-config.sh +2 -2
  69. package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
  70. package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
  71. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
  72. package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
  73. package/pipeline/scripts/smoke-channels-flow.sh +5 -5
  74. package/pipeline/scripts/smoke-clarify.sh +1 -1
  75. package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
  76. package/pipeline/scripts/smoke-community-gates.sh +1 -1
  77. package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
  78. package/pipeline/scripts/smoke-cost-summary.sh +1 -1
  79. package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
  80. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
  81. package/pipeline/scripts/smoke-dev-critic.sh +1 -1
  82. package/pipeline/scripts/smoke-diff-explain.sh +1 -1
  83. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  84. package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
  85. package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
  86. package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
  87. package/pipeline/scripts/smoke-generate-issue.sh +8 -8
  88. package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
  89. package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
  90. package/pipeline/scripts/smoke-intent-guard.sh +1 -1
  91. package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
  92. package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
  93. package/pipeline/scripts/smoke-language-axis.sh +6 -6
  94. package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
  95. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
  96. package/pipeline/scripts/smoke-model-fallback.sh +3 -3
  97. package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
  98. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  99. package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
  100. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  101. package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
  102. package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
  103. package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
  104. package/pipeline/scripts/smoke-plan-todos.sh +3 -3
  105. package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
  106. package/pipeline/scripts/smoke-prefs-language.sh +1 -1
  107. package/pipeline/scripts/smoke-progress-contract.sh +2 -2
  108. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  109. package/pipeline/scripts/smoke-repo-map.sh +2 -2
  110. package/pipeline/scripts/smoke-shadow-git.sh +1 -1
  111. package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
  112. package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
  113. package/pipeline/scripts/smoke-test-gap.sh +1 -1
  114. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  115. package/pipeline/scripts/smoke-token-preflight.sh +2 -2
  116. package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
  117. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
  118. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  119. package/pipeline/scripts/smoke-update-check.sh +1 -1
  120. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  121. package/pipeline/scripts/smoke-validator-gates.sh +1 -1
  122. package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
  123. package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
  124. package/pipeline/scripts/smoke-work-summary.sh +1 -1
  125. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  126. package/pipeline/scripts/test-integrity-gate.mjs +83 -0
  127. package/pipeline/scripts/uninstall.mjs +2 -2
  128. package/pipeline/skills/.skill-manifest.json +40 -160
  129. package/pipeline/skills/.skills-index.json +3 -372
  130. package/pipeline/skills/shared/README.md +1 -1
  131. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
  132. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
  133. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
  134. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  135. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  136. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  137. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  138. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
  139. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
  140. package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
  141. package/pipeline/skills/skills-index.md +2 -43
  142. package/pipeline/commands/multi-agent/refactor.md +0 -188
  143. package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
  144. package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
  145. package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
  146. package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
  147. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
  148. package/pipeline/scripts/smoke-figma-sync.sh +0 -149
  149. package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
  150. package/pipeline/skills/figma-android/README.md +0 -38
  151. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
  152. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
  153. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
  154. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
  155. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
  156. package/pipeline/skills/figma-common/README.md +0 -64
  157. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
  158. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
  159. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
  160. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
  161. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
  162. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
  163. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
  164. package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
  165. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
  166. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
  167. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
  168. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
  169. package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
  170. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
  171. package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
  172. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
  173. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
  174. package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
  175. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
  176. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
  177. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
  178. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
  179. package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
  180. package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
  181. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
  182. package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
  183. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
  184. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
  185. package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
  186. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
  187. package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
  188. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
  189. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
  190. package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
  191. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
  192. package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
  193. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
  194. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
  195. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
  196. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
  197. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
  198. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
  199. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
  200. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
  201. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
  202. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
  203. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
  204. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
  205. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
  206. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
  207. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
  208. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
  209. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
  210. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
  211. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
  212. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
  213. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
  214. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
  215. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
  216. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
  217. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
  218. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
  219. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
  220. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
  221. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
  222. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
  223. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
  224. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
  225. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
  226. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
  227. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
  228. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
  229. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
  230. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
  231. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
  232. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
  233. package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
  234. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
  235. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
  236. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
  237. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
  238. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
  239. package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
  240. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
  241. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
  242. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
  243. package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
  244. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
  245. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
  246. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
  247. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
  248. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
  249. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
  250. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
  251. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
  252. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
  253. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
  254. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
  255. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
  256. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
  257. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
  258. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
  259. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
  260. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
  261. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
  262. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
  263. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
  264. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
  265. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
  266. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
  267. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
  268. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
  269. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
  270. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
  271. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
  272. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
  273. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
  274. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
  275. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
  276. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
  277. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
  278. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
  279. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
  280. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
  281. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
  282. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
  283. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
  284. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
  285. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
  286. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
  287. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
  288. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
  289. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
  290. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
  291. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
  292. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
  293. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
  294. /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
  295. /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
  296. /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
  297. /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
  298. /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
  299. /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
  300. /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
  301. /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
  302. /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
  303. /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
  304. /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
  305. /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
  306. /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
  307. /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
  308. /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
  309. /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
  310. /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
  311. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
  312. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
  313. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
  314. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
  315. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
  316. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
  317. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
  318. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
  319. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
  320. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
  321. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
  322. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
  323. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
  324. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
  325. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
  326. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
  327. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
  328. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
  329. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
  330. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
  331. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
@@ -1,238 +0,0 @@
1
- ---
2
- name: performance-review-next
3
- description: Reads `_tour_tracker.json`, presents a dashboard of produced components, and guides the user through reviewing each one. Fix commits are separate. Halted components can be retried or dropped.
4
- ---
5
-
6
- # /performance-review-next - Interactive Component Review Session
7
-
8
- > Reads `_tour_tracker.json`, presents a dashboard of produced components,
9
- > and guides the user through reviewing each one. Fix commits are separate.
10
- > Halted components can be retried or dropped.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Required | Default | Description |
15
- |-----------|----------|---------|-------------|
16
- | `--status` | No | - | Show dashboard only, don't start review loop |
17
-
18
- ```
19
- /performance-review-next
20
- /performance-review-next --status
21
- ```
22
-
23
- ---
24
-
25
- ## Constants
26
-
27
- ```
28
- REPO_ROOT = git repo root (auto-detect)
29
- TRACKER_FILE = ${REPO_ROOT}/_tour_tracker.json
30
- UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
31
- ```
32
-
33
- ---
34
-
35
- ## STEP 0 - Read Tracker & Show Dashboard
36
-
37
- Read `_tour_tracker.json`. If not found → HALT: "No tour in progress."
38
-
39
- Detect lean mode:
40
- ```python
41
- lean_mode = tracker.get("lean_mode", False)
42
- ```
43
-
44
- ### Dashboard
45
-
46
- ```
47
- ╔══════════════════════════════════════════════════════════════╗
48
- ║ TOUR REVIEW DASHBOARD ║
49
- ╠══════════════════════════════════════════════════════════════╣
50
- ║ ║
51
- ║ # │ Issue │ Component │ Status ║
52
- ║ ──┼────────┼──────────────┼──────────────────────────────── ║
53
- ║ 1 │ #1000 │ ComponentA │ ✅ Produced - ready for review ║
54
- ║ 2 │ #1002 │ ComponentC │ ✅ Produced - ready for review ║
55
- ║ 3 │ #1001 │ ComponentB │ ❌ Halted (Phase 4) ║
56
- ║ ║
57
- ║ Reviewed: 0/2 produced ║
58
- ║ ║
59
- ╚══════════════════════════════════════════════════════════════╝
60
- ```
61
-
62
- If `lean_mode` is `true`, add a warning banner after the dashboard:
63
-
64
- ```
65
- ⚠️ LEAN MODE - Tests & wiki were NOT generated.
66
- Review covers: implementation (Phase 4) + Code Connect (Phase 6) only.
67
- ```
68
-
69
- If `--status` → print dashboard and exit.
70
-
71
- ---
72
-
73
- ## STEP 1 - Build All (One Time)
74
-
75
- Before any review, run a single build to verify the current state:
76
-
77
- ```bash
78
- xcodebuild build -project "${REPO_ROOT}/{build.xcodeproj}" \
79
- -scheme {build.scheme} -destination 'generic/platform=iOS' \
80
- CODE_SIGNING_ALLOWED=NO -quiet
81
- ```
82
-
83
- **If build fails:**
84
-
85
- Identify which component's files caused the failure from the error output.
86
- Print:
87
-
88
- ```
89
- ⚠️ Build failed. Error in: Sources/.../ComponentA/ComponentAView.swift:42
90
- Likely component: ComponentA (#1000)
91
-
92
- Fix the issue, then run /performance-review-next to continue.
93
- ```
94
-
95
- Do NOT proceed until build passes.
96
-
97
- **If build passes:** Print "Build ✅ - all components compile" and proceed to STEP 2.
98
-
99
- ---
100
-
101
- ## STEP 2 - Review Loop
102
-
103
- Ask user which component to review:
104
-
105
- ```
106
- Which component would you like to review?
107
- [1] ComponentA (#1000) - ready for review
108
- [2] ComponentC (#1002) - ready for review
109
- [3] ComponentB (#1001) - halted (retry/drop)
110
- [done] All reviews complete → proceed to commit
111
- ```
112
-
113
- ### 2a. Reviewing a Produced Component
114
-
115
- When user selects a produced component:
116
-
117
- 1. **Show component files:**
118
- ```bash
119
- # List files created by this component
120
- find "${UICOMPONENTS}/Sources" -path "*/${COMPONENT_NAME}/*" -type f
121
- find "${UICOMPONENTS}/Tests" -path "*/${COMPONENT_NAME}*" -type f
122
- ```
123
-
124
- 2. **Run component tests:**
125
-
126
- > **LEAN MODE:** If `lean_mode` is `true`, **SKIP this substep.** Print `Tests: ⏭ skipped (lean mode)` instead.
127
-
128
- ```bash
129
- xcodebuild test -project "${REPO_ROOT}/{build.xcodeproj}" \
130
- -scheme {build.scheme} \
131
- -destination 'platform=iOS Simulator,name=iPhone 16 Pro' \
132
- -only-testing:"UIComponentsTests/${COMPONENT_NAME}ViewInspectorTests" \
133
- -only-testing:"UIComponentsTests/${COMPONENT_NAME}SnapshotTests" \
134
- CODE_SIGNING_ALLOWED=NO -quiet
135
- ```
136
-
137
- 3. **Present review options:**
138
- ```
139
- ComponentA (#1000) - Review
140
- Files: 8 files (view, config, tests, snapshots, wiki, code-connect) # lean: fewer files
141
- Tests: ✅ 12 passed # lean: ⏭ skipped (lean mode)
142
-
143
- Actions:
144
- [approve] Mark as reviewed ✅
145
- [fix] I see an issue - let me fix it
146
- [back] Back to dashboard
147
- ```
148
-
149
- 4. **If user selects "fix":**
150
- - User makes changes manually or describes the fix
151
- - Agent applies the fix
152
- - Agent commits the fix:
153
- ```bash
154
- cd ${UICOMPONENTS}
155
- git add -A
156
- git commit -m "fix(uicomponents): [${JIRA_KEY}] fix ${COMPONENT_NAME} review feedback
157
-
158
- Refs: ${JIRA_KEY}
159
- Tour: performance-tour review fix"
160
- ```
161
- - Re-run tests to verify fix
162
- - Return to review options for this component
163
-
164
- 5. **If user selects "approve":**
165
- - Update tracker: add to `reviewed_components`
166
- - Print: "✅ ComponentA marked as reviewed"
167
- - Return to dashboard
168
-
169
- ### 2b. Reviewing a Halted Component
170
-
171
- When user selects a halted component:
172
-
173
- ```
174
- ComponentB (#1001) - Halted at Phase 4
175
- Reason: Build failure - missing dependency protocol
176
-
177
- Actions:
178
- [retry] Re-produce this component from scratch
179
- [drop] Remove from tour (issue stays open)
180
- [back] Back to dashboard
181
- ```
182
-
183
- **If "retry":**
184
- 1. Run `/performance-start <issue> --tour` + `/performance-swiftui <figma-url>` (add `--lean` if `lean_mode` is `true`)
185
- 2. If successful → commit locally, update tracker to `"produced"`
186
- 3. Return to dashboard (component now reviewable)
187
-
188
- **If "drop":**
189
- 1. Update tracker: move from `halted_components` to `dropped_components`
190
- 2. Print: "ComponentB dropped from tour. Issue #1001 remains open."
191
- 3. Return to dashboard
192
-
193
- ### 2c. All Reviews Complete
194
-
195
- When user selects "done" or all produced components are reviewed:
196
-
197
- ```
198
- ╔══════════════════════════════════════════════════════════════╗
199
- ║ REVIEW COMPLETE ║
200
- ╠══════════════════════════════════════════════════════════════╣
201
- ║ ║
202
- ║ Reviewed: 2 components ║
203
- ║ Dropped: 1 component (ComponentB) ║
204
- ║ ║
205
- ║ Ready to commit: ║
206
- ║ ✅ #1000 - ComponentA ║
207
- ║ ✅ #1002 - ComponentC ║
208
- ║ ║
209
- ║ Next: /performance-iteration-commit-all ║
210
- ╚══════════════════════════════════════════════════════════════╝
211
- ```
212
-
213
- Update tracker: `current_step = "STEP_3"`.
214
-
215
- ---
216
-
217
- ## Error Handling
218
-
219
- | Error | Action |
220
- |-------|--------|
221
- | Tracker not found | HALT: "No tour in progress" |
222
- | No produced components | HALT: "No components to review. All halted." |
223
- | Build fails during review | Show error, let user fix, re-build |
224
- | Test fails after fix | Show failure, let user decide (fix again or approve anyway) |
225
- | Retry fails again | Mark as halted again, ask user to drop or try later |
226
-
227
- ---
228
-
229
- ## Guardrails
230
-
231
- > **NEVER push during review.** All commits (including fixes) are local only.
232
-
233
- > **Fix commits are ALWAYS separate.** Never amend, squash, or rebase existing commits.
234
- > New fix commit with descriptive message.
235
-
236
- > **ALWAYS update tracker after every action** (approve, fix commit, retry, drop).
237
-
238
- > **ALWAYS re-run build after any fix** to ensure project still compiles.
@@ -1,430 +0,0 @@
1
- ---
2
- name: performance-start
3
- description: Identical to `/figma-to-swift-ui-start` for Steps 0-5. After printing the summary (Step 6), automatically invokes `/performance-swiftui <figma-url>` to begin the implementation pipeline.
4
- ---
5
-
6
- # /performance-start - Start + Auto-Launch Performance Pipeline
7
-
8
- > Identical to `/figma-to-swift-ui-start` for Steps 0-5. After printing the summary (Step 6),
9
- > automatically invokes `/performance-swiftui <figma-url>` to begin the implementation pipeline
10
- > without waiting for user input.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Required | Default | Description |
15
- |-----------|----------|---------|-------------|
16
- | `<issue-number>` | Yes | - | GitHub issue number from uicomponents repo |
17
- | `jira id <KEY>` | No | - | Jira issue key (e.g., `{jira.projectKey}-129850`). If provided, updates GitHub issue body and populates Jira task. |
18
- | `--tour` | No | - | Tour mode: skips fetch/pull (STEP 1) and branch creation (STEP 2). Used by `/performance-tour` when producing multiple components on `iteration/develop`. |
19
- | `--lean` | No | - | Lean mode: forwarded to `/performance-swiftui` to skip Phase 5 (testing) and Phase 7 (wiki). Can be combined with `--tour`. |
20
-
21
- ```
22
- /performance-start #107
23
- /performance-start 107
24
- /performance-start 160, jira id {jira.projectKey}-129850
25
- /performance-start #107 --tour
26
- /performance-start #107 --lean
27
- /performance-start #107 --tour --lean
28
- ```
29
-
30
- ### Tour Mode (`--tour`)
31
-
32
- When `--tour` is passed, the following steps are **SKIPPED**:
33
-
34
- | Step | Normal Mode | Tour Mode |
35
- |------|------------|:---------:|
36
- | STEP 0 - Parse Issue | ✅ | ✅ |
37
- | STEP 0.5 - Confirm Pipeline Mode | ✅ | **SKIP** |
38
- | STEP 1 - Fetch Latest | ✅ | **SKIP** |
39
- | STEP 2 - Create Feature Branches | ✅ | **SKIP** |
40
- | STEP 3 - Registry Lookup | ✅ | ✅ |
41
- | STEP 3.5 - Save Specs Artifact | ✅ | ✅ |
42
- | STEP 4 - Assign to Me | ✅ | ✅ |
43
- | STEP 5 - Update Issue Status | ✅ | ✅ |
44
- | STEP 6 - Summary + Auto-Launch | ✅ | ✅ |
45
-
46
- **Rationale:** In tour mode, `/performance-tour` has already fetched latest and
47
- all submodules are on `iteration/develop`. Creating feature branches would conflict
48
- with the tour's single-branch local commit strategy.
49
-
50
- ---
51
-
52
- ## Constants
53
-
54
- ```
55
- REPO_ROOT = git repo root (auto-detect)
56
- GH_REPO = {github.componentsRepo}
57
- DEFAULT_JIRA = {jira.projectKey}-124692
58
- BASE_BRANCH = develop # main repo; submodules use iteration/develop
59
- ```
60
-
61
- ### Submodule Paths
62
-
63
- ```
64
- MAIN_REPO = ${REPO_ROOT}
65
- COMMON = ${REPO_ROOT}/{repos.common.path}
66
- UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
67
- WIKI = ${REPO_ROOT}/{repos.wiki.path}
68
- ```
69
-
70
- ---
71
-
72
- ## STEP 0 - Parse Issue
73
-
74
- ```bash
75
- gh issue view <N> --repo ${GH_REPO} --json number,title,body,labels,assignees
76
- ```
77
-
78
- Extract from the issue body:
79
- - **Component Name** - from `### Component Name (PascalCase)` section
80
- - **Figma URL** - from `### Figma URL` section
81
- - **Node ID** - from `### Node ID` section
82
- - **Registry Name** - from `### Registry Name` section
83
- - **Figma Page** - from `### Figma Page` section
84
- - **Jira Key** - from `### Jira Issue` section (if not `_No response_`)
85
- - **Acceptance Criteria** - from `### Acceptance Criteria` section (if not `_No response_`)
86
-
87
- If Jira key is `_No response_` or empty **and** user provided a `jira id` parameter:
88
- 1. Use the user-provided key as `JIRA_ISSUE`.
89
- 2. Update the GitHub issue body - replace `_No response_` under `### Jira Issue` with a Jira link:
90
- ```bash
91
- # Read current body, replace the Jira section, update via gh
92
- CURRENT_BODY=$(gh issue view <N> --repo ${GH_REPO} --json body --jq '.body')
93
- # Replace '_No response_' in the Jira Issue section with the link
94
- NEW_BODY=$(echo "$CURRENT_BODY" | sed 's|### Jira Issue\n\n_No response_|### Jira Issue\n\n[<JIRA_KEY>]({jira.baseUrl}/browse/<JIRA_KEY>)|')
95
- gh issue edit <N> --repo ${GH_REPO} --body "$NEW_BODY"
96
- ```
97
-
98
- If Jira key is `_No response_` or empty **and** no `jira id` parameter, use `DEFAULT_JIRA`.
99
-
100
- Derive:
101
- - `COMPONENT_PASCAL` = Component Name (e.g., `ModalsTitle`)
102
- - `COMPONENT_KEBAB` = kebab-case (e.g., `modals-title`)
103
- - `JIRA_ISSUE` = extracted key or default
104
- - `NODE_UNDERSCORE` = node-id with `-` replaced by `_` (e.g., `2820-25995` → `2820_25995`)
105
- - `BRANCH_NAME` = `feature/${JIRA_ISSUE}-GH${N}-N${NODE_UNDERSCORE}-${COMPONENT_KEBAB}`
106
-
107
- Print:
108
-
109
- ```
110
- -------------------------------------------
111
- Issue: #<N>
112
- Component: <COMPONENT_PASCAL>
113
- Jira: <JIRA_ISSUE>
114
- Node ID: <NODE_ID>
115
- Branch: feature/<JIRA_ISSUE>-GH<N>-N<NODE_UNDERSCORE>-<COMPONENT_KEBAB>
116
- Base: develop (main repo) / iteration/develop (submodules)
117
- -------------------------------------------
118
- ```
119
-
120
- ---
121
-
122
- ## STEP 0.5 - Confirm Pipeline Mode
123
-
124
- > **If `--tour` is set → SKIP this step.** Tour mode delegates mode selection to `/performance-tour`.
125
-
126
- After parsing the issue, **always ask the user** to confirm which pipeline mode to use - regardless of whether `--lean` was passed as a parameter. This prevents accidental full-pipeline runs when lean was intended, or vice versa.
127
-
128
- **Use the ask-questions tool** with these options:
129
-
130
- | Header | Question | Options |
131
- |--------|----------|---------|
132
- | Pipeline Mode | `<COMPONENT_PASCAL>` implementation - which pipeline mode? | **Lean** (skip testing & wiki - Phases 5, 7) · **Full** (all 8 phases) |
133
-
134
- - If `--lean` was passed in the original command, pre-select **Lean** as the recommended option.
135
- - If no flag was passed, pre-select **Full** as the recommended option.
136
-
137
- **After user responds:**
138
- - If user picks **Lean** → set internal `LEAN_FLAG = true` (forward `--lean` to `/performance-swiftui`).
139
- - If user picks **Full** → set internal `LEAN_FLAG = false` (no `--lean` forwarded).
140
-
141
- This confirmation overrides whatever was passed on the command line.
142
-
143
- ---
144
-
145
- ## STEP 1 - Fetch Latest
146
-
147
- > **If `--tour` is set → SKIP this entire step.** Tour mode assumes
148
- > `/performance-tour` STEP 0e has already fetched and checked out the correct branches.
149
-
150
- Ensure all repos are up to date with remote:
151
-
152
- ```bash
153
- cd ${MAIN_REPO}
154
- git fetch origin
155
- git checkout develop
156
- git pull --no-recurse-submodules origin develop
157
-
158
- cd ${COMMON}
159
- git fetch origin
160
- git checkout iteration/develop
161
- git pull origin iteration/develop
162
-
163
- cd ${UICOMPONENTS}
164
- git fetch origin
165
- git checkout iteration/develop
166
- git pull origin iteration/develop
167
- ```
168
-
169
- ---
170
-
171
- ## STEP 2 - Create Feature Branches
172
-
173
- > **If `--tour` is set → SKIP this entire step.** Tour mode stays on
174
- > `iteration/develop` with local commits. No feature branches are created.
175
-
176
- Create feature branches on **submodules only**. Do NOT create branches on the main repo - it stays on `develop`. The main repo never receives commits from this workflow; submodule refs are updated separately.
177
-
178
- ```bash
179
- # Common (tokens, localization, accessibility, testing identifiers)
180
- cd ${COMMON}
181
- git checkout -b ${BRANCH_NAME}
182
-
183
- # UIComponents (SwiftUI views, tests, snapshots)
184
- cd ${UICOMPONENTS}
185
- git checkout -b ${BRANCH_NAME}
186
- ```
187
-
188
- Wiki submodule stays on `master` - wiki changes are committed directly.
189
-
190
- ---
191
-
192
- ## STEP 3 - Registry Lookup
193
-
194
- ```bash
195
- cd ${COMMON}
196
- .build/debug/FigmaRegistryUtility lookup --node-id <NODE_ID>
197
- ```
198
-
199
- Collect:
200
- - `suggestedComponentLocation` - where the Swift files will go
201
- - `suggestedArtifactPath` - where implementation artifacts go
202
-
203
- Print:
204
-
205
- ```
206
- Component Location: <suggestedComponentLocation>
207
- Artifact Path: <suggestedArtifactPath>
208
- ```
209
-
210
- ---
211
-
212
- ## STEP 3.5 - Save Specs Artifact
213
-
214
- If the issue has acceptance criteria (not `_No response_`), save them as an artifact that the implementation pipeline can consume.
215
-
216
- ```bash
217
- mkdir -p ${REPO_ROOT}/${suggestedArtifactPath}/pass0
218
- ```
219
-
220
- Write `${suggestedArtifactPath}/pass0/specs.md`:
221
-
222
- ```markdown
223
- # Implementation Specs: {ComponentName}
224
-
225
- ## Source
226
- - Issue: #{N}
227
- - Figma: {FIGMA_URL}
228
-
229
- ## Acceptance Criteria
230
-
231
- {ACCEPTANCE_CRITERIA from issue body - verbatim}
232
-
233
- ## Implementation Guidance
234
-
235
- {Convert the acceptance criteria into actionable implementation instructions for the AI agent:
236
- - Rephrase checkbox items as concrete requirements
237
- - Add technical context where the criteria imply Swift/SwiftUI patterns
238
- - Preserve the user's intent exactly - don't add or remove requirements}
239
- ```
240
-
241
- If no acceptance criteria → skip this step. No file created.
242
-
243
- ---
244
-
245
- ## STEP 4 - Assign to Me
246
-
247
- Assign the GitHub issue and linked Jira task (if any) to the current user. Same logic as `/figma-issue assign`:
248
-
249
- ```bash
250
- gh issue edit <N> --repo ${GH_REPO} --add-assignee @me
251
- ```
252
-
253
- If Jira key exists (from issue body or user-provided `jira id` parameter - not `_No response_` and not `DEFAULT_JIRA`):
254
-
255
- Use **Python urllib** for all Jira API calls (curl is blocked by terminal auto-approval policy):
256
-
257
- ```python
258
- # /tmp/jira_start_<JIRA_KEY>.py
259
- import subprocess, urllib.request, json
260
-
261
- token = subprocess.check_output(
262
- ["security", "find-generic-password", "-a",
263
- subprocess.check_output(["whoami"]).decode().strip(),
264
- "-s", "JIRA_TOKEN", "-w"],
265
- stderr=subprocess.DEVNULL
266
- ).decode().strip()
267
-
268
- JIRA_KEY = "<JIRA_KEY>"
269
- FIGMA_URL = "<FIGMA_URL>"
270
- GITHUB_URL = "https://github.com/{github.componentsRepo}/issues/<N>"
271
- REGISTRY_NAME = "<REGISTRY_NAME>"
272
- COMPONENT_NAME = "<COMPONENT_PASCAL>"
273
- PAGE_NAME = "<FIGMA_PAGE>"
274
-
275
- # 1. Get current user
276
- req = urllib.request.Request(
277
- "{jira.baseUrl}/rest/api/2/myself",
278
- headers={"Authorization": f"Bearer {token}"}
279
- )
280
- resp = urllib.request.urlopen(req, timeout=15)
281
- username = json.loads(resp.read().decode())["name"]
282
- print(f"Username: {username}")
283
-
284
- # 2. Assign to current user
285
- data = json.dumps({"name": username}).encode()
286
- req2 = urllib.request.Request(
287
- f"{jira.baseUrl}/rest/api/2/issue/{JIRA_KEY}/assignee",
288
- data=data,
289
- headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
290
- method="PUT"
291
- )
292
- try:
293
- resp2 = urllib.request.urlopen(req2, timeout=15)
294
- print(f"Assigned {JIRA_KEY} to {username} (HTTP {resp2.status})")
295
- except urllib.error.HTTPError as e:
296
- print(f"Assign failed - HTTP {e.code}: {e.read().decode()[:200]}")
297
-
298
- # 3. Update Jira summary, description, and labels
299
- description = (
300
- "h3. Figma\n"
301
- f"[{COMPONENT_NAME}|{FIGMA_URL}]\n\n"
302
- "h3. GitHub Issue\n"
303
- f"[#{<N>}|{GITHUB_URL}]\n\n"
304
- "h3. Component\n"
305
- f"* *Registry Name:* {REGISTRY_NAME}\n"
306
- f"* *Component Name:* {COMPONENT_NAME}\n"
307
- f"* *Page:* {PAGE_NAME}\n\n"
308
- "h3. Status\n"
309
- "* (x) Implementation\n"
310
- "* (x) Testing\n"
311
- "* (x) Code Connect\n"
312
- "* (x) Documentation"
313
- )
314
- summary = f"Implement {COMPONENT_NAME} iOS UI Component"
315
- update_data = json.dumps({
316
- "fields": {
317
- "summary": summary,
318
- "description": description,
319
- "labels": ["redesign_ios_ui_component", "MobRedesign"],
320
- "components": [{"name": "TKMOB IOS"}],
321
- "fixVersions": [{"name": "no-version"}],
322
- "customfield_22025": {"value": "YOK"},
323
- "customfield_21400": ["no-version"]
324
- }
325
- }).encode()
326
- req3 = urllib.request.Request(
327
- f"{jira.baseUrl}/rest/api/2/issue/{JIRA_KEY}",
328
- data=update_data,
329
- headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
330
- method="PUT"
331
- )
332
- try:
333
- resp3 = urllib.request.urlopen(req3, timeout=15)
334
- print(f"Updated {JIRA_KEY} content (HTTP {resp3.status})")
335
- except urllib.error.HTTPError as e:
336
- print(f"Update failed - HTTP {e.code}: {e.read().decode()[:200]}")
337
- ```
338
-
339
- Run: `python3 /tmp/jira_start_<JIRA_KEY>.py`
340
-
341
- If Jira token not found or VPN unreachable, skip with warning:
342
-
343
- ```
344
- ⚠️ Jira update skipped (token missing or VPN unreachable). Update <JIRA_KEY> manually if needed.
345
- ```
346
-
347
- ---
348
-
349
- ## STEP 5 - Update Issue Status (required)
350
-
351
- **This step is mandatory. Do not skip it and do not defer it.** The issue
352
- is on the board with Status=Todo after creation. Moving it to Status=In
353
- Develop is how the board reflects that someone has started working on
354
- it. If you skip this step, the issue visually stays in the Todo column
355
- even though work has started.
356
-
357
- Set the issue phase to "Implementation" and status to "In Develop" on the Projects V2 board:
358
-
359
- ```bash
360
- # Get issue node ID
361
- ISSUE_NODE_ID=$(gh api graphql -f query='{ repository(owner: "{github.org}", name: "{project.slug}-components") { issue(number: <N>) { id } } }' --jq '.data.repository.issue.id')
362
-
363
- # Add to project (if not already). This mutation is idempotent - if the
364
- # item already exists it returns the existing item id.
365
- ITEM_ID=$(gh api graphql -f query='mutation { addProjectV2ItemById(input: { projectId: "{github.projectV2Id}", contentId: "'"$ISSUE_NODE_ID"'" }) { item { id } } }' --jq '.data.addProjectV2ItemById.item.id')
366
-
367
- # Set Status = In Develop (option id: bc6c45f7)
368
- gh api graphql -f query='mutation { updateProjectV2ItemFieldValue(input: { projectId: "{github.projectV2Id}", itemId: "'"$ITEM_ID"'", fieldId: "{github.projectV2Fields.status}", value: { singleSelectOptionId: "bc6c45f7" } }) { projectV2Item { id } } }'
369
-
370
- # Set Phase = Implementation (option id: 0577dcda)
371
- gh api graphql -f query='mutation { updateProjectV2ItemFieldValue(input: { projectId: "{github.projectV2Id}", itemId: "'"$ITEM_ID"'", fieldId: "{github.projectV2Fields.phase}", value: { singleSelectOptionId: "0577dcda" } }) { projectV2Item { id } } }'
372
- ```
373
-
374
- ### Verify the move landed
375
-
376
- After the mutations return, confirm Status=In Develop is set (this catches
377
- silent VALIDATION errors from stale option IDs):
378
-
379
- ```bash
380
- gh api graphql -f query='{ node(id: "'"$ITEM_ID"'") { ... on ProjectV2Item { fieldValues(first: 20) { nodes { ... on ProjectV2ItemFieldSingleSelectValue { field { ... on ProjectV2SingleSelectField { name } } name } } } } } }' \
381
- --jq '.data.node.fieldValues.nodes[] | select(.field.name == "Status") | .name'
382
- ```
383
-
384
- Expected output: `In Develop`. If you see anything else (or empty),
385
- re-fetch the current option IDs and retry - do NOT proceed to implementation
386
- without the Status set correctly.
387
-
388
- ---
389
-
390
- ## STEP 6 - Summary + Auto-Launch Pipeline
391
-
392
- Print:
393
-
394
- ```markdown
395
- Ready to implement:
396
-
397
- | Field | Value |
398
- |-------|-------|
399
- | Issue | [#N](url) |
400
- | Component | <COMPONENT_PASCAL> |
401
- | Jira | <JIRA_ISSUE> |
402
- | Branch | `<BRANCH_NAME>` |
403
- | Base | `develop` (main repo) / `iteration/develop` (submodules) |
404
- | Component Location | <suggestedComponentLocation> |
405
- | Artifact Path | <suggestedArtifactPath> |
406
-
407
- 🚀 Auto-launching /performance-swiftui pipeline...
408
- ```
409
-
410
- **Immediately after printing the summary**, invoke the `/performance-swiftui` skill with the Figma URL extracted from the issue:
411
-
412
- ```
413
- /performance-swiftui <FIGMA_URL> # if LEAN_FLAG = false (Full mode confirmed in STEP 0.5)
414
- /performance-swiftui <FIGMA_URL> --lean # if LEAN_FLAG = true (Lean mode confirmed in STEP 0.5)
415
- ```
416
-
417
- Forward `--lean` based on the user's confirmed selection in **STEP 0.5** (not the raw command-line flag). This starts Phase 0 of the performance-optimized implementation pipeline.
418
-
419
- > If any STEP (0-5) failed or was aborted, do NOT auto-launch. Print the error and stop.
420
-
421
- ---
422
-
423
- ## Error Handling
424
-
425
- - **Issue not found**: Print error and stop.
426
- - **Issue body missing required fields**: Print which fields are missing, stop.
427
- - **FigmaRegistryUtility not built**: Run `swift build --product FigmaRegistryUtility` in common.
428
- - **Branch already exists**: Print warning - checkout existing branch instead of creating.
429
- - **Main repo not on develop**: Fetch and checkout automatically.
430
- - **Submodule not on iteration/develop**: Fetch and checkout automatically.