@mmerterden/multi-agent-pipeline 8.6.2 → 10.2.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 (933) hide show
  1. package/CHANGELOG.md +660 -2483
  2. package/README.md +100 -101
  3. package/docs/features.md +1 -1
  4. package/index.js +8 -10
  5. package/install/_adapters.mjs +5 -1
  6. package/install/_common.mjs +63 -0
  7. package/install/claude.mjs +14 -14
  8. package/install/copilot.mjs +14 -8
  9. package/install/index.mjs +85 -19
  10. package/install/templates/claude-hooks.json +18 -0
  11. package/install/templates/copilot-instructions.md +3 -3
  12. package/package.json +21 -6
  13. package/pipeline/adapters/_base.mjs +366 -14
  14. package/pipeline/adapters/antigravity.mjs +140 -0
  15. package/pipeline/adapters/codex.mjs +159 -0
  16. package/pipeline/adapters/copilot-chat-orchestration.mjs +148 -0
  17. package/pipeline/adapters/copilot-chat.mjs +34 -68
  18. package/pipeline/adapters/cursor-orchestration.mjs +152 -0
  19. package/pipeline/adapters/cursor.mjs +49 -90
  20. package/pipeline/agents/android-architect.md +3 -3
  21. package/pipeline/agents/backend-architect.md +2 -2
  22. package/pipeline/agents/code-reviewer.md +8 -8
  23. package/pipeline/agents/dev-critic.md +17 -17
  24. package/pipeline/agents/explorer.md +3 -3
  25. package/pipeline/agents/ios-architect.md +2 -2
  26. package/pipeline/agents/security-auditor.md +10 -10
  27. package/pipeline/agents/task-clarifier.md +18 -18
  28. package/pipeline/claude-md-template.md +3 -3
  29. package/pipeline/commands/archive-guard.md +3 -3
  30. package/pipeline/commands/figma-to-swiftui.md +10 -10
  31. package/pipeline/commands/multi-agent/_account-picker.md +12 -8
  32. package/pipeline/commands/multi-agent/_dev-context.md +15 -15
  33. package/pipeline/commands/multi-agent/_input-parser.md +4 -4
  34. package/pipeline/commands/multi-agent/_repo-picker.md +9 -9
  35. package/pipeline/commands/multi-agent/analysis-resolve.md +129 -0
  36. package/pipeline/commands/multi-agent/analysis.md +667 -0
  37. package/pipeline/commands/multi-agent/autopilot.md +22 -22
  38. package/pipeline/commands/multi-agent/build-optimize.md +77 -0
  39. package/pipeline/commands/multi-agent/channels.md +96 -96
  40. package/pipeline/commands/multi-agent/delete.md +19 -17
  41. package/pipeline/commands/multi-agent/dev-autopilot.md +20 -20
  42. package/pipeline/commands/multi-agent/dev-local-autopilot.md +22 -22
  43. package/pipeline/commands/multi-agent/dev-local.md +23 -20
  44. package/pipeline/commands/multi-agent/dev.md +43 -43
  45. package/pipeline/commands/multi-agent/diff-explain.md +4 -4
  46. package/pipeline/commands/multi-agent/garbage-collect.md +58 -0
  47. package/pipeline/commands/multi-agent/help.md +65 -56
  48. package/pipeline/commands/multi-agent/issue.md +3 -3
  49. package/pipeline/commands/multi-agent/jira.md +12 -12
  50. package/pipeline/commands/multi-agent/kill.md +6 -6
  51. package/pipeline/commands/multi-agent/language.md +12 -12
  52. package/pipeline/commands/multi-agent/local-autopilot.md +34 -34
  53. package/pipeline/commands/multi-agent/local.md +24 -25
  54. package/pipeline/commands/multi-agent/log.md +6 -6
  55. package/pipeline/commands/multi-agent/manual-test.md +3 -3
  56. package/pipeline/commands/multi-agent/prune-logs.md +60 -0
  57. package/pipeline/commands/multi-agent/purge.md +10 -7
  58. package/pipeline/commands/multi-agent/refactor.md +9 -9
  59. package/pipeline/commands/multi-agent/refs/analysis-template.md +1062 -0
  60. package/pipeline/commands/multi-agent/refs/android-guide.md +15 -13
  61. package/pipeline/commands/multi-agent/refs/audit-guide.md +20 -20
  62. package/pipeline/commands/multi-agent/refs/backend-guide.md +9 -9
  63. package/pipeline/commands/multi-agent/refs/channels/confluence.md +17 -17
  64. package/pipeline/commands/multi-agent/refs/channels/issue-comment.md +30 -30
  65. package/pipeline/commands/multi-agent/refs/channels/jira.md +16 -15
  66. package/pipeline/commands/multi-agent/refs/channels/pr-review-actions.md +19 -17
  67. package/pipeline/commands/multi-agent/refs/channels/pr.md +22 -22
  68. package/pipeline/commands/multi-agent/refs/channels/wiki.md +19 -19
  69. package/pipeline/commands/multi-agent/refs/component-dispatch.md +11 -11
  70. package/pipeline/commands/multi-agent/refs/conventions-defaults.md +179 -0
  71. package/pipeline/commands/multi-agent/refs/cross-cli-contract.md +41 -35
  72. package/pipeline/commands/multi-agent/refs/features/dev-critic.md +5 -5
  73. package/pipeline/commands/multi-agent/refs/features/external-context-injection.md +6 -6
  74. package/pipeline/commands/multi-agent/refs/features/model-fallback.md +91 -0
  75. package/pipeline/commands/multi-agent/refs/features/plan-todos.md +1 -1
  76. package/pipeline/commands/multi-agent/refs/features/prior-fix-detection.md +4 -4
  77. package/pipeline/commands/multi-agent/refs/features/repo-map.md +6 -6
  78. package/pipeline/commands/multi-agent/refs/features/shadow-git.md +2 -2
  79. package/pipeline/commands/multi-agent/refs/frontend-guide.md +16 -16
  80. package/pipeline/commands/multi-agent/refs/issue-jira-triad.md +18 -18
  81. package/pipeline/commands/multi-agent/refs/keychain.md +18 -8
  82. package/pipeline/commands/multi-agent/refs/knowledge.md +9 -9
  83. package/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md +19 -19
  84. package/pipeline/commands/multi-agent/refs/phases/log-format.md +29 -9
  85. package/pipeline/commands/multi-agent/refs/phases/modes.md +33 -33
  86. package/pipeline/commands/multi-agent/refs/phases/operations.md +24 -14
  87. package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +107 -57
  88. package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +65 -29
  89. package/pipeline/commands/multi-agent/refs/phases/phase-2-planning.md +114 -62
  90. package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +99 -36
  91. package/pipeline/commands/multi-agent/refs/phases/phase-4-review.md +181 -62
  92. package/pipeline/commands/multi-agent/refs/phases/phase-5-test.md +33 -18
  93. package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +45 -43
  94. package/pipeline/commands/multi-agent/refs/phases/phase-7-report.md +54 -28
  95. package/pipeline/commands/multi-agent/refs/phases.md +17 -17
  96. package/pipeline/commands/multi-agent/refs/picker-contract.md +65 -0
  97. package/pipeline/commands/multi-agent/refs/progress-contract.md +37 -21
  98. package/pipeline/commands/multi-agent/refs/rules.md +83 -25
  99. package/pipeline/commands/multi-agent/refs/swiftui-guide.md +32 -30
  100. package/pipeline/commands/multi-agent/refs/tracker-contract.md +54 -30
  101. package/pipeline/commands/multi-agent/refs/wiki-capture.md +36 -33
  102. package/pipeline/commands/multi-agent/resume.md +12 -9
  103. package/pipeline/commands/multi-agent/review.md +24 -24
  104. package/pipeline/commands/multi-agent/scan.md +10 -10
  105. package/pipeline/commands/multi-agent/search.md +8 -8
  106. package/pipeline/commands/multi-agent/setup.md +111 -84
  107. package/pipeline/commands/multi-agent/stack.md +5 -5
  108. package/pipeline/commands/multi-agent/status.md +5 -5
  109. package/pipeline/commands/multi-agent/sync.md +123 -111
  110. package/pipeline/commands/multi-agent/test.md +6 -6
  111. package/pipeline/commands/multi-agent/update.md +1 -1
  112. package/pipeline/commands/multi-agent.md +64 -58
  113. package/pipeline/commands/sim-test.md +14 -14
  114. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +1 -1
  115. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +2 -2
  116. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +2 -2
  117. package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +1 -1
  118. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +2 -2
  119. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +3 -3
  120. package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +4 -4
  121. package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +1 -1
  122. package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +1 -1
  123. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-1-analysis.json +29 -0
  124. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-2-plan.json +42 -0
  125. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-review.json +20 -0
  126. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-triage.json +15 -0
  127. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/metadata.json +14 -0
  128. package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/task.json +12 -0
  129. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-1-analysis.json +29 -0
  130. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-2-plan.json +40 -0
  131. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-review.json +20 -0
  132. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-triage.json +15 -0
  133. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/metadata.json +14 -0
  134. package/pipeline/eval/golden-tasks/04-frontend-next-hydration/task.json +12 -0
  135. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-1-analysis.json +29 -0
  136. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-2-plan.json +42 -0
  137. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-review.json +28 -0
  138. package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-triage.json +27 -0
  139. package/pipeline/eval/golden-tasks/05-ios-security-keychain/metadata.json +14 -0
  140. package/pipeline/eval/golden-tasks/05-ios-security-keychain/task.json +12 -0
  141. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-1-analysis.json +29 -0
  142. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-2-plan.json +41 -0
  143. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-review.json +12 -0
  144. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-triage.json +6 -0
  145. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/metadata.json +14 -0
  146. package/pipeline/eval/golden-tasks/06-android-refactor-usecase/task.json +12 -0
  147. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-1-analysis.json +29 -0
  148. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-2-plan.json +42 -0
  149. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-review.json +28 -0
  150. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-triage.json +27 -0
  151. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/metadata.json +14 -0
  152. package/pipeline/eval/golden-tasks/07-backend-node-idempotency/task.json +12 -0
  153. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-1-analysis.json +25 -0
  154. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-2-plan.json +31 -0
  155. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-review.json +12 -0
  156. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-triage.json +18 -0
  157. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/metadata.json +14 -0
  158. package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/task.json +12 -0
  159. package/pipeline/eval/golden-tasks/README.md +14 -14
  160. package/pipeline/eval/intent-cases.json +40 -0
  161. package/pipeline/eval/run-metrics-fixture.json +46 -0
  162. package/pipeline/eval/triage/01-empty-findings/notes.md +1 -1
  163. package/pipeline/eval/triage/02-real-blocker/notes.md +2 -2
  164. package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +1 -1
  165. package/pipeline/eval/triage/04-false-positive-reject/notes.md +1 -1
  166. package/pipeline/eval/triage/05-mixed-classification/notes.md +2 -2
  167. package/pipeline/eval/triage/06-severity-mismatch/notes.md +2 -2
  168. package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +1 -1
  169. package/pipeline/eval/triage/08-style-misclassified/notes.md +1 -1
  170. package/pipeline/eval/triage/09-cascading-finding/notes.md +2 -2
  171. package/pipeline/eval/triage/10-deferred-crossref/notes.md +2 -2
  172. package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +3 -3
  173. package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +2 -2
  174. package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +5 -5
  175. package/pipeline/eval/triage/README.md +4 -4
  176. package/pipeline/lib/account-resolver.sh +3 -3
  177. package/pipeline/lib/ask-choice.sh +98 -0
  178. package/pipeline/lib/channels-multi-repo.sh +3 -3
  179. package/pipeline/lib/classify-intent.sh +110 -0
  180. package/pipeline/lib/context-link-extractor.sh +3 -3
  181. package/pipeline/lib/credential-store-resolver.sh +3 -3
  182. package/pipeline/lib/credential-store.sh +9 -5
  183. package/pipeline/lib/extract-conventions.sh +1034 -0
  184. package/pipeline/lib/fetch-confluence.sh +5 -5
  185. package/pipeline/lib/fetch-crashlytics.sh +7 -7
  186. package/pipeline/lib/fetch-fortify.sh +6 -22
  187. package/pipeline/lib/fetch-swagger.sh +6 -6
  188. package/pipeline/lib/figma-screenshot.sh +536 -0
  189. package/pipeline/lib/issue-fetcher.sh +46 -20
  190. package/pipeline/lib/md2confluence-v3.py +1076 -0
  191. package/pipeline/lib/multi-repo-pipeline.sh +13 -22
  192. package/pipeline/lib/plan-todos.sh +7 -7
  193. package/pipeline/lib/post-pr-review.sh +53 -21
  194. package/pipeline/lib/repo-cache.sh +5 -5
  195. package/pipeline/lib/review-watch.sh +17 -13
  196. package/pipeline/lib/shadow-git.sh +7 -7
  197. package/pipeline/lib/submodule-detector.sh +3 -3
  198. package/pipeline/lib/vercel-deploy.sh +28 -15
  199. package/pipeline/preferences-template.json +28 -4
  200. package/pipeline/rules/app-store-guidelines.md +2 -2
  201. package/pipeline/rules/code-style.md +6 -6
  202. package/pipeline/rules/figma-pipeline.md +100 -2
  203. package/pipeline/rules/kotlin-android.md +8 -8
  204. package/pipeline/rules/security.md +4 -4
  205. package/pipeline/rules/tdd.md +1 -1
  206. package/pipeline/rules/testing.md +5 -5
  207. package/pipeline/schemas/agent-state.schema.json +63 -20
  208. package/pipeline/schemas/analysis-output.schema.json +7 -2
  209. package/pipeline/schemas/analysis-spec.schema.json +484 -0
  210. package/pipeline/schemas/clarify-output.schema.json +5 -5
  211. package/pipeline/schemas/conventions-output.schema.json +70 -0
  212. package/pipeline/schemas/dev-critic-output.schema.json +2 -2
  213. package/pipeline/schemas/diff-risk.schema.json +3 -3
  214. package/pipeline/schemas/figma-project-config.schema.json +42 -3
  215. package/pipeline/schemas/learnings-ledger.schema.json +39 -0
  216. package/pipeline/schemas/migrations/README.md +2 -2
  217. package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +5 -5
  218. package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +3 -3
  219. package/pipeline/schemas/migrations/prefs-2.1.0-to-2.2.0.mjs +4 -4
  220. package/pipeline/schemas/migrations/prefs-2.2.0-to-2.3.0.mjs +5 -5
  221. package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +3 -3
  222. package/pipeline/schemas/plan-todos.schema.json +4 -4
  223. package/pipeline/schemas/planning-output.schema.json +3 -3
  224. package/pipeline/schemas/prefs.schema.json +95 -11
  225. package/pipeline/schemas/reviewer-output.schema.json +7 -3
  226. package/pipeline/schemas/test-gap.schema.json +1 -1
  227. package/pipeline/schemas/token-budget.json +8 -8
  228. package/pipeline/schemas/triage-corpus.schema.json +1 -1
  229. package/pipeline/schemas/triage-output.schema.json +44 -6
  230. package/pipeline/scripts/README.md +64 -64
  231. package/pipeline/scripts/aggregate-metrics.mjs +55 -16
  232. package/pipeline/scripts/audit-log-rotate.sh +3 -3
  233. package/pipeline/scripts/audit-log.sh +20 -7
  234. package/pipeline/scripts/benchmark-phase-0.sh +6 -6
  235. package/pipeline/scripts/build-skills-index.mjs +15 -15
  236. package/pipeline/scripts/check-md-links.mjs +59 -0
  237. package/pipeline/scripts/classify-plan-safety.mjs +24 -18
  238. package/pipeline/scripts/cost-budget-check.mjs +160 -0
  239. package/pipeline/scripts/cost-table.json +17 -13
  240. package/pipeline/scripts/diff-explain.mjs +12 -12
  241. package/pipeline/scripts/diff-risk-score.mjs +18 -17
  242. package/pipeline/scripts/eval-golden-tasks-live.mjs +13 -10
  243. package/pipeline/scripts/eval-golden-tasks.mjs +3 -14
  244. package/pipeline/scripts/eval-intent.mjs +103 -0
  245. package/pipeline/scripts/eval-triage.mjs +3 -3
  246. package/pipeline/scripts/evidence-gate.mjs +155 -0
  247. package/pipeline/scripts/fixtures/install-layout.tsv +9 -9
  248. package/pipeline/scripts/gc-tmp.sh +102 -0
  249. package/pipeline/scripts/gen-mode-dispatch.mjs +27 -21
  250. package/pipeline/scripts/gen-skills-index.mjs +6 -6
  251. package/pipeline/scripts/github-ssh-setup.sh +1 -1
  252. package/pipeline/scripts/keychain-save.sh +1 -1
  253. package/pipeline/scripts/keychain.py +6 -6
  254. package/pipeline/scripts/learnings-ledger.mjs +284 -0
  255. package/pipeline/scripts/lint-skills.mjs +80 -0
  256. package/pipeline/scripts/log-metric.sh +18 -9
  257. package/pipeline/scripts/match-skills.mjs +13 -8
  258. package/pipeline/scripts/memory-load.sh +3 -3
  259. package/pipeline/scripts/memory-save.sh +5 -5
  260. package/pipeline/scripts/migrate-prefs.mjs +17 -17
  261. package/pipeline/scripts/migrate-state.mjs +12 -12
  262. package/pipeline/scripts/output-quality-check.sh +7 -7
  263. package/pipeline/scripts/phase-banner.sh +5 -5
  264. package/pipeline/scripts/phase-tracker.sh +97 -53
  265. package/pipeline/scripts/pre-commit-check.sh +45 -5
  266. package/pipeline/scripts/pre-push-check.sh +7 -7
  267. package/pipeline/scripts/prune-logs.sh +118 -0
  268. package/pipeline/scripts/render-agent-log-cost.sh +55 -18
  269. package/pipeline/scripts/render-cost-summary.sh +9 -9
  270. package/pipeline/scripts/render-work-summary.sh +4 -4
  271. package/pipeline/scripts/repo-map.mjs +9 -9
  272. package/pipeline/scripts/run-aggregator.mjs +7 -6
  273. package/pipeline/scripts/run-metrics.mjs +129 -0
  274. package/pipeline/scripts/run-smokes.mjs +76 -0
  275. package/pipeline/scripts/scan-skills.sh +11 -11
  276. package/pipeline/scripts/search-logs.sh +8 -8
  277. package/pipeline/scripts/sign-skills.sh +2 -2
  278. package/pipeline/scripts/smoke-adapters.sh +79 -10
  279. package/pipeline/scripts/smoke-add-detail.sh +5 -5
  280. package/pipeline/scripts/smoke-agent-log-cost.sh +85 -6
  281. package/pipeline/scripts/smoke-agent-model-routing.sh +3 -3
  282. package/pipeline/scripts/smoke-ask-choice.sh +42 -0
  283. package/pipeline/scripts/smoke-bitbucket-contract.sh +19 -3
  284. package/pipeline/scripts/smoke-changelog-version.sh +47 -0
  285. package/pipeline/scripts/smoke-channels-flow.sh +1 -1
  286. package/pipeline/scripts/smoke-ci-workflows.sh +5 -5
  287. package/pipeline/scripts/smoke-clarify.sh +3 -3
  288. package/pipeline/scripts/smoke-commands-skills-parity.sh +4 -4
  289. package/pipeline/scripts/smoke-community-gates.sh +75 -0
  290. package/pipeline/scripts/smoke-compliance-skills.sh +5 -5
  291. package/pipeline/scripts/smoke-cost-budget.sh +70 -0
  292. package/pipeline/scripts/smoke-cost-summary.sh +4 -4
  293. package/pipeline/scripts/smoke-cross-cli-behavior.sh +50 -9
  294. package/pipeline/scripts/smoke-cross-phase-cohesion.sh +5 -5
  295. package/pipeline/scripts/smoke-delete-flow.sh +5 -5
  296. package/pipeline/scripts/smoke-dev-critic.sh +2 -2
  297. package/pipeline/scripts/smoke-diff-explain.sh +22 -3
  298. package/pipeline/scripts/smoke-diff-risk.sh +1 -1
  299. package/pipeline/scripts/smoke-dynamic-skill-loading.sh +1 -1
  300. package/pipeline/scripts/smoke-eval-live.sh +4 -4
  301. package/pipeline/scripts/smoke-evidence-gate.sh +93 -0
  302. package/pipeline/scripts/smoke-existing-discovery-gate.sh +1 -1
  303. package/pipeline/scripts/smoke-extract-conventions.sh +163 -0
  304. package/pipeline/scripts/smoke-figma-android-parity.sh +1 -1
  305. package/pipeline/scripts/smoke-figma-credential-store.sh +3 -3
  306. package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +12 -12
  307. package/pipeline/scripts/smoke-figma-dispatch.sh +5 -5
  308. package/pipeline/scripts/smoke-figma-sync.sh +1 -1
  309. package/pipeline/scripts/smoke-gate-hooks.sh +56 -0
  310. package/pipeline/scripts/smoke-gc-tmp.sh +84 -0
  311. package/pipeline/scripts/smoke-identity-isolation.sh +7 -7
  312. package/pipeline/scripts/smoke-install-layout.sh +10 -10
  313. package/pipeline/scripts/smoke-intent-guard.sh +86 -0
  314. package/pipeline/scripts/smoke-issue-comment-template.sh +3 -3
  315. package/pipeline/scripts/smoke-issue-jira-triad.sh +1 -1
  316. package/pipeline/scripts/smoke-keychain.sh +6 -6
  317. package/pipeline/scripts/smoke-language-axis.sh +2 -2
  318. package/pipeline/scripts/smoke-learnings-ledger.sh +86 -0
  319. package/pipeline/scripts/smoke-lib-scripts.sh +2 -2
  320. package/pipeline/scripts/smoke-mcp-gate.sh +68 -0
  321. package/pipeline/scripts/smoke-md-links.sh +8 -0
  322. package/pipeline/scripts/smoke-md2confluence.sh +126 -0
  323. package/pipeline/scripts/smoke-metrics-cache-ratio.sh +72 -0
  324. package/pipeline/scripts/smoke-migrate-state.sh +10 -10
  325. package/pipeline/scripts/smoke-mode-dispatch-drift.sh +7 -4
  326. package/pipeline/scripts/smoke-model-fallback.sh +88 -0
  327. package/pipeline/scripts/smoke-multi-repo-integration.sh +3 -3
  328. package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
  329. package/pipeline/scripts/smoke-no-mcp-in-dev-phases.sh +115 -0
  330. package/pipeline/scripts/smoke-no-token-prompt.sh +31 -15
  331. package/pipeline/scripts/smoke-pat-audit.sh +26 -5
  332. package/pipeline/scripts/smoke-per-repo-memory.sh +1 -1
  333. package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
  334. package/pipeline/scripts/smoke-phase-6-multi.sh +2 -2
  335. package/pipeline/scripts/smoke-phase-banner.sh +1 -1
  336. package/pipeline/scripts/smoke-phase-tracker.sh +1 -1
  337. package/pipeline/scripts/smoke-phase0-bridge-contract.sh +4 -4
  338. package/pipeline/scripts/smoke-phase4-triage.sh +94 -7
  339. package/pipeline/scripts/smoke-plan-approval-gate.sh +3 -3
  340. package/pipeline/scripts/smoke-plan-safety.sh +1 -1
  341. package/pipeline/scripts/smoke-plan-todos.sh +2 -2
  342. package/pipeline/scripts/smoke-pr-review-actions.sh +2 -2
  343. package/pipeline/scripts/smoke-pre-commit.sh +34 -2
  344. package/pipeline/scripts/smoke-pref-migration.sh +1 -1
  345. package/pipeline/scripts/smoke-prefs-language.sh +5 -5
  346. package/pipeline/scripts/smoke-progress-contract.sh +3 -3
  347. package/pipeline/scripts/smoke-prune-logs.sh +87 -0
  348. package/pipeline/scripts/smoke-push-retry.sh +1 -1
  349. package/pipeline/scripts/smoke-readme-counts.sh +1 -1
  350. package/pipeline/scripts/smoke-repo-map.sh +9 -9
  351. package/pipeline/scripts/smoke-review-watch.sh +12 -0
  352. package/pipeline/scripts/smoke-run-aggregator.sh +7 -7
  353. package/pipeline/scripts/smoke-run-metrics.sh +50 -0
  354. package/pipeline/scripts/smoke-schema-validation.sh +18 -11
  355. package/pipeline/scripts/smoke-search.sh +5 -5
  356. package/pipeline/scripts/smoke-shared-runtime.sh +108 -0
  357. package/pipeline/scripts/smoke-skill-authoring.sh +13 -13
  358. package/pipeline/scripts/smoke-skill-language.sh +4 -4
  359. package/pipeline/scripts/smoke-skill-manifest.sh +2 -2
  360. package/pipeline/scripts/smoke-skill-scan.sh +2 -2
  361. package/pipeline/scripts/smoke-stack-swap.sh +2 -2
  362. package/pipeline/scripts/smoke-subagent-validators.sh +8 -5
  363. package/pipeline/scripts/smoke-sync-adapters.sh +1 -1
  364. package/pipeline/scripts/smoke-sync-delegation.sh +7 -7
  365. package/pipeline/scripts/smoke-sync-parity.sh +1 -1
  366. package/pipeline/scripts/smoke-tasklist-ordering.sh +7 -7
  367. package/pipeline/scripts/smoke-telemetry.sh +1 -1
  368. package/pipeline/scripts/smoke-test-gap.sh +5 -5
  369. package/pipeline/scripts/smoke-token-budget.sh +1 -1
  370. package/pipeline/scripts/smoke-tracker-contract.sh +6 -6
  371. package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +9 -1
  372. package/pipeline/scripts/smoke-triage-memory.sh +2 -2
  373. package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
  374. package/pipeline/scripts/smoke-validator-contradiction.sh +1 -1
  375. package/pipeline/scripts/smoke-validator-gates.sh +164 -0
  376. package/pipeline/scripts/smoke-vercel-deploy-redact.sh +11 -11
  377. package/pipeline/scripts/smoke-wiki-integration.sh +2 -2
  378. package/pipeline/scripts/smoke-work-summary.sh +3 -3
  379. package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
  380. package/pipeline/scripts/smoke-write-state.sh +2 -2
  381. package/pipeline/scripts/stack-swap.sh +3 -3
  382. package/pipeline/scripts/sync-adapters.mjs +37 -10
  383. package/pipeline/scripts/sync-parity-check.sh +6 -6
  384. package/pipeline/scripts/test-gap-scan.mjs +11 -13
  385. package/pipeline/scripts/token-budget-report.mjs +4 -4
  386. package/pipeline/scripts/triage-memory.mjs +6 -6
  387. package/pipeline/scripts/uninstall.mjs +42 -4
  388. package/pipeline/scripts/update-issue-progress.sh +2 -2
  389. package/pipeline/scripts/validate-analysis.mjs +19 -21
  390. package/pipeline/scripts/validate-diff-risk.mjs +4 -4
  391. package/pipeline/scripts/validate-planning.mjs +3 -3
  392. package/pipeline/scripts/validate-reviewer.mjs +4 -4
  393. package/pipeline/scripts/validate-schemas.mjs +4 -4
  394. package/pipeline/scripts/validate-state.mjs +108 -0
  395. package/pipeline/scripts/validate-test-gap.mjs +4 -4
  396. package/pipeline/scripts/validate-triage.mjs +68 -9
  397. package/pipeline/scripts/verify-skills.sh +7 -7
  398. package/pipeline/scripts/write-state.mjs +62 -13
  399. package/pipeline/skills/.skill-manifest.json +245 -149
  400. package/pipeline/skills/.skills-index.json +236 -47
  401. package/pipeline/skills/figma-android/README.md +5 -5
  402. package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +3 -3
  403. package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +8 -8
  404. package/pipeline/skills/figma-android/figma-component-test/SKILL.md +4 -4
  405. package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +5 -5
  406. package/pipeline/skills/figma-android/figma-to-component/SKILL.md +14 -14
  407. package/pipeline/skills/figma-common/README.md +37 -30
  408. package/pipeline/skills/figma-common/figma-bottom-sheets/SKILL.md +137 -0
  409. package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +20 -15
  410. package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +35 -30
  411. package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +35 -30
  412. package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +20 -20
  413. package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +32 -32
  414. package/pipeline/skills/figma-common/figma-commit/REVIEW.md +9 -9
  415. package/pipeline/skills/figma-common/figma-commit/SKILL.md +25 -20
  416. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +11 -6
  417. package/pipeline/skills/figma-common/figma-component-start/SKILL.md +30 -25
  418. package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +9 -4
  419. package/pipeline/skills/figma-common/figma-evolve-component/SKILL.md +61 -0
  420. package/pipeline/skills/figma-common/figma-fix/SKILL.md +27 -22
  421. package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +38 -38
  422. package/pipeline/skills/figma-common/figma-issue/SKILL.md +39 -34
  423. package/pipeline/skills/figma-common/figma-iterate/SKILL.md +20 -15
  424. package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +44 -39
  425. package/pipeline/skills/figma-common/figma-mend/SKILL.md +6 -6
  426. package/pipeline/skills/figma-common/figma-navigation/SKILL.md +142 -0
  427. package/pipeline/skills/figma-common/figma-overlays/SKILL.md +128 -0
  428. package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +30 -30
  429. package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +1 -1
  430. package/pipeline/skills/figma-common/figma-review/SKILL.md +31 -26
  431. package/pipeline/skills/figma-common/figma-setup/SKILL.md +11 -11
  432. package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +5 -5
  433. package/pipeline/skills/figma-common/figma-skip/SKILL.md +6 -6
  434. package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +13 -12
  435. package/pipeline/skills/figma-common/figma-ui-patterns/patterns/animated-gradient-border.md +112 -0
  436. package/pipeline/skills/figma-common/figma-utility/SKILL.md +4 -4
  437. package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +1 -1
  438. package/pipeline/skills/figma-common/figma-validate/SKILL.md +48 -48
  439. package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +42 -37
  440. package/pipeline/skills/figma-common/performance-review-next/SKILL.md +23 -18
  441. package/pipeline/skills/figma-common/performance-start/SKILL.md +52 -47
  442. package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +68 -68
  443. package/pipeline/skills/figma-common/performance-tour/SKILL.md +42 -37
  444. package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +16 -16
  445. package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +15 -15
  446. package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +9 -9
  447. package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +15 -15
  448. package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +18 -18
  449. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +53 -38
  450. package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +2 -2
  451. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +12 -12
  452. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +5 -5
  453. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +19 -19
  454. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +25 -25
  455. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +7 -7
  456. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +6 -6
  457. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +38 -38
  458. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +3 -3
  459. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +29 -29
  460. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +6 -6
  461. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +3 -3
  462. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +12 -12
  463. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +88 -57
  464. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +5 -5
  465. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +6 -6
  466. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +10 -10
  467. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +16 -16
  468. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +23 -23
  469. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +26 -26
  470. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +53 -43
  471. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +17 -17
  472. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +19 -19
  473. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +15 -15
  474. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +39 -39
  475. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +7 -7
  476. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +29 -29
  477. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +9 -9
  478. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +31 -31
  479. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +5 -5
  480. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +18 -18
  481. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +16 -16
  482. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +2 -2
  483. package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +56 -2
  484. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +49 -49
  485. package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +8 -8
  486. package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +2 -2
  487. package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +9 -9
  488. package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +4 -4
  489. package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +10 -10
  490. package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +5 -5
  491. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +11 -11
  492. package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +14 -14
  493. package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +2 -2
  494. package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +4 -4
  495. package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +6 -6
  496. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +9 -9
  497. package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +1 -1
  498. package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +1 -1
  499. package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +5 -5
  500. package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +18 -18
  501. package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +4 -4
  502. package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +4 -4
  503. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +1 -1
  504. package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +3 -3
  505. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +18 -18
  506. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +4 -4
  507. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +5 -5
  508. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +9 -0
  509. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +3 -3
  510. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +1 -1
  511. package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +5 -5
  512. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +1 -1
  513. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +4 -4
  514. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +1 -1
  515. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +3 -3
  516. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +1 -1
  517. package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +1 -1
  518. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +12 -12
  519. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +3 -3
  520. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +26 -26
  521. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +4 -4
  522. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +4 -4
  523. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +5 -5
  524. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +4 -4
  525. package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +4 -4
  526. package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +5 -5
  527. package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +2 -2
  528. package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +1 -1
  529. package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +5 -5
  530. package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +41 -41
  531. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +8 -8
  532. package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +7 -7
  533. package/pipeline/skills/shared/README.md +62 -41
  534. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +39 -39
  535. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +44 -44
  536. package/pipeline/skills/shared/core/multi-agent/SKILL.md +182 -176
  537. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +55 -0
  538. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +48 -0
  539. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +16 -16
  540. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +48 -0
  541. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +40 -40
  542. package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +33 -30
  543. package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +26 -26
  544. package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +22 -22
  545. package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +6 -6
  546. package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +12 -12
  547. package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +20 -20
  548. package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +61 -0
  549. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +22 -22
  550. package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +15 -15
  551. package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +12 -12
  552. package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +14 -14
  553. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +12 -12
  554. package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +10 -10
  555. package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +18 -18
  556. package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +9 -9
  557. package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +20 -20
  558. package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +63 -0
  559. package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +16 -13
  560. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +110 -110
  561. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +13 -13
  562. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +22 -22
  563. package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +18 -18
  564. package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +13 -13
  565. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +33 -30
  566. package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +14 -14
  567. package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +9 -9
  568. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +79 -79
  569. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +5 -5
  570. package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +10 -10
  571. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +41 -0
  572. package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +53 -0
  573. package/pipeline/skills/shared/external/agentflow/SKILL.md +9 -9
  574. package/pipeline/skills/shared/external/alarmkit/SKILL.md +113 -52
  575. package/pipeline/skills/shared/external/alarmkit/evals/evals.json +41 -0
  576. package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +23 -16
  577. package/pipeline/skills/shared/external/app-clips/SKILL.md +85 -354
  578. package/pipeline/skills/shared/external/app-clips/evals/evals.json +50 -0
  579. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +135 -0
  580. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +125 -0
  581. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +113 -0
  582. package/pipeline/skills/shared/external/app-intents/SKILL.md +152 -59
  583. package/pipeline/skills/shared/external/app-intents/evals/evals.json +47 -0
  584. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +161 -118
  585. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +289 -392
  586. package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +46 -0
  587. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +174 -0
  588. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +191 -0
  589. package/pipeline/skills/shared/external/app-store-review/SKILL.md +57 -107
  590. package/pipeline/skills/shared/external/app-store-review/evals/evals.json +44 -0
  591. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +35 -12
  592. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +28 -26
  593. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +53 -62
  594. package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +47 -0
  595. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +7 -1
  596. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +4 -1
  597. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +32 -12
  598. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +34 -30
  599. package/pipeline/skills/shared/external/authentication/SKILL.md +134 -138
  600. package/pipeline/skills/shared/external/authentication/evals/evals.json +48 -0
  601. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +56 -29
  602. package/pipeline/skills/shared/external/authentication/references/passkeys.md +183 -0
  603. package/pipeline/skills/shared/external/avkit/SKILL.md +497 -0
  604. package/pipeline/skills/shared/external/avkit/evals/evals.json +55 -0
  605. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +668 -0
  606. package/pipeline/skills/shared/external/background-processing/SKILL.md +29 -29
  607. package/pipeline/skills/shared/external/background-processing/evals/evals.json +44 -0
  608. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +44 -19
  609. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +136 -99
  610. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +47 -0
  611. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +27 -8
  612. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +7 -6
  613. package/pipeline/skills/shared/external/clean-code/SKILL.md +2 -2
  614. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +63 -56
  615. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +47 -0
  616. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +7 -4
  617. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +31 -11
  618. package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +41 -0
  619. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +51 -51
  620. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +70 -65
  621. package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +44 -0
  622. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +25 -1
  623. package/pipeline/skills/shared/external/core-data/SKILL.md +496 -0
  624. package/pipeline/skills/shared/external/core-data/evals/evals.json +44 -0
  625. package/pipeline/skills/shared/external/core-motion/SKILL.md +47 -14
  626. package/pipeline/skills/shared/external/core-motion/evals/evals.json +49 -0
  627. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +47 -16
  628. package/pipeline/skills/shared/external/core-nfc/SKILL.md +43 -54
  629. package/pipeline/skills/shared/external/core-nfc/evals/evals.json +49 -0
  630. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +32 -2
  631. package/pipeline/skills/shared/external/coreml/SKILL.md +89 -48
  632. package/pipeline/skills/shared/external/coreml/evals/evals.json +44 -0
  633. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +82 -37
  634. package/pipeline/skills/shared/external/cryptokit/SKILL.md +493 -0
  635. package/pipeline/skills/shared/external/cryptokit/evals/evals.json +44 -0
  636. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +602 -0
  637. package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
  638. package/pipeline/skills/shared/external/database-patterns/SKILL.md +6 -5
  639. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +77 -47
  640. package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +47 -0
  641. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +42 -34
  642. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +2 -2
  643. package/pipeline/skills/shared/external/device-integrity/SKILL.md +136 -176
  644. package/pipeline/skills/shared/external/device-integrity/evals/evals.json +45 -0
  645. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +240 -0
  646. package/pipeline/skills/shared/external/energykit/SKILL.md +73 -34
  647. package/pipeline/skills/shared/external/energykit/evals/evals.json +45 -0
  648. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +80 -38
  649. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +67 -53
  650. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +44 -0
  651. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +53 -3
  652. package/pipeline/skills/shared/external/healthkit/SKILL.md +57 -124
  653. package/pipeline/skills/shared/external/healthkit/evals/evals.json +46 -0
  654. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +82 -1
  655. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +43 -41
  656. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +45 -0
  657. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +13 -8
  658. package/pipeline/skills/shared/external/html-semantic/SKILL.md +5 -4
  659. package/pipeline/skills/shared/external/humanizer/SKILL.md +4 -4
  660. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +174 -18
  661. package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +49 -0
  662. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +262 -4
  663. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +117 -0
  664. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +141 -0
  665. package/pipeline/skills/shared/external/ios-localization/SKILL.md +67 -14
  666. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +49 -0
  667. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +20 -3
  668. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +131 -22
  669. package/pipeline/skills/shared/external/ios-networking/SKILL.md +69 -22
  670. package/pipeline/skills/shared/external/ios-networking/evals/evals.json +50 -0
  671. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +28 -16
  672. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +354 -0
  673. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +69 -44
  674. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +35 -69
  675. package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -8
  676. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +485 -0
  677. package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +44 -0
  678. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +316 -0
  679. package/pipeline/skills/shared/external/live-activities/SKILL.md +120 -131
  680. package/pipeline/skills/shared/external/live-activities/evals/evals.json +44 -0
  681. package/pipeline/skills/shared/external/live-activities/references/{live-activity-patterns.md → activitykit-patterns.md} +148 -63
  682. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +40 -21
  683. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +47 -0
  684. package/pipeline/skills/shared/external/mapkit-location/references/{corelocation-patterns.md → mapkit-corelocation-patterns.md} +88 -41
  685. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +27 -24
  686. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +129 -172
  687. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +46 -0
  688. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +180 -0
  689. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +45 -18
  690. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +44 -0
  691. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +26 -6
  692. package/pipeline/skills/shared/external/natural-language/SKILL.md +48 -18
  693. package/pipeline/skills/shared/external/natural-language/evals/evals.json +47 -0
  694. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +20 -7
  695. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +4 -3
  696. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +156 -66
  697. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +51 -0
  698. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +69 -19
  699. package/pipeline/skills/shared/external/pdfkit/SKILL.md +499 -0
  700. package/pipeline/skills/shared/external/pdfkit/evals/evals.json +42 -0
  701. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +844 -0
  702. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +122 -28
  703. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +44 -0
  704. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +49 -18
  705. package/pipeline/skills/shared/external/permissionkit/SKILL.md +100 -51
  706. package/pipeline/skills/shared/external/permissionkit/evals/evals.json +47 -0
  707. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +48 -8
  708. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +13 -15
  709. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +4 -4
  710. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +2 -2
  711. package/pipeline/skills/shared/external/photos-camera-media/references/{photospicker-patterns.md → photokit-patterns.md} +3 -3
  712. package/pipeline/skills/shared/external/push-notifications/SKILL.md +45 -48
  713. package/pipeline/skills/shared/external/push-notifications/evals/evals.json +46 -0
  714. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +22 -33
  715. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +56 -37
  716. package/pipeline/skills/shared/external/python-patterns/SKILL.md +4 -3
  717. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
  718. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +74 -53
  719. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +47 -0
  720. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +10 -10
  721. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +21 -20
  722. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +81 -64
  723. package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +47 -0
  724. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +48 -9
  725. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +118 -104
  726. package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +49 -0
  727. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +171 -0
  728. package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +93 -0
  729. package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +155 -0
  730. package/pipeline/skills/shared/external/spm-build-analysis/references/recommendation-format.md +85 -0
  731. package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +105 -0
  732. package/pipeline/skills/shared/external/spm-build-analysis/scripts/check_spm_pins.py +118 -0
  733. package/pipeline/skills/shared/external/storekit/SKILL.md +110 -44
  734. package/pipeline/skills/shared/external/storekit/evals/evals.json +44 -0
  735. package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +94 -43
  736. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +82 -33
  737. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +449 -0
  738. package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +50 -0
  739. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +164 -0
  740. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +219 -0
  741. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +184 -0
  742. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +158 -0
  743. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +499 -0
  744. package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +45 -0
  745. package/pipeline/skills/shared/external/swift-charts/SKILL.md +52 -40
  746. package/pipeline/skills/shared/external/swift-charts/evals/evals.json +47 -0
  747. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +92 -11
  748. package/pipeline/skills/shared/external/swift-codable/SKILL.md +43 -16
  749. package/pipeline/skills/shared/external/swift-codable/evals/evals.json +43 -0
  750. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +50 -30
  751. package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +44 -0
  752. package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +11 -4
  753. package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +113 -0
  754. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +150 -0
  755. package/pipeline/skills/shared/external/swift-concurrency/references/{swift-6-2-concurrency.md → concurrency-patterns.md} +22 -11
  756. package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +52 -0
  757. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +2 -2
  758. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +21 -15
  759. package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +3 -3
  760. package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -2
  761. package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +3 -3
  762. package/pipeline/skills/shared/external/swift-concurrency-pro/references/async-streams.md +1 -1
  763. package/pipeline/skills/shared/external/swift-concurrency-pro/references/bridging.md +3 -3
  764. package/pipeline/skills/shared/external/swift-concurrency-pro/references/bug-patterns.md +3 -3
  765. package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +8 -8
  766. package/pipeline/skills/shared/external/swift-concurrency-pro/references/diagnostics.md +1 -1
  767. package/pipeline/skills/shared/external/swift-concurrency-pro/references/hotspots.md +2 -2
  768. package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +4 -4
  769. package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +1 -1
  770. package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +2 -2
  771. package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +2 -2
  772. package/pipeline/skills/shared/external/swift-concurrency-pro/references/unstructured.md +3 -3
  773. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +339 -0
  774. package/pipeline/skills/shared/external/swift-language/SKILL.md +33 -34
  775. package/pipeline/skills/shared/external/swift-language/evals/evals.json +47 -0
  776. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +97 -0
  777. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +19 -6
  778. package/pipeline/skills/shared/external/swift-security/SKILL.md +195 -0
  779. package/pipeline/skills/shared/external/swift-security/evals/evals.json +48 -0
  780. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +595 -0
  781. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +611 -0
  782. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +708 -0
  783. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +573 -0
  784. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +752 -0
  785. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +538 -0
  786. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +530 -0
  787. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +543 -0
  788. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +620 -0
  789. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +515 -0
  790. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +496 -0
  791. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +747 -0
  792. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +566 -0
  793. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +813 -0
  794. package/pipeline/skills/shared/external/swift-testing/SKILL.md +97 -297
  795. package/pipeline/skills/shared/external/swift-testing/evals/evals.json +44 -0
  796. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +123 -0
  797. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +162 -34
  798. package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -2
  799. package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +3 -3
  800. package/pipeline/skills/shared/external/swift-testing-pro/references/core-rules.md +2 -2
  801. package/pipeline/skills/shared/external/swift-testing-pro/references/migrating-from-xctest.md +5 -5
  802. package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +3 -3
  803. package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +5 -5
  804. package/pipeline/skills/shared/external/swiftdata/SKILL.md +44 -23
  805. package/pipeline/skills/shared/external/swiftdata/evals/evals.json +47 -0
  806. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +3 -3
  807. package/pipeline/skills/shared/external/swiftdata/references/indexing.md +75 -0
  808. package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +54 -0
  809. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +14 -10
  810. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +5 -5
  811. package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -2
  812. package/pipeline/skills/shared/external/swiftdata-pro/references/class-inheritance.md +2 -2
  813. package/pipeline/skills/shared/external/swiftdata-pro/references/cloudkit.md +1 -1
  814. package/pipeline/skills/shared/external/swiftdata-pro/references/core-rules.md +6 -6
  815. package/pipeline/skills/shared/external/swiftlint/SKILL.md +337 -0
  816. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +297 -0
  817. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +170 -0
  818. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +307 -0
  819. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +35 -0
  820. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +306 -0
  821. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +56 -65
  822. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +48 -44
  823. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +6 -6
  824. package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +13 -13
  825. package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +3 -3
  826. package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +1 -1
  827. package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +4 -4
  828. package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +2 -2
  829. package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +1 -1
  830. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +16 -16
  831. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +11 -11
  832. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +7 -7
  833. package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +5 -5
  834. package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +6 -6
  835. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +38 -16
  836. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +13 -3
  837. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +32 -28
  838. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +1 -1
  839. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +202 -41
  840. package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +16 -25
  841. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +71 -26
  842. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +284 -65
  843. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +387 -0
  844. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +10 -10
  845. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +15 -3
  846. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +2 -2
  847. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +1 -1
  848. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +51 -25
  849. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +78 -6
  850. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +161 -16
  851. package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +85 -27
  852. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +37 -33
  853. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +39 -51
  854. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +204 -30
  855. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +226 -21
  856. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +220 -20
  857. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +159 -34
  858. package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +27 -0
  859. package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -2
  860. package/pipeline/skills/shared/external/swiftui-pro/references/accessibility.md +4 -4
  861. package/pipeline/skills/shared/external/swiftui-pro/references/api.md +1 -1
  862. package/pipeline/skills/shared/external/swiftui-pro/references/data.md +2 -2
  863. package/pipeline/skills/shared/external/swiftui-pro/references/design.md +4 -4
  864. package/pipeline/skills/shared/external/swiftui-pro/references/hygiene.md +2 -2
  865. package/pipeline/skills/shared/external/swiftui-pro/references/navigation.md +1 -1
  866. package/pipeline/skills/shared/external/swiftui-pro/references/performance.md +1 -1
  867. package/pipeline/skills/shared/external/swiftui-pro/references/swift.md +2 -2
  868. package/pipeline/skills/shared/external/swiftui-pro/references/views.md +2 -2
  869. package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +1 -1
  870. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +12 -12
  871. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +3 -3
  872. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +1 -1
  873. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +11 -11
  874. package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +124 -10
  875. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
  876. package/pipeline/skills/shared/external/testing-backend/SKILL.md +2 -1
  877. package/pipeline/skills/shared/external/tipkit/SKILL.md +3 -3
  878. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +9 -9
  879. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +17 -16
  880. package/pipeline/skills/shared/external/vision-framework/SKILL.md +11 -11
  881. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +1 -1
  882. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +5 -5
  883. package/pipeline/skills/shared/external/vue-composition/SKILL.md +7 -6
  884. package/pipeline/skills/shared/external/weatherkit/SKILL.md +3 -3
  885. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +9 -9
  886. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
  887. package/pipeline/skills/shared/external/web-performance/SKILL.md +8 -7
  888. package/pipeline/skills/shared/external/web-testing/SKILL.md +7 -6
  889. package/pipeline/skills/shared/external/widgetkit/SKILL.md +23 -17
  890. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +99 -0
  891. package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +89 -0
  892. package/pipeline/skills/shared/external/xcode-build-benchmark/references/benchmark-artifacts.md +94 -0
  893. package/pipeline/skills/shared/external/xcode-build-benchmark/references/benchmarking-workflow.md +67 -0
  894. package/pipeline/skills/shared/external/xcode-build-benchmark/schemas/build-benchmark.schema.json +230 -0
  895. package/pipeline/skills/shared/external/xcode-build-benchmark/scripts/benchmark_builds.py +308 -0
  896. package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +219 -0
  897. package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +216 -0
  898. package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +290 -0
  899. package/pipeline/skills/shared/external/xcode-build-fixer/references/recommendation-format.md +85 -0
  900. package/pipeline/skills/shared/external/xcode-build-fixer/scripts/benchmark_builds.py +308 -0
  901. package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +157 -0
  902. package/pipeline/skills/shared/external/xcode-build-orchestrator/references/benchmark-artifacts.md +94 -0
  903. package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +216 -0
  904. package/pipeline/skills/shared/external/xcode-build-orchestrator/references/orchestration-report-template.md +143 -0
  905. package/pipeline/skills/shared/external/xcode-build-orchestrator/references/recommendation-format.md +85 -0
  906. package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/benchmark_builds.py +308 -0
  907. package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/diagnose_compilation.py +273 -0
  908. package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/generate_optimization_report.py +533 -0
  909. package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +90 -0
  910. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +155 -0
  911. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +106 -0
  912. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/recommendation-format.md +85 -0
  913. package/pipeline/skills/shared/external/xcode-compilation-analyzer/scripts/diagnose_compilation.py +273 -0
  914. package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +77 -0
  915. package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +155 -0
  916. package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +216 -0
  917. package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +101 -0
  918. package/pipeline/skills/shared/external/xcode-project-analyzer/references/recommendation-format.md +85 -0
  919. package/pipeline/skills/skills-index.md +213 -192
  920. package/docs/GENERICITY-REVIEW.md +0 -277
  921. package/docs/STABILITY-FIX-PLAN.md +0 -168
  922. package/pipeline/scripts/README-figma-smokes.md +0 -34
  923. package/pipeline/scripts/figma-placeholder-map.json +0 -191
  924. package/pipeline/scripts/import-figma-skills.sh +0 -253
  925. package/pipeline/scripts/smoke-figma-config-schema.sh +0 -144
  926. package/pipeline/scripts/smoke-figma-skill-import.sh +0 -174
  927. package/pipeline/scripts/smoke-install-leak-gate.sh +0 -125
  928. package/pipeline/scripts/smoke-personal-data.sh +0 -84
  929. package/pipeline/scripts/sync-figma-source.sh +0 -228
  930. package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.json +0 -94
  931. package/pipeline/skills/shared/external/app-store-review/references/code-signing.md +0 -259
  932. package/pipeline/skills/shared/external/app-store-review/references/rejection-patterns.md +0 -152
  933. package/pipeline/skills/shared/external/pencilkit-drawing/references/paperkit-integration.md +0 -376
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // migrate-prefs.mjsmigrates multi-agent-preferences.json v2.0.0 → v2.1.0
2
+ // migrate-prefs.mjs - migrates multi-agent-preferences.json v2.0.0 → v2.1.0
3
3
  //
4
4
  // Usage:
5
5
  // node migrate-prefs.mjs [--dry-run] [--file <path>]
@@ -52,12 +52,12 @@ function defaultKeychainMapping() {
52
52
  figma: null,
53
53
  figma_mcp: null,
54
54
  fortify: null,
55
- firebase: null, // unifiedproject_id is parsed from the decoded SA JSON; no separate firebase_project
55
+ firebase: null, // unified - project_id is parsed from the decoded SA JSON; no separate firebase_project
56
56
  jenkins: null,
57
57
  };
58
58
  }
59
59
 
60
- // v2.1.0 sub-migrationalways runs (even on already-v2.1.0 files) to consolidate
60
+ // v2.1.0 sub-migration - always runs (even on already-v2.1.0 files) to consolidate
61
61
  // early-v2.1.0 drift: firebase_sa+firebase_project → firebase.
62
62
  function consolidateFirebase(out, changes) {
63
63
  const km = out?.global?.keychainMapping;
@@ -76,7 +76,7 @@ function consolidateFirebase(out, changes) {
76
76
  }
77
77
  if ("firebase_project" in km) {
78
78
  delete km.firebase_project;
79
- changes.push("keychainMapping: removed firebase_project (redundantproject_id lives inside the SA JSON)");
79
+ changes.push("keychainMapping: removed firebase_project (redundant - project_id lives inside the SA JSON)");
80
80
  }
81
81
  }
82
82
  if (Array.isArray(out?.global?.identities)) {
@@ -98,7 +98,7 @@ function consolidateFirebase(out, changes) {
98
98
  }
99
99
  }
100
100
 
101
- // v2.1.0 sub-migrationconsolidate figma_pat → figma, remove figma_user.
101
+ // v2.1.0 sub-migration - consolidate figma_pat → figma, remove figma_user.
102
102
  function consolidateFigma(out, changes) {
103
103
  const km = out?.global?.keychainMapping;
104
104
  if (km && typeof km === "object") {
@@ -137,14 +137,14 @@ function migrate(prefs) {
137
137
  const changes = [];
138
138
  const out = JSON.parse(JSON.stringify(prefs)); // deep clone
139
139
 
140
- // 1. schemaVersiondetect whether a v2.0.0 → 2.1.0 → 2.2.0 → 2.3.0 bump chain is needed.
140
+ // 1. schemaVersion - detect whether a v2.0.0 → 2.1.0 → 2.2.0 → 2.3.0 bump chain is needed.
141
141
  // Sub-migrations run regardless (they're idempotent), so early-return is avoided.
142
- // v2.3.0 is the v7.4.0 targetadds optional `accounts[]` (per-account host
142
+ // v2.3.0 is the v7.4.0 target - adds optional `accounts[]` (per-account host
143
143
  // overrides) and `recentAccounts[]` (LRU for autopilot account picker).
144
144
  // Both default to empty arrays; old prefs continue to validate without them.
145
145
  const TARGET = "2.3.0";
146
146
  if (out.schemaVersion === TARGET) {
147
- // already on targetskip version bump, but still run sub-migrations below
147
+ // already on target - skip version bump, but still run sub-migrations below
148
148
  } else if (out.schemaVersion === "2.2.0") {
149
149
  out.schemaVersion = TARGET;
150
150
  changes.push(`schemaVersion: 2.2.0 → ${TARGET}`);
@@ -173,7 +173,7 @@ function migrate(prefs) {
173
173
  out.global.identities = out.global.gitIdentities;
174
174
  changes.push(`renamed gitIdentities → identities (${out.global.identities.length} entries)`);
175
175
  } else {
176
- changes.push("gitIdentities present but identities also existskeeping identities, dropping gitIdentities");
176
+ changes.push("gitIdentities present but identities also exists - keeping identities, dropping gitIdentities");
177
177
  }
178
178
  delete out.global.gitIdentities;
179
179
  } else if (!Array.isArray(out.global.identities)) {
@@ -181,7 +181,7 @@ function migrate(prefs) {
181
181
  changes.push("initialized empty identities array");
182
182
  }
183
183
 
184
- // 4. keychainMappingexpand to 12 services
184
+ // 4. keychainMapping - expand to 12 services
185
185
  const km = out.global.keychainMapping || {};
186
186
  const kmDefaults = defaultKeychainMapping();
187
187
  let kmChanged = false;
@@ -212,7 +212,7 @@ function migrate(prefs) {
212
212
  changes.push("added empty recentGroups");
213
213
  }
214
214
  // v7.4.0: account picker LRU + per-account host overrides.
215
- // Both optionalinstaller initializes to empty arrays so the schema
215
+ // Both optional - installer initializes to empty arrays so the schema
216
216
  // validator sees them, but downstream code treats undefined as empty too.
217
217
  if (!Array.isArray(out.global.recentAccounts)) {
218
218
  out.global.recentAccounts = [];
@@ -277,7 +277,7 @@ function migrate(prefs) {
277
277
  consolidateFigma(out, changes);
278
278
 
279
279
  // 12. v5.7+ sub-migration: promote legacy channel defaults to the new reportChannels /
280
- // reportContent / wikiScope structure. Idempotentsafe to re-run.
280
+ // reportContent / wikiScope structure. Idempotent - safe to re-run.
281
281
  migrateReportChannels(out, changes);
282
282
 
283
283
  return { out, changes, alreadyMigrated: changes.length === 0 };
@@ -314,7 +314,7 @@ function migrateReportChannels(out, changes) {
314
314
  };
315
315
  changes.push("added reportContent defaults {normalAnalysis,technicalAnalysis,testScenarios,autoDiff,manualNote}");
316
316
  } else if (!("technicalAnalysis" in g.reportContent)) {
317
- // v5.7.3+backfill technicalAnalysis onto already-initialized reportContent
317
+ // v5.7.3+ - backfill technicalAnalysis onto already-initialized reportContent
318
318
  g.reportContent.technicalAnalysis = false;
319
319
  changes.push("added reportContent.technicalAnalysis: false (v5.7.3 backfill)");
320
320
  }
@@ -323,7 +323,7 @@ function migrateReportChannels(out, changes) {
323
323
  if (!Array.isArray(g.wikiScope)) {
324
324
  if (g.wikiDefault === false) {
325
325
  g.wikiScope = [];
326
- changes.push("added wikiScope: [] (legacy wikiDefault=falseopt out of all wiki artifacts)");
326
+ changes.push("added wikiScope: [] (legacy wikiDefault=false - opt out of all wiki artifacts)");
327
327
  } else {
328
328
  g.wikiScope = ["main", "ios", "screenshots", "index"];
329
329
  changes.push("added wikiScope: [main,ios,screenshots,index] (legacy wikiDefault=true or unset)");
@@ -333,7 +333,7 @@ function migrateReportChannels(out, changes) {
333
333
  // --- autopilotReportTimeoutSeconds ---
334
334
  if (typeof g.autopilotReportTimeoutSeconds !== "number") {
335
335
  g.autopilotReportTimeoutSeconds = 1800;
336
- changes.push("added autopilotReportTimeoutSeconds: 1800 (30 min)Phase 7 always-pause timeout");
336
+ changes.push("added autopilotReportTimeoutSeconds: 1800 (30 min) - Phase 7 always-pause timeout");
337
337
  }
338
338
 
339
339
  // --- prune deprecated booleans ---
@@ -371,7 +371,7 @@ function main() {
371
371
  const { out, changes, alreadyMigrated } = migrate(prefs);
372
372
 
373
373
  if (alreadyMigrated) {
374
- console.log(`✓ already v2.1.0no changes: ${args.file}`);
374
+ console.log(`✓ already v2.1.0 - no changes: ${args.file}`);
375
375
  process.exit(0);
376
376
  }
377
377
 
@@ -379,7 +379,7 @@ function main() {
379
379
  for (const c of changes) console.log(` • ${c}`);
380
380
 
381
381
  if (args.dryRun) {
382
- console.log("--- DRY RUNno write ---");
382
+ console.log("--- DRY RUN - no write ---");
383
383
  process.exit(0);
384
384
  }
385
385
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * migrate-state.mjsapply forward migrations to agent-state.json or
3
+ * migrate-state.mjs - apply forward migrations to agent-state.json or
4
4
  * multi-agent-preferences.json when the on-disk schemaVersion is older
5
5
  * than the repo's current schema.
6
6
  *
@@ -15,10 +15,10 @@
15
15
  * node migrate-state.mjs --dry-run <path> # preview, no write
16
16
  *
17
17
  * Exit codes:
18
- * 0migration applied (or file already current)
19
- * 1invalid input (unreadable file, malformed JSON, missing schemaVersion)
20
- * 2no migration path (gap in the chain)
21
- * 3migration failed (module error, schemaVersion not set in output)
18
+ * 0 - migration applied (or file already current)
19
+ * 1 - invalid input (unreadable file, malformed JSON, missing schemaVersion)
20
+ * 2 - no migration path (gap in the chain)
21
+ * 3 - migration failed (module error, schemaVersion not set in output)
22
22
  */
23
23
 
24
24
  import { readFileSync, writeFileSync, readdirSync, existsSync } from "fs";
@@ -47,7 +47,7 @@ function readSchemaVersion(filename) {
47
47
  if (!v) throw new Error(`schemaVersion.const or .enum[-1] missing in ${filename}`);
48
48
  return v;
49
49
  } catch (err) {
50
- console.error(`migrate-state: cannot read ${filename}${err.message}`);
50
+ console.error(`migrate-state: cannot read ${filename} - ${err.message}`);
51
51
  process.exit(1);
52
52
  }
53
53
  }
@@ -83,7 +83,7 @@ function resolveType(forced, path) {
83
83
  if (/agent-state\.json$/.test(path)) return "state";
84
84
  if (/preferences\.json$/.test(path)) return "prefs";
85
85
  console.error(
86
- `migrate-state: cannot infer type from ${path}pass --type=state or --type=prefs`,
86
+ `migrate-state: cannot infer type from ${path} - pass --type=state or --type=prefs`,
87
87
  );
88
88
  process.exit(1);
89
89
  }
@@ -142,7 +142,7 @@ async function main() {
142
142
  const { type: forced, dryRun, path } = parseArgs();
143
143
 
144
144
  if (!existsSync(path)) {
145
- console.error(`migrate-state: file not found${path}`);
145
+ console.error(`migrate-state: file not found - ${path}`);
146
146
  process.exit(1);
147
147
  }
148
148
 
@@ -151,7 +151,7 @@ async function main() {
151
151
  try {
152
152
  doc = JSON.parse(readFileSync(path, "utf-8"));
153
153
  } catch (err) {
154
- console.error(`migrate-state: invalid JSON in ${path}${err.message}`);
154
+ console.error(`migrate-state: invalid JSON in ${path} - ${err.message}`);
155
155
  process.exit(1);
156
156
  }
157
157
 
@@ -165,7 +165,7 @@ async function main() {
165
165
  }
166
166
 
167
167
  if (from === to) {
168
- console.log(`${path} already at schemaVersion ${to}no migration needed`);
168
+ console.log(`${path} already at schemaVersion ${to} - no migration needed`);
169
169
  process.exit(0);
170
170
  }
171
171
 
@@ -193,7 +193,7 @@ async function main() {
193
193
  );
194
194
  }
195
195
  } catch (err) {
196
- console.error(`migrate-state: migration failed${err.message}`);
196
+ console.error(`migrate-state: migration failed - ${err.message}`);
197
197
  process.exit(3);
198
198
  }
199
199
  }
@@ -210,6 +210,6 @@ async function main() {
210
210
  }
211
211
 
212
212
  main().catch((err) => {
213
- console.error(`migrate-state: unhandled${err.message}`);
213
+ console.error(`migrate-state: unhandled - ${err.message}`);
214
214
  process.exit(3);
215
215
  });
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env bash
2
- # output-quality-check.shruns all output validators against the latest
2
+ # output-quality-check.sh - runs all output validators against the latest
3
3
  # task's artifacts (commit message, PR body, Jira comment) and reports a
4
4
  # pass/fail summary suitable for pre-push gating.
5
5
  #
6
- # Validators (best-effortskips silently when a target is absent):
7
- # 1. Commit message format (regex from §15 of REFACTOR_PLAN_v3.7.md)
8
- # 2. PR bodyreal newlines, no HTML entities, required sections present
9
- # 3. Jira comment formatreal newlines, no \n literal, no HTML entities
10
- # 4. Reviewer JSONruns validate-reviewer.mjs (already exists)
11
- # 5. Triage JSONruns validate-triage.mjs (already exists)
6
+ # Validators (best-effort - skips silently when a target is absent):
7
+ # 1. Commit message format (regex from section15 of REFACTOR_PLAN_v3.7.md)
8
+ # 2. PR body - real newlines, no HTML entities, required sections present
9
+ # 3. Jira comment format - real newlines, no \n literal, no HTML entities
10
+ # 4. Reviewer JSON - runs validate-reviewer.mjs (already exists)
11
+ # 5. Triage JSON - runs validate-triage.mjs (already exists)
12
12
  #
13
13
  # Usage:
14
14
  # output-quality-check.sh [--task <task_id>] [--strict]
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env bash
2
- # phase-banner.shprint a phase / sub-phase progress banner to the terminal.
2
+ # phase-banner.sh - print a phase / sub-phase progress banner to the terminal.
3
3
  #
4
4
  # Cross-CLI: works identically from Claude Code, Copilot CLI, or a plain shell.
5
5
  # Claude Code ALSO uses TaskCreate/TaskUpdate for inline UI cards, but those
6
- # are Claude-onlyCopilot users wouldn't see anything without this script.
6
+ # are Claude-only - Copilot users wouldn't see anything without this script.
7
7
  #
8
8
  # Usage:
9
9
  # phase-banner.sh start <phase> [name] [detail]
@@ -19,12 +19,12 @@
19
19
  # Status values for `end`: done | failed | skipped
20
20
  #
21
21
  # Localization:
22
- # PHASE_LANG=en (default) | trwhen set to tr, canonical labels resolve to
22
+ # PHASE_LANG=en (default) | tr - when set to tr, canonical labels resolve to
23
23
  # Turkish. The `auto` sentinel in place of [name] triggers a table lookup.
24
24
  # Canonical label set mirrors pipeline/commands/multi-agent/refs/phases.md.
25
25
  #
26
26
  # Output is colored when stdout is a TTY (TERM != dumb). Plain otherwise so
27
- # logs and CI artifacts stay readable. Always written to stdoutlog
27
+ # logs and CI artifacts stay readable. Always written to stdout - log
28
28
  # capture is the caller's responsibility.
29
29
 
30
30
  set -uo pipefail
@@ -136,7 +136,7 @@ case "$ACTION" in
136
136
  echo "phase-banner: unknown status '$STATUS' (use done|failed|skipped)" >&2
137
137
  exit 64 ;;
138
138
  esac
139
- printf "${C_BOLD}${COLOR}└─ %s %s%s%s %s${C_RESET}" \
139
+ printf "${C_BOLD}${COLOR}└─ %s %s%s - %s %s${C_RESET}" \
140
140
  "$PHASE_WORD" "$PHASE" "${NAME:+: $NAME}" "$GLYPH" "$STATUS"
141
141
  [ -n "$DETAIL" ] && printf " ${C_DIM}(%s)${C_RESET}" "$DETAIL"
142
142
  printf " ${C_DIM}%s${C_RESET}\n\n" "$(ts)"
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # phase-tracker.shstateful card-stack pipeline tracker, cross-CLI.
2
+ # phase-tracker.sh - stateful card-stack pipeline tracker, cross-CLI.
3
3
  #
4
4
  # Why this exists: Claude Code has TaskCreate/TaskUpdate which renders
5
5
  # native UI cards. Copilot CLI has nothing equivalent. This script gives
@@ -31,7 +31,7 @@
31
31
  # Each line is an OTLP-compatible JSON span with trace_id/span_id derived
32
32
  # from the task_id, phase_id, and timestamp. Format intentionally simple
33
33
  # so an OTel Collector's `filelog` receiver can tail + forward without a
34
- # protobuf build step. Emission is never fatalif jq is missing or the
34
+ # protobuf build step. Emission is never fatal - if jq is missing or the
35
35
  # log dir isn't writable, we silently skip. Default OFF so users without
36
36
  # an observability stack see zero behavior change.
37
37
  #
@@ -74,6 +74,13 @@ if [ -z "$TRACKER_FILE" ]; then
74
74
  TASK_ID_FROM_ENV="$1"
75
75
  fi
76
76
  if [ -z "$TASK_ID_FROM_ENV" ]; then
77
+ # Strict mode: refuse the global pointer fallback entirely. Concurrent-safe by
78
+ # construction - the orchestrator must export MULTI_AGENT_TASK_ID. Opt in with
79
+ # MULTI_AGENT_STRICT_TASK_ID=1 (recommended whenever more than one run can be live).
80
+ if [ "${MULTI_AGENT_STRICT_TASK_ID:-0}" = "1" ]; then
81
+ echo "phase-tracker: MULTI_AGENT_STRICT_TASK_ID=1 but no MULTI_AGENT_TASK_ID in scope; refusing global pointer fallback. Export MULTI_AGENT_TASK_ID=<id>." >&2
82
+ exit 64
83
+ fi
77
84
  # Fallback to the file written by the most recent init.
78
85
  # WARNING: this pointer is global and flips when ANY shell on this user account runs
79
86
  # `phase-tracker.sh init <other-task>`. In concurrent multi-agent runs (two terminals,
@@ -84,7 +91,7 @@ if [ -z "$TRACKER_FILE" ]; then
84
91
  TRACKER_FILE="$(cat "$POINTER")"
85
92
  if [ "${MULTI_AGENT_QUIET:-0}" != "1" ]; then
86
93
  POINTER_TASK=$(basename "$(dirname "$TRACKER_FILE")")
87
- echo "phase-tracker: WARNusing pointer fallback (task=$POINTER_TASK). Pass MULTI_AGENT_TASK_ID=<id> for concurrent-safe resolution." >&2
94
+ echo "phase-tracker: WARN - using pointer fallback (task=$POINTER_TASK). Pass MULTI_AGENT_TASK_ID=<id> for concurrent-safe resolution." >&2
88
95
  fi
89
96
  else
90
97
  echo "phase-tracker: no task in scope; run 'init <task_id>' first or set MULTI_AGENT_TASK_ID" >&2
@@ -103,14 +110,14 @@ need_jq() {
103
110
  }
104
111
  }
105
112
 
106
- # OTel-compatible span emissionv6.1.0+, opt-in via $MULTI_AGENT_OTEL_SPANS.
113
+ # OTel-compatible span emission - v6.1.0+, opt-in via $MULTI_AGENT_OTEL_SPANS.
107
114
  # Appends one JSON line to otel-spans.jsonl. Never fatal on failure.
108
115
  #
109
116
  # Args:
110
117
  # $1 = event_name (e.g. "phase.update", "phase.sub", "phase.tokens")
111
118
  # $2 = phase_id (required)
112
119
  # $3 = status or subject (string, optional)
113
- # $4 = attributes (JSON object string, optionalmerged into span.attributes)
120
+ # $4 = attributes (JSON object string, optional - merged into span.attributes)
114
121
  emit_otel_span() {
115
122
  [ "${MULTI_AGENT_OTEL_SPANS:-0}" = "1" ] || return 0
116
123
  command -v jq >/dev/null 2>&1 || return 0
@@ -180,7 +187,7 @@ glyph_for() {
180
187
  esac
181
188
  }
182
189
 
183
- # Current time in epoch seconds (portableworks on both BSD and GNU date).
190
+ # Current time in epoch seconds (portable - works on both BSD and GNU date).
184
191
  now_epoch() {
185
192
  date +%s
186
193
  }
@@ -252,11 +259,48 @@ render() {
252
259
  state="$(load_state)"
253
260
  local task_id
254
261
  task_id=$(echo "$state" | jq -r '.task_id') || {
255
- echo "phase-tracker: corrupted state filecannot parse task_id" >&2
262
+ echo "phase-tracker: corrupted state file - cannot parse task_id" >&2
256
263
  exit 65
257
264
  }
258
- local phase_count
259
- phase_count=$(echo "$state" | jq '.phases | length')
265
+
266
+ # Batched extraction: one jq pass emits all phase fields so the render loop
267
+ # does not spawn ~16 jq subprocesses per phase. Sub-phases, meta entries,
268
+ # and the total-tokens footer are batched separately below.
269
+ #
270
+ # Separator: U+001F (ASCII Unit Separator), a non-whitespace control char.
271
+ # Tab cannot be used here because bash `read` with `IFS=$'\t'` collapses
272
+ # consecutive tabs (tab is in the default whitespace IFS class), which
273
+ # silently drops empty middle columns and shifts later fields.
274
+ # Column order: status, started_at, completed_at, id, name,
275
+ # tokens_in, tokens_out, sub_count, meta_keys_csv
276
+ local phase_data
277
+ phase_data=$(echo "$state" | jq -r '
278
+ .phases // [] | .[] | [
279
+ (.status // ""),
280
+ (.started_at // ""),
281
+ (.completed_at // ""),
282
+ (.id // ""),
283
+ (.name // ""),
284
+ ((.tokens_in // 0) | tostring),
285
+ ((.tokens_out // 0) | tostring),
286
+ ((.subs // []) | length | tostring),
287
+ ((.meta // {}) | keys_unsorted | join(","))
288
+ ] | join("")
289
+ ')
290
+
291
+ local phase_count=0
292
+ local -a row_status=() row_started=() row_completed=() row_id=() row_name=()
293
+ local -a row_tin=() row_tout=() row_subcount=() row_metakeys=()
294
+ if [ -n "$phase_data" ]; then
295
+ local _s _st _ed _id _nm _ti _to _sc _mk
296
+ while IFS=$'\x1f' read -r _s _st _ed _id _nm _ti _to _sc _mk; do
297
+ row_status+=("$_s"); row_started+=("$_st"); row_completed+=("$_ed")
298
+ row_id+=("$_id"); row_name+=("$_nm")
299
+ row_tin+=("$_ti"); row_tout+=("$_to")
300
+ row_subcount+=("$_sc"); row_metakeys+=("$_mk")
301
+ phase_count=$((phase_count + 1))
302
+ done <<< "$phase_data"
303
+ fi
260
304
 
261
305
  # Elapsed seconds per phase. No bar; just label.
262
306
  # completed/failed/skipped → completed_at - started_at (stamped)
@@ -266,10 +310,10 @@ render() {
266
310
  local -a elapsed_arr=()
267
311
  local i=0
268
312
  while [ "$i" -lt "$phase_count" ]; do
269
- local pstatus s_iso e_iso s_ep e_ep el=""
270
- pstatus=$(echo "$state" | jq -r ".phases[$i].status")
271
- s_iso=$(echo "$state" | jq -r ".phases[$i].started_at // \"\"")
272
- e_iso=$(echo "$state" | jq -r ".phases[$i].completed_at // \"\"")
313
+ local pstatus="${row_status[$i]}"
314
+ local s_iso="${row_started[$i]}"
315
+ local e_iso="${row_completed[$i]}"
316
+ local s_ep e_ep el=""
273
317
  s_ep=$(iso_to_epoch "$s_iso")
274
318
  e_ep=$(iso_to_epoch "$e_iso")
275
319
  if [ -n "$s_ep" ]; then
@@ -299,10 +343,9 @@ render() {
299
343
  # Iterate phases.
300
344
  i=0
301
345
  while [ "$i" -lt "$phase_count" ]; do
302
- local pid pname pstatus
303
- pid=$(echo "$state" | jq -r ".phases[$i].id")
304
- pname=$(echo "$state" | jq -r ".phases[$i].name")
305
- pstatus=$(echo "$state" | jq -r ".phases[$i].status")
346
+ local pid="${row_id[$i]}"
347
+ local pname="${row_name[$i]}"
348
+ local pstatus="${row_status[$i]}"
306
349
  local g
307
350
  g=$(glyph_for "$pstatus")
308
351
 
@@ -318,10 +361,10 @@ render() {
318
361
  skipped) el_color="${C_YELLOW}" ;;
319
362
  esac
320
363
 
321
- local p_tin p_tout p_ttotal tok_label=""
322
- p_tin=$(echo "$state" | jq -r ".phases[$i].tokens_in // 0")
323
- p_tout=$(echo "$state" | jq -r ".phases[$i].tokens_out // 0")
324
- p_ttotal=$((p_tin + p_tout))
364
+ local p_tin="${row_tin[$i]}"
365
+ local p_tout="${row_tout[$i]}"
366
+ local p_ttotal=$((p_tin + p_tout))
367
+ local tok_label=""
325
368
  [ "$p_ttotal" -gt 0 ] && tok_label="$(format_tokens $p_ttotal) tok"
326
369
 
327
370
  local right_block=""
@@ -338,43 +381,43 @@ render() {
338
381
 
339
382
  # Meta block: only for active (in_progress) phase. Pretty-print key/value
340
383
  # in insertion order so the pipeline's narrative sequence is preserved.
341
- if [ "$pstatus" = "in_progress" ]; then
342
- local meta_keys
343
- meta_keys=$(echo "$state" | jq -r ".phases[$i].meta // {} | keys_unsorted[]" 2>/dev/null)
344
- if [ -n "$meta_keys" ]; then
345
- local key val
346
- while IFS= read -r key; do
347
- [ -z "$key" ] && continue
348
- val=$(echo "$state" | jq -r ".phases[$i].meta[\"$key\"]")
349
- printf "${C_BOLD}${C_BLUE}│${C_RESET} ${C_DIM}%-10s${C_RESET} %s\n" "${key}:" "$val"
350
- done <<< "$meta_keys"
351
- fi
384
+ # Meta values are fetched in a single jq pass per active phase (rare).
385
+ # Same Unit Separator rationale as the phase batch above.
386
+ if [ "$pstatus" = "in_progress" ] && [ -n "${row_metakeys[$i]}" ]; then
387
+ local meta_data key val
388
+ meta_data=$(echo "$state" | jq -r --argjson idx "$i" '
389
+ .phases[$idx].meta // {} | to_entries[] | [.key, (.value | tostring)] | join("")
390
+ ')
391
+ while IFS=$'\x1f' read -r key val; do
392
+ [ -z "$key" ] && continue
393
+ printf "${C_BOLD}${C_BLUE}│${C_RESET} ${C_DIM}%-10s${C_RESET} %s\n" "${key}:" "$val"
394
+ done <<< "$meta_data"
352
395
  fi
353
396
 
354
- # Sub-phases (if any).
355
- local sub_count
356
- sub_count=$(echo "$state" | jq ".phases[$i].subs // [] | length")
357
- if [ "$sub_count" != "0" ]; then
397
+ # Sub-phases - batched per parent phase via a single jq call. Same
398
+ # Unit Separator rationale as the phase batch above.
399
+ local sub_count="${row_subcount[$i]}"
400
+ if [ "$sub_count" != "0" ] && [ "$sub_count" -gt 0 ] 2>/dev/null; then
401
+ local sub_data
402
+ sub_data=$(echo "$state" | jq -r --argjson idx "$i" '
403
+ .phases[$idx].subs // [] | .[] | [(.id // ""), (.name // ""), (.status // "")] | join("")
404
+ ')
358
405
  local j=0
359
- while [ "$j" -lt "$sub_count" ]; do
360
- local sid sname sstatus
361
- sid=$(echo "$state" | jq -r ".phases[$i].subs[$j].id")
362
- sname=$(echo "$state" | jq -r ".phases[$i].subs[$j].name")
363
- sstatus=$(echo "$state" | jq -r ".phases[$i].subs[$j].status")
364
- local sg
406
+ local sid sname sstatus sg connector
407
+ while IFS=$'\x1f' read -r sid sname sstatus; do
365
408
  sg=$(glyph_for "$sstatus")
366
- local connector="├─"
409
+ connector="├─"
367
410
  if [ "$j" = "$((sub_count - 1))" ]; then connector="└─"; fi
368
411
  printf "${C_BOLD}${C_BLUE}│${C_RESET} ${connector} %b ${C_DIM}%s.%s${C_RESET} %s\n" \
369
412
  "$sg" "$pid" "$sid" "$sname"
370
413
  j=$((j+1))
371
- done
414
+ done <<< "$sub_data"
372
415
  fi
373
416
  i=$((i+1))
374
417
  done
375
418
  fi
376
419
 
377
- # Total-tokens footer (v5.5.0)sum phases[].tokens_in + tokens_out.
420
+ # Total-tokens footer (v5.5.0) - sum phases[].tokens_in + tokens_out.
378
421
  local total_tokens
379
422
  total_tokens=$(echo "$state" | jq '[.phases[] | ((.tokens_in // 0) + (.tokens_out // 0))] | add // 0')
380
423
  if [ "$total_tokens" -gt 0 ]; then
@@ -406,7 +449,7 @@ case "$ACTION" in
406
449
  render
407
450
  if [ "${MULTI_AGENT_QUIET:-0}" != "1" ]; then
408
451
  echo "phase-tracker: tracker initialized for task=$TASK_ID" >&2
409
- echo "phase-tracker: TIPfor concurrent-safe resolution, set:" >&2
452
+ echo "phase-tracker: TIP - for concurrent-safe resolution, set:" >&2
410
453
  echo " export MULTI_AGENT_TASK_ID=$TASK_ID" >&2
411
454
  fi
412
455
  ;;
@@ -477,24 +520,25 @@ case "$ACTION" in
477
520
 
478
521
  tokens)
479
522
  need_jq
480
- [ "$#" -ge 3 ] || { echo "tokens needs <phase_id> <in> <out>" >&2; exit 64; }
481
- PID="$1"; T_IN="$2"; T_OUT="$3"
482
- # Validate integers.
483
- case "$T_IN$T_OUT" in
484
- *[!0-9]*) echo "tokens: in/out must be non-negative integers" >&2; exit 64 ;;
523
+ [ "$#" -ge 3 ] || { echo "tokens needs <phase_id> <in> <out> [cached]" >&2; exit 64; }
524
+ PID="$1"; T_IN="$2"; T_OUT="$3"; T_CACHED="${4:-0}"
525
+ # Validate integers (cached is optional, defaults to 0 for back-compat).
526
+ case "$T_IN$T_OUT$T_CACHED" in
527
+ *[!0-9]*) echo "tokens: in/out/cached must be non-negative integers" >&2; exit 64 ;;
485
528
  esac
486
529
  state=$(load_state)
487
530
  # Additive: add to existing totals so multiple LLM calls accumulate.
488
- new=$(echo "$state" | jq --arg id "$PID" --argjson ti "$T_IN" --argjson to "$T_OUT" '
531
+ new=$(echo "$state" | jq --arg id "$PID" --argjson ti "$T_IN" --argjson to "$T_OUT" --argjson tc "$T_CACHED" '
489
532
  .phases |= map(
490
533
  if .id == $id then
491
534
  .tokens_in = ((.tokens_in // 0) + $ti)
492
535
  | .tokens_out = ((.tokens_out // 0) + $to)
536
+ | (if $tc > 0 then .tokens_cached = ((.tokens_cached // 0) + $tc) else . end)
493
537
  else . end
494
538
  )
495
539
  ')
496
540
  save_state "$new"
497
- emit_otel_span "phase.tokens" "$PID" "" "{\"multi_agent.tokens_in_delta\": $T_IN, \"multi_agent.tokens_out_delta\": $T_OUT}"
541
+ emit_otel_span "phase.tokens" "$PID" "" "{\"multi_agent.tokens_in_delta\": $T_IN, \"multi_agent.tokens_out_delta\": $T_OUT, \"multi_agent.tokens_cached_delta\": $T_CACHED}"
498
542
  # Re-render so live token count is visible on the active phase. Callers
499
543
  # that want silent accumulation (e.g. tight loops) can suppress with
500
544
  # TRACKER_QUIET=1 to skip the re-render but still write state.
@@ -5,15 +5,17 @@
5
5
 
6
6
  set -uo pipefail
7
7
 
8
- STAGED_FILES=$(git diff --cached --name-only 2>/dev/null)
9
-
10
- if [ -z "$STAGED_FILES" ]; then
8
+ if [ -z "$(git diff --cached --name-only 2>/dev/null)" ]; then
11
9
  exit 0
12
10
  fi
13
11
 
14
12
  FOUND=0
15
13
 
16
- for file in $STAGED_FILES; do
14
+ # NUL-delimited so filenames with spaces are scanned (a space-split loop would
15
+ # silently skip them - a secret false-negative). Process substitution keeps the
16
+ # loop in the current shell so FOUND survives.
17
+ while IFS= read -r -d '' file; do
18
+ [ -z "$file" ] && continue
17
19
  [ ! -f "$file" ] && continue
18
20
  file "$file" 2>/dev/null | grep -q "binary" && continue
19
21
 
@@ -58,7 +60,45 @@ for file in $STAGED_FILES; do
58
60
  echo "BLOCKED: Service account JSON in $file"
59
61
  FOUND=1
60
62
  fi
61
- done
63
+
64
+ # High-signal provider token prefixes (low false-positive rate)
65
+ if echo "$content" | grep -qE '(ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{36}|github_pat_[A-Za-z0-9_]{60,}|xox[baprs]-[A-Za-z0-9-]{12,}|sk_live_[A-Za-z0-9]{20,}|rk_live_[A-Za-z0-9]{20,}|AIza[0-9A-Za-z_-]{35}|npm_[A-Za-z0-9]{36}|glpat-[A-Za-z0-9_-]{20,}'; then
66
+ echo "BLOCKED: Provider access token in $file"
67
+ FOUND=1
68
+ fi
69
+
70
+ # JWT (three base64url segments - header.payload.signature)
71
+ if echo "$content" | grep -qE 'eyJ[A-Za-z0-9_-]{10,}\.eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}'; then
72
+ echo "BLOCKED: JWT in $file"
73
+ FOUND=1
74
+ fi
75
+
76
+ # High-entropy string scan - catches custom/unknown secrets the prefix
77
+ # patterns miss. Skips lockfiles, integrity hashes, source maps, and snapshot
78
+ # fixtures, which legitimately carry high-entropy non-secret content.
79
+ if ! echo "$file" | grep -qiE '(package-lock\.json|yarn\.lock|pnpm-lock\.yaml|Podfile\.lock|Cartfile\.resolved|Package\.resolved|\.lock$|\.map$|__snapshots__|\.snap$|\.min\.(js|css)$)'; then
80
+ candidates=$(echo "$content" | grep -oE '[A-Za-z0-9+/=_-]{40,}' || true)
81
+ if [ -n "$candidates" ]; then
82
+ entropy_hit=$(printf '%s\n' "$candidates" | awk '
83
+ {
84
+ s=$0; n=length(s);
85
+ if (n < 40) next;
86
+ if (s ~ /^[0-9]+$/) next; # pure digits
87
+ if (s ~ /^[0-9a-f]+$/) next; # lowercase hex (git sha / md5 / sha-*)
88
+ if (s ~ /^[0-9A-F]+$/) next; # uppercase hex
89
+ delete freq;
90
+ for (i = 1; i <= n; i++) { c = substr(s, i, 1); freq[c]++ }
91
+ H = 0;
92
+ for (c in freq) { p = freq[c] / n; H -= p * log(p) / log(2) }
93
+ if (H >= 4.2) { print s; exit }
94
+ }')
95
+ if [ -n "$entropy_hit" ]; then
96
+ echo "BLOCKED: High-entropy string (possible secret) in $file"
97
+ FOUND=1
98
+ fi
99
+ fi
100
+ fi
101
+ done < <(git diff --cached --name-only -z 2>/dev/null)
62
102
 
63
103
  if [ $FOUND -eq 1 ]; then
64
104
  echo ""
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env bash
2
- # pre-push-check.shprimary gate before every push.
2
+ # pre-push-check.sh - primary gate before every push.
3
3
  #
4
4
  # Purpose:
5
- # This repo has no GitHub Actions workflowevery push is validated
5
+ # This repo has no GitHub Actions workflow - every push is validated
6
6
  # locally. Unit tests, smoke suites, eval fixtures, schema validation,
7
7
  # and the personal-data leak check all run here before `git push` is
8
8
  # allowed to proceed.
@@ -15,9 +15,9 @@
15
15
  # bash pipeline/scripts/pre-push-check.sh
16
16
  #
17
17
  # Exit codes:
18
- # 0all gates passed, safe to push
19
- # 1a gate failed (test, lint, schema, or personal-data leak)
20
- # 2environment problem (node missing, npm missing, wrong cwd)
18
+ # 0 - all gates passed, safe to push
19
+ # 1 - a gate failed (test, lint, schema, or personal-data leak)
20
+ # 2 - environment problem (node missing, npm missing, wrong cwd)
21
21
 
22
22
  set -uo pipefail
23
23
 
@@ -33,7 +33,7 @@ if ! command -v npm >/dev/null 2>&1; then
33
33
  exit 2
34
34
  fi
35
35
 
36
- echo "→ Running local CI gate (primaryno GitHub Actions workflow exists)"
36
+ echo "→ Running local CI gate (primary - no GitHub Actions workflow exists)"
37
37
  echo ""
38
38
 
39
39
  FAILED=0
@@ -73,5 +73,5 @@ if [ "$FAILED" -gt 0 ]; then
73
73
  exit 1
74
74
  fi
75
75
 
76
- echo "✓ All gates passedsafe to push"
76
+ echo "✓ All gates passed - safe to push"
77
77
  exit 0