@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,227 +0,0 @@
1
- # CONFIGURATION MACROS REFERENCE
2
-
3
- Macros for generating configuration boilerplate code.
4
-
5
- ---
6
-
7
- ## MACROS
8
-
9
- ### @GenerateChainModifiers
10
-
11
- Applied to Configuration structs. Generates:
12
- - Private `modified()` helper
13
- - Chain modifier methods for each property
14
- - Localized variants for String properties
15
-
16
- ```swift
17
- @GenerateChainModifiers
18
- public struct ComponentConfiguration {
19
- public let title: String
20
- public let count: Int
21
- public let isEnabled: Bool
22
- }
23
- // GENERATED: .title(_), .title(localized:), .count(_), .isEnabled(_)
24
- ```
25
-
26
- ### @GenerateConfiguredInit (LEGACY - being replaced)
27
-
28
- Applied to View structs. Generates:
29
- - Default init with `@autoclosure` configuration
30
- - Configure init with closure
31
- - `configured()` method
32
-
33
- **NOTE:** This macro is being replaced by `@GenerateViewConfiguration` for new components. Existing components may still use it until migrated.
34
-
35
- ```swift
36
- @GenerateConfiguredInit
37
- public struct Component: View {
38
- private let configuration: ComponentConfiguration
39
- public var body: some View { ... }
40
- }
41
- // GENERATED: init(configuration:), init(configure:), configured(_:)
42
- ```
43
-
44
- ### @GenerateViewConfiguration (NEW - preferred)
45
-
46
- Applied to View structs. Generates ONLY:
47
- - `configured()` method - post-init configuration transform
48
-
49
- Does NOT generate:
50
- - **Inits** - AI writes custom inits tailored to each component's needs
51
- - **View-level forwarding modifiers** - Swift macros cannot introspect types they're not attached to, so the macro cannot read Configuration struct properties. Phase 4E (AI) writes the +Modifiers file.
52
-
53
- ```swift
54
- @GenerateViewConfiguration
55
- public struct Component: View {
56
- private let configuration: ComponentConfiguration
57
- private let action: () -> Void
58
-
59
- // AI-written custom init - required props + closures
60
- public init(title: String, action: @escaping () -> Void) {
61
- self.configuration = .init(title: title)
62
- self.action = action
63
- }
64
-
65
- public var body: some View { ... }
66
- }
67
- // GENERATED: configured(_:)
68
- // NOT GENERATED: init (AI writes), forwarding modifiers (Phase 4E writes +Modifiers.swift)
69
- ```
70
-
71
- **Why:** `@GenerateConfiguredInit` treats config as an opaque blob - it can't distinguish required vs optional props, can't pair data+closure, and generates a configure closure init that is an anti-pattern. `@GenerateViewConfiguration` gives AI full control over init shape while the macro handles only the mechanical `configured()` boilerplate.
72
-
73
- **`configured()` is internal API.** It is used ONLY inside +Modifiers forwarding methods and paired modifiers. Consumers use the named forwarding modifiers (`.state()`, `.title()`) and paired modifiers (`.secondaryButton(title) { action }`). Never expose `configured()` in Code Connect, previews, or usage examples.
74
-
75
- ---
76
-
77
- ## HELPER ATTRIBUTES
78
-
79
- | Attribute | Effect |
80
- |-----------|--------|
81
- | `@IgnoreChainModifier` | Skip property from chain modifier generation |
82
- | `@ChainModifierName("name")` | Custom method name for property |
83
- | `@IgnoreLocalization` | Skip localized variant for String property |
84
-
85
- ---
86
-
87
- ## PROPERTY DETECTION
88
-
89
- | Property Pattern | @GenerateConfiguredInit Behavior |
90
- |------------------|----------------------------------|
91
- | `*Configuration` type | Configuration property |
92
- | `@Binding var x` | Dependency → `self._x = x` |
93
- | `@State var x` | **Skipped** |
94
- | `@StateObject var x` | **Skipped** |
95
- | `@Environment var x` | **Skipped** |
96
- | `@ObservedObject var x` | Dependency → `self.x = x` |
97
- | `let x: Type` | Dependency → `self.x = x` |
98
- | `let x: () -> Void` | Closure dependency → `@escaping`, placed **after** config param |
99
-
100
- ### Parameter Ordering
101
-
102
- Non-closure dependencies come **before** the configuration parameter; closure dependencies come **after** it. This enables natural trailing-closure syntax:
103
-
104
- ```swift
105
- // Generated: init(_ configure: (Config) -> Config, action: @escaping () -> Void)
106
- TurkishButton { config in
107
- config.title("Book Now").style(.primary)
108
- } action: {
109
- viewModel.bookNow()
110
- }
111
- ```
112
-
113
- ---
114
-
115
- ## USAGE RULES
116
-
117
- **Simple Component (≤3 properties):** No configuration needed. Direct init parameters.
118
-
119
- **Complex Component (>3 properties):** Use Configuration struct + macros:
120
-
121
- ```swift
122
- @GenerateChainModifiers
123
- public struct ComponentConfiguration {
124
- public let title: String
125
- public let subtitle: String?
126
- public let style: Style
127
-
128
- public init(
129
- title: String = "",
130
- subtitle: String? = nil,
131
- style: Style = .default
132
- ) { ... }
133
- }
134
-
135
- @GenerateViewConfiguration
136
- public struct Component: View {
137
- private let configuration: ComponentConfiguration
138
- private let action: () -> Void
139
-
140
- // AI-written init: required props + closures
141
- public init(title: String, action: @escaping () -> Void) {
142
- self.configuration = .init(title: title)
143
- self.action = action
144
- }
145
-
146
- public var body: some View { ... }
147
- }
148
-
149
- // Usage - required in init, optional via chain modifiers
150
- Component(title: "Hello") { doSomething() }
151
- .subtitle("World")
152
- .style(.primary)
153
- ```
154
-
155
- ### With Dependencies
156
-
157
- ```swift
158
- @GenerateViewConfiguration
159
- public struct Component: View {
160
- private var configuration: ComponentConfiguration
161
- @Binding private var isExpanded: Bool
162
-
163
- public init(title: String, isExpanded: Binding<Bool>) {
164
- self.configuration = .init(title: title)
165
- self._isExpanded = isExpanded
166
- }
167
-
168
- public var body: some View { ... }
169
- }
170
- ```
171
-
172
- ### With Paired Modifiers
173
-
174
- ```swift
175
- @GenerateViewConfiguration
176
- public struct BottomActions: View {
177
- private var configuration: BottomActionsConfiguration
178
- private let primaryAction: () -> Void
179
- private var secondaryAction: (() -> Void)?
180
-
181
- public init(primaryButtonTitle: String, primaryAction: @escaping () -> Void) {
182
- self.configuration = .init(primaryButtonTitle: primaryButtonTitle)
183
- self.primaryAction = primaryAction
184
- }
185
-
186
- // Paired modifier - binds title + action atomically
187
- public func secondaryButton(_ title: String, action: @escaping () -> Void) -> Self {
188
- var copy = self
189
- copy.configuration.secondaryButtonTitle = title
190
- copy.secondaryAction = action
191
- return copy
192
- }
193
-
194
- public var body: some View { ... }
195
- }
196
-
197
- // Usage
198
- BottomActions(primaryButtonTitle: "OK") { submit() }
199
- .secondaryButton("Cancel") { cancel() }
200
- .state(.scroll)
201
- ```
202
-
203
- ---
204
-
205
- ## OPTIONAL PROPERTY PATTERN
206
-
207
- Double-optional (`T??`) for distinguishing:
208
- - `nil` (outer) → keep existing value
209
- - `.some(nil)` → explicitly set to nil
210
- - `.some(.some(value))` → set to value
211
-
212
- ```swift
213
- @GenerateChainModifiers
214
- public struct Config {
215
- public let subtitle: String?
216
- // GENERATED modified(): subtitle: String?? = nil
217
- }
218
- ```
219
-
220
- ---
221
-
222
- ## IMPORTS
223
-
224
- ```swift
225
- import UIMacros // @GenerateChainModifiers, @GenerateViewConfiguration (new), @GenerateConfiguredInit (legacy)
226
- import UILocalization // LocalizationStringKey (localized variants)
227
- ```
@@ -1,157 +0,0 @@
1
- # MISSING TOKEN HANDLING
2
-
3
- Resolve missing Figma tokens during component implementation.
4
-
5
- All source files are in `{project.slug}-common` (run commands from that directory).
6
-
7
- ---
8
-
9
- ## STEP 1: CLASSIFY THE MISSING TOKEN
10
-
11
- Missing tokens from `pass3/02_token_mapping.md` fall into two categories:
12
-
13
- | Category | What It Means | Example |
14
- |----------|--------------|---------|
15
- | **Typography alias** | Figma uses a new style name for an existing Swift token | `Caption/Regular/sm` → existing `.xSmallRegular` |
16
- | **Truly missing** | No Swift token exists - must be added to source | `Black White/25` color not in `Mode.json` |
17
-
18
- **How to tell:** Extract font size + weight from the design context for the missing style. Look up the existing registry - if a token with the same size + weight exists, it's an alias. If not, it's truly missing.
19
-
20
- ---
21
-
22
- ## STEP 2: LOOKUP EXISTING TOKENS
23
-
24
- ### Typography
25
- ```bash
26
- .build/debug/FigmaRegistryUtility typography-lookup --styles '<STYLE_NAMES_CSV>' --json
27
- ```
28
-
29
- Returns per style: `{"status": "found", "swiftToken": ".h3", "fontSize": 24, "fontWeight": 600}` or `{"status": "not_found"}`
30
-
31
- ### Variables (colors, spacing, radius)
32
- ```bash
33
- .build/debug/FigmaRegistryUtility ui-token-lookup --variables '<TOKEN_NAMES_CSV>' --json
34
- ```
35
-
36
- Returns: `{"Token/Name": "color:.BlackWhite.n100"}` or `{"Token/Name": null}`
37
-
38
- ---
39
-
40
- ## STEP 3A: RESOLVE TYPOGRAPHY ALIASES
41
-
42
- When a missing typography token maps to an existing Swift token (same font size + weight):
43
-
44
- **Add an alias entry to `Shared/Figma/Generated/typography-registry.json`:**
45
-
46
- ```json
47
- {
48
- "figmaName": "Caption/Regular/sm",
49
- "swiftToken": ".xSmallRegular",
50
- "alias": true,
51
- "fontSize": 12,
52
- "fontWeight": 400,
53
- "nodeId": "<copy from target token>",
54
- "fontFamily": "<copy from target token>",
55
- "lineHeightPx": "<copy from target token>"
56
- }
57
- ```
58
-
59
- **Match by font properties** - extract from design_context_response.json:
60
-
61
- | Font Size | Weight 400 (Regular) | Weight 600 (Bold) |
62
- |-----------|---------------------|-------------------|
63
- | 9 | `.extraMiniRegular` | `.extraMiniBold` |
64
- | 10 | `.miniRegular` | `.miniBold` |
65
- | 11 | `.captionRegular` | `.captionBold` |
66
- | 12 | `.xSmallRegular` | `.xSmallBold` |
67
- | 14 | `.smallRegular` | `.smallBold` |
68
- | 16 | `.bodyRegular` | `.bodyBold` |
69
- | 18 (w400) | `.h6Regular` | `.h6` |
70
- | 20 | `.h5Regular` | `.h5` |
71
- | 24 | `.h3Regular` | `.h3` |
72
- | 28 | `.h2Regular` | `.h2` |
73
- | 32 | - | `.h1` |
74
-
75
- **Verify after adding:**
76
- ```bash
77
- .build/debug/FigmaRegistryUtility typography-lookup --styles '<NEW_ALIAS_NAME>' --json
78
- ```
79
-
80
- ---
81
-
82
- ## STEP 3B: ADD TRULY MISSING TOKENS
83
-
84
- ### Colors
85
-
86
- **Source file:** `Shared/UIAssets/Colors/{Catalog}.json`
87
-
88
- | Figma Prefix | Catalog File |
89
- |-------------|-------------|
90
- | `Black White/*` | `Mode.json` |
91
- | `Text/*` | `Alias.json` |
92
- | `Background/*` | `Alias.json` |
93
- | `Brand/*` | `Brand.json` |
94
-
95
- **Add the entry** to the appropriate group's `items` array:
96
- ```json
97
- { "name": "25", "light": "#F6F6F6", "dark": "#0A0A0A" }
98
- ```
99
-
100
- For universal colors (same in light/dark): `{ "name": "25", "universal": "#F6F6F6" }`
101
-
102
- **Regenerate:**
103
- ```bash
104
- swift package plugin --allow-writing-to-package-directory generate-ui-assets
105
- ```
106
-
107
- This generates:
108
- - `iOS/Sources/UIAssets/Generated/UIAssetsGeneratedTokens.swift` (Swift enum cases)
109
- - Updates `Shared/Figma/Generated/ui-token-registry.json`
110
-
111
- **Update token index:**
112
- ```bash
113
- .build/debug/FigmaRegistryUtility ui-token-index
114
- ```
115
-
116
- If `ui-token-index` doesn't pick up the new token (registry not updated), add it directly to `Shared/Figma/Generated/ui-token-index.json` (sorted flat list of token strings like `"color:.BlackWhite.n25"`).
117
-
118
- ### Numbers (Spacing, Radius, BorderWidth)
119
-
120
- **Source file:** `Shared/UIAssets/Numbers/Numbers.json`
121
-
122
- **Add to the appropriate group's `values` object:**
123
- ```json
124
- "Spacing": {
125
- "values": {
126
- "Spacing2": 2,
127
- "NewToken": <value>
128
- }
129
- }
130
- ```
131
-
132
- **Regenerate:** Same `generate-ui-assets` command + `ui-token-index`.
133
-
134
- ---
135
-
136
- ## STEP 4: VERIFY
137
-
138
- ```bash
139
- # Typography
140
- .build/debug/FigmaRegistryUtility typography-lookup --styles '<STYLE_NAME>' --json
141
-
142
- # Variables
143
- .build/debug/FigmaRegistryUtility ui-token-lookup --variables '<TOKEN_NAME>' --json
144
- ```
145
-
146
- Both must return `"status": "found"` or a non-null value.
147
-
148
- ---
149
-
150
- ## TYPOGRAPHY VS VARIABLE
151
-
152
- | Source | Lookup Command | Swift Usage |
153
- |--------|---------------|-------------|
154
- | `styles` in design_context | `typography-lookup` | `.typographyStyle(.h3)` |
155
- | `variables` in variable_defs | `ui-token-lookup` | `Color.Text.textPrimary`, `.Spacing.spacing4` |
156
-
157
- Typography styles compose variables. Use style tokens when available.
@@ -1,90 +0,0 @@
1
- # Orchestrator Discipline - Mandatory Rules for Pipeline Execution
2
-
3
- These rules apply to every orchestrator skill (`/figma-cli-iterate`, `/figma-cli-lean-iterate`, `/figma-iterate`, `/figma-to-swiftui`, `/performance-swiftui`, `/performance-tour`) and to any agent acting as an orchestrator that dispatches leaf-phase subagents.
4
-
5
- Violations of these rules have caused repeated implementation failures. Each rule exists because the opposite was done and broke things.
6
-
7
- ---
8
-
9
- ## Rule 1: No Pre-Decided Gate Outcomes in Subagent Prompts
10
-
11
- The dispatch prompt template specifies which variables to pass to subagents: component name, node ID, artifact path, file key, component location. Pass ONLY these context variables.
12
-
13
- Never add sections like "IMPORTANT: form integration is NOT needed" or "IMPORTANT: no UI patterns apply." Those are gate outcomes - the subagent's gates decide them, not the orchestrator. Injecting conclusions pre-decides gate outcomes and defeats the purpose of having gates.
14
-
15
- If the user provides implementation guidance (e.g., "check /figma-form-integration"), pass it as-is: "The user directed: check /figma-form-integration." Do not evaluate and dismiss it.
16
-
17
- ---
18
-
19
- ## Rule 2: Every Dispatch Table Row Executes - Verify Row-by-Row Before Proceeding
20
-
21
- The dispatch table lists phases with their instruction files, models, and wave groupings. Every row executes. No phase is optional unless the table explicitly marks it (e.g., "COMPLEX only" for 4A/4E - skip only if SIMPLE).
22
-
23
- After completing Wave 1, check the table for Wave 2. After Wave 2, check for remaining phases. Do not move to the next step until every phase in the current step has been dispatched and returned.
24
-
25
- Skipping Phase 4D or 4E because 4B had problems is not acceptable. Fix 4B, then dispatch 4D and 4E.
26
-
27
- Before reporting a step as complete, compare your dispatched phases against the dispatch table row-by-row:
28
-
29
- ```
30
- [ ] Phase 0: dispatched and returned COMPLETE
31
- [ ] Phase 1: script executed and returned COMPLETE
32
- [ ] Phase 2: all sub-phases dispatched (2A, 2B, 2C, 2D) and finalize script run
33
- [ ] Phase 3: all sub-phases dispatched (3A, 3C, 3H, 3D) and all scripts run (wave1, 3g, spec)
34
- [ ] Phase 4: Wave 1 (4A + 4B + 4C) AND Wave 2 (4D + 4E if COMPLEX) dispatched
35
- [ ] Phase 6: dispatched and returned COMPLETE
36
- ```
37
-
38
- If any row is unchecked, you are not done with that step.
39
-
40
- ---
41
-
42
- ## Rule 3: Subagent Fails - Retry, Never Take Over
43
-
44
- When a subagent times out, errors, or returns HALT:
45
-
46
- 1. **Timeout**: Retry the same subagent with the same prompt. Do not write code yourself.
47
- 2. **HALT**: Read the HALT reason. Fix the blocking issue. Retry the subagent.
48
- 3. **Error**: Diagnose and retry.
49
-
50
- Never take over and write implementation code without reading the phase instruction file the subagent would have read. The subagent reads `phase-4b-view.md` gate-by-gate - if you skip that file and write code from assumptions, you will produce wrong output.
51
-
52
- If you must write code directly (after 2+ retries), read the phase instruction file yourself first and follow its gates.
53
-
54
- ---
55
-
56
- ## Rule 4: Skills Are Complementary, Not Dismissable
57
-
58
- `/figma-form-integration`, `/figma-ui-patterns`, `/figma-price-integration`, `/figma-navigation`, `/figma-overlays`, `/figma-bottom-sheets`, `/coreui-forms` - these skills feed INTO phases. They augment Phase 3D, Phase 4A, Phase 4B with cross-cutting patterns (content: forms/price/ui-patterns; interaction: navigation/overlays/bottom-sheets). Each is native-SwiftUI-first and reads project specifics from `figma-config` (`ui.*` hooks) - generic across SwiftUI projects, not tied to any one app.
59
-
60
- When the user says "check /figma-form-integration":
61
- - That is a directive to integrate, not a suggestion to evaluate.
62
- - Read the skill. Identify which phases it affects.
63
- - Pass the user's directive to the affected subagents as context.
64
- - Let the subagent's gates determine HOW it integrates, not WHETHER.
65
-
66
- Never read a complementary skill, decide it doesn't apply, and tell the subagent to skip it. The subagent's gates make that determination.
67
-
68
- ---
69
-
70
- ## Rule 5: Read Acceptance Criteria First, Inject as Subagent Gates
71
-
72
- If `{artifactPath}/pass0/specs.md` exists, or if the user provides acceptance criteria:
73
-
74
- 1. Read the specs BEFORE dispatching Phase 4+ subagents.
75
- 2. Extract concrete requirements.
76
- 3. Inject them as CRITICAL SPEC GATES in the subagent prompt - per the orchestrator SKILL.md instructions.
77
-
78
- Do not skip this step. Do not assume specs are empty without checking. The orchestrator SKILL.md has an explicit "Spec Injection" section - follow it.
79
-
80
- ---
81
-
82
- ## Rule 6: Read the Phase .md File Before Writing Any Code
83
-
84
- If for any reason you write implementation code directly (instead of through a subagent):
85
-
86
- 1. Read the phase instruction file first (`phase-4b-view.md`, `phase-4a-configuration.md`, etc.).
87
- 2. Follow its gates in order.
88
- 3. Apply every check and validation the file specifies.
89
-
90
- Writing code from "I've seen similar components" or "this is a common SwiftUI pattern" without reading the phase file produces code that doesn't follow project conventions - wrong init patterns, missing modifiers, hand-drawn shapes instead of real components.
@@ -1,116 +0,0 @@
1
- # FIGMA REGISTRY TOOL
2
-
3
- Swift CLI for Figma component and token lookups.
4
-
5
- ---
6
-
7
- ## SETUP
8
-
9
- **Package:** `{repos.common.path}`
10
-
11
- ```bash
12
- REPO_ROOT=$(git rev-parse --show-toplevel)
13
- CONFIG_PATH="${REPO_ROOT}/{repos.common.path}"
14
- REGISTRY="$CONFIG_PATH/.build/debug/FigmaRegistryUtility"
15
- ```
16
-
17
- **Important:** All commands must run from the config package directory because the utility resolves `Shared/Figma/Generated/*.json` relative to CWD.
18
-
19
- ```bash
20
- cd "$CONFIG_PATH" && $REGISTRY <command> [args]
21
- ```
22
-
23
- If binary not found: `swift build --package-path "$CONFIG_PATH" --product FigmaRegistryUtility`
24
-
25
- ---
26
-
27
- ## DECISION
28
-
29
- ```
30
- Figma URL/nodeId → lookup
31
- Component name → search
32
- Browse pages → list
33
- Style token name → style-lookup
34
- Local assets → ui-token-registry
35
- "not found" → update / style-update
36
- "command not found" → swift build --package-path "$CONFIG_PATH" --product FigmaRegistryUtility
37
- ```
38
-
39
- ---
40
-
41
- ## COMMANDS
42
-
43
- ### lookup
44
- Get component name and location from Figma nodeId.
45
- ```bash
46
- $REGISTRY lookup --node-id '<NODE_ID>'
47
- ```
48
- Returns: `suggestedComponentName`, `suggestedComponentLocation`, `fileKey`, `nodeId`, `name`, `pageName`
49
-
50
- ### search
51
- Find components by name.
52
- ```bash
53
- $REGISTRY search --name '<TERM>'
54
- ```
55
- Returns: `[nodeId] componentName` with page info.
56
-
57
- ### list
58
- Browse components, optionally filter by page.
59
- ```bash
60
- $REGISTRY list --page '<NAME>'
61
- ```
62
-
63
- ### style-lookup
64
- Find design tokens (colors, typography) by name.
65
- ```bash
66
- $REGISTRY style-lookup --name '<TOKEN>'
67
- ```
68
- Returns: `[styleId] styleName` with type (FILL/TEXT).
69
-
70
- ### ui-token-registry
71
- Generate local .xcassets registry. Scans `Sources/UIAssets/Resources`.
72
- ```bash
73
- $REGISTRY ui-token-registry
74
- ```
75
- Writes: `ui-token-registry.json`
76
-
77
- ### ui-token-index
78
- Build searchable index from registry.
79
- ```bash
80
- $REGISTRY ui-token-index
81
- ```
82
- Writes: `ui-token-index.json`
83
-
84
- ### ui-token-lookup
85
- Find local token by Figma variable name.
86
- ```bash
87
- $REGISTRY ui-token-lookup --name '<FIGMA_TOKEN>'
88
- ```
89
- Returns: Swift token name for use in code.
90
-
91
- ### update
92
- Refresh component registry from Figma API.
93
- ```bash
94
- FIGMA_ACCESS_TOKEN="<TOKEN>" $REGISTRY update \
95
- --config Shared/Figma/figma-components-registry-config.json \
96
- --output Shared/Figma/Generated
97
- ```
98
-
99
- ### style-update
100
- Refresh style registry from Figma API.
101
- ```bash
102
- FIGMA_ACCESS_TOKEN="<TOKEN>" $REGISTRY style-update \
103
- --config Shared/Figma/figma-styles-registry-config.json \
104
- --output Shared/Figma/Generated
105
- ```
106
-
107
- ---
108
-
109
- ## URL TO NODE ID
110
-
111
- ```
112
- https://www.figma.com/design/9ipBvrtsq9HlQ175B9k0wx/File?node-id=9419-30700
113
-
114
- 9419:30700
115
- ```
116
- Convert `-` to `:` in node-id.