@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,188 +0,0 @@
1
- ---
2
- description: "Analyse the project, score it, draft an improvement plan, take approval, develop, then ask whether to sync."
3
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, WebFetch
4
- ---
5
-
6
- # Multi-Agent Refactor
7
-
8
- **One command. Analyse → Score → Plan → Approval → Develop → Sync.**
9
-
10
- Deep-analyses the current project, scores it across 10 categories, drafts every improvement, asks the user for approval, applies them, and asks about sync at the end.
11
-
12
- **Input**: $ARGUMENTS (optional - area to focus on: "security", "performance", "tests", etc.)
13
-
14
- ## Flow
15
-
16
- ```
17
- Step 0: RESEARCH Search GitHub + Reddit for competing projects, gather good ideas
18
- Step 1: SCAN Walk the project structure (files, LOC, dependencies, CI, tests)
19
- Step 2: ANALYZE Deep analysis across 10 categories
20
- Step 3: SCORE Each category /10, overall /100
21
- Step 4: PLAN List every improvement + competitor idea in priority order
22
- Step 5: ASK "Start the work?" - wait for user approval
23
- Step 6: IMPLEMENT Apply approved improvements one by one (lint, test, commit)
24
- Step 7: VERIFY Confirm every test + lint passes
25
- Step 8: ASK SYNC "Run multi-agent-sync?" - wait for user approval
26
- ```
27
-
28
- ## Step 0: RESEARCH - competitor analysis
29
-
30
- Before starting work, scan for similar projects:
31
-
32
- 1. **GitHub Search**: `multi-agent pipeline AI development` + `Claude Code pipeline` + `AI coding agent`
33
- - find repos with stars:>10
34
- - read their READMEs
35
- - extract their distinct features
36
- 2. **Reddit Search**: multi-agent discussions in `r/ClaudeAI`, `r/ChatGPT`, `r/LocalLLaMA`
37
- 3. **For each competitor, record**:
38
- - distinct features we DO NOT have
39
- - ideas worth adopting
40
- - things they do better than us
41
- - things we do better than them
42
- 4. **Add to the plan**: roll the high-impact + low-effort ideas into the PLAN step (P1 priority)
43
-
44
- Output format:
45
- ```
46
- | Source | Idea | Effort | Impact | In plan? |
47
- |--------|-------|--------|------|--------------|
48
- | ralph-loop | Symlink distribution | Low | High | Yes |
49
- | atelier | Persistent Brain | High | Very High | No (roadmap) |
50
- ```
51
-
52
- ## Step 1: SCAN
53
-
54
- ```
55
- - file count, LOC (cloc or wc -l)
56
- - package.json / Package.swift / build.gradle analizi
57
- - dependency count (runtime vs dev)
58
- - Is there a CI/CD pipeline? (.github/workflows/, fastlane/, Makefile)
59
- - Is there test infrastructure? How many tests? Coverage?
60
- - Is linter/formatter config in place?
61
- - Do README, LICENSE, SECURITY.md, CHANGELOG.md exist?
62
- - Git state: branch count, last commit date, tags
63
- ```
64
-
65
- ## Step 2: ANALYZE - 10 categories
66
-
67
- | # | Category | What to check |
68
- |---|----------|-------------------|
69
- | 1 | **Architecture** | Layer separation, modularity, SOLID, dependency direction |
70
- | 2 | **Code Quality** | Naming, magic numbers, dead code, complexity, DRY |
71
- | 3 | **Security** | Hardcoded secrets, input validation, Keychain, ATS, ATT |
72
- | 4 | **Tests** | Coverage, test pyramid, edge cases, mock/stub quality |
73
- | 5 | **CI/CD** | Build matrix, lint job, release automation, artifact caching |
74
- | 6 | **Docs** | README quality, JSDoc / Swift docs, API docs, CHANGELOG |
75
- | 7 | **Performance** | Bundle size, lazy loading, memory leaks, unnecessary re-renders |
76
- | 8 | **Accessibility** | a11y labels, tap targets, VoiceOver, Dynamic Type |
77
- | 9 | **Dependency Management** | Outdated deps, vulnerability scan, lockfile, version pinning |
78
- | 10 | **DevEx** | Onboarding time, script ergonomics, error messages, debug tooling |
79
-
80
- ## Step 3: SCORE
81
-
82
- Her kategori 10 uzerinden puanlanir. Output format:
83
-
84
- ```
85
- +---------------------+-------+
86
- | Category | Score |
87
- +---------------------+-------+
88
- | Architecture | 9/10 |
89
- | Code Quality | 8/10 |
90
- | Security | 9/10 |
91
- | Tests | 7/10 |
92
- | CI/CD | 8/10 |
93
- | Docs | 7/10 |
94
- | Performance | 9/10 |
95
- | Accessibility | 6/10 |
96
- | Dependency Mgmt | 8/10 |
97
- | DevEx | 9/10 |
98
- +---------------------+-------+
99
- | TOTAL | 80/100|
100
- +---------------------+-------+
101
- ```
102
-
103
- ## Step 4: PLAN
104
-
105
- List every improvement found:
106
-
107
- ```
108
- | # | Priority | Category | Improvement | Impact |
109
- |---|---------|----------|-------------|------|
110
- | 1 | P0 | Security | Remove hardcoded API key | Critical |
111
- | 2 | P0 | Tests | Missing edge-case tests | High |
112
- | 3 | P1 | CI/CD | Add Node matrix | Medium |
113
- | 4 | P1 | Docs | Functions missing JSDoc | Medium |
114
- | 5 | P2 | DevEx | npm script naming | Low |
115
- ```
116
-
117
- Priority levels:
118
- - **P0**: bugs, security holes, broken functionality - MUST fix
119
- - **P1**: clear quality improvement - should be done
120
- - **P2**: nice-to-have - if time allows
121
-
122
- ## Step 5: ASK - user approval
123
-
124
- After showing the plan, ask:
125
-
126
- > "Found X improvements (P0: N, P1: M, P2: K). Should I start the work?"
127
-
128
- Options:
129
- - "Yes, do all"
130
- - "Only P0"
131
- - "P0 + P1 only"
132
- - (the user may pick specific items)
133
-
134
- **NEVER start the work without approval.**
135
-
136
- ## Step 6: IMPLEMENT
137
-
138
- Apply the approved improvements one by one:
139
-
140
- 1. For each improvement:
141
- - apply the change
142
- - run the relevant tests
143
- - on success, move to the next
144
- - On failure, roll back and notify the user
145
- 2. After all changes are done:
146
- - run the full lint + test suite
147
- - on success, commit
148
-
149
- Commit format: `refactor(scope): {short description}`
150
-
151
- ## Step 7: VERIFY
152
-
153
- ```bash
154
- # Lint
155
- npm run lint 2>/dev/null || swift build 2>/dev/null
156
-
157
- # Test
158
- npm test 2>/dev/null || swift test 2>/dev/null || xcodebuild test 2>/dev/null
159
-
160
- # Result
161
- echo "Lint: PASS/FAIL"
162
- echo "Test: PASS/FAIL (X/Y passed)"
163
- ```
164
-
165
- ## Step 8: ASK SYNC
166
-
167
- After every improvement is applied, ask:
168
-
169
- > "Work is complete. Should I run multi-agent-sync?"
170
-
171
- Options:
172
- - "Yes" → run the `/sync` command (full ecosystem sync)
173
- - "No" → emit a report and stop
174
- - "Commit + push only" → push the current repo without sync
175
-
176
- ## Focus filter
177
-
178
- If $ARGUMENTS is set, focus on that category only:
179
-
180
- | Input | Focus |
181
- |-------|------|
182
- | `security` | Security analysis only |
183
- | `tests` | Test coverage and quality only |
184
- | `performance` | Performance optimisation only |
185
- | `docs` | Docs only |
186
- | `ci` | CI/CD pipeline only |
187
- | `deps` | Dependency updates only |
188
- | (empty) | All 10 categories (default) |
@@ -1,92 +0,0 @@
1
- # Component Dispatch (Phase 3 short-circuit)
2
-
3
- > **TLDR** - When `taskType === "component"` (Figma URL in task description or instruction-driven figma workflow), multi-agent Phase 3 **does not run the TDD loop**. It delegates the entire phase to the `figma-to-component` skill and relays its subphases 3.0 - 3.8 via the existing phase-tracker contract. Implementation lives in the skill; multi-agent's job is classification, dispatch, and state report.
4
-
5
- This doc is referenced from `refs/phases/phase-3-dev.md`. Keeping it separate lets `phase-3-dev.md` remain tight (it's already the largest phase doc) and gives the orchestrator-report contract a stable URL for both Claude-side and Copilot-side implementations.
6
-
7
- ## Entry conditions
8
-
9
- Phase 3 checks, in order:
10
-
11
- 1. `agent-state.json` has `taskType: "component"` (set by Phase 0 Step 7).
12
- 2. `agent-state.json` has a non-null `figmaUrl`.
13
-
14
- Either missing → log the anomaly to `agent-log.md` ("component dispatch expected but state incomplete"), fall through to the standard TDD path. Never silently skip the Figma work.
15
-
16
- ## Orchestrator resolution
17
-
18
- ```
19
- project.platform → orchestrator skill
20
- ────────────────────────────────────────────────────────────────
21
- ios → pipeline/skills/figma-ios/figma-to-component/
22
- android → pipeline/skills/figma-android/figma-to-component/
23
- web, multi-* → HALT with clear error (no web target)
24
- ```
25
-
26
- If the chosen skill directory is missing, **halt with a user-visible error**. Do not silently fall back to TDD - a component task ran through the bugfix path would produce wrong artefacts and waste review cycles.
27
-
28
- ## Dispatch call
29
-
30
- Emit `→ dispatching figma-to-component <componentName>` via the progress contract, then launch a single agent invocation on the orchestrator skill with:
31
-
32
- - `figmaUrl` - primary positional argument
33
- - `agentState` - the path to `agent-state.json` so the orchestrator enriches `state.phases["3"].subphases[]`
34
- - `progressVerbosity` - forced to `verbose` when multi-agent runs in `mode: "autopilot"`; otherwise inherits `prefs.global.settings.progressVerbosity`
35
- - `mode` - `"dev"` for `--dev` runs; `"full"` otherwise
36
-
37
- ## Subphase contract
38
-
39
- The orchestrator writes each of its 8 subphases to `state.phases["3"].subphases[]` as it completes, with the shape:
40
-
41
- ```json
42
- {
43
- "id": "3.4a",
44
- "name": "4A-Configuration",
45
- "status": "done",
46
- "startedAt": "2026-04-16T18:12:02Z",
47
- "endedAt": "2026-04-16T18:13:47Z",
48
- "buildStatus": "green",
49
- "testStatus": "green"
50
- }
51
- ```
52
-
53
- Multi-agent's `phase-tracker` reads this array without any component-specific code - the tracker UI renders one row per subphase under the Phase 3 row. No new phase-tracker field is required.
54
-
55
- ## Multi-repo report
56
-
57
- When multi-repo mode is active (`state.projects.length > 1`), the orchestrator reads `state.projects[]` and runs subphases against the correct per-repo worktree:
58
-
59
- - Tokens, accessibility metadata, testing identifiers, localisation keys → `repos.common`
60
- - View / Configuration / Modifiers / Preview → `repos.components`
61
- - Wiki markdown → `repos.wiki` (if `wiki.mode === submodule` or `separate-repo`) or `repos.components/.wiki/components/` (if `wiki.mode === in-repo`)
62
-
63
- Multi-agent does **not** split the component task into per-repo Phase 3 runs - the orchestrator is aware of the repo graph and sequences writes correctly (e.g. token writes to `common` precede component reads in `components`).
64
-
65
- ## Failure + resume
66
-
67
- On orchestrator failure (subphase hits a build/test error that can't auto-fix, or hits retry cap):
68
-
69
- 1. The orchestrator persists `{subphase, error, buildLog, testLog}` to `state.phases["3"].errors[]`.
70
- 2. Multi-agent increments `state.phases["3"].retryCount`.
71
- 3. Retry re-enters the orchestrator with `phase-<N>` as the argument (the failed subphase), so the skill resumes instead of restarting.
72
- 4. Hard kill at `retryCount === 3` → surface the errors to the user, halt Phase 3. Do not loop indefinitely.
73
-
74
- ## `--dev` mode behaviour
75
-
76
- When multi-agent is invoked with `--dev` (fast path: Init → Dev → Commit → Report), the orchestrator receives `mode: "dev"` and is allowed to elide:
77
-
78
- - Subphase 5C (unit tests) - structural + snapshot are still required
79
- - Subphase 7 (wiki) - can be deferred; Phase 7 in multi-agent will ask the user whether to run it post-commit
80
-
81
- Phase 4 reviewer-skipping is **not** Phase 3's concern - Phase 4 decides based on `mode: "dev"` itself.
82
-
83
- ## Cross-CLI parity
84
-
85
- Both Claude Code and Copilot CLI implementations MUST:
86
-
87
- - Use the same orchestrator resolution table (ios / android / halt).
88
- - Emit byte-identical progress lines (`→ dispatching figma-to-component <name>`).
89
- - Write the same `state.phases["3"].subphases[]` schema.
90
- - Treat `--dev` the same way (elide 5C + 7 by default, no reviewer skip).
91
-
92
- `smoke-cross-cli-behavior.sh` asserts this contract.
@@ -1,71 +0,0 @@
1
- #!/usr/bin/env bash
2
- #
3
- # smoke-existing-discovery-gate.sh
4
- #
5
- # Asserts the figma-to-component orchestrator has the Phase 1.5 existing-
6
- # component discovery gate wired in:
7
- # - phase-1.5-existing-discovery.md exists with the canonical anchors
8
- # - phase-2-orchestrator ENTRY GATE consults discovery.status
9
- # - phase-6-code-connect ENTRY GATE skips publish when already mapped
10
- #
11
- # This is Defect 10 from the GH1241 stability plan (docs/STABILITY-FIX-PLAN.md).
12
-
13
- set -euo pipefail
14
-
15
- SELF_DIR=$(cd "$(dirname "$0")" && pwd)
16
- PIPELINE_ROOT=$(cd "$SELF_DIR/.." && pwd)
17
-
18
- cd "$PIPELINE_ROOT"
19
-
20
- FAIL=0
21
-
22
- GATE_DOC="skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md"
23
- PHASE2="skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md"
24
- PHASE6="skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md"
25
-
26
- # 1. Phase 1.5 doc exists.
27
- if [ ! -f "$GATE_DOC" ]; then
28
- echo "FAIL [smoke-existing-discovery-gate]: $GATE_DOC missing"
29
- exit 1
30
- fi
31
-
32
- # 2. Phase 1.5 contains the four canonical statuses.
33
- declare -a REQUIRED_STATUSES=(
34
- "GREENFIELD_OK"
35
- "ALREADY_MAPPED"
36
- "EXISTING_SOURCE_NO_CC"
37
- "GAP_ANALYSIS"
38
- )
39
- for st in "${REQUIRED_STATUSES[@]}"; do
40
- if ! grep -qF "$st" "$GATE_DOC"; then
41
- echo "FAIL [smoke-existing-discovery-gate]: $GATE_DOC must define status $st"
42
- FAIL=$((FAIL + 1))
43
- fi
44
- done
45
-
46
- # 3. Phase 1.5 writes to agent-state.discovery.{status,sourcePath,gaps}.
47
- if ! grep -qE 'discovery.*status|"discovery"' "$GATE_DOC"; then
48
- echo "FAIL [smoke-existing-discovery-gate]: $GATE_DOC must write to agent-state.discovery"
49
- FAIL=$((FAIL + 1))
50
- fi
51
-
52
- # 4. Phase 2 ENTRY GATE consults discovery.status.
53
- if ! grep -qE "discovery\.status|agent-state\.discovery" "$PHASE2"; then
54
- echo "FAIL [smoke-existing-discovery-gate]: $PHASE2 ENTRY GATE must consult discovery.status"
55
- FAIL=$((FAIL + 1))
56
- fi
57
-
58
- # 5. Phase 6 ENTRY GATE skips when ALREADY_MAPPED or .figma.swift exists.
59
- if ! grep -qE "ALREADY_MAPPED|already published|GAP_ANALYSIS" "$PHASE6"; then
60
- echo "FAIL [smoke-existing-discovery-gate]: $PHASE6 ENTRY GATE must skip when ALREADY_MAPPED / GAP_ANALYSIS"
61
- FAIL=$((FAIL + 1))
62
- fi
63
-
64
- if [ "$FAIL" -gt 0 ]; then
65
- echo ""
66
- echo "smoke-existing-discovery-gate: $FAIL violation(s)."
67
- echo "Defect 10 contract - see docs/STABILITY-FIX-PLAN.md."
68
- exit 1
69
- fi
70
-
71
- echo "smoke-existing-discovery-gate: ok"
@@ -1,148 +0,0 @@
1
- #!/usr/bin/env bash
2
- # smoke-figma-android-parity.sh - WS-7 contract.
3
- #
4
- # Verifies the Android platform skill tree under pipeline/skills/figma-android/
5
- # mirrors the iOS peer for every platform-specific skill required by the
6
- # figma-to-component orchestrator. Also checks Android-specific details
7
- # (Kotlin file names, Compose tooling, Paparazzi/Roborazzi references).
8
-
9
- set -euo pipefail
10
-
11
- HERE="$(cd "$(dirname "$0")" && pwd)"
12
- ROOT="$(cd "$HERE/../.." && pwd)"
13
- IOS_DIR="$ROOT/pipeline/skills/figma-ios"
14
- ANDROID_DIR="$ROOT/pipeline/skills/figma-android"
15
-
16
- PASS=0
17
- FAIL=0
18
- pass() { PASS=$((PASS+1)); echo " ✓ $1"; }
19
- fail() { FAIL=$((FAIL+1)); echo " ✗ $1"; }
20
-
21
- [ -d "$IOS_DIR" ] || { echo "error: iOS tree missing at $IOS_DIR" >&2; exit 1; }
22
- [ -d "$ANDROID_DIR" ] || { echo "error: Android tree missing at $ANDROID_DIR" >&2; exit 1; }
23
-
24
- # Platform-specific skills that MUST exist on both sides.
25
- REQUIRED=(
26
- figma-to-component
27
- figma-component-implement
28
- figma-component-test
29
- figma-component-code-connect
30
- figma-component-wiki
31
- )
32
-
33
- echo "→ 1. Android tree has required platform-specific skills"
34
- for skill in "${REQUIRED[@]}"; do
35
- if [ -d "$ANDROID_DIR/$skill" ] && [ -f "$ANDROID_DIR/$skill/SKILL.md" ]; then
36
- pass "$skill present"
37
- else
38
- fail "$skill missing"
39
- fi
40
- done
41
-
42
- echo ""
43
- echo "→ 2. iOS tree has the same required skills (parity source)"
44
- for skill in "${REQUIRED[@]}"; do
45
- if [ -d "$IOS_DIR/$skill" ] && [ -f "$IOS_DIR/$skill/SKILL.md" ]; then
46
- pass "iOS $skill present"
47
- else
48
- fail "iOS $skill missing (parity source broken)"
49
- fi
50
- done
51
-
52
- echo ""
53
- echo "→ 3. Every Android SKILL.md has frontmatter with platform: android"
54
- for skill in "${REQUIRED[@]}"; do
55
- f="$ANDROID_DIR/$skill/SKILL.md"
56
- [ -f "$f" ] || continue
57
- if ! head -n 1 "$f" | grep -Fxq -- "---"; then
58
- fail "$skill/SKILL.md missing frontmatter"
59
- continue
60
- fi
61
- if awk '/^---$/{c++; next} c==1' "$f" | grep -Fq "platform: android"; then
62
- pass "$skill stamped platform: android"
63
- else
64
- fail "$skill/SKILL.md missing platform: android stamp"
65
- fi
66
- done
67
-
68
- echo ""
69
- echo "→ 4. Every Android SKILL.md stamped status: wip-v5 + sourced-from"
70
- for skill in "${REQUIRED[@]}"; do
71
- f="$ANDROID_DIR/$skill/SKILL.md"
72
- [ -f "$f" ] || continue
73
- grep -q "^status: wip-v5" "$f" && pass "$skill status: wip-v5" || fail "$skill missing status stamp"
74
- grep -q "^sourced-from: " "$f" && pass "$skill has sourced-from" || fail "$skill missing sourced-from"
75
- done
76
-
77
- echo ""
78
- echo "→ 5. Android implement skill targets Compose + Kotlin"
79
- IMPL="$ANDROID_DIR/figma-component-implement/SKILL.md"
80
- if [ -f "$IMPL" ]; then
81
- if grep -Fq "@Composable" "$IMPL" && grep -Fq "Configuration.kt" "$IMPL" && grep -Fq "@Immutable" "$IMPL"; then
82
- pass "implement references @Composable + Configuration.kt + @Immutable"
83
- else
84
- fail "implement missing Compose/Kotlin markers"
85
- fi
86
- fi
87
-
88
- echo ""
89
- echo "→ 6. Android test skill targets Compose Testing + Paparazzi"
90
- TEST="$ANDROID_DIR/figma-component-test/SKILL.md"
91
- if [ -f "$TEST" ]; then
92
- if grep -Fq "createComposeRule" "$TEST" && grep -Fq "Paparazzi" "$TEST"; then
93
- pass "test references createComposeRule + Paparazzi"
94
- else
95
- fail "test missing Compose Testing / Paparazzi markers"
96
- fi
97
- fi
98
-
99
- echo ""
100
- echo "→ 7. Android orchestrator routes Android-specific build (gradleModule)"
101
- ORCH="$ANDROID_DIR/figma-to-component/SKILL.md"
102
- if [ -f "$ORCH" ]; then
103
- if grep -Fq "gradleModule" "$ORCH" && grep -Fq "./gradlew" "$ORCH"; then
104
- pass "orchestrator references gradleModule + gradlew"
105
- else
106
- fail "orchestrator missing gradleModule / gradlew references"
107
- fi
108
- fi
109
-
110
- echo ""
111
- echo "→ 8. figma-project-config schema declares Android build fields"
112
- SCHEMA="$ROOT/pipeline/schemas/figma-project-config.schema.json"
113
- if jq -e '.properties.build.properties.gradleModule' "$SCHEMA" >/dev/null 2>&1 \
114
- && jq -e '.properties.build.properties.variant' "$SCHEMA" >/dev/null 2>&1; then
115
- pass "schema has build.gradleModule + build.variant"
116
- else
117
- fail "schema missing Android build fields"
118
- fi
119
-
120
- echo ""
121
- echo "→ 9. Platform enum covers Android"
122
- if jq -e '.properties.project.properties.platform.enum | index("android")' "$SCHEMA" >/dev/null 2>&1; then
123
- pass "project.platform enum includes android"
124
- else
125
- fail "project.platform enum missing android"
126
- fi
127
-
128
- echo ""
129
- echo "→ 10. README.md present explaining the Android tree"
130
- README="$ANDROID_DIR/README.md"
131
- if [ -f "$README" ] && grep -Fq "Android Platform Skills" "$README"; then
132
- pass "README.md present and descriptive"
133
- else
134
- fail "README.md missing or not descriptive"
135
- fi
136
-
137
- echo ""
138
- echo "→ 11. component-dispatch.md ref acknowledges Android routing"
139
- DISPATCH="$ROOT/pipeline/commands/multi-agent/refs/component-dispatch.md"
140
- if grep -Fq "android" "$DISPATCH" && grep -Fq "figma-android" "$DISPATCH"; then
141
- pass "component-dispatch.md routes iOS/Android"
142
- else
143
- fail "component-dispatch.md missing Android routing"
144
- fi
145
-
146
- echo ""
147
- echo "══ figma-android-parity smoke: $PASS passed, $FAIL failed ══"
148
- [ "$FAIL" -eq 0 ]
@@ -1,105 +0,0 @@
1
- #!/usr/bin/env bash
2
- # smoke-figma-credential-store.sh - drift gate for figma skill Keychain access.
3
- #
4
- # In v8.3.x the figma skill family was migrated off raw `security` calls and
5
- # routed through the cross-platform credential helper:
6
- # ~/.claude/lib/credential-store.sh (Claude Code installs)
7
- # ~/.copilot/lib/credential-store.sh (Copilot CLI installs)
8
- # Each bash block uses a `CRED_STORE` resolver that picks whichever helper is
9
- # present so the same source ships to both CLIs.
10
- #
11
- # This smoke locks the migration in place. It re-fails the build if anyone
12
- # reverts a figma skill back to a direct `security find-generic-password` /
13
- # `add-generic-password` / `delete-generic-password` call against one of OUR
14
- # managed token names.
15
- #
16
- # Two intentional exceptions:
17
- # - Subprocess calls that read the `Claude Code-credentials` keychain entry
18
- # (Claude Code's own OAuth-token store, not ours).
19
- # - Pedagogical references inside CHANGELOG / MIGRATION docs.
20
- #
21
- # Exit 0 = no drift, 1 = at least one figma file regressed.
22
-
23
- set -uo pipefail
24
-
25
- ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
26
-
27
- pass=0
28
- fail=0
29
- failures=()
30
- record_pass() { pass=$((pass + 1)); printf ' \033[0;32mPASS\033[0m %s\n' "$1"; }
31
- record_fail() { fail=$((fail + 1)); failures+=("$1"); printf ' \033[0;31mFAIL\033[0m %s\n' "$1"; }
32
-
33
- printf '→ smoke-figma-credential-store: figma skills route Keychain via the helper, not raw `security`\n'
34
-
35
- # 1. The 8 figma surfaces that were migrated must keep using "$CRED_STORE" or
36
- # `~/.claude/lib/credential-store.sh` / `~/.copilot/lib/credential-store.sh`.
37
- MIGRATED_FILES=(
38
- "pipeline/skills/figma-common/figma-issue/SKILL.md"
39
- "pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md"
40
- "pipeline/skills/figma-common/figma-setup/SKILL.md"
41
- "pipeline/skills/figma-common/figma-validate/SKILL.md"
42
- "pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md"
43
- "pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md"
44
- "pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md"
45
- "pipeline/skills/figma-ios/figma-to-component/reference/tools.md"
46
- "pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py"
47
- )
48
-
49
- for rel in "${MIGRATED_FILES[@]}"; do
50
- abs="$ROOT/$rel"
51
- base="$(basename "$rel")"
52
- if [ ! -f "$abs" ]; then
53
- record_fail "$base missing - figma skill set drifted out of inventory"
54
- continue
55
- fi
56
-
57
- # Each of these must reference the helper at least once (resolver, get/set/delete call,
58
- # or python subprocess wrapper). If the helper reference is gone, the file regressed.
59
- if grep -qE 'credential-store\.sh|CRED_STORE|keychain\.py' "$abs"; then
60
- record_pass "$base references the credential helper"
61
- else
62
- record_fail "$base lost its credential-store.sh reference"
63
- fi
64
-
65
- # Now look for raw `security {find,add,delete}-generic-password` calls
66
- # against OUR managed tokens. Anything matching one of these service names
67
- # is a regression. (Claude Code's own `Claude Code-credentials` entry is
68
- # NOT in this list - the figma-setup wizard is allowed to read it.)
69
- managed_tokens='FIGMA_ACCESS_TOKEN|FIGMA_MCP_TOKEN|FIGMA_API_USER|JIRA_TOKEN|CONFLUENCE_TOKEN'
70
- bad=$(grep -nE "security (find|add|delete)-generic-password.*-s [\"']?($managed_tokens)[\"']?" "$abs" 2>/dev/null || true)
71
- if [ -z "$bad" ]; then
72
- record_pass "$base contains no raw security calls against managed tokens"
73
- else
74
- record_fail "$base regressed to raw security on a managed token:
75
- $bad"
76
- fi
77
- done
78
-
79
- # 2. The cross-CLI contract doc must point callers at credential-store.sh as
80
- # the canonical path. If it ever flips back to raw `security` in the
81
- # "canonical" column the principle is broken.
82
- CONTRACT="$ROOT/pipeline/commands/multi-agent/refs/cross-cli-contract.md"
83
- if [ -f "$CONTRACT" ] && grep -qE 'canonical path is .*credential-store\.sh' "$CONTRACT"; then
84
- record_pass "cross-cli-contract.md declares credential-store.sh as canonical"
85
- else
86
- record_fail "cross-cli-contract.md no longer declares credential-store.sh as canonical"
87
- fi
88
-
89
- # 3. The Copilot install template allowlist must list the helper, not just raw `security`.
90
- TEMPLATE="$ROOT/install/templates/copilot-instructions.md"
91
- if [ -f "$TEMPLATE" ] && grep -q 'credential-store\.sh' "$TEMPLATE"; then
92
- record_pass "install template allowlist references credential-store.sh"
93
- else
94
- record_fail "install template allowlist no longer references credential-store.sh"
95
- fi
96
-
97
- # Summary
98
- total=$((pass + fail))
99
- printf '\n→ smoke-figma-credential-store: %d/%d passed\n' "$pass" "$total"
100
- if [ "$fail" -ne 0 ]; then
101
- printf '\nFailures:\n'
102
- for f in "${failures[@]}"; do printf ' - %s\n' "$f"; done
103
- exit 1
104
- fi
105
- exit 0