@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,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  # smoke-tracker-contract.sh - v7.9.1
3
3
  #
4
- # Validates that every mode dispatch file (dev.md, dev-local.md, autopilot.md,
4
+ # Validates that every mode dispatch file (dev/SKILL.md, dev-local/SKILL.md, autopilot/SKILL.md,
5
5
  # etc.) carries the mandatory phase-tracker.sh invocation contract.
6
6
  #
7
7
  # Without this, agent prompts can fall through to TaskCreate/TaskList UI which
@@ -24,19 +24,19 @@ set -uo pipefail
24
24
 
25
25
  REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
26
26
  CMDS_DIR="$REPO_ROOT/pipeline/commands/multi-agent"
27
- CONTRACT_FILE="$CMDS_DIR/refs/tracker-contract.md"
27
+ CONTRACT_FILE="$HOME/.claude/multi-agent-refs/tracker-contract.md"
28
28
 
29
29
  # Mode dispatch files that must reference the tracker contract.
30
30
  # Updated when new mode files ship; no auto-discovery (false positives on
31
31
  # helpers like _account-picker, status, log).
32
32
  MODE_FILES=(
33
- dev.md
34
- dev-local.md
35
- dev-autopilot.md
36
- dev-local-autopilot.md
37
- autopilot.md
38
- local.md
39
- local-autopilot.md
33
+ dev/SKILL.md
34
+ dev-local/SKILL.md
35
+ dev-autopilot/SKILL.md
36
+ dev-local-autopilot/SKILL.md
37
+ autopilot/SKILL.md
38
+ local/SKILL.md
39
+ local-autopilot/SKILL.md
40
40
  )
41
41
 
42
42
  # Minimum tracker references per file (init + at least one of the verbs).
@@ -155,7 +155,7 @@ fi
155
155
 
156
156
  # ──────────────────────────────────────────────────────────────────────────
157
157
  echo "→ 8. Continuation wiring in finish + manual-test + phase-5"
158
- FINISH_FILE="$CMDS_DIR/finish.md"
158
+ FINISH_FILE="$CMDS_DIR/finish/SKILL.md"
159
159
  if grep -q '\[ ! -f "\$STATE" \]' "$FINISH_FILE"; then
160
160
  pass "finish.md guards init behind a state-file existence check"
161
161
  else
@@ -166,19 +166,19 @@ if grep -q 'Continuing' "$FINISH_FILE" && grep -q 'cost total' "$FINISH_FILE"; t
166
166
  else
167
167
  fail "finish.md missing the continuation summary line"
168
168
  fi
169
- MANUAL_FILE="$CMDS_DIR/manual-test.md"
169
+ MANUAL_FILE="$CMDS_DIR/manual-test/SKILL.md"
170
170
  if grep -q 'now 5 "awaiting local test (user)"' "$MANUAL_FILE"; then
171
171
  pass "manual-test.md sets the waiting state via now 5"
172
172
  else
173
173
  fail "manual-test.md missing the now 5 waiting state"
174
174
  fi
175
- PHASE5_FILE="$CMDS_DIR/refs/phases/phase-5-test.md"
175
+ PHASE5_FILE="$HOME/.claude/multi-agent-refs/phases/phase-5-test.md"
176
176
  if grep -q 'now 5 "awaiting local test (user)"' "$PHASE5_FILE"; then
177
177
  pass "phase-5-test.md sets the waiting state via now 5"
178
178
  else
179
179
  fail "phase-5-test.md missing the now 5 waiting state"
180
180
  fi
181
- RESUME_FILE="$CMDS_DIR/resume.md"
181
+ RESUME_FILE="$CMDS_DIR/resume/SKILL.md"
182
182
  if grep -q 'Rebuild the phase tiles' "$RESUME_FILE"; then
183
183
  pass "resume.md rebuilds the phase tiles from state"
184
184
  else
@@ -23,10 +23,10 @@ FAIL=0
23
23
  # Every phase doc that runs LLM calls MUST mention `phase-tracker.sh tokens`
24
24
  # at least once (either in a code fence or inline).
25
25
  declare -a LLM_PHASES=(
26
- "commands/multi-agent/refs/phases/phase-1-analysis.md:1"
27
- "commands/multi-agent/refs/phases/phase-2-planning.md:2"
28
- "commands/multi-agent/refs/phases/phase-3-dev.md:3"
29
- "commands/multi-agent/refs/phases/phase-4-review.md:4"
26
+ "multi-agent-refs/phases/phase-1-analysis.md:1"
27
+ "multi-agent-refs/phases/phase-2-planning.md:2"
28
+ "multi-agent-refs/phases/phase-3-dev.md:3"
29
+ "multi-agent-refs/phases/phase-4-review.md:4"
30
30
  )
31
31
 
32
32
  for entry in "${LLM_PHASES[@]}"; do
@@ -46,7 +46,7 @@ done
46
46
 
47
47
  # tracker-contract.md is the canonical location for the tokens API. Make sure
48
48
  # it documents the invocation pattern with both args.
49
- CONTRACT="commands/multi-agent/refs/tracker-contract.md"
49
+ CONTRACT="multi-agent-refs/tracker-contract.md"
50
50
  if [ ! -f "$CONTRACT" ]; then
51
51
  echo "FAIL [smoke-tracker-tokens-invocation]: $CONTRACT missing"
52
52
  FAIL=$((FAIL + 1))
@@ -23,8 +23,8 @@ set -uo pipefail
23
23
 
24
24
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
25
25
  TM="$ROOT/pipeline/scripts/triage-memory.mjs"
26
- PHASE7="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-7-report.md"
27
- PHASE4="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-4-review.md"
26
+ PHASE7="$ROOT/pipeline/multi-agent-refs/phases/phase-7-report.md"
27
+ PHASE4="$ROOT/pipeline/multi-agent-refs/phases/phase-4-review.md"
28
28
  PREFS="$ROOT/pipeline/schemas/prefs.schema.json"
29
29
  SCHEMA="$ROOT/pipeline/schemas/triage-corpus.schema.json"
30
30
 
@@ -17,7 +17,7 @@ set -euo pipefail
17
17
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
18
18
  SCRIPT="$ROOT/pipeline/scripts/update-check.sh"
19
19
  PREFS_SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
20
- PHASE0_DOC="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-0-init.md"
20
+ PHASE0_DOC="$ROOT/pipeline/multi-agent-refs/phases/phase-0-init.md"
21
21
 
22
22
  pass=0
23
23
  fail=0
@@ -23,8 +23,8 @@ check() {
23
23
  fi
24
24
  }
25
25
 
26
- PHASE0="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-0-init.md"
27
- SETUP="$ROOT/pipeline/commands/multi-agent/setup.md"
26
+ PHASE0="$ROOT/pipeline/multi-agent-refs/phases/phase-0-init.md"
27
+ SETUP="$ROOT/pipeline/commands/multi-agent/setup/SKILL.md"
28
28
  SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
29
29
 
30
30
  echo "→ 1. phase-0-init.md documents Step 1b URL Enrichment"
@@ -27,7 +27,7 @@ set -euo pipefail
27
27
 
28
28
  REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
29
29
  SCRIPTS_DIR="$REPO_ROOT/pipeline/scripts"
30
- PHASES_DIR="$REPO_ROOT/pipeline/commands/multi-agent/refs/phases"
30
+ PHASES_DIR="$REPO_ROOT/pipeline/multi-agent-refs/phases"
31
31
 
32
32
  PASS=0
33
33
  FAIL=0
@@ -15,9 +15,9 @@
15
15
  set -euo pipefail
16
16
 
17
17
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
18
- PHASE4_DOC="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-4-review.md"
19
- PHASE3_DOC="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md"
20
- FEATURE_DOC="$ROOT/pipeline/commands/multi-agent/refs/features/verify-by-test.md"
18
+ PHASE4_DOC="$ROOT/pipeline/multi-agent-refs/phases/phase-4-review.md"
19
+ PHASE3_DOC="$ROOT/pipeline/multi-agent-refs/phases/phase-3-dev.md"
20
+ FEATURE_DOC="$ROOT/pipeline/multi-agent-refs/features/verify-by-test.md"
21
21
  PREFS_SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
22
22
  TRIAGE_SCHEMA="$ROOT/pipeline/schemas/triage-output.schema.json"
23
23
  VALIDATOR="$ROOT/pipeline/scripts/validate-triage.mjs"
@@ -19,11 +19,11 @@ HERE="$(cd "$(dirname "$0")" && pwd)"
19
19
  ROOT="$(cd "$HERE/../.." && pwd)"
20
20
  PREFS="$ROOT/pipeline/schemas/prefs.schema.json"
21
21
  FIGMA_SCHEMA="$ROOT/pipeline/schemas/figma-project-config.schema.json"
22
- CHANNELS="$ROOT/pipeline/commands/multi-agent/channels.md"
23
- WIKI_REF="$ROOT/pipeline/commands/multi-agent/refs/wiki-capture.md"
24
- PHASE7="$ROOT/pipeline/commands/multi-agent/refs/phases/phase-7-report.md"
25
- MODES="$ROOT/pipeline/commands/multi-agent/refs/phases/modes.md"
26
- WIKI_SKILL="$ROOT/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md"
22
+ CHANNELS="$ROOT/pipeline/commands/multi-agent/channels/SKILL.md"
23
+ WIKI_REF="$ROOT/pipeline/multi-agent-refs/wiki-capture.md"
24
+ PHASE7="$ROOT/pipeline/multi-agent-refs/phases/phase-7-report.md"
25
+ MODES="$ROOT/pipeline/multi-agent-refs/phases/modes.md"
26
+ # (figma-component-wiki skill now lives in the ai-ios-engineering-toolkit plugin, not this repo)
27
27
 
28
28
  PASS=0
29
29
  FAIL=0
@@ -33,7 +33,7 @@ fail() { FAIL=$((FAIL+1)); echo " ✗ $1"; }
33
33
  need() { command -v "$1" >/dev/null 2>&1 || { echo "error: $1 required" >&2; exit 127; }; }
34
34
  need jq
35
35
 
36
- for f in "$PREFS" "$FIGMA_SCHEMA" "$CHANNELS" "$WIKI_REF" "$PHASE7" "$MODES" "$WIKI_SKILL"; do
36
+ for f in "$PREFS" "$FIGMA_SCHEMA" "$CHANNELS" "$WIKI_REF" "$PHASE7" "$MODES"; do
37
37
  [ -f "$f" ] || { echo "error: missing $f" >&2; exit 1; }
38
38
  done
39
39
 
@@ -113,33 +113,9 @@ else
113
113
  fail "autopilot always-pause not documented"
114
114
  fi
115
115
 
116
- echo ""
117
- echo "→ 9. figma-component-wiki SKILL.md has dispatch contract + 4 adapters"
118
- if grep -Fq "Dispatch contract (Phase 7 Report Step 2)" "$WIKI_SKILL" \
119
- || grep -Fq "Dispatch contract" "$WIKI_SKILL"; then
120
- pass "SKILL.md documents dispatch contract"
121
- else
122
- fail "SKILL.md missing dispatch contract"
123
- fi
124
- if grep -Fq "Adapter selection" "$WIKI_SKILL"; then
125
- pass "SKILL.md has 'Adapter selection' table"
126
- else
127
- fail "SKILL.md missing 'Adapter selection' table"
128
- fi
129
-
130
- ADAPTERS=0
131
- for mode in submodule in-repo github-wiki separate-repo; do
132
- grep -Fq "\`$mode\`" "$WIKI_SKILL" && ADAPTERS=$((ADAPTERS+1)) || true
133
- done
134
- [ "$ADAPTERS" -eq 4 ] && pass "all 4 adapters named in SKILL.md" || fail "SKILL.md names $ADAPTERS/4 adapters"
135
-
136
- echo ""
137
- echo "→ 10. SKILL.md has frontmatter"
138
- if head -n 1 "$WIKI_SKILL" | grep -Fxq -- "---"; then
139
- pass "SKILL.md has frontmatter"
140
- else
141
- fail "SKILL.md missing frontmatter"
142
- fi
116
+ # (The figma-component-wiki SKILL.md and its dispatch-contract / 4-adapter / frontmatter
117
+ # assertions moved with the skill into the ai-ios-engineering-toolkit marketplace plugin;
118
+ # this pipeline smoke now only covers the wiki CHANNEL wiring on the pipeline side.)
143
119
 
144
120
  echo ""
145
121
  echo "══ wiki-integration smoke: $PASS passed, $FAIL failed ══"
@@ -18,7 +18,7 @@ set -euo pipefail
18
18
  ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
19
19
  RENDER="$ROOT/pipeline/scripts/render-work-summary.sh"
20
20
  SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
21
- CHANNELS_DOC="$ROOT/pipeline/commands/multi-agent/channels.md"
21
+ CHANNELS_DOC="$ROOT/pipeline/commands/multi-agent/channels/SKILL.md"
22
22
 
23
23
  pass=0; fail=0; failures=()
24
24
  record_pass() { pass=$((pass + 1)); printf ' \033[0;32mPASS\033[0m %s\n' "$1"; }
@@ -38,10 +38,10 @@ TARGETS=(
38
38
  "scripts/*.sh"
39
39
  "scripts/*.mjs"
40
40
  "lib/*.sh"
41
- "commands/multi-agent.md"
41
+ "commands/multi-agent/SKILL.md"
42
42
  "commands/multi-agent/*.md"
43
- "commands/multi-agent/refs/*.md"
44
- "commands/multi-agent/refs/phases/*.md"
43
+ "multi-agent-refs/*.md"
44
+ "multi-agent-refs/phases/*.md"
45
45
  "skills/shared/core/multi-agent/SKILL.md"
46
46
  )
47
47
 
@@ -68,7 +68,7 @@ for pattern in "${FORBIDDEN[@]}"; do
68
68
  done
69
69
 
70
70
  # Positive assertion: phase-0-init.md MUST mention the convention text.
71
- PHASE0="commands/multi-agent/refs/phases/phase-0-init.md"
71
+ PHASE0="multi-agent-refs/phases/phase-0-init.md"
72
72
  if [ -f "pipeline/$PHASE0" ]; then
73
73
  if ! grep -qE 'projectRoot.*worktreeBasePath|\.worktrees/.*taskId' "pipeline/$PHASE0"; then
74
74
  echo "FAIL [smoke-worktree-path-convention]: phase-0-init.md must document {projectRoot}/{worktreeBasePath}/{taskId} convention"
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @file test-integrity-gate.mjs - v11.3.0
4
+ *
5
+ * Anti-reward-hacking gate for Phase 4. A recurring agent failure mode is
6
+ * making a suite go green by deleting/weakening existing tests rather than
7
+ * fixing the code (documented by Cursor's SWE-bench study + ImpossibleBench).
8
+ * The `refs/rules.md` immutable-test rule forbids it; the `test_lines_removed`
9
+ * diff-risk signal already DETECTS a shrinking test file, but Step 1.75 uses
10
+ * that signal only as an advisory priority hint. This gate turns it into a
11
+ * deterministic BLOCKING finding that triage must adjudicate.
12
+ *
13
+ * Pure function of the diff-risk JSON (no git, no LLM): reads a diff-risk
14
+ * report on stdin (or --file), and for every file carrying a
15
+ * `test_lines_removed` signal emits a reviewer-shaped blocking finding tagged
16
+ * `test_integrity`. Triage then keeps it blocking unless the change is
17
+ * justified per the immutable-test rule (spec changed + commit body names the
18
+ * test), in which case triage moves it to `deferred`.
19
+ *
20
+ * IMPORTANT: feed it the FULL diff-risk report (run diff-risk-score.mjs WITHOUT
21
+ * --top), so a shrinking test file beyond the top-N priority list is not missed.
22
+ *
23
+ * Usage:
24
+ * node diff-risk-score.mjs --base B --head H | node test-integrity-gate.mjs
25
+ * node test-integrity-gate.mjs --file risk.json [--json]
26
+ *
27
+ * Output (stdout, JSON): { schemaVersion, count, findings: [ ... ] }
28
+ * Exit 0 always (detection tool; severity is adjudicated downstream). Exit 1
29
+ * only on a setup error (unreadable/invalid input is treated as "no findings").
30
+ */
31
+ import { readFileSync } from "node:fs";
32
+
33
+ const args = process.argv.slice(2);
34
+ const fileFlag = args.indexOf("--file");
35
+ const PRETTY = args.includes("--json");
36
+
37
+ function readInput() {
38
+ try {
39
+ if (fileFlag !== -1 && args[fileFlag + 1]) {
40
+ return readFileSync(args[fileFlag + 1], "utf8");
41
+ }
42
+ return readFileSync(0, "utf8"); // stdin
43
+ } catch {
44
+ return "";
45
+ }
46
+ }
47
+
48
+ function main() {
49
+ const raw = readInput();
50
+ let report;
51
+ try {
52
+ report = JSON.parse(raw);
53
+ } catch {
54
+ // No/invalid input -> fail OPEN (no findings). A gate bug must not wedge Phase 4.
55
+ process.stdout.write(JSON.stringify({ schemaVersion: "1.0.0", count: 0, findings: [] }));
56
+ return;
57
+ }
58
+
59
+ const files = Array.isArray(report?.files) ? report.files : [];
60
+ const findings = [];
61
+ for (const f of files) {
62
+ const sig = (f.signals || []).find((s) => s.name === "test_lines_removed");
63
+ if (!sig) continue;
64
+ findings.push({
65
+ file: f.file,
66
+ severity: "blocking",
67
+ tag: "test_integrity",
68
+ signal: "test_lines_removed",
69
+ linesRemovedNet: sig.value ?? null,
70
+ message:
71
+ `Test file '${f.file}' shrinks (removed > added). The immutable-test rule ` +
72
+ `(refs/rules.md) forbids weakening tests to get a green run. Keep blocking ` +
73
+ `unless the task's spec changed AND the commit body names the changed test; ` +
74
+ `then triage may defer it.`,
75
+ });
76
+ }
77
+
78
+ process.stdout.write(
79
+ JSON.stringify({ schemaVersion: "1.0.0", count: findings.length, findings }, null, PRETTY ? 2 : 0),
80
+ );
81
+ }
82
+
83
+ main();
@@ -262,7 +262,7 @@ async function main() {
262
262
  rmIfExists(join(CLAUDE, "rules"));
263
263
  const skills = join(CLAUDE, "skills");
264
264
  let n = rmMatchingDirs(skills, (name) => name === "multi-agent" || name.startsWith("multi-agent-"));
265
- n += rmMatchingDirs(skills, (name) => name === "figma-ios" || name === "figma-android" || name === "figma-common");
265
+ n += rmMatchingDirs(skills, (name) => name === "figma-ios" || name === "figma-android" || name === "figma-common" || name === "figma-to-component");
266
266
  if (n > 0) console.log(` removed ${n} skill dir(s) under ${skills}`);
267
267
  rmIfExists(join(skills, ".skills-index.json"));
268
268
  rmIfExists(join(skills, "skills-index.md"));
@@ -287,7 +287,7 @@ async function main() {
287
287
  rmIfExists(join(COP, "scripts"));
288
288
  const skills = join(COP, "skills");
289
289
  let n = rmMatchingDirs(skills, (name) => name === "multi-agent" || name.startsWith("multi-agent-"));
290
- n += rmMatchingDirs(skills, (name) => name === "figma-ios" || name === "figma-android" || name === "figma-common");
290
+ n += rmMatchingDirs(skills, (name) => name === "figma-ios" || name === "figma-android" || name === "figma-common" || name === "figma-to-component");
291
291
  if (n > 0) console.log(` removed ${n} skill dir(s) under ${skills}`);
292
292
  rmIfExists(join(skills, "README.md"));
293
293
  rmMatchingDirs(join(COP, "agents"), (name) =>
@@ -1,156 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-06-11T18:31:54Z",
4
- "skillCount": 217,
3
+ "generatedAt": "2026-07-09T19:01:45Z",
4
+ "skillCount": 187,
5
5
  "entries": [
6
- {
7
- "path": "figma-android/figma-component-code-connect/SKILL.md",
8
- "sha256": "c63dd5baa240a38240746e8ccff723358634cf4d3cff0b8e5d06f5d04e81d628"
9
- },
10
- {
11
- "path": "figma-android/figma-component-implement/SKILL.md",
12
- "sha256": "051de610b7043560839fc36982c10e16ce918eec9e95feb40bf3b962074c8709"
13
- },
14
- {
15
- "path": "figma-android/figma-component-test/SKILL.md",
16
- "sha256": "2686ba8d708e2c5c9aaae83e17d1ce05311a5ea9f3f01f159c755af0abc02c20"
17
- },
18
- {
19
- "path": "figma-android/figma-component-wiki/SKILL.md",
20
- "sha256": "ee9dea2b505c5b49000f94770bc5bca3b74906d4d8c59bf8588621264a694e37"
21
- },
22
- {
23
- "path": "figma-android/figma-to-component/SKILL.md",
24
- "sha256": "af2f89a01253e033b95a11d657d23ed489a35fc9d5cff65e7c75a6b49b63a918"
25
- },
26
- {
27
- "path": "figma-common/figma-cli-iterate-mend/SKILL.md",
28
- "sha256": "55e1c46c433cb63ed13769c5b5f3aa6bdf689449e60a31c23ad8f81b4ffcdb17"
29
- },
30
- {
31
- "path": "figma-common/figma-cli-iterate/SKILL.md",
32
- "sha256": "0afb386a20a8676089615a3d1e2ac2f37ce505a8531bd73c7aaab6c61ba2ec7f"
33
- },
34
- {
35
- "path": "figma-common/figma-cli-lean-iterate/SKILL.md",
36
- "sha256": "4a2399516595ed887176db857acbce92119fdbdc2f0579a99672ed58d06abb2e"
37
- },
38
- {
39
- "path": "figma-common/figma-cli-skip/SKILL.md",
40
- "sha256": "f2ea731ce2570cc85ebad22a44c57ec7b733fb653527e174f61f108ebe3dfe6b"
41
- },
42
- {
43
- "path": "figma-common/figma-commit/SKILL.md",
44
- "sha256": "4484a340cf2968c1c290211ee1ed6e7b19a4ce104b818090529edc76105b9f64"
45
- },
46
- {
47
- "path": "figma-common/figma-component-confluence-sync/SKILL.md",
48
- "sha256": "41f7dcbaa5d85716ec49f34381cd87dd2bab757b9abf11d596ea95ceb7e3fb02"
49
- },
50
- {
51
- "path": "figma-common/figma-component-start/SKILL.md",
52
- "sha256": "5396392841809370e4154a6825d300e00da705daaa5344043225d52697f9fb75"
53
- },
54
- {
55
- "path": "figma-common/figma-component-status-update/SKILL.md",
56
- "sha256": "4864300fe3e0c067f0a24499769d6f263c32a9f186f47acf09af5640c61e9a65"
57
- },
58
- {
59
- "path": "figma-common/figma-fix/SKILL.md",
60
- "sha256": "a464b11cb3c2b95412b86244cebeb18242750b66adb7f47f6ede3e459f18a269"
61
- },
62
- {
63
- "path": "figma-common/figma-form-integration/SKILL.md",
64
- "sha256": "0570a67effc50bfc1a61c11db9679e784e57a6bafb472dc8666e25b4a6da5b0f"
65
- },
66
- {
67
- "path": "figma-common/figma-issue/SKILL.md",
68
- "sha256": "892625348a54f143dc2a1543706de73c3797b195d2a7de7a48d6b7aaa76947f3"
69
- },
70
- {
71
- "path": "figma-common/figma-iterate/SKILL.md",
72
- "sha256": "f39a615bc9844f9088c40b1dc3b1abd1d58fc5d0b6024984bbb8b6a8dd55ec7a"
73
- },
74
- {
75
- "path": "figma-common/figma-iteration-commit/SKILL.md",
76
- "sha256": "c879653c6c474749dd359af6bf106dc586ada71478ea76d73e74bdd65bf70686"
77
- },
78
- {
79
- "path": "figma-common/figma-mend/SKILL.md",
80
- "sha256": "c38a4d1850ec7fbb3d340dbdf0c4ca728996e943f2702b47833c5f67d500887c"
81
- },
82
- {
83
- "path": "figma-common/figma-price-integration/SKILL.md",
84
- "sha256": "315707a432e47d03cb78ea4fc104893a4d1532c177b40d2e1e00a5b9045509cd"
85
- },
86
- {
87
- "path": "figma-common/figma-remote-mcp-auth/SKILL.md",
88
- "sha256": "14c3316b732da14aa2a184ef477147357d0a9d67c42f2b2b07e99ce80b753ad8"
89
- },
90
- {
91
- "path": "figma-common/figma-review/SKILL.md",
92
- "sha256": "250a714181c0644ad8d0eb33af70cb41e37ee0d14b5c9ac73676e530e96c6997"
93
- },
94
- {
95
- "path": "figma-common/figma-setup/SKILL.md",
96
- "sha256": "8fb409850d086a3198298e019836a4aa7268c15b1c6635dc05bdf2996de20fa7"
97
- },
98
- {
99
- "path": "figma-common/figma-skip/SKILL.md",
100
- "sha256": "a5a2a180e3666e3c820ef5685a26a7bbe6dae0da7d8bdbd60f092f5acd7a8601"
101
- },
102
- {
103
- "path": "figma-common/figma-ui-patterns/SKILL.md",
104
- "sha256": "d885dbfc4fddc2ae650dfcb4f11039f5951b631af74b2cd4b4a3dee5d86f63cf"
105
- },
106
- {
107
- "path": "figma-common/figma-utility/SKILL.md",
108
- "sha256": "a222c004247f8cd2d727868346f4ba211703f7e011e876297dbf4f6d5e5f8b03"
109
- },
110
- {
111
- "path": "figma-common/figma-validate/SKILL.md",
112
- "sha256": "ff347aa8266a24e15020919ecb3c50c102353f407f984f2b1b38b65e10e7734a"
113
- },
114
- {
115
- "path": "figma-common/performance-iteration-commit-all/SKILL.md",
116
- "sha256": "f58de0f9b1cd57d47fa642e5b613cb4f147a8217d0d5ac3870f56a11c2c72815"
117
- },
118
- {
119
- "path": "figma-common/performance-review-next/SKILL.md",
120
- "sha256": "6d9542a9019d92279ae42d02d42d1d72cb88a653b5ea52fa6ed3a096ee89a91c"
121
- },
122
- {
123
- "path": "figma-common/performance-start/SKILL.md",
124
- "sha256": "b8505137127b99dc7eef1f428318a708572ee4dd2cd1caf5b7204140e33b8273"
125
- },
126
- {
127
- "path": "figma-common/performance-swiftui/SKILL.md",
128
- "sha256": "38f7cf69659453338d6ed6704ebba45806df539f6e79d7d75d8ad6e1424dc7fa"
129
- },
130
- {
131
- "path": "figma-common/performance-tour/SKILL.md",
132
- "sha256": "8e1aa6646d0f7872ec058f59a3dfe4d55cd26109be733f47e4ad3921a7adfcb7"
133
- },
134
- {
135
- "path": "figma-ios/figma-component-code-connect/SKILL.md",
136
- "sha256": "4b89da9a45a31cfa98065f4ff88ed20a01e0c54d1e1a6704e8dd27390c993ded"
137
- },
138
- {
139
- "path": "figma-ios/figma-component-implement/SKILL.md",
140
- "sha256": "1f1b627be48f2b4652cc1f04bd98454cab6e796440ef17c995d927e08b024a54"
141
- },
142
- {
143
- "path": "figma-ios/figma-component-test/SKILL.md",
144
- "sha256": "093ca85878b7a7fdd2bb795367918d22e2e101fe9c30e8d78d7e51670d11f2f2"
145
- },
146
- {
147
- "path": "figma-ios/figma-component-wiki/SKILL.md",
148
- "sha256": "a758564648b0eadcf67f20397e55e4d47aaa045fe73c49260fb597acc0e67db0"
149
- },
150
- {
151
- "path": "figma-ios/figma-to-component/SKILL.md",
152
- "sha256": "5604dab6370fe2933c317ca6fadceb46622d1f40a95ca40aa5ee4a19b01d6135"
153
- },
154
6
  {
155
7
  "path": "shared/core/apple-archive-compliance/SKILL.md",
156
8
  "sha256": "38cb4c257f7b2915d1784ec6f355b9a7f14bb32427e09c01872d3c8d6a039a71"
@@ -177,15 +29,15 @@
177
29
  },
178
30
  {
179
31
  "path": "shared/core/multi-agent-channels/SKILL.md",
180
- "sha256": "f69eb14b454678e831718da918a0e895973bb5162e22f2af2395a0471cf78d94"
32
+ "sha256": "d31fea96c01fb48b7dbbd496cb378593fe3b17d2ee821c093e8997fe2d4ba61f"
181
33
  },
182
34
  {
183
35
  "path": "shared/core/multi-agent-delete/SKILL.md",
184
- "sha256": "0835e5cecb288181642706c5c187ad296973f2185f2bec6751d85b279ca785a8"
36
+ "sha256": "aa48d1e0fe111b9dc1b681025f16880410d47266f12f522df1835857e6cb9551"
185
37
  },
186
38
  {
187
39
  "path": "shared/core/multi-agent-dev-autopilot/SKILL.md",
188
- "sha256": "7866e535c37eb4b0f61b394d28a8324657d1944d9c8fd29b21f926baa8af4a43"
40
+ "sha256": "82b1cf4a4bbd84fcfef54fcdbcdefa27f2747df6d4fac5c86b42e861013c6d58"
189
41
  },
190
42
  {
191
43
  "path": "shared/core/multi-agent-dev-local-autopilot/SKILL.md",
@@ -203,13 +55,21 @@
203
55
  "path": "shared/core/multi-agent-diff-explain/SKILL.md",
204
56
  "sha256": "6f000bc5fbed4831fa7774844f6eeced911be041054694a22a5898ce329f7b08"
205
57
  },
58
+ {
59
+ "path": "shared/core/multi-agent-finish/SKILL.md",
60
+ "sha256": "086438494380328e3ed06c7e0ad87351c0b620d7e46dd9ff406b503c35a4ad92"
61
+ },
206
62
  {
207
63
  "path": "shared/core/multi-agent-garbage-collect/SKILL.md",
208
64
  "sha256": "24736f163e645e2bee7d552e555ae6e32cd3fc3d15c844813a75b908a58d52fd"
209
65
  },
66
+ {
67
+ "path": "shared/core/multi-agent-generate/SKILL.md",
68
+ "sha256": "be92e3c2599bbbab79bd4368ac8a62c55f97e49363e195926039dc2d1111324f"
69
+ },
210
70
  {
211
71
  "path": "shared/core/multi-agent-help/SKILL.md",
212
- "sha256": "8cdc62c8fc82d1a66cc36ac93edbe2253a517dc20a929e5a01c2bd387ed66cb5"
72
+ "sha256": "0a8da9321dcae6d5dc3be664fcaaa5c575d346d29acf39c65aea99f37a9629ba"
213
73
  },
214
74
  {
215
75
  "path": "shared/core/multi-agent-issue/SKILL.md",
@@ -261,7 +121,7 @@
261
121
  },
262
122
  {
263
123
  "path": "shared/core/multi-agent-review/SKILL.md",
264
- "sha256": "ec08c7ec519f19b7df38acfa79ba7e06728a81fa81bfd90909a327da34d9bbf8"
124
+ "sha256": "e2b8cf23775cfd6be2727cef1c47d78030c6600240e4446f7ceb4297e8cf7d46"
265
125
  },
266
126
  {
267
127
  "path": "shared/core/multi-agent-scan/SKILL.md",
@@ -277,7 +137,7 @@
277
137
  },
278
138
  {
279
139
  "path": "shared/core/multi-agent-stack/SKILL.md",
280
- "sha256": "bac01b7700867dbb210903bb6298a53b07488cc56a6a27cbe5968df99337002c"
140
+ "sha256": "efb24b29cef3601ab2a5bd2ee4f9093ccdd527889059ffc090e89284ebd7c981"
281
141
  },
282
142
  {
283
143
  "path": "shared/core/multi-agent-status/SKILL.md",
@@ -285,7 +145,7 @@
285
145
  },
286
146
  {
287
147
  "path": "shared/core/multi-agent-sync/SKILL.md",
288
- "sha256": "53036a69986a8ea77e1b764210f10552e2bcfb609753598d65dba84c4fc3512c"
148
+ "sha256": "c9459954dfd20f9b823a9ef7730baa474a1332efbbe76c92558153569c4de99b"
289
149
  },
290
150
  {
291
151
  "path": "shared/core/multi-agent-test/SKILL.md",
@@ -293,16 +153,20 @@
293
153
  },
294
154
  {
295
155
  "path": "shared/core/multi-agent-update/SKILL.md",
296
- "sha256": "3587b5f8dbc0dc55103cc3cc1b2ed0c8ee43f4be63930bd6a3348eccd132fd87"
156
+ "sha256": "4f31addb21ab5ec31a1288dc4ee56f102d0936473a964f8a6f4075a9c44889cd"
297
157
  },
298
158
  {
299
159
  "path": "shared/core/multi-agent/SKILL.md",
300
- "sha256": "bb9e7eac068ee6c64f5366e3f7ea30e88be1d8c29650257a064217d66e26c949"
160
+ "sha256": "0efe9bacd0e459c58260fb25e31e82d82aa73437e5c7953f680eab49484a76b3"
301
161
  },
302
162
  {
303
163
  "path": "shared/external/accessibility-compliance-accessibility-audit/SKILL.md",
304
164
  "sha256": "a9fa3b26364d459622ade05cac8761ff425c906caa6ca1e7f264c70171340e59"
305
165
  },
166
+ {
167
+ "path": "shared/external/agent-introspection-debugging/SKILL.md",
168
+ "sha256": "cdc679976ac547300f2b622344dcb8bbed72ba5dd630647280b06c4e80b2541e"
169
+ },
306
170
  {
307
171
  "path": "shared/external/agentflow/SKILL.md",
308
172
  "sha256": "c919c35d8f7897a84834ce9c91109884b6531261b593c94c0096c842de5fdc63"
@@ -379,6 +243,10 @@
379
243
  "path": "shared/external/background-processing/SKILL.md",
380
244
  "sha256": "fa8ed8ae573d1ccb9cdd6356d070ab48f8476448e3023190a37affc301f56c7e"
381
245
  },
246
+ {
247
+ "path": "shared/external/backlog/SKILL.md",
248
+ "sha256": "e5e25ea2d3e7400363113d75efd0109c4e50f6c8915425f8d7c86802ed12be3f"
249
+ },
382
250
  {
383
251
  "path": "shared/external/callkit-voip/SKILL.md",
384
252
  "sha256": "305b55665131233564ddf64b06f4d4ad66f9871ab5706b024b988f0a600dcabf"
@@ -401,7 +269,7 @@
401
269
  },
402
270
  {
403
271
  "path": "shared/external/compose-components/SKILL.md",
404
- "sha256": "14b3c586ede74fb484a0039b06b2f29c8409c873485a71fde8d1ad2823dab5fa"
272
+ "sha256": "7066b3caf8dafc81a8c03522dd7406fac36307e999c2457558f969023862c2d8"
405
273
  },
406
274
  {
407
275
  "path": "shared/external/compose-navigation/SKILL.md",
@@ -439,6 +307,10 @@
439
307
  "path": "shared/external/coreml/SKILL.md",
440
308
  "sha256": "cb539b5cddaf0e62970470fe12208fdc62afd1d294a6c06b5a933b8e06bdf984"
441
309
  },
310
+ {
311
+ "path": "shared/external/council/SKILL.md",
312
+ "sha256": "5dcb3c5cd6640c389e04beb108ceb43694bdc861295358b2b6a7c607e03a4110"
313
+ },
442
314
  {
443
315
  "path": "shared/external/cryptokit/SKILL.md",
444
316
  "sha256": "4cbe1f984705a6d752e5c2532388e49efdddbf9ccfe5d4e8dfeecc6537da558b"
@@ -675,10 +547,18 @@
675
547
  "path": "shared/external/room-database/SKILL.md",
676
548
  "sha256": "95be733ec77acc8cbabccc072d59f3faf4f6e083410bf179cc0a6632b746e93e"
677
549
  },
550
+ {
551
+ "path": "shared/external/search-first/SKILL.md",
552
+ "sha256": "352b4f10e448327425ae99585af797fdb440ee73bfcb6acd778147091f4a0f29"
553
+ },
678
554
  {
679
555
  "path": "shared/external/shareplay-activities/SKILL.md",
680
556
  "sha256": "508e3123039bc114e4239e66d86f8d550fe94fc259d827e4985e0aed3ff54090"
681
557
  },
558
+ {
559
+ "path": "shared/external/skill-creator/SKILL.md",
560
+ "sha256": "a0bf9eb1bcf35bea28588fe272f732beb5d383595cb1344e4209bb42fa795b83"
561
+ },
682
562
  {
683
563
  "path": "shared/external/speech-recognition/SKILL.md",
684
564
  "sha256": "912f831d1e0c79fcfc902ddc3d80fe0f9caffa36b2a8727b54427b1c31a779a4"