@mmerterden/multi-agent-pipeline 11.2.0 → 11.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +2 -2
  3. package/docs/FIGMA_PIPELINE.md +12 -25
  4. package/docs/architecture.md +3 -5
  5. package/docs/features.md +8 -8
  6. package/install/_dev-only-files.mjs +0 -6
  7. package/install/claude.mjs +39 -17
  8. package/install/copilot.mjs +22 -16
  9. package/install/templates/copilot-instructions.md +3 -3
  10. package/package.json +1 -1
  11. package/pipeline/commands/{multi-agent.md → multi-agent/SKILL.md} +39 -39
  12. package/pipeline/commands/multi-agent/{analysis.md → analysis/SKILL.md} +18 -18
  13. package/pipeline/commands/multi-agent/{analysis-resolve.md → analysis-resolve/SKILL.md} +4 -4
  14. package/pipeline/commands/multi-agent/{autopilot.md → autopilot/SKILL.md} +4 -4
  15. package/pipeline/commands/multi-agent/{build-optimize.md → build-optimize/SKILL.md} +1 -1
  16. package/pipeline/commands/multi-agent/{channels.md → channels/SKILL.md} +12 -12
  17. package/pipeline/commands/multi-agent/{dev.md → dev/SKILL.md} +4 -4
  18. package/pipeline/commands/multi-agent/{dev-autopilot.md → dev-autopilot/SKILL.md} +4 -4
  19. package/pipeline/commands/multi-agent/{dev-local.md → dev-local/SKILL.md} +5 -5
  20. package/pipeline/commands/multi-agent/{dev-local-autopilot.md → dev-local-autopilot/SKILL.md} +4 -4
  21. package/pipeline/commands/multi-agent/{finish.md → finish/SKILL.md} +6 -6
  22. package/pipeline/commands/multi-agent/{generate.md → generate/SKILL.md} +3 -3
  23. package/pipeline/commands/multi-agent/{help.md → help/SKILL.md} +4 -4
  24. package/pipeline/commands/multi-agent/{local.md → local/SKILL.md} +5 -5
  25. package/pipeline/commands/multi-agent/{local-autopilot.md → local-autopilot/SKILL.md} +5 -5
  26. package/pipeline/commands/multi-agent/{manual-test.md → manual-test/SKILL.md} +1 -1
  27. package/pipeline/commands/multi-agent/refactor/SKILL.md +257 -0
  28. package/pipeline/commands/multi-agent/{resume.md → resume/SKILL.md} +1 -1
  29. package/pipeline/commands/multi-agent/{review.md → review/SKILL.md} +5 -5
  30. package/pipeline/commands/multi-agent/{setup.md → setup/SKILL.md} +1 -1
  31. package/pipeline/commands/multi-agent/{sync.md → sync/SKILL.md} +20 -58
  32. package/pipeline/lib/credential-store.sh +8 -4
  33. package/pipeline/{commands/multi-agent → multi-agent-refs}/_account-picker.md +2 -2
  34. package/pipeline/{commands/multi-agent → multi-agent-refs}/_dev-context.md +2 -2
  35. package/pipeline/{commands/multi-agent → multi-agent-refs}/_repo-picker.md +2 -2
  36. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/android-guide.md +1 -1
  37. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/jira.md +1 -1
  38. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/wiki.md +7 -7
  39. package/pipeline/multi-agent-refs/component-dispatch.md +92 -0
  40. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/cross-cli-contract.md +10 -77
  41. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/verify-by-test.md +1 -1
  42. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/generate-issue.md +2 -2
  43. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/issue-jira-triad.md +1 -1
  44. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/keychain.md +1 -1
  45. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/log-format.md +1 -1
  46. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/modes.md +2 -2
  47. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/operations.md +1 -1
  48. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-0-init.md +10 -10
  49. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-1-analysis.md +6 -6
  50. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-2-planning.md +3 -3
  51. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-3-dev.md +10 -10
  52. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-4-review.md +8 -8
  53. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-5-test.md +3 -3
  54. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-6-commit.md +4 -4
  55. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases/phase-7-report.md +6 -6
  56. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/phases.md +12 -12
  57. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/progress-contract.md +4 -4
  58. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/swiftui-guide.md +1 -1
  59. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/tracker-contract.md +3 -3
  60. package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/wiki-capture.md +4 -4
  61. package/pipeline/preferences-template.json +17 -1
  62. package/pipeline/rules/figma-pipeline.md +2 -2
  63. package/pipeline/schemas/prefs.schema.json +0 -34
  64. package/pipeline/scripts/README.md +1 -3
  65. package/pipeline/scripts/build-skills-index.mjs +3 -6
  66. package/pipeline/scripts/eval-mine-corpus.mjs +187 -0
  67. package/pipeline/scripts/fixtures/install-layout.tsv +6 -5
  68. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  69. package/pipeline/scripts/lint-skills.mjs +26 -1
  70. package/pipeline/scripts/phase-banner.sh +2 -2
  71. package/pipeline/scripts/review-scope.mjs +94 -0
  72. package/pipeline/scripts/scan-agent-config.sh +2 -2
  73. package/pipeline/scripts/smoke-agent-log-cost.sh +1 -1
  74. package/pipeline/scripts/smoke-agent-model-routing.sh +4 -4
  75. package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +2 -2
  76. package/pipeline/scripts/smoke-channels-approval-gate.sh +2 -2
  77. package/pipeline/scripts/smoke-channels-flow.sh +5 -5
  78. package/pipeline/scripts/smoke-clarify.sh +1 -1
  79. package/pipeline/scripts/smoke-commands-skills-parity.sh +3 -3
  80. package/pipeline/scripts/smoke-community-gates.sh +1 -1
  81. package/pipeline/scripts/smoke-compliance-skills.sh +2 -2
  82. package/pipeline/scripts/smoke-cost-summary.sh +1 -1
  83. package/pipeline/scripts/smoke-cross-cli-behavior.sh +17 -43
  84. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +1 -1
  85. package/pipeline/scripts/smoke-dev-critic.sh +1 -1
  86. package/pipeline/scripts/smoke-diff-explain.sh +1 -1
  87. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  88. package/pipeline/scripts/smoke-evidence-gate.sh +1 -1
  89. package/pipeline/scripts/smoke-figma-dispatch.sh +46 -57
  90. package/pipeline/scripts/smoke-gate-hooks.sh +1 -1
  91. package/pipeline/scripts/smoke-generate-issue.sh +8 -8
  92. package/pipeline/scripts/smoke-handoff-contract.sh +3 -3
  93. package/pipeline/scripts/smoke-identity-isolation.sh +2 -2
  94. package/pipeline/scripts/smoke-intent-guard.sh +1 -1
  95. package/pipeline/scripts/smoke-issue-comment-template.sh +2 -2
  96. package/pipeline/scripts/smoke-issue-jira-triad.sh +4 -4
  97. package/pipeline/scripts/smoke-language-axis.sh +6 -6
  98. package/pipeline/scripts/smoke-learnings-ledger.sh +3 -3
  99. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +16 -16
  100. package/pipeline/scripts/smoke-model-fallback.sh +3 -3
  101. package/pipeline/scripts/smoke-multi-repo-integration.sh +2 -2
  102. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  103. package/pipeline/scripts/smoke-no-token-prompt.sh +5 -5
  104. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  105. package/pipeline/scripts/smoke-phase-6-multi.sh +1 -1
  106. package/pipeline/scripts/smoke-phase4-gates.sh +45 -0
  107. package/pipeline/scripts/smoke-plan-approval-gate.sh +5 -5
  108. package/pipeline/scripts/smoke-plan-todos.sh +3 -3
  109. package/pipeline/scripts/smoke-pr-review-actions.sh +3 -3
  110. package/pipeline/scripts/smoke-prefs-language.sh +1 -1
  111. package/pipeline/scripts/smoke-progress-contract.sh +2 -2
  112. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  113. package/pipeline/scripts/smoke-repo-map.sh +2 -2
  114. package/pipeline/scripts/smoke-shadow-git.sh +1 -1
  115. package/pipeline/scripts/smoke-skill-authoring.sh +4 -9
  116. package/pipeline/scripts/smoke-tasklist-ordering.sh +10 -10
  117. package/pipeline/scripts/smoke-test-gap.sh +1 -1
  118. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  119. package/pipeline/scripts/smoke-token-preflight.sh +2 -2
  120. package/pipeline/scripts/smoke-tracker-contract.sh +13 -13
  121. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +5 -5
  122. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  123. package/pipeline/scripts/smoke-update-check.sh +1 -1
  124. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  125. package/pipeline/scripts/smoke-validator-gates.sh +1 -1
  126. package/pipeline/scripts/smoke-verify-by-test.sh +3 -3
  127. package/pipeline/scripts/smoke-wiki-integration.sh +9 -33
  128. package/pipeline/scripts/smoke-work-summary.sh +1 -1
  129. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  130. package/pipeline/scripts/test-integrity-gate.mjs +83 -0
  131. package/pipeline/scripts/uninstall.mjs +17 -6
  132. package/pipeline/skills/.skill-manifest.json +40 -160
  133. package/pipeline/skills/.skills-index.json +3 -373
  134. package/pipeline/skills/shared/README.md +1 -1
  135. package/pipeline/skills/shared/core/multi-agent/SKILL.md +1 -1
  136. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +2 -2
  137. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
  138. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
  139. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  140. package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
  141. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
  142. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +116 -51
  143. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +8 -30
  144. package/pipeline/skills/shared/external/compose-components/SKILL.md +14 -14
  145. package/pipeline/skills/skills-index.md +3 -44
  146. package/pipeline/commands/multi-agent/refactor.md +0 -188
  147. package/pipeline/commands/multi-agent/refs/component-dispatch.md +0 -92
  148. package/pipeline/scripts/smoke-existing-discovery-gate.sh +0 -71
  149. package/pipeline/scripts/smoke-figma-android-parity.sh +0 -148
  150. package/pipeline/scripts/smoke-figma-credential-store.sh +0 -105
  151. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +0 -177
  152. package/pipeline/scripts/smoke-figma-sync.sh +0 -149
  153. package/pipeline/scripts/smoke-sync-delegation.sh +0 -74
  154. package/pipeline/skills/figma-android/README.md +0 -38
  155. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +0 -62
  156. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +0 -158
  157. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +0 -120
  158. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +0 -35
  159. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +0 -124
  160. package/pipeline/skills/figma-common/README.md +0 -64
  161. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +0 -152
  162. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +0 -282
  163. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +0 -503
  164. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +0 -288
  165. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +0 -362
  166. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +0 -206
  167. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +0 -337
  168. package/pipeline/skills/figma-common/figma-commit/SKILL.md +0 -216
  169. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +0 -223
  170. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +0 -251
  171. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +0 -78
  172. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +0 -61
  173. package/pipeline/skills/figma-common/figma-fix/SKILL.md +0 -321
  174. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +0 -542
  175. package/pipeline/skills/figma-common/figma-issue/SKILL.md +0 -750
  176. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +0 -208
  177. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +0 -1020
  178. package/pipeline/skills/figma-common/figma-mend/SKILL.md +0 -331
  179. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +0 -156
  180. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +0 -142
  181. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +0 -398
  182. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +0 -104
  183. package/pipeline/skills/figma-common/figma-review/SKILL.md +0 -400
  184. package/pipeline/skills/figma-common/figma-setup/SKILL.md +0 -514
  185. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +0 -592
  186. package/pipeline/skills/figma-common/figma-skip/SKILL.md +0 -129
  187. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +0 -105
  188. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +0 -116
  189. package/pipeline/skills/figma-common/figma-utility/SKILL.md +0 -274
  190. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +0 -808
  191. package/pipeline/skills/figma-common/figma-validate/SKILL.md +0 -633
  192. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +0 -716
  193. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +0 -238
  194. package/pipeline/skills/figma-common/performance-start/SKILL.md +0 -430
  195. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +0 -706
  196. package/pipeline/skills/figma-common/performance-tour/SKILL.md +0 -423
  197. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +0 -67
  198. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +0 -178
  199. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +0 -184
  200. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +0 -219
  201. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +0 -274
  202. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +0 -416
  203. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +0 -57
  204. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +0 -307
  205. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +0 -119
  206. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +0 -174
  207. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +0 -333
  208. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +0 -368
  209. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +0 -393
  210. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +0 -617
  211. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +0 -352
  212. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +0 -337
  213. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +0 -206
  214. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +0 -235
  215. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +0 -214
  216. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +0 -902
  217. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +0 -156
  218. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +0 -175
  219. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +0 -176
  220. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +0 -333
  221. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +0 -412
  222. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +0 -336
  223. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +0 -705
  224. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +0 -332
  225. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +0 -380
  226. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +0 -262
  227. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +0 -482
  228. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +0 -274
  229. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +0 -636
  230. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +0 -142
  231. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +0 -547
  232. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +0 -39
  233. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +0 -659
  234. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +0 -580
  235. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +0 -51
  236. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +0 -183
  237. package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +0 -64
  238. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +0 -531
  239. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +0 -89
  240. package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +0 -155
  241. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +0 -196
  242. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +0 -57
  243. package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +0 -89
  244. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +0 -227
  245. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +0 -157
  246. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +0 -90
  247. package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +0 -116
  248. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +0 -153
  249. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +0 -130
  250. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +0 -218
  251. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +0 -188
  252. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +0 -93
  253. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +0 -98
  254. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +0 -261
  255. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +0 -147
  256. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +0 -182
  257. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +0 -185
  258. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +0 -609
  259. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +0 -332
  260. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +0 -261
  261. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +0 -184
  262. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +0 -188
  263. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +0 -768
  264. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +0 -191
  265. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +0 -420
  266. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +0 -9
  267. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +0 -336
  268. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +0 -391
  269. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +0 -292
  270. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +0 -1
  271. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +0 -93
  272. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +0 -299
  273. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +0 -343
  274. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +0 -206
  275. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +0 -149
  276. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +0 -281
  277. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +0 -332
  278. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +0 -176
  279. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +0 -98
  280. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +0 -298
  281. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +0 -195
  282. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +0 -1298
  283. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +0 -228
  284. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +0 -1089
  285. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +0 -141
  286. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +0 -106
  287. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +0 -162
  288. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +0 -105
  289. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +0 -179
  290. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +0 -260
  291. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +0 -260
  292. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +0 -86
  293. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +0 -321
  294. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +0 -1470
  295. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +0 -176
  296. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +0 -147
  297. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +0 -629
  298. /package/pipeline/commands/multi-agent/{delete.md → delete/SKILL.md} +0 -0
  299. /package/pipeline/commands/multi-agent/{diff-explain.md → diff-explain/SKILL.md} +0 -0
  300. /package/pipeline/commands/multi-agent/{garbage-collect.md → garbage-collect/SKILL.md} +0 -0
  301. /package/pipeline/commands/multi-agent/{issue.md → issue/SKILL.md} +0 -0
  302. /package/pipeline/commands/multi-agent/{jira.md → jira/SKILL.md} +0 -0
  303. /package/pipeline/commands/multi-agent/{kill.md → kill/SKILL.md} +0 -0
  304. /package/pipeline/commands/multi-agent/{language.md → language/SKILL.md} +0 -0
  305. /package/pipeline/commands/multi-agent/{log.md → log/SKILL.md} +0 -0
  306. /package/pipeline/commands/multi-agent/{prune-logs.md → prune-logs/SKILL.md} +0 -0
  307. /package/pipeline/commands/multi-agent/{purge.md → purge/SKILL.md} +0 -0
  308. /package/pipeline/commands/multi-agent/{scan.md → scan/SKILL.md} +0 -0
  309. /package/pipeline/commands/multi-agent/{search.md → search/SKILL.md} +0 -0
  310. /package/pipeline/commands/multi-agent/{stack.md → stack/SKILL.md} +0 -0
  311. /package/pipeline/commands/multi-agent/{status.md → status/SKILL.md} +0 -0
  312. /package/pipeline/commands/multi-agent/{test.md → test/SKILL.md} +0 -0
  313. /package/pipeline/commands/multi-agent/{update.md → update/SKILL.md} +0 -0
  314. /package/pipeline/{commands/multi-agent → multi-agent-refs}/_input-parser.md +0 -0
  315. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/analysis-template.md +0 -0
  316. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/audit-guide.md +0 -0
  317. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/backend-guide.md +0 -0
  318. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/confluence.md +0 -0
  319. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/issue-comment.md +0 -0
  320. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr-review-actions.md +0 -0
  321. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/channels/pr.md +0 -0
  322. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/conventions-defaults.md +0 -0
  323. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/autopilot-circuit-breaker.md +0 -0
  324. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/dev-critic.md +0 -0
  325. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/external-context-injection.md +0 -0
  326. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/model-fallback.md +0 -0
  327. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/plan-todos.md +0 -0
  328. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/prior-fix-detection.md +0 -0
  329. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/repo-map.md +0 -0
  330. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/features/shadow-git.md +0 -0
  331. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/frontend-guide.md +0 -0
  332. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/knowledge.md +0 -0
  333. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/multi-repo-integration-build.md +0 -0
  334. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/picker-contract.md +0 -0
  335. /package/pipeline/{commands/multi-agent/refs → multi-agent-refs}/rules.md +0 -0
@@ -1,216 +0,0 @@
1
- ---
2
- name: figma-commit
3
- description: Reviews a Figma component implementation, then creates feature branches across submodules, commits, pushes, and opens PRs. Delegates mobile-common conflict resolution to `COMMON_REBASE.md`.
4
- ---
5
-
6
- # /figma-commit - Review, Branch, Commit & Push
7
-
8
- ## Purpose
9
-
10
- Reviews a Figma component implementation, then creates feature branches across submodules, commits, pushes, and opens PRs. Delegates mobile-common conflict resolution to `COMMON_REBASE.md`.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Required | Default | Description |
15
- |-----------|----------|---------|-------------|
16
- | `component-name` | Yes | - | PascalCase component name (e.g., `TurkishButton`) |
17
- | `--jira` | No | `{jira.projectKey}-124692` | Jira issue key |
18
- | `--gh` | No | - | GitHub issue number (for branch name construction) |
19
-
20
- ```
21
- /figma-commit TurkishButton
22
- /figma-commit TurkishButton --jira {jira.projectKey}-99999 --gh 107
23
- ```
24
-
25
- ---
26
-
27
- ## Workflow
28
-
29
- ### STEP 0 - Resolve Parameters
30
-
31
- 1. Parse `component-name`. Convert to kebab-case for branch name.
32
- 2. Parse `--jira` or use default `{jira.projectKey}-124692`.
33
- 3. Parse `--gh` if provided.
34
- 4. `REPO_ROOT` = git repo root.
35
- 5. Detect current branch:
36
- ```bash
37
- CURRENT_BRANCH=$(git -C "${REPO_ROOT}/{repos.components.path}" rev-parse --abbrev-ref HEAD)
38
- ```
39
- 6. **If already on a `feature/` branch** → use it as `BRANCH_NAME`. Extract `JIRA_ISSUE` from branch name (first segment after `feature/`).
40
- 7. **If on `develop` or `iteration/develop`** → construct branch name:
41
- - If `--gh` provided: look up issue to get node-id
42
- ```bash
43
- NODE_ID=$(gh issue view <GH> --repo ${GH_REPO} --json body --jq '.body' | grep -A1 '### Node ID' | tail -1)
44
- NODE_UNDERSCORE=$(echo "${NODE_ID}" | tr '-' '_')
45
- BRANCH_NAME="feature/${JIRA_ISSUE}-GH${GH}-N${NODE_UNDERSCORE}-${COMPONENT_KEBAB}"
46
- ```
47
- - If `--gh` not provided: use simple format
48
- ```bash
49
- BRANCH_NAME="feature/${JIRA_ISSUE}-${COMPONENT_KEBAB}"
50
- ```
51
- 8. Set remaining variables:
52
- - `COMPONENT_PASCAL`, `COMPONENT_KEBAB`, `JIRA_ISSUE`, `BRANCH_NAME`
53
- - `FIGMA_URL` = from component registry JSON (`confluence.page` field's sibling `figmaUrl`)
54
- - `CONFLUENCE_IOS_URL` = from component registry JSON (`confluence.ios` field)
55
-
56
- ### STEP 1 - Code Review & Auto-Fix
57
-
58
- 1. Read `.instructions/figma/figma-commit/REVIEW.md`.
59
- 2. Run the full 13-point review checklist against the component.
60
- 3. Print the review output table.
61
- 4. **If violations found**: Auto-fix every fixable violation (magic numbers, missing identifiers, wrong patterns, missing imports, preview issues, etc.).
62
- 5. After fixing, re-run the review to confirm.
63
- 6. If fixes applied, build to verify:
64
- ```bash
65
- xcodebuild build -project "${REPO_ROOT}/{build.xcodeproj}" \
66
- -scheme {build.scheme} -destination 'generic/platform=iOS' \
67
- CODE_SIGNING_ALLOWED=NO -quiet
68
- ```
69
- 7. If unfixable violations remain → ask user.
70
- 8. If PASS or WARN → proceed.
71
-
72
- ### STEP 2 - Detect Changes Per Repo
73
-
74
- `git status --porcelain` shows all tracked changes in short format - modified, added, deleted, untracked. Each line starts with a two-character status code (e.g., `M` modified, `??` untracked, `A` added, `D` deleted).
75
-
76
- ```bash
77
- HAS_MAIN=$(cd "${REPO_ROOT}" && git status --porcelain | grep -v '^?? {repos.packagesContainer}/Packages/' | head -1)
78
- HAS_UICOMPONENTS=$(cd "${REPO_ROOT}/{repos.components.path}" && git status --porcelain | head -1)
79
- HAS_COMMON=$(cd "${REPO_ROOT}/{repos.common.path}" && git status --porcelain | head -1)
80
- ```
81
-
82
- **Main repo PR decision**: Skip if only submodule pointer changes (no `.instructions/` or `.claude/skills/` modifications).
83
-
84
- ### STEP 3 - Common Submodule (if HAS_COMMON)
85
-
86
- **Read and follow `.instructions/figma/figma-commit/COMMON_REBASE.md`** - handles stash, branch, conflict resolution, regeneration, validation, commit, push, and PR for mobile-common.
87
-
88
- **Do NOT merge the PR** - only create it and push. Merging is done manually by the team.
89
-
90
- ### STEP 4 - UIComponents Submodule (if HAS_UICOMPONENTS)
91
-
92
- UIComponents rarely has conflicts (new files only). Simple flow:
93
-
94
- ```bash
95
- UICOMP="${REPO_ROOT}/{repos.components.path}"
96
-
97
- # Stash
98
- cd "${UICOMP}"
99
- git stash push -u -m "figma-commit: ${COMPONENT_PASCAL} pre-branch stash"
100
-
101
- # Branch
102
- git checkout develop && git pull origin develop
103
- git checkout -b "${BRANCH_NAME}"
104
-
105
- # Pop (should apply cleanly)
106
- git stash pop
107
-
108
- # Commit
109
- git add -A
110
- git commit -m "$(cat <<'EOF'
111
- feat(uicomponents): [${JIRA_ISSUE}] add ${COMPONENT_PASCAL} component
112
-
113
- - Implement SwiftUI view with design tokens
114
- - Add configuration, modifiers, and previews
115
- - Add Code Connect and documentation
116
- - Add ViewInspector and snapshot tests
117
-
118
- Refs: ${JIRA_ISSUE}
119
- EOF
120
- )"
121
-
122
- # Push & PR (do NOT merge - PR only)
123
- git push -u origin "${BRANCH_NAME}"
124
- gh pr create --base develop \
125
- --title "feat(uicomponents): [${JIRA_ISSUE}] add ${COMPONENT_PASCAL}" \
126
- --body "$(cat <<'EOF'
127
- ## Summary
128
- - Implement ${COMPONENT_PASCAL} SwiftUI component
129
- - Add Code Connect, FIGMA.md, tests
130
-
131
- ## Visual Reference
132
- - **Figma:** ${FIGMA_URL}
133
- - **Confluence iOS:** ${CONFLUENCE_IOS_URL}
134
-
135
- ## Test plan
136
- - [ ] ViewInspector tests pass
137
- - [ ] Snapshot tests pass
138
- - [ ] Build succeeds with remote dependencies
139
-
140
- Refs: ${JIRA_ISSUE}
141
- EOF
142
- )"
143
- ```
144
-
145
- ### STEP 5 - Main Repo (if skill/instruction changes)
146
-
147
- ```bash
148
- cd "${REPO_ROOT}"
149
- git stash push -u -m "figma-commit: ${COMPONENT_PASCAL} pre-branch stash"
150
- git checkout develop && git pull origin develop
151
- git checkout -b "${BRANCH_NAME}"
152
- git stash pop
153
-
154
- git add .instructions/ .claude/skills/
155
- git commit -m "$(cat <<'EOF'
156
- feat(skills): [${JIRA_ISSUE}] update skills for ${COMPONENT_PASCAL}
157
-
158
- - Update workflow instructions and scripts
159
-
160
- Refs: ${JIRA_ISSUE}
161
- EOF
162
- )"
163
-
164
- # Push & PR (do NOT merge - PR only)
165
- git push -u origin "${BRANCH_NAME}"
166
- gh pr create --base develop \
167
- --title "feat(skills): [${JIRA_ISSUE}] skill updates for ${COMPONENT_PASCAL}" \
168
- --body "## Summary
169
- - Update workflow skills and scripts
170
-
171
- Refs: ${JIRA_ISSUE}"
172
- ```
173
-
174
- Skip this step entirely if no `.instructions/` or `.claude/skills/` changes.
175
-
176
- ### STEP 6 - Summary
177
-
178
- ```
179
- ## Commit Summary: ${COMPONENT_PASCAL}
180
-
181
- | Repo | Branch | PR |
182
- |------|--------|----|
183
- | common | ${BRANCH_NAME} | PR #N created / No changes |
184
- | uicomponents | ${BRANCH_NAME} | PR #N created / No changes |
185
- | main | ${BRANCH_NAME} | PR #N created / Skipped |
186
-
187
- Jira: ${JIRA_ISSUE}
188
- Review: PASS / WARN (N warnings)
189
- Validation: PASSED (N loc, N a11y, N testing keys)
190
- ```
191
-
192
- ---
193
-
194
- ## Execution Order
195
-
196
- Always: **common first → uicomponents → main repo**. Common PR must be merged before uicomponents PR (uicomponents depends on common via remote URL).
197
-
198
- ---
199
-
200
- ## Error Handling
201
-
202
- - **Branch already exists**: Append `-v2`, `-v3`
203
- - **Push rejected**: Report error, do NOT force-push
204
- - **Submodule not on develop**: Warn user, ask confirmation
205
- - **Common conflicts**: Follow `COMMON_REBASE.md` section4
206
- - **Validation fails**: Fix before committing - NEVER skip
207
-
208
- ---
209
-
210
- ## Notes
211
-
212
- - Always stash before branch creation
213
- - Submodules branched and pushed independently
214
- - Review step (Step 1) uses full REVIEW.md checklist - NOT optional
215
- - PRs are created but NOT merged - merging is a separate manual action
216
- - No AI attribution in commit messages - follow `GIT_COMMIT_CONVENTION.md`
@@ -1,223 +0,0 @@
1
- ---
2
- name: figma-component-confluence-sync
3
- description: Syncs component documentation from the GitHub Wiki (source of truth) to Confluence. Reads wiki markdown, converts to Confluence XHTML, uploads pages and assets. Requires VPN.
4
- ---
5
-
6
- # /figma-to-swift-ui-confluence-sync - Sync Wiki to Confluence
7
-
8
- ## Purpose
9
-
10
- Syncs component documentation from the GitHub Wiki (source of truth) to Confluence. Reads wiki markdown, converts to Confluence XHTML, uploads pages and assets. Requires VPN.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Required | Description |
15
- |-----------|----------|-------------|
16
- | `<component-name>` or `<figma-url>` | Yes | Component to sync |
17
- | `--all` | No | Sync all components that have wiki docs |
18
- | `--dry-run` | No | Convert markdown to XHTML but skip upload |
19
-
20
- ```
21
- /figma-to-swift-ui-confluence-sync ModalsTitle
22
- /figma-to-swift-ui-confluence-sync https://www.figma.com/design/...?node-id=2820-25995
23
- /figma-to-swift-ui-confluence-sync --all
24
- ```
25
-
26
- ---
27
-
28
- ## Constants
29
-
30
- ```
31
- WIKI_ROOT = {repos.wiki.path}
32
- CONFLUENCE_BASE = {confluence.baseUrl}
33
- CONFLUENCE_SPACE = DK
34
- PAGE_IDS_FILE = .instructions/figma/figma-to-swiftui/scripts/confluence-page-ids.json
35
- PUBLISH_SCRIPT = .instructions/figma/figma-to-swiftui/scripts/confluence-publish.py
36
- STATUS_SCRIPT = .instructions/figma/figma-to-swiftui/scripts/confluence-component-status.py
37
- ```
38
-
39
- ### Authentication
40
-
41
- Confluence token from macOS Keychain:
42
- ```bash
43
- CONFLUENCE_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)
44
- ```
45
-
46
- ---
47
-
48
- ## Gate 0: Resolve Component
49
-
50
- ### If Figma URL provided:
51
- 1. Extract `node-id`, run `FigmaRegistryUtility lookup --node-id`
52
- 2. Get `suggestedComponentName`, `wikiCategory`
53
-
54
- ### If component name provided:
55
- 1. Search wiki for matching directory:
56
- ```bash
57
- find ${WIKI_ROOT}/FigmaComponents -name "<ComponentName>.md" -type f
58
- ```
59
-
60
- ### Locate wiki source:
61
- ```
62
- WIKI_MD = ${WIKI_ROOT}/FigmaComponents/{category}/{componentName}/{componentName}.md
63
- WIKI_ASSETS = ${WIKI_ROOT}/FigmaComponents/{category}/{componentName}/assets/
64
- ```
65
-
66
- If wiki markdown doesn't exist → HALT: "No wiki documentation found. Run `/figma-to-swiftui phase-7` first."
67
-
68
- ---
69
-
70
- ## Gate 1: VPN Check
71
-
72
- ```bash
73
- curl -s --connect-timeout 5 "${CONFLUENCE_BASE}/rest/api/content?limit=1" \
74
- -H "Authorization: Bearer ${CONFLUENCE_TOKEN}" \
75
- -o /dev/null -w "%{http_code}"
76
- ```
77
-
78
- If not `200` → HALT: "VPN not connected or Confluence token invalid."
79
-
80
- ---
81
-
82
- ## Gate 2: Convert Markdown to XHTML
83
-
84
- Read the wiki markdown file. Read the conversion reference:
85
- ```
86
- .instructions/figma/figma-to-swiftui/reference/wiki-to-confluence-mapping.md
87
- ```
88
-
89
- ### Split at `## iOS Implementation`
90
-
91
- - Everything **above** `## iOS Implementation` → `main.html`
92
- - Everything **from** `## iOS Implementation` **onward** → `ios.html`
93
-
94
- ### Convert each part using the mapping rules:
95
-
96
- - Markdown headings → `<h2>`, `<h3>`
97
- - Markdown tables → `<table><tbody>...`
98
- - Wiki image syntax `[[/path/assets/file.png|alt]]` → `<ac:image><ri:attachment ri:filename="file.png"/></ac:image>`
99
- - Code blocks → `<ac:structured-macro ac:name="code">`
100
- - Wiki links `[[Name]]` → `<ac:link><ri:page ri:content-title="Name"/>`
101
- - External links → `<a href="...">`
102
-
103
- ### Prepend to main.html:
104
- - TOC macro
105
-
106
- ### Prepend to ios.html:
107
- - Back-link to main page
108
-
109
- ### Write output:
110
- Create a temp directory for the XHTML output:
111
- ```bash
112
- TEMP_DIR=$(mktemp -d)
113
- mkdir -p ${TEMP_DIR}/assets
114
- ```
115
-
116
- Write `${TEMP_DIR}/main.html` and `${TEMP_DIR}/ios.html`.
117
- Copy `${WIKI_ASSETS}/*` to `${TEMP_DIR}/assets/`.
118
-
119
- If `--dry-run`: print paths and stop.
120
-
121
- ---
122
-
123
- ## Gate 3: Validate XHTML
124
-
125
- ```bash
126
- python3 .instructions/figma/figma-to-swiftui/scripts/validate-phase7a.py \
127
- --confluence-path "${TEMP_DIR}" \
128
- --component-name "{ComponentName}" \
129
- --mode confluence
130
- ```
131
-
132
- If FAIL → fix conversion issues and retry.
133
-
134
- ---
135
-
136
- ## Gate 4: Upload to Confluence
137
-
138
- ### Resolve parent page
139
-
140
- 1. Check registry for existing Confluence URLs (update case)
141
- 2. Otherwise, lookup from `confluence-page-ids.json` by category path
142
- 3. Fallback: "Figma Components" root page
143
-
144
- ### Publish
145
-
146
- ```bash
147
- python3 ${PUBLISH_SCRIPT} \
148
- --component "{ComponentName}" \
149
- --artifact-path "${TEMP_DIR}" \
150
- --node-id "{nodeId}" \
151
- --parent-page-id "{parentPageId}" \
152
- --space "${CONFLUENCE_SPACE}"
153
- ```
154
-
155
- This creates/updates:
156
- - Main page: `{ComponentName}`
157
- - iOS sub-page: `{ComponentName} - iOS`
158
- - Android placeholder: `{ComponentName} - Android`
159
- - Attachments: all images from `assets/`
160
-
161
- ### Update registry
162
-
163
- The publish script updates `{nodeId}.json` with Confluence URLs.
164
-
165
- ---
166
-
167
- ## Gate 5: Refresh Status Dashboard
168
-
169
- ```bash
170
- python3 ${STATUS_SCRIPT}
171
- ```
172
-
173
- Updates the global Component Implementation Status page on Confluence.
174
-
175
- ---
176
-
177
- ## Registry flag ownership (architecture-update)
178
-
179
- This skill is a **downstream mirror** of the GitHub Wiki. It **does not** own the `status.ios.wiki` flag in the component registry - that flag is set green by `/figma-to-swift-ui-wiki` via `scripts/phase7-finalize.py`, which is upstream of this sync. Confluence URLs are written into `{nodeId}.json.confluence.ios` by the publish script (Gate 4) so downstream readers can link out, but the 4-flag status block is untouched here.
180
-
181
- If you run this skill and the `wiki` flag is still gray/yellow, run `/figma-to-swift-ui-wiki` first - that's what owns the flag.
182
-
183
- ---
184
-
185
- ## `--all` Mode
186
-
187
- When `--all` is passed:
188
-
189
- 1. Find all component markdown files:
190
- ```bash
191
- find ${WIKI_ROOT}/FigmaComponents -name "*.md" -not -name "ComponentImplementationStatus.md" -not -name "_Sidebar.md" -type f
192
- ```
193
-
194
- 2. For each component, run Gates 2-5 sequentially.
195
- 3. Run status dashboard refresh once at the end (not per component).
196
- 4. Print summary table:
197
-
198
- ```markdown
199
- | Component | Status | Confluence URL |
200
- |-----------|--------|----------------|
201
- | Checkbox | Synced | {confluence.baseUrl}/display/DK/Checkbox |
202
- | Price | Synced | {confluence.baseUrl}/display/DK/Price |
203
- | ... | ... | ... |
204
- ```
205
-
206
- ---
207
-
208
- ## Cleanup
209
-
210
- ```bash
211
- rm -rf ${TEMP_DIR}
212
- ```
213
-
214
- ---
215
-
216
- ## Error Handling
217
-
218
- - **VPN not connected**: HALT with VPN instructions.
219
- - **Wiki markdown not found**: HALT - run Phase 7 first.
220
- - **Confluence token missing**: Prompt user to add to keychain.
221
- - **XHTML validation failed**: Show violations, retry conversion.
222
- - **Upload failed (401/403)**: Token expired - prompt refresh.
223
- - **Upload failed (404)**: Wrong parent page ID - check confluence-page-ids.json.
@@ -1,251 +0,0 @@
1
- ---
2
- name: figma-component-start
3
- description: Reads a GitHub Issue, extracts component metadata, creates feature branches from `develop` (main repo) / `iteration/develop` (submodules), and checks them out locally. Prepares the workspace to begin implementation.
4
- ---
5
-
6
- # /figma-to-swift-ui-start - Start Implementation from GitHub Issue
7
-
8
- ## Purpose
9
-
10
- Reads a GitHub Issue, extracts component metadata, creates feature branches from `develop` (main repo) / `iteration/develop` (submodules), and checks them out locally. Prepares the workspace to begin implementation.
11
-
12
- ## Parameters
13
-
14
- | Parameter | Required | Default | Description |
15
- |-----------|----------|---------|-------------|
16
- | `<issue-number>` | Yes | - | GitHub issue number from uicomponents repo |
17
-
18
- ```
19
- /figma-to-swift-ui-start #107
20
- /figma-to-swift-ui-start 107
21
- ```
22
-
23
- ---
24
-
25
- ## Constants
26
-
27
- ```
28
- REPO_ROOT = git repo root (auto-detect)
29
- GH_REPO = {github.componentsRepo}
30
- BASE_BRANCH = develop # main repo; submodules use iteration/develop
31
- ```
32
-
33
- ### Submodule Paths
34
-
35
- ```
36
- MAIN_REPO = ${REPO_ROOT}
37
- COMMON = ${REPO_ROOT}/{repos.common.path}
38
- UICOMPONENTS = ${REPO_ROOT}/{repos.components.path}
39
- WIKI = ${REPO_ROOT}/{repos.wiki.path}
40
- ```
41
-
42
- ---
43
-
44
- ## STEP 0 - Parse Issue
45
-
46
- ```bash
47
- gh issue view <N> --repo ${GH_REPO} --json number,title,body,labels,assignees
48
- ```
49
-
50
- Extract from the issue body:
51
- - **Component Name** - from `### Component Name (PascalCase)` section
52
- - **Figma URL** - from `### Figma URL` section
53
- - **Node ID** - from `### Node ID` section
54
- - **Registry Name** - from `### Registry Name` section
55
- - **Figma Page** - from `### Figma Page` section
56
- - **Acceptance Criteria** - from `### Acceptance Criteria` section (if not `_No response_`)
57
-
58
- Derive:
59
- - `COMPONENT_PASCAL` = Component Name (e.g., `ModalsTitle`)
60
- - `COMPONENT_KEBAB` = kebab-case (e.g., `modals-title`)
61
- - `NODE_UNDERSCORE` = node-id with `-` replaced by `_` (e.g., `2820-25995` → `2820_25995`)
62
- - `BRANCH_NAME` = `feature/GH${N}-N${NODE_UNDERSCORE}-${COMPONENT_KEBAB}`
63
-
64
- Print:
65
-
66
- ```
67
- -------------------------------------------
68
- Issue: #<N>
69
- Component: <COMPONENT_PASCAL>
70
- Node ID: <NODE_ID>
71
- Branch: feature/GH<N>-N<NODE_UNDERSCORE>-<COMPONENT_KEBAB>
72
- Base: develop (main repo) / iteration/develop (submodules)
73
- -------------------------------------------
74
- ```
75
-
76
- ---
77
-
78
- ## STEP 1 - Fetch Latest
79
-
80
- Ensure all repos are up to date with remote:
81
-
82
- ```bash
83
- cd ${MAIN_REPO}
84
- git fetch origin
85
- git checkout develop
86
- git pull --no-recurse-submodules origin develop
87
-
88
- cd ${COMMON}
89
- git fetch origin
90
- git checkout iteration/develop
91
- git pull origin iteration/develop
92
-
93
- cd ${UICOMPONENTS}
94
- git fetch origin
95
- git checkout iteration/develop
96
- git pull origin iteration/develop
97
- ```
98
-
99
- ---
100
-
101
- ## STEP 2 - Create Feature Branches
102
-
103
- 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.
104
-
105
- ```bash
106
- # Common (tokens, localization, accessibility, testing identifiers)
107
- cd ${COMMON}
108
- git checkout -b ${BRANCH_NAME}
109
-
110
- # UIComponents (SwiftUI views, tests, snapshots)
111
- cd ${UICOMPONENTS}
112
- git checkout -b ${BRANCH_NAME}
113
- ```
114
-
115
- Wiki submodule stays on `master` - wiki changes are committed directly.
116
-
117
- ---
118
-
119
- ## STEP 3 - Registry Lookup
120
-
121
- ```bash
122
- cd ${COMMON}
123
- .build/debug/FigmaRegistryUtility lookup --node-id <NODE_ID>
124
- ```
125
-
126
- Collect:
127
- - `suggestedComponentLocation` - where the Swift files will go
128
- - `suggestedArtifactPath` - where implementation artifacts go
129
-
130
- Print:
131
-
132
- ```
133
- Component Location: <suggestedComponentLocation>
134
- Artifact Path: <suggestedArtifactPath>
135
- ```
136
-
137
- ---
138
-
139
- ## STEP 3.5 - Save Specs Artifact
140
-
141
- If the issue has acceptance criteria (not `_No response_`), save them as an artifact that the implementation pipeline can consume.
142
-
143
- ```bash
144
- mkdir -p ${REPO_ROOT}/${suggestedArtifactPath}/pass0
145
- ```
146
-
147
- Write `${suggestedArtifactPath}/pass0/specs.md`:
148
-
149
- ```markdown
150
- # Implementation Specs: {ComponentName}
151
-
152
- ## Source
153
- - Issue: #{N}
154
- - Figma: {FIGMA_URL}
155
-
156
- ## Acceptance Criteria
157
-
158
- {ACCEPTANCE_CRITERIA from issue body - verbatim}
159
-
160
- ## Implementation Guidance
161
-
162
- {Convert the acceptance criteria into actionable implementation instructions for the AI agent:
163
- - Rephrase checkbox items as concrete requirements
164
- - Add technical context where the criteria imply Swift/SwiftUI patterns
165
- - Preserve the user's intent exactly - don't add or remove requirements}
166
- ```
167
-
168
- If no acceptance criteria → skip this step. No file created.
169
-
170
- ---
171
-
172
- ## STEP 4 - Assign to Me
173
-
174
- Assign the GitHub issue to the current user:
175
-
176
- ```bash
177
- gh issue edit <N> --repo ${GH_REPO} --add-assignee @me
178
- ```
179
-
180
- ---
181
-
182
- ## STEP 5 - Update Issue Status (required)
183
-
184
- **This step is mandatory. Do not skip it and do not defer it.** The issue
185
- is on the board with Status=Todo after creation. Moving it to Status=In
186
- Develop is how the board reflects that someone has started working on
187
- it. If you skip this step, the issue visually stays in the Todo column
188
- even though work has started.
189
-
190
- Set the issue phase to "Implementation" and status to "In Develop" on the Projects V2 board:
191
-
192
- ```bash
193
- # Get issue node ID
194
- 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')
195
-
196
- # Add to project (if not already). This mutation is idempotent - if the
197
- # item already exists it returns the existing item id.
198
- ITEM_ID=$(gh api graphql -f query='mutation { addProjectV2ItemById(input: { projectId: "{github.projectV2Id}", contentId: "'"$ISSUE_NODE_ID"'" }) { item { id } } }' --jq '.data.addProjectV2ItemById.item.id')
199
-
200
- # Set Status = In Develop (option id: bc6c45f7)
201
- gh api graphql -f query='mutation { updateProjectV2ItemFieldValue(input: { projectId: "{github.projectV2Id}", itemId: "'"$ITEM_ID"'", fieldId: "{github.projectV2Fields.status}", value: { singleSelectOptionId: "bc6c45f7" } }) { projectV2Item { id } } }'
202
-
203
- # Set Phase = Implementation (option id: 0577dcda)
204
- gh api graphql -f query='mutation { updateProjectV2ItemFieldValue(input: { projectId: "{github.projectV2Id}", itemId: "'"$ITEM_ID"'", fieldId: "{github.projectV2Fields.phase}", value: { singleSelectOptionId: "0577dcda" } }) { projectV2Item { id } } }'
205
- ```
206
-
207
- ### Verify the move landed
208
-
209
- After the mutations return, confirm Status=In Develop is set (this catches
210
- silent VALIDATION errors from stale option IDs):
211
-
212
- ```bash
213
- gh api graphql -f query='{ node(id: "'"$ITEM_ID"'") { ... on ProjectV2Item { fieldValues(first: 20) { nodes { ... on ProjectV2ItemFieldSingleSelectValue { field { ... on ProjectV2SingleSelectField { name } } name } } } } } }' \
214
- --jq '.data.node.fieldValues.nodes[] | select(.field.name == "Status") | .name'
215
- ```
216
-
217
- Expected output: `In Develop`. If you see anything else (or empty),
218
- re-fetch the current option IDs and retry - do NOT proceed to implementation
219
- without the Status set correctly.
220
-
221
- ---
222
-
223
- ## STEP 6 - Summary
224
-
225
- Print:
226
-
227
- ```markdown
228
- Ready to implement:
229
-
230
- | Field | Value |
231
- |-------|-------|
232
- | Issue | [#N](url) |
233
- | Component | <COMPONENT_PASCAL> |
234
- | Branch | `<BRANCH_NAME>` |
235
- | Base | `develop` (main repo) / `iteration/develop` (submodules) |
236
- | Component Location | <suggestedComponentLocation> |
237
- | Artifact Path | <suggestedArtifactPath> |
238
-
239
- Next: `/figma <figma-url>` to run the implementation pipeline.
240
- ```
241
-
242
- ---
243
-
244
- ## Error Handling
245
-
246
- - **Issue not found**: Print error and stop.
247
- - **Issue body missing required fields**: Print which fields are missing, stop.
248
- - **FigmaRegistryUtility not built**: Run `swift build --product FigmaRegistryUtility` in common.
249
- - **Branch already exists**: Print warning - checkout existing branch instead of creating.
250
- - **Main repo not on develop**: Fetch and checkout automatically.
251
- - **Submodule not on iteration/develop**: Fetch and checkout automatically.