@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
@@ -6,33 +6,35 @@
6
6
 
7
7
  ---
8
8
 
9
- ## 1. Command Inventory (29 commands)
9
+ ## 1. Command Inventory (34 commands)
10
10
 
11
11
  ```
12
- autopilot, channels, dev, dev-autopilot, dev-local, dev-local-autopilot,
13
- help, issue, jira, kill, local, local-autopilot, log, manual-test, purge,
14
- refactor, resume, review, scan, search, setup, stack, status, sync, test, update
12
+ analysis, analysis-resolve, autopilot, build-optimize, channels, delete, dev,
13
+ dev-autopilot, dev-local, dev-local-autopilot, diff-explain, garbage-collect,
14
+ help, issue, jira, kill, language, local, local-autopilot, log, manual-test,
15
+ prune-logs, purge, refactor, resume, review, scan, search, setup, stack, status,
16
+ sync, test, update
15
17
  ```
16
18
 
17
19
  Categories:
18
20
 
19
21
  - **Interactive pickers** (single-purpose, not modes): `jira`, `issue`
20
22
  - **Full 8-phase modes**: `autopilot`, `local`, `local-autopilot`
21
- - **Fast modes** (Init Dev(Opus) Commit Report): `dev`, `dev-autopilot`, `dev-local`, `dev-local-autopilot`
22
- - **Ops commands** (one-shot, no worktree): `status`, `log`, `kill`, `purge`, `resume`, `review`, `channels`, `scan`, `search`
23
- - **Meta-ops**: `setup`, `sync`, `update`, `help`, `refactor`, `test`, `stack`, `manual-test`
23
+ - **Fast modes** (Init -> Dev(Opus) -> Commit -> Report): `dev`, `dev-autopilot`, `dev-local`, `dev-local-autopilot`
24
+ - **Ops commands** (one-shot, no worktree): `status`, `log`, `kill`, `purge`, `delete`, `resume`, `review`, `analysis`, `analysis-resolve`, `build-optimize`, `channels`, `scan`, `search`, `diff-explain`, `garbage-collect`, `prune-logs`
25
+ - **Meta-ops**: `setup`, `sync`, `update`, `help`, `refactor`, `test`, `stack`, `manual-test`, `language`
24
26
 
25
- > **Inventory drift is a contract violation.** Adding a slash command under `pipeline/commands/multi-agent/` without updating this list + its counterpart Copilot dir (`pipeline/skills/shared/core/multi-agent-<cmd>/`) is a merge blocker. `smoke-commands-skills-parity.sh` enforces command ↔ skill directory parity; `smoke-cross-cli-behavior.sh` enforces behavior parity. This doc is the authoritative command listbump the count + table together.
27
+ > **Inventory drift is a contract violation.** Adding a slash command under `pipeline/commands/multi-agent/` without updating this list + its counterpart Copilot dir (`pipeline/skills/shared/core/multi-agent-<cmd>/`) is a merge blocker. `smoke-commands-skills-parity.sh` enforces command ↔ skill directory parity; `smoke-cross-cli-behavior.sh` enforces behavior parity. This doc is the authoritative command list - bump the count + table together.
26
28
 
27
29
  ### 1.1 Figma component subphase skills
28
30
 
29
- In addition to the 26 top-level multi-agent commands, the figma-to-component pipeline ships platform-specific skills that multi-agent dispatches from Phase 3 (see `refs/component-dispatch.md`). The structure is **platform-parallel iOS + Android with a shared common pool**:
31
+ In addition to the 34 top-level multi-agent commands, the figma-to-component pipeline ships platform-specific skills that multi-agent dispatches from Phase 3 (see `refs/component-dispatch.md`). The structure is **platform-parallel iOS + Android with a shared common pool**:
30
32
 
31
33
  | Location | Skill count | Purpose |
32
34
  |---|---|---|
33
35
  | `pipeline/skills/figma-ios/` | 5 | iOS-only Phase 3 sub-skills (SwiftUI-specific) |
34
36
  | `pipeline/skills/figma-android/` | 5 | Android-only Phase 3 sub-skills (Jetpack Compose-specific) |
35
- | `pipeline/skills/figma-common/` | 27 | Platform-agnostic helpers (iterate / commit / wiki setup / MCP auth / performance harness / etc.) |
37
+ | `pipeline/skills/figma-common/` | 31 | Platform-agnostic helpers (iterate / commit / wiki setup / MCP auth / performance harness / cross-cutting integration adapters / etc.) |
36
38
 
37
39
  Both Claude Code and Copilot CLI MUST expose every skill with identical argument shape, identical progress-line emission, and identical state writes. Inventory divergence (skill exists on one side but not the other) is a contract violation and blocks merge.
38
40
 
@@ -40,13 +42,13 @@ Both Claude Code and Copilot CLI MUST expose every skill with identical argument
40
42
 
41
43
  | Skill | Scope | iOS path | Android path |
42
44
  |---|---|---|---|
43
- | `figma-to-component` | Orchestrator (3.03.8) | `pipeline/skills/figma-ios/figma-to-component/` | `pipeline/skills/figma-android/figma-to-component/` |
45
+ | `figma-to-component` | Orchestrator (3.0-3.8) | `pipeline/skills/figma-ios/figma-to-component/` | `pipeline/skills/figma-android/figma-to-component/` |
44
46
  | `figma-component-implement` | 3.4 code gen | `pipeline/skills/figma-ios/figma-component-implement/` | `pipeline/skills/figma-android/figma-component-implement/` |
45
47
  | `figma-component-test` | 3.5 tests | `pipeline/skills/figma-ios/figma-component-test/` | `pipeline/skills/figma-android/figma-component-test/` |
46
48
  | `figma-component-code-connect` | 3.6 mapping publish | `pipeline/skills/figma-ios/figma-component-code-connect/` | `pipeline/skills/figma-android/figma-component-code-connect/` |
47
49
  | `figma-component-wiki` | 3.7 wiki (4 adapters) | `pipeline/skills/figma-ios/figma-component-wiki/` | `pipeline/skills/figma-android/figma-component-wiki/` |
48
50
 
49
- **Common pool** (all 27 skills under `pipeline/skills/figma-common/`platform-agnostic, dispatched regardless of iOS/Android):
51
+ **Common pool** (all 31 skills under `pipeline/skills/figma-common/` - platform-agnostic, dispatched regardless of iOS/Android):
50
52
 
51
53
  | Skill | Scope |
52
54
  |---|---|
@@ -72,13 +74,17 @@ Both Claude Code and Copilot CLI MUST expose every skill with identical argument
72
74
  | `figma-skip` | Skip + update Confluence |
73
75
  | `figma-form-integration` | Form protocol adapter |
74
76
  | `figma-price-integration` | Price protocol adapter |
77
+ | `figma-navigation` | Navigation pattern adapter (native-first / `ui.navigationSystem`) |
78
+ | `figma-overlays` | Overlay pattern adapter (native-first / `ui.overlaySystem`) |
79
+ | `figma-bottom-sheets` | Bottom-sheet/detent adapter (native-first / `ui.sheetSystem`) |
80
+ | `figma-evolve-component` | Reconcile drift + additive extend (human-gated) |
75
81
  | `performance-start` | Perf-tracked component start |
76
82
  | `performance-swiftui` | Perf-optimized pipeline |
77
83
  | `performance-tour` | Batch produce components |
78
84
  | `performance-review-next` | Interactive batch review |
79
85
  | `performance-iteration-commit-all` | Batch validate + push all |
80
86
 
81
- Total figma skill count: **37** (5 iOS + 5 Android + 27 Common).
87
+ Total figma skill count: **41** (5 iOS + 5 Android + 31 Common).
82
88
 
83
89
  ### 1.2 Store-compliance skills
84
90
 
@@ -138,7 +144,7 @@ Enforced by `smoke-figma-skill-import.sh` (iOS), `smoke-figma-android-parity.sh`
138
144
 
139
145
  ### 2.3 Project name placeholders
140
146
 
141
- Use these specific names (from the Copilot set)**never invent new ones**. They correspond to realistic example project types.
147
+ Use these specific names (from the Copilot set) - **never invent new ones**. They correspond to realistic example project types.
142
148
 
143
149
  | Placeholder | Represents |
144
150
  |---|---|
@@ -156,7 +162,7 @@ Use these specific names (from the Copilot set) — **never invent new ones**. T
156
162
 
157
163
  ### 2.5 Deprecated placeholders (DO NOT USE)
158
164
 
159
- Legacy names found during the v3.7 auditreplaced per this contract.
165
+ Legacy names found during the v3.7 audit - replaced per this contract.
160
166
 
161
167
  | Deprecated | Replace with | Reason |
162
168
  |---|---|---|
@@ -168,18 +174,18 @@ Legacy names found during the v3.7 audit — replaced per this contract.
168
174
 
169
175
  ---
170
176
 
171
- ## 2.6 Intentional structural divergence`multi-agent.md` vs `multi-agent/SKILL.md`
177
+ ## 2.6 Intentional structural divergence - `multi-agent.md` vs `multi-agent/SKILL.md`
172
178
 
173
- The top-level orchestrator has two deliberately different shapes on the two CLIs. This is **not drift**it reflects a real capability gap between the host CLIs, and auditors must not flag it as a parity violation.
179
+ The top-level orchestrator has two deliberately different shapes on the two CLIs. This is **not drift** - it reflects a real capability gap between the host CLIs, and auditors must not flag it as a parity violation.
174
180
 
175
181
  | Surface | File | Shape | Why |
176
182
  |---|---|---|---|
177
- | Claude Code (colon-form) | `pipeline/commands/multi-agent.md` | ~300 linesthin dispatcher that routes to `refs/phases/phase-N-*.md` on demand | Claude Code supports lazy-loaded reference files (`@refs/phases/...`), so only the active phase's docs enter the context window. Saves tokens. |
178
- | Copilot CLI (dash-form) | `pipeline/skills/shared/core/multi-agent/SKILL.md` | ~830 linesfull inline orchestrator with all 8 phase specs embedded | Copilot CLI loads the whole SKILL.md into context once the skill is dispatched; it doesn't have an equivalent of Claude's ref-file loading pattern. Embedding keeps behavior identical without relying on a feature Copilot lacks. |
183
+ | Claude Code (colon-form) | `pipeline/commands/multi-agent.md` | ~300 lines - thin dispatcher that routes to `refs/phases/phase-N-*.md` on demand | Claude Code supports lazy-loaded reference files (`@refs/phases/...`), so only the active phase's docs enter the context window. Saves tokens. |
184
+ | Copilot CLI (dash-form) | `pipeline/skills/shared/core/multi-agent/SKILL.md` | ~830 lines - full inline orchestrator with all 8 phase specs embedded | Copilot CLI loads the whole SKILL.md into context once the skill is dispatched; it doesn't have an equivalent of Claude's ref-file loading pattern. Embedding keeps behavior identical without relying on a feature Copilot lacks. |
179
185
 
180
186
  **What must stay identical** (byte-level) across the two files:
181
187
 
182
- - Phase canonical labels (Phase 07)
188
+ - Phase canonical labels (Phase 0-7)
183
189
  - Input parsing table (Section 5 of this doc)
184
190
  - Routing decisions for each input type
185
191
  - Placeholder vocabulary (Section 2 of this doc)
@@ -198,7 +204,7 @@ Future changes that break an item in the "stay identical" list must update **bot
198
204
 
199
205
  Each file has a different frontmatter schema. The sync flow transforms between them:
200
206
 
201
- ### 3.1 Claude Code`commands/multi-agent/{cmd}.md`
207
+ ### 3.1 Claude Code - `commands/multi-agent/{cmd}.md`
202
208
 
203
209
  ```yaml
204
210
  ---
@@ -207,7 +213,7 @@ allowed-tools: <comma-separated tool list>
207
213
  ---
208
214
  ```
209
215
 
210
- ### 3.2 Copilot CLI`skills/multi-agent-{cmd}/SKILL.md`
216
+ ### 3.2 Copilot CLI - `skills/multi-agent-{cmd}/SKILL.md`
211
217
 
212
218
  ```yaml
213
219
  ---
@@ -264,9 +270,9 @@ Given the same user input, both CLIs must produce identical parsed state:
264
270
  | Any other string | `input.type = "free-text"`, `input.summary = <string>` |
265
271
 
266
272
  Modifier flags are orthogonal and compose:
267
- - `autopilot`skip confirmations
268
- - `--dev`init → dev → commit → report only
269
- - `--local`no worktree
273
+ - `autopilot` - skip confirmations
274
+ - `--dev` - init → dev → commit → report only
275
+ - `--local` - no worktree
270
276
  - Combinations: `--dev autopilot`, `--dev --local`, etc.
271
277
 
272
278
  ---
@@ -287,14 +293,14 @@ Modifier flags are orthogonal and compose:
287
293
 
288
294
  Commands invoked via Copilot CLI may run on Linux or WSL. Claude Code currently macOS-only. Shell code in `pipeline/skills/figma-common/` command files must be portable.
289
295
 
290
- For Keychain I/O the canonical path is **`~/.claude/lib/credential-store.sh`** (or `~/.copilot/lib/credential-store.sh` on Copilot installs). The shell driver detects platform internally and auto-delegates to `keychain.py` (Python helper, macOS / Linux) or PowerShell `CredentialManager` (Windows). Call sites stay platform-agnosticno per-OS branching needed.
296
+ For Keychain I/O the canonical path is **`~/.claude/lib/credential-store.sh`** (or `~/.copilot/lib/credential-store.sh` on Copilot installs). The shell driver detects platform internally and auto-delegates to `keychain.py` (Python helper, macOS / Linux) or PowerShell `CredentialManager` (Windows). Call sites stay platform-agnostic - no per-OS branching needed.
291
297
 
292
298
  | Purpose | Canonical (cross-platform) | Underlying backend (for reference / debugging) |
293
299
  |---|---|---|
294
300
  | Keychain read | `~/.claude/lib/credential-store.sh get <key>` | macOS: `security find-generic-password -a "$USER" -s <key> -w` · Linux: `secret-tool lookup account "$USER" service <key>` · Windows: PowerShell `Get-StoredCredential` |
295
301
  | Keychain write | `~/.claude/lib/credential-store.sh set <key> <value>` (or `keychain.py set <key> -` to stream the secret over stdin) | macOS: `security add-generic-password -a "$USER" -s <key> -w "$VAL"` · Linux: `secret-tool store --label=<key> account "$USER" service <key>` · Windows: `New-StoredCredential` |
296
- | Clipboard read |(still needs a per-platform branchthere is no helper) | `pbpaste` (macOS) · `wl-paste` (Wayland) · `xclip -selection clipboard -o` (X11) |
297
- | Clipboard clear || `pbcopy < /dev/null` (macOS) · `printf '' \| wl-copy` (Wayland) · `printf '' \| xclip -selection clipboard` (X11) |
302
+ | Clipboard read | - (still needs a per-platform branch - there is no helper) | `pbpaste` (macOS) · `wl-paste` (Wayland) · `xclip -selection clipboard -o` (X11) |
303
+ | Clipboard clear | - | `pbcopy < /dev/null` (macOS) · `printf '' \| wl-copy` (Wayland) · `printf '' \| xclip -selection clipboard` (X11) |
298
304
 
299
305
  For clipboard ops, callers still gate with `if command -v pbpaste >/dev/null; then ...; elif command -v wl-paste ...; elif command -v xclip ...; fi`. A future `pipeline/lib/clipboard.sh` could absorb that pattern; until it exists, keep the inline guard in figma skill bash blocks.
300
306
 
@@ -304,12 +310,12 @@ For clipboard ops, callers still gate with `if command -v pbpaste >/dev/null; th
304
310
 
305
311
  This contract is validated by:
306
312
 
307
- - `smoke-cross-cli-behavior.sh`asserts all 29 commands behave identically, pulls from Section 2 (placeholder vocab), Section 5 (argument parsing), Section 6 (output formats); also regression-locks the 6-persona agent deployment
308
- - `smoke-commands-skills-parity.sh` (50 assertions)enforces colon-form command ↔ dash-form skill directory parity
309
- - `smoke-compliance-skills.sh` (45 assertions)enforces store-compliance skill catalog + 4 consumer wiring
310
- - `smoke-personal-data.sh`extended in 0.5.5 to treat deprecated placeholders (`{github-username}`, `{your-website}`, `{website-repo}`) as leaks; adds `mmerterden` to public-handle blocklist for generic docs
311
- - `pre-push-check.sh`runs both smoke tests before any push that touches `pipeline/skills/figma-common/` commands
312
- - `sync.md` (Section 2 REPO step)genericization lookup table MUST match Section 2 of this contract
313
+ - `smoke-cross-cli-behavior.sh` - asserts all 34 commands behave identically, pulls from Section 2 (placeholder vocab), Section 5 (argument parsing), Section 6 (output formats); also regression-locks the 6-persona agent deployment
314
+ - `smoke-commands-skills-parity.sh` (50 assertions) - enforces colon-form command ↔ dash-form skill directory parity
315
+ - `smoke-compliance-skills.sh` (45 assertions) - enforces store-compliance skill catalog + 4 consumer wiring
316
+ - `smoke-personal-data.sh` - extended in 0.5.5 to treat deprecated placeholders (`{github-username}`, `{your-website}`, `{website-repo}`) as leaks; adds `mmerterden` to public-handle blocklist for generic docs
317
+ - `pre-push-check.sh` - runs both smoke tests before any push that touches `pipeline/skills/figma-common/` commands
318
+ - `sync.md` (Section 2 REPO step) - genericization lookup table MUST match Section 2 of this contract
313
319
 
314
320
  ---
315
321
 
@@ -320,7 +326,7 @@ To change anything in this contract:
320
326
  1. Amend this file with rationale
321
327
  2. Update `sync.md` genericization table (if Section 2 changes)
322
328
  3. Update `smoke-cross-cli-behavior.sh` fixtures (if Section 5/6 changes)
323
- 4. Run `smoke-cross-cli-behavior.sh` and `smoke-personal-data.sh` locallyboth must pass
329
+ 4. Run `smoke-cross-cli-behavior.sh` and `smoke-personal-data.sh` locally - both must pass
324
330
  5. Announce in pipeline repo `CHANGELOG.md` under `## [Unreleased]` → `### Contract`
325
331
 
326
332
  No silent changes. No exceptions.
@@ -5,15 +5,15 @@
5
5
  **Gated by `prefs.global.devCritic.enabled`** (default: `false`). When enabled, after the generator's last edit and BEFORE Phase 4:
6
6
 
7
7
  1. Dispatch `dev-critic` sub-agent (Sonnet by default, tools: `Read, Grep, Glob, Bash`).
8
- 2. Critic runs 4 deterministic gates (build / lint / test / secrets)failure of any → `pass: false` with `blocking` finding.
9
- 3. If gates green, critic walks the platform checklist (iOS 13-item / Android Kotlin / Backend genericselected by Phase 1 `detectedStack`).
8
+ 2. Critic runs 4 deterministic gates (build / lint / test / secrets) - failure of any → `pass: false` with `blocking` finding.
9
+ 3. If gates green, critic walks the platform checklist (iOS 13-item / Android Kotlin / Backend generic - selected by Phase 1 `detectedStack`).
10
10
  4. Returns schema-validated JSON (`pipeline/schemas/dev-critic-output.schema.json`): `{pass, iteration, gates, findings[], escalate}`.
11
11
 
12
- ## Loop cap (STRICT)max 2 iterations
12
+ ## Loop cap (STRICT) - max 2 iterations
13
13
 
14
14
  | Round | Behavior |
15
15
  |---|---|
16
- | 1 | Full critic passall gates + full checklist |
16
+ | 1 | Full critic pass - all gates + full checklist |
17
17
  | 2 | Re-check only round-1 failures. No new findings allowed (scope creep prevention) |
18
18
  | 3+ | NOT ALLOWED. Critic returns `escalate: true`; orchestrator pauses (interactive) or proceeds to Phase 4 with logged failure (autopilot) |
19
19
 
@@ -37,7 +37,7 @@ Introduces ~1× Sonnet call per Dev iteration. On simple bug fixes the cost outw
37
37
 
38
38
  ## Why this fits orchestrator-workers + evaluator-optimizer hybrid
39
39
 
40
- Phase 4 is parallelization-with-votinggood for *adversarial* perspectives (security, architecture). Phase 3.5 is evaluator-optimizergood for *deterministic* criteria (build, tests, checklists). Sending failing builds into Phase 4 wastes 23 reviewer calls + Opus triage; Phase 3.5 absorbs that cost at one Sonnet call.
40
+ Phase 4 is parallelization-with-voting - good for *adversarial* perspectives (security, architecture). Phase 3.5 is evaluator-optimizer - good for *deterministic* criteria (build, tests, checklists). Sending failing builds into Phase 4 wastes 2-3 reviewer calls + Opus triage; Phase 3.5 absorbs that cost at one Sonnet call.
41
41
 
42
42
  ## Reference
43
43
 
@@ -24,8 +24,8 @@ One fetcher per type. Each fetcher emits a normalized JSON view that the analysi
24
24
  | `fortify` | `~/.claude/lib/fetch-fortify.sh <url>` (already invoked in Phase 0 Step 1b.2 for the legacy `state.fortifyFinding` field; Phase 1 reads that field, Phase 4 reads the full payload for the security gate) | `state.fortifyFinding` |
25
25
  | `swagger` | `~/.claude/lib/fetch-swagger.sh <url>` → endpoints[], request/response examples | `state.fetchedContext.swagger[]` |
26
26
  | `confluence` | `~/.claude/lib/fetch-confluence.sh <url>` → page body, code blocks, extracted API contracts | `state.fetchedContext.confluence[]` |
27
- | `figma` | `~/.claude/lib/fetch-figma.sh <url>` (via existing MCP / REST fallback path) when the task is a component; otherwise advisory only | `state.fetchedContext.figma[]` |
28
- | `generic-doc` | no automatic fetchersurfaced as advisory; the agent uses WebFetch on demand when the URL turns out to be load-bearing | n/a |
27
+ | `figma` | no standalone fetcher - resolve via the Figma 3-tier chain (Tier 1 MCP tools, Tier 2 `~/.claude/lib/figma-screenshot.sh` + REST) when the task is a component; otherwise advisory only | `state.fetchedContext.figma[]` |
28
+ | `generic-doc` | no automatic fetcher - surfaced as advisory; the agent uses WebFetch on demand when the URL turns out to be load-bearing | n/a |
29
29
 
30
30
  ## Exit code handling
31
31
 
@@ -34,7 +34,7 @@ One fetcher per type. Each fetcher emits a normalized JSON view that the analysi
34
34
  - `3` (network/auth) → mark as `{status: "failed", reason: "<exit-msg>"}`, continue.
35
35
  - `4`/`5`/`6` (config errors) → mark as `{status: "failed", reason: "<exit-msg>"}`, continue and log a setup hint.
36
36
 
37
- Failures are never fatal at Phase 1the agent still runs analysis, just without the referenced source.
37
+ Failures are never fatal at Phase 1 - the agent still runs analysis, just without the referenced source.
38
38
 
39
39
  ## Prompt injection shape
40
40
 
@@ -44,15 +44,15 @@ Added immediately after the knowledge-injection block, before codebase explorati
44
44
  ## Referenced External Sources
45
45
 
46
46
  (when fetchers populated `state.fetchedContext.<type>`)
47
- ### <type><url>
47
+ ### <type> - <url>
48
48
  <fetched content, scoped to relevance>
49
49
 
50
50
  (when fetcher pending)
51
51
  ### Pending references
52
- - <type>: <url><one-line metadata>
52
+ - <type>: <url> - <one-line metadata>
53
53
  ```
54
54
 
55
- The agent treats fetched content as **ground truth** for the referenced source (no re-discovery, no contradiction). Pending references are advisoriesthe agent decides whether to fetch via WebFetch on demand when the task hinges on that source.
55
+ The agent treats fetched content as **ground truth** for the referenced source (no re-discovery, no contradiction). Pending references are advisories - the agent decides whether to fetch via WebFetch on demand when the task hinges on that source.
56
56
 
57
57
  ## Log line shape
58
58
 
@@ -0,0 +1,91 @@
1
+ # Model Fallback Contract (v10.1.0)
2
+
3
+ Personas that declare `preferredModel: opus` route to the top available
4
+ intelligence tier (`claude-opus-4-8`). Opus access can be quota-limited or
5
+ temporarily unavailable. This contract defines when and how the orchestrator
6
+ falls back, deterministically, without ever editing persona files at runtime.
7
+
8
+ > **Fable retired (2026-06).** Earlier versions routed architect / Reviewer-1 /
9
+ > triage personas to `claude-fable-5` as the top tier. Fable 5 is no longer
10
+ > available, so opus is now the top tier and the persona frontmatter declares
11
+ > `preferredModel: opus`. The `premiumTierUntil` date gate stays in the contract
12
+ > as a generic mechanism for any future plan-window-limited premium tier.
13
+
14
+ ## Tier ladder
15
+
16
+ ```
17
+ opus -> sonnet -> haiku
18
+ ```
19
+
20
+ One step down per trigger, walking the ladder until a tier dispatches or the
21
+ floor (`haiku`) is reached. `haiku` is the last-resort floor: a run that reaches
22
+ it is heavily degraded but still makes progress instead of hard-halting because
23
+ two tiers happened to be unavailable at once. A dispatch error at the floor is a
24
+ genuine outage - it falls through to the normal phase-error path (pause ->
25
+ resume), since there is nothing left to step down to. The mechanism is the existing per-dispatch override:
26
+ set `PHASE_MODEL_OVERRIDE=<fallback>` before dispatch (the orchestrator exports
27
+ `CLAUDE_CODE_SUBAGENT_MODEL` on Claude Code, or passes `--model` on Copilot
28
+ CLI). Persona frontmatter stays the source of truth for the *preferred* model;
29
+ the override is per-dispatch and leaves files untouched.
30
+
31
+ ## Prefs knob
32
+
33
+ `prefs.global.modelFallback` (template default below; absent knob = `enabled: true`
34
+ with no date gate; an absent `floorModel` defaults to `haiku`, so installs that
35
+ predate this field still get the second downgrade step):
36
+
37
+ ```json
38
+ "modelFallback": {
39
+ "enabled": true,
40
+ "premiumTierUntil": null,
41
+ "fallbackModel": "sonnet",
42
+ "floorModel": "haiku",
43
+ "onDispatchError": true
44
+ }
45
+ ```
46
+
47
+ | Field | Meaning |
48
+ |---|---|
49
+ | `enabled` | Master switch. `false` = always dispatch the persona's `preferredModel`, fail loudly on error. |
50
+ | `premiumTierUntil` | ISO date (`YYYY-MM-DD`) or `null`. When set and today is **after** this date, every `preferredModel` dispatch is downgraded to `fallbackModel` unless the user re-confirms (see Date gate). Use when the top tier is included in a plan only until a known date. |
51
+ | `fallbackModel` | Target of the first downgrade step. Default `sonnet` (the next tier below opus). |
52
+ | `floorModel` | Last-resort tier when `fallbackModel` also fails to dispatch. Default `haiku`. Set to the same value as `fallbackModel` (or `null`) to disable the second step and halt after one downgrade. |
53
+ | `onDispatchError` | When `true`, a failed top-tier dispatch (model unavailable / quota / 4xx on model id) retries once on `fallbackModel`, and a failed `fallbackModel` dispatch retries once on `floorModel`, instead of aborting the phase. |
54
+
55
+ ## Triggers (checked in this order)
56
+
57
+ 1. **Date gate (Phase 0 Step 0, once per run).** If `premiumTierUntil` is set and
58
+ in the past, print one line:
59
+ `WARN: premium tier plan window ended <date>; preferredModel personas will dispatch on <fallbackModel>. Set prefs.global.modelFallback.premiumTierUntil to null to keep the top tier on usage credits.`
60
+ Then export the override for every `preferredModel` persona this run. Interactive modes
61
+ may instead ask once (`Keep top tier (usage credits) / Fall back to <model>`);
62
+ autopilot never asks - it falls back and logs.
63
+ 2. **Dispatch error (per dispatch).** On a model-unavailable / quota error from a
64
+ top-tier dispatch and `onDispatchError: true`: retry the same persona once with
65
+ `PHASE_MODEL_OVERRIDE=<fallbackModel>`. If that retry also fails with a dispatch
66
+ error and `floorModel` is set and differs from `fallbackModel`, retry once more
67
+ with `PHASE_MODEL_OVERRIDE=<floorModel>`. A failure at the floor (or when no
68
+ floor is configured) falls through to the normal phase-error path (pause ->
69
+ resume). Never silent-skip the persona. Each downgrade emits its own
70
+ `model_fallback` metric line so a two-step degrade is visible in Phase 7.
71
+ 3. **Cost budget ceiling (existing gate).** When `cost-budget-check.mjs` exits 11
72
+ (exceeded) mid-run, the run already pauses per the cost-budget contract; on
73
+ user-approved continue, `preferredModel` personas downgrade to `fallbackModel` for the
74
+ remainder of the run.
75
+
76
+ ## Logging
77
+
78
+ Every fallback emits one `log-metric.sh` line (`metric: model_fallback`,
79
+ attributes: `persona`, `from`, `to`, `trigger: date-gate|dispatch-error|budget`)
80
+ and one agent-log line so Phase 7 reports show which phases ran degraded.
81
+ The cost ledger prices the dispatch at the model actually used (the tracker's
82
+ per-phase `model` field already carries the override).
83
+
84
+ ## Non-goals
85
+
86
+ - No automatic re-upgrade mid-run (a run that fell back stays fallen back -
87
+ deterministic over clever).
88
+ - No edits to `pipeline/agents/*.md` at runtime; frontmatter is install-time
89
+ configuration only.
90
+ - Copilot CLI reviewer set and adapter-platform model pins are out of scope
91
+ (they pin their own models and do not use this persona ladder).
@@ -17,4 +17,4 @@ while next=$(bash "$HOME/.claude/lib/plan-todos.sh" next "$TASK_ID"); [ -n "$nex
17
17
  done
18
18
  ```
19
19
 
20
- When disabled, the loop still walks `tasks[]` from `planning-output``plan-todos.sh` adds visibility (status, notes, deps-respecting `next`) but the underlying TDD contract is unchanged.
20
+ When disabled, the loop still walks `tasks[]` from `planning-output` - `plan-todos.sh` adds visibility (status, notes, deps-respecting `next`) but the underlying TDD contract is unchanged.
@@ -4,19 +4,19 @@ Before any analysis, check if this issue was already fixed by someone else.
4
4
 
5
5
  ## Check order
6
6
 
7
- 1. **Git commit search**look for commits referencing this issue ID across all branches:
7
+ 1. **Git commit search** - look for commits referencing this issue ID across all branches:
8
8
 
9
9
  ```bash
10
10
  git -C $PROJECT_ROOT log --all --oneline --grep="{jiraId}" --since="8 weeks ago"
11
11
  ```
12
12
 
13
- 2. **Affected file history**after identifying key files (from issue description keywords), check recent changes:
13
+ 2. **Affected file history** - after identifying key files (from issue description keywords), check recent changes:
14
14
 
15
15
  ```bash
16
16
  git -C $PROJECT_ROOT log --oneline --since="4 weeks ago" -- {affected_file_paths}
17
17
  ```
18
18
 
19
- 3. **Jira comments/status**fetch latest comments to see if someone reported a fix:
19
+ 3. **Jira comments/status** - fetch latest comments to see if someone reported a fix:
20
20
 
21
21
  ```bash
22
22
  curl -s -H "Authorization: Bearer $JIRA_TOKEN" \
@@ -28,7 +28,7 @@ Before any analysis, check if this issue was already fixed by someone else.
28
28
 
29
29
  ```
30
30
  This issue appears to already have been addressed:
31
- {hash}{message} (by {author}, {date})
31
+ {hash} - {message} (by {author}, {date})
32
32
 
33
33
  Options:
34
34
  1. Verify fix (check if cherry-pick/merge to base branch is needed)
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Gated by `prefs.global.repoMap.enabled`** (default: `false`). Pattern source: <https://aider.chat/docs/repomap.html>.
4
4
 
5
- Before launching Explore agents, run the deterministic repo map renderer and inject the result into each Explore prompt as `${REPO_MAP}`. This gives every explorer a token-budgeted overview of the most-referenced files in the reporanked via cross-file declaration references with TF-IDF-style credit splitting so universally-shared helper names (`pass`, `fail`, `init`) don't dominate.
5
+ Before launching Explore agents, run the deterministic repo map renderer and inject the result into each Explore prompt as `${REPO_MAP}`. This gives every explorer a token-budgeted overview of the most-referenced files in the repo - ranked via cross-file declaration references with TF-IDF-style credit splitting so universally-shared helper names (`pass`, `fail`, `init`) don't dominate.
6
6
 
7
7
  ```bash
8
8
  REPO_MAP=""
@@ -20,11 +20,11 @@ fi
20
20
 
21
21
  ## Properties
22
22
 
23
- - **Deterministic**same worktree state → same map. No embeddings, no network. Sub-second on monorepos.
24
- - **Advisory**Explore agents may ignore the map if they have stronger signals (Phase 0 knowledge cache, explicit user context). Never gates the pipeline.
25
- - **Truncation-safe**output is capped at `tokenBudget`; the script falls back to "no files extracted within budget" rather than over-spending.
26
- - **Cost ledger**emit `phase-1.repo_map_emitted bytes=$(wc -c <<<"$REPO_MAP") budget=$BUDGET` so Phase 7 cost summary can show the size injected.
23
+ - **Deterministic** - same worktree state → same map. No embeddings, no network. Sub-second on monorepos.
24
+ - **Advisory** - Explore agents may ignore the map if they have stronger signals (Phase 0 knowledge cache, explicit user context). Never gates the pipeline.
25
+ - **Truncation-safe** - output is capped at `tokenBudget`; the script falls back to "no files extracted within budget" rather than over-spending.
26
+ - **Cost ledger** - emit `phase-1.repo_map_emitted bytes=$(wc -c <<<"$REPO_MAP") budget=$BUDGET` so Phase 7 cost summary can show the size injected.
27
27
 
28
28
  ## When to enable
29
29
 
30
- Large repos (>200 source files) where Explore otherwise spends multiple rounds finding the right starting files. Skip on small reposthe overhead exceeds the gain.
30
+ Large repos (>200 source files) where Explore otherwise spends multiple rounds finding the right starting files. Skip on small repos - the overhead exceeds the gain.
@@ -6,14 +6,14 @@
6
6
  # Phase 0 (one-time per task): initialize shadow repo + baseline snapshot.
7
7
  bash "$HOME/.claude/lib/shadow-git.sh" init "$TASK_ID" "$WORKTREE"
8
8
 
9
- # Per-step (mode: per-todo-stepdefault): snapshot AFTER each plan-todos
9
+ # Per-step (mode: per-todo-step - default): snapshot AFTER each plan-todos
10
10
  # step completes successfully, so restore lands on a known-good state.
11
11
  bash "$HOME/.claude/lib/plan-todos.sh" complete "$TASK_ID" "$id" "$notes"
12
12
  bash "$HOME/.claude/lib/shadow-git.sh" snapshot "$TASK_ID" "$WORKTREE" "step $id: $task"
13
13
 
14
14
  # Per-mutation (mode: per-tool-call): the orchestrator hooks into every Edit/
15
15
  # Write/MultiEdit/Bash-mutation tool call. Higher fidelity, ~50ms × tool-call
16
- # overheadrecommended only for security-critical paths or experimental
16
+ # overhead - recommended only for security-critical paths or experimental
17
17
  # refactors where the user values fine-grained rollback over speed.
18
18
 
19
19
  # Rollback on demand (interactive helper):
@@ -15,7 +15,7 @@ When the task involves frontend development (React, Next.js, Vue), follow these
15
15
  ### React Component Pattern
16
16
 
17
17
  ```tsx
18
- // Props interfaceexplicit, documented
18
+ // Props interface - explicit, documented
19
19
  interface ButtonProps {
20
20
  label: string;
21
21
  variant?: "primary" | "secondary" | "ghost";
@@ -25,7 +25,7 @@ interface ButtonProps {
25
25
  onClick: () => void;
26
26
  }
27
27
 
28
- // Componentsingle responsibility
28
+ // Component - single responsibility
29
29
  export function Button({
30
30
  label,
31
31
  variant = "primary",
@@ -50,10 +50,10 @@ export function Button({
50
50
  ### State Management
51
51
 
52
52
  ```tsx
53
- // Simple stateuseState/useReducer
53
+ // Simple state - useState/useReducer
54
54
  const [count, setCount] = useState(0);
55
55
 
56
- // Complex statecustom hook
56
+ // Complex state - custom hook
57
57
  function useAuth() {
58
58
  const [user, setUser] = useState<User | null>(null);
59
59
  const [loading, setLoading] = useState(true);
@@ -68,7 +68,7 @@ function useAuth() {
68
68
  return { user, loading, isAuthenticated: !!user };
69
69
  }
70
70
 
71
- // Server stateReact Query / SWR
71
+ // Server state - React Query / SWR
72
72
  const { data, isLoading, error } = useQuery({
73
73
  queryKey: ["users", userId],
74
74
  queryFn: () => fetchUser(userId),
@@ -103,7 +103,7 @@ Every interactive element MUST have:
103
103
  ### Testing
104
104
 
105
105
  ```tsx
106
- // Component testReact Testing Library
106
+ // Component test - React Testing Library
107
107
  test("renders button with label", () => {
108
108
  render(<Button label="Submit" onClick={vi.fn()} />);
109
109
  expect(screen.getByRole("button", { name: "Submit" })).toBeInTheDocument();
@@ -124,13 +124,13 @@ test("shows loading state", () => {
124
124
 
125
125
  ### Quality Checklist
126
126
 
127
- 1. No magic numbersdesign tokens or CSS variables
128
- 2. Semantic HTMLcorrect elements, not div-soup
129
- 3. AccessibilityARIA labels, keyboard nav, contrast
130
- 4. Responsiveworks on mobile, tablet, desktop
131
- 5. i18nall strings via translation keys
132
- 6. Error boundariesgraceful error handling
133
- 7. Loading statesskeleton/spinner for async operations
134
- 8. Testscomponent + hook tests, no implementation details
135
- 9. Performancememoization where needed (React.memo, useMemo, useCallback)
136
- 10. Build passeszero warnings, TypeScript strict mode
127
+ 1. No magic numbers - design tokens or CSS variables
128
+ 2. Semantic HTML - correct elements, not div-soup
129
+ 3. Accessibility - ARIA labels, keyboard nav, contrast
130
+ 4. Responsive - works on mobile, tablet, desktop
131
+ 5. i18n - all strings via translation keys
132
+ 6. Error boundaries - graceful error handling
133
+ 7. Loading states - skeleton/spinner for async operations
134
+ 8. Tests - component + hook tests, no implementation details
135
+ 9. Performance - memoization where needed (React.memo, useMemo, useCallback)
136
+ 10. Build passes - zero warnings, TypeScript strict mode
@@ -1,6 +1,6 @@
1
1
  # Issue → Jira → Wiki Triad
2
2
 
3
- > **TLDR**When a GitHub issue triggers the pipeline and has no Jira ID, the `autoJiraFromGithubIssue` policy decides whether to auto-create a Jira task (and patch the GitHub issue body with the new Jira link). Phase 7 then posts a humanizer'd wiki-content summary back as a Jira comment, closing the loop. Autopilot treats `ask` as `always`.
3
+ > **TLDR** - When a GitHub issue triggers the pipeline and has no Jira ID, the `autoJiraFromGithubIssue` policy decides whether to auto-create a Jira task (and patch the GitHub issue body with the new Jira link). Phase 7 then posts a humanizer'd wiki-content summary back as a Jira comment, closing the loop. Autopilot treats `ask` as `always`.
4
4
 
5
5
  This doc is referenced from `refs/phases/phase-0-init.md` Step 1 (GitHub issue input) and `refs/phases/phase-7-report.md` Step 2 (component wiki). Keeps the phase docs tight and gives the triad contract a stable home.
6
6
 
@@ -9,13 +9,13 @@ This doc is referenced from `refs/phases/phase-0-init.md` Step 1 (GitHub issue i
9
9
  ```
10
10
  GitHub issue (no Jira link)
11
11
 
12
- ▼ Phase 0 Step 1 auto-create policy
12
+ ▼ Phase 0 Step 1 - auto-create policy
13
13
  Jira issue (new, linked both ways)
14
14
 
15
- ▼ Phase 3component implementation
16
- wiki markdown in pipeline/skills/…
15
+ ▼ Phase 3 - component implementation
16
+ wiki markdown in pipeline/skills/...
17
17
 
18
- ▼ Phase 7 Report Step 2wiki capture + Jira comment post
18
+ ▼ Phase 7 Report Step 2 - wiki capture + Jira comment post
19
19
  Jira comment (humanizer'd component summary)
20
20
  ```
21
21
 
@@ -23,16 +23,16 @@ Jira comment (humanizer'd component summary)
23
23
 
24
24
  Inputs:
25
25
 
26
- - `state.inputType === "github-issue-url"` or `"github-issue-number"`not `jira-*`, not `free-text`.
26
+ - `state.inputType === "github-issue-url"` or `"github-issue-number"` - not `jira-*`, not `free-text`.
27
27
  - `state.jiraId` is null (no `{JIRA_KEY}-XXXXX` found in the issue body).
28
- - `prefs.global.autoJiraFromGithubIssue`enum `ask` | `always` | `never`.
29
- - `state.mode``autopilot` overrides `ask` to `always` (no interactive fallback when user isn't watching).
28
+ - `prefs.global.autoJiraFromGithubIssue` - enum `ask` | `always` | `never`.
29
+ - `state.mode` - `autopilot` overrides `ask` to `always` (no interactive fallback when user isn't watching).
30
30
 
31
31
  Decision table:
32
32
 
33
33
  | preference | interactive | autopilot |
34
34
  |---|---|---|
35
- | `ask` | prompt `Create Jira issue for this? (y/n)` | treat as `always` |
35
+ | `ask` | native `AskUserQuestion` picker (`question` "Create a Jira issue for this?" in `outputLanguage`, `header` "Jira", `options` `{ label: "Create", description: "Create + link a Jira issue for this GitHub issue" }`, `{ label: "Skip", description: "Continue without a Jira issue" }`); **Create** → Create path, **Skip** → skip + log | treat as `always` |
36
36
  | `always` | silently create + log | silently create + log |
37
37
  | `never` | skip + log | skip + log |
38
38
 
@@ -43,9 +43,9 @@ Decision table:
43
43
  3. Derive Jira fields from the GitHub issue:
44
44
  - `summary` ← GitHub issue title (truncate to 255 chars).
45
45
  - `description` ← GitHub issue body, prefixed with `h3. From GitHub\n[GH{issueNo}|{url}]\n\n`.
46
- - `issueType`infer from labels: `bug` → Bug, `enhancement` → Story, default Task.
47
- - `project``figmaConfig.jira.projectKey`, or `prefs.global.defaultJiraKey`, or prompt (cached after first use).
48
- - `priority`derive from labels if present (`priority:high` → High, etc.); else leave unset (Jira default).
46
+ - `issueType` - infer from labels: `bug` → Bug, `enhancement` → Story, default Task.
47
+ - `project` - `figmaConfig.jira.projectKey`, or `prefs.global.defaultJiraKey`, or prompt (cached after first use).
48
+ - `priority` - derive from labels if present (`priority:high` → High, etc.); else leave unset (Jira default).
49
49
  4. `POST {jira.baseUrl}/rest/api/2/issue` with the derived payload.
50
50
  5. On success: store new Jira key in `state.jiraId`. Emit `→ created Jira {newKey}`.
51
51
  6. Patch the GitHub issue body: append a line `Jira: [{newKey}]({jira.baseUrl}/browse/{newKey})` so the bidirectional link is visible on GitHub without refetching the pipeline state.
@@ -65,9 +65,9 @@ Runs after Phase 7 Report Step 2 (wiki capture) has produced markdown and only w
65
65
  Flow:
66
66
 
67
67
  1. Emit `→ posting wiki summary to Jira {jiraId}`.
68
- 2. Read the first N lines of the primary wiki markdown file (the component's overview pageone of `writtenPaths[0]`).
69
- 3. Render as Jira comment: title line (`h3. Component docs{componentName}`) + an overview paragraph + a link to the full page (wiki URL, if the adapter returned `pushedRemote`).
70
- 4. **Run through the humanizer skill**same policy as Step 4 Confluence: user-facing content must read naturally.
68
+ 2. Read the first N lines of the primary wiki markdown file (the component's overview page - one of `writtenPaths[0]`).
69
+ 3. Render as Jira comment: title line (`h3. Component docs - {componentName}`) + an overview paragraph + a link to the full page (wiki URL, if the adapter returned `pushedRemote`).
70
+ 4. **Run through the humanizer skill** - same policy as Step 4 Confluence: user-facing content must read naturally.
71
71
  5. `POST {jira.baseUrl}/rest/api/2/issue/{jiraId}/comment`.
72
72
  6. Log: `Phase 7: wiki summary posted to Jira {jiraId}`.
73
73
 
@@ -78,7 +78,7 @@ On failure: log + continue. Wiki is already written; the Jira comment is an augm
78
78
  Autopilot forces:
79
79
 
80
80
  - `autoJiraFromGithubIssue: ask` → `always` (no user to prompt).
81
- - `wikiToJiraComment` obeys its preference (default `true`)no prompting either way.
81
+ - `wikiToJiraComment` obeys its preference (default `true`) - no prompting either way.
82
82
 
83
83
  Rationale: autopilot is explicit consent for side-effect creation; muting Jira activity would defeat the purpose.
84
84
 
@@ -88,8 +88,8 @@ Rationale: autopilot is explicit consent for side-effect creation; muting Jira a
88
88
  |---|---|---|---|
89
89
  | `prefs.global.autoJiraFromGithubIssue` | enum ask/always/never | `ask` | Phase 0 auto-create decision |
90
90
  | `prefs.global.wikiToJiraComment` | bool | `true` | Phase 7 wiki → Jira comment post |
91
- | `figmaConfig.jira.projectKey` | string || Target project for new issues (falls back to `prefs.global.defaultJiraKey`) |
92
- | `prefs.global.keychainMapping.jira` | string || Jira token keychain lookup |
91
+ | `figmaConfig.jira.projectKey` | string | - | Target project for new issues (falls back to `prefs.global.defaultJiraKey`) |
92
+ | `prefs.global.keychainMapping.jira` | string | - | Jira token keychain lookup |
93
93
 
94
94
  ## Cross-CLI parity
95
95