@mmerterden/multi-agent-pipeline 20.2.0 → 20.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/CHANGELOG.md +923 -1
  2. package/README.md +104 -81
  3. package/README.tr.md +103 -62
  4. package/docs/FIGMA_PIPELINE.md +35 -35
  5. package/docs/adr/0006-skills-core-external-split.md +1 -1
  6. package/docs/adr/0007-multi-tool-adapter-framework.md +6 -0
  7. package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +7 -0
  8. package/docs/architecture.md +50 -14
  9. package/docs/best-practices.md +1 -1
  10. package/docs/ecosystem.md +56 -32
  11. package/docs/facts.json +10 -10
  12. package/docs/features.md +97 -5
  13. package/docs/recovery-guide.md +7 -14
  14. package/docs/server-readiness.md +31 -24
  15. package/index.js +1 -1
  16. package/install/_common.mjs +3 -5
  17. package/install/_platform-filter.mjs +23 -1
  18. package/install/_unattended-profile.mjs +321 -75
  19. package/install/claude.mjs +51 -10
  20. package/install/codex.mjs +2 -0
  21. package/install/copilot.mjs +2 -0
  22. package/install/index.mjs +30 -17
  23. package/install/templates/claude-hooks.json +16 -5
  24. package/install/templates/copilot-instructions.md +1 -1
  25. package/install/templates/multi-agent-autopilot-awake.plist.template +48 -0
  26. package/install/templates/multi-agent-autopilot.plist.template +12 -5
  27. package/install/unattended-profile-legacy.json +80 -0
  28. package/manifest.json +616 -483
  29. package/package.json +8 -3
  30. package/pipeline/agents/code-reviewer.md +10 -0
  31. package/pipeline/agents/plan-critic.md +98 -0
  32. package/pipeline/agents/security-auditor.md +10 -0
  33. package/pipeline/agents/task-clarifier.md +10 -0
  34. package/pipeline/commands/multi-agent/SKILL.md +2 -2
  35. package/pipeline/commands/multi-agent/analysis/SKILL.md +6 -2
  36. package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +12 -1
  37. package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +4 -0
  38. package/pipeline/commands/multi-agent/autopilot/SKILL.md +6 -2
  39. package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +36 -6
  40. package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +77 -12
  41. package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +29 -8
  42. package/pipeline/commands/multi-agent/build-optimize/SKILL.md +4 -0
  43. package/pipeline/commands/multi-agent/channels/SKILL.md +9 -9
  44. package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +5 -1
  45. package/pipeline/commands/multi-agent/create-jira/SKILL.md +4 -0
  46. package/pipeline/commands/multi-agent/design-check/SKILL.md +16 -11
  47. package/pipeline/commands/multi-agent/diff-explain/SKILL.md +4 -0
  48. package/pipeline/commands/multi-agent/doctor/SKILL.md +4 -0
  49. package/pipeline/commands/multi-agent/feedback/SKILL.md +5 -1
  50. package/pipeline/commands/multi-agent/forget/SKILL.md +4 -0
  51. package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -0
  52. package/pipeline/commands/multi-agent/graph/SKILL.md +4 -0
  53. package/pipeline/commands/multi-agent/help/SKILL.md +37 -39
  54. package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +4 -0
  55. package/pipeline/commands/multi-agent/issue/SKILL.md +7 -1
  56. package/pipeline/commands/multi-agent/jira/SKILL.md +7 -1
  57. package/pipeline/commands/multi-agent/kill/SKILL.md +9 -3
  58. package/pipeline/commands/multi-agent/language/SKILL.md +4 -0
  59. package/pipeline/commands/multi-agent/log/SKILL.md +4 -0
  60. package/pipeline/commands/multi-agent/manual-test/SKILL.md +5 -0
  61. package/pipeline/commands/multi-agent/model/SKILL.md +4 -0
  62. package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -0
  63. package/pipeline/commands/multi-agent/prune-prompts/SKILL.md +4 -0
  64. package/pipeline/commands/multi-agent/purge/SKILL.md +4 -0
  65. package/pipeline/commands/multi-agent/refactor/SKILL.md +5 -0
  66. package/pipeline/commands/multi-agent/research/SKILL.md +49 -0
  67. package/pipeline/commands/multi-agent/resume/SKILL.md +29 -6
  68. package/pipeline/commands/multi-agent/review/SKILL.md +28 -9
  69. package/pipeline/commands/multi-agent/review-analysis/SKILL.md +5 -1
  70. package/pipeline/commands/multi-agent/review-issue/SKILL.md +4 -0
  71. package/pipeline/commands/multi-agent/review-jira/SKILL.md +4 -0
  72. package/pipeline/commands/multi-agent/route-off/SKILL.md +4 -0
  73. package/pipeline/commands/multi-agent/route-on/SKILL.md +4 -0
  74. package/pipeline/commands/multi-agent/route-status/SKILL.md +4 -0
  75. package/pipeline/commands/multi-agent/routines/SKILL.md +4 -0
  76. package/pipeline/commands/multi-agent/save/SKILL.md +6 -2
  77. package/pipeline/commands/multi-agent/scaffold/SKILL.md +47 -0
  78. package/pipeline/commands/multi-agent/scan/SKILL.md +4 -0
  79. package/pipeline/commands/multi-agent/search/SKILL.md +12 -8
  80. package/pipeline/commands/multi-agent/security-review/SKILL.md +4 -0
  81. package/pipeline/commands/multi-agent/serve/SKILL.md +62 -0
  82. package/pipeline/commands/multi-agent/setup/SKILL.md +27 -36
  83. package/pipeline/commands/multi-agent/stack/SKILL.md +4 -0
  84. package/pipeline/commands/multi-agent/status/SKILL.md +10 -9
  85. package/pipeline/commands/multi-agent/steer/SKILL.md +5 -1
  86. package/pipeline/commands/multi-agent/store-ready/SKILL.md +4 -0
  87. package/pipeline/commands/multi-agent/sync/SKILL.md +13 -13
  88. package/pipeline/commands/multi-agent/test/SKILL.md +4 -0
  89. package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +4 -0
  90. package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +4 -0
  91. package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +4 -0
  92. package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +5 -1
  93. package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +4 -0
  94. package/pipeline/commands/multi-agent/uninstall/SKILL.md +5 -1
  95. package/pipeline/commands/multi-agent/update/SKILL.md +4 -0
  96. package/pipeline/contract/CHANGELOG.md +74 -0
  97. package/pipeline/contract/README.md +126 -0
  98. package/pipeline/contract/build.mjs +427 -0
  99. package/pipeline/contract/fixtures/answer-result.json +11 -0
  100. package/pipeline/contract/fixtures/error-invalid-request.json +8 -0
  101. package/pipeline/contract/fixtures/error-unauthorized.json +5 -0
  102. package/pipeline/contract/fixtures/error-unsigned.json +5 -0
  103. package/pipeline/contract/fixtures/issues-empty.json +18 -0
  104. package/pipeline/contract/fixtures/launch-plan.json +31 -0
  105. package/pipeline/contract/fixtures/runs-awaiting-question.json +70 -0
  106. package/pipeline/contract/fixtures/runs-empty.json +6 -0
  107. package/pipeline/contract/fixtures/runs-failed.json +84 -0
  108. package/pipeline/contract/fixtures/runs-old-schema.json +70 -0
  109. package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +101 -0
  110. package/pipeline/contract/fixtures/runs-pr-opened.json +106 -0
  111. package/pipeline/contract/fixtures/runs-running.json +84 -0
  112. package/pipeline/contract/fixtures/worktrees-empty.json +4 -0
  113. package/pipeline/contract/frozen/toolbox.json +107 -0
  114. package/pipeline/contract/manifest.json +263 -0
  115. package/pipeline/contract/types/index.d.ts +343 -0
  116. package/pipeline/lib/_jira-auth.sh +6 -2
  117. package/pipeline/lib/account-resolver.sh +1 -1
  118. package/pipeline/lib/autopilot-state.sh +19 -0
  119. package/pipeline/lib/context-link-extractor.sh +12 -5
  120. package/pipeline/lib/credential-inventory.sh +12 -5
  121. package/pipeline/lib/credential-store.sh +116 -185
  122. package/pipeline/lib/fetch-confluence.sh +44 -3
  123. package/pipeline/lib/fetch-document.sh +3 -4
  124. package/pipeline/lib/fetch-fortify.sh +1 -1
  125. package/pipeline/lib/figma-mcp-refresh.sh +2 -2
  126. package/pipeline/lib/figma-token.sh +5 -1
  127. package/pipeline/lib/issue-fetcher.sh +233 -16
  128. package/pipeline/lib/json-file-lock.mjs +172 -0
  129. package/pipeline/lib/model-dispatch.sh +21 -12
  130. package/pipeline/lib/model-rung.sh +6 -1
  131. package/pipeline/lib/multi-repo-pipeline.sh +1 -1
  132. package/pipeline/lib/outbound-gate.mjs +46 -16
  133. package/pipeline/lib/parse-complaints.sh +14 -7
  134. package/pipeline/lib/plan-todos.sh +3 -3
  135. package/pipeline/lib/post-pr-review.sh +9 -9
  136. package/pipeline/lib/pr-request-location.mjs +85 -0
  137. package/pipeline/lib/regular-file.mjs +153 -0
  138. package/pipeline/lib/repo-hygiene.sh +17 -0
  139. package/pipeline/lib/route-state.sh +5 -1
  140. package/pipeline/lib/run-paths.sh +3 -2
  141. package/pipeline/lib/stack-detect.sh +19 -1
  142. package/pipeline/lib/unattended-profile-check.mjs +178 -0
  143. package/pipeline/lib/unattended-settings-location.mjs +28 -0
  144. package/pipeline/lib/unattended.mjs +76 -0
  145. package/pipeline/lib/unattended.sh +32 -0
  146. package/pipeline/lib/untrusted.mjs +76 -0
  147. package/pipeline/lib/user-facing.mjs +82 -0
  148. package/pipeline/lib/user-facing.sh +58 -0
  149. package/pipeline/multi-agent-refs/_dev-context.md +1 -1
  150. package/pipeline/multi-agent-refs/analysis/evidence.md +4 -0
  151. package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
  152. package/pipeline/multi-agent-refs/analysis/render.md +4 -3
  153. package/pipeline/multi-agent-refs/analysis/resolve.md +3 -1
  154. package/pipeline/multi-agent-refs/analysis/synthesis.md +4 -5
  155. package/pipeline/multi-agent-refs/analysis-template.md +10 -17
  156. package/pipeline/multi-agent-refs/channels/jira.md +1 -1
  157. package/pipeline/multi-agent-refs/component-dispatch.md +3 -3
  158. package/pipeline/multi-agent-refs/conventions-defaults.md +32 -32
  159. package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -17
  160. package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +37 -9
  161. package/pipeline/multi-agent-refs/features/autopilot-operations.md +277 -0
  162. package/pipeline/multi-agent-refs/features/constitution.md +196 -0
  163. package/pipeline/multi-agent-refs/features/doctor.md +6 -3
  164. package/pipeline/multi-agent-refs/features/external-context-injection.md +6 -1
  165. package/pipeline/multi-agent-refs/features/jira-context.md +1 -1
  166. package/pipeline/multi-agent-refs/features/maturity-followup.md +43 -23
  167. package/pipeline/multi-agent-refs/features/model-fallback.md +9 -0
  168. package/pipeline/multi-agent-refs/features/phone-api.md +306 -0
  169. package/pipeline/multi-agent-refs/features/plan-critic.md +159 -0
  170. package/pipeline/multi-agent-refs/features/research.md +150 -0
  171. package/pipeline/multi-agent-refs/features/review-decision.md +185 -0
  172. package/pipeline/multi-agent-refs/features/scaffold.md +160 -0
  173. package/pipeline/multi-agent-refs/features/security-audit.md +6 -2
  174. package/pipeline/multi-agent-refs/features/skill-conformance.md +4 -1
  175. package/pipeline/multi-agent-refs/features/stack-adapters.md +116 -0
  176. package/pipeline/multi-agent-refs/features/unattended-gates.md +316 -0
  177. package/pipeline/multi-agent-refs/features/unattended-security.md +731 -0
  178. package/pipeline/multi-agent-refs/features/url-enrichment.md +2 -2
  179. package/pipeline/multi-agent-refs/features/usage-reporting.md +127 -31
  180. package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
  181. package/pipeline/multi-agent-refs/features/visual-evidence.md +7 -7
  182. package/pipeline/multi-agent-refs/keychain.md +6 -11
  183. package/pipeline/multi-agent-refs/payload-contracts.md +2 -2
  184. package/pipeline/multi-agent-refs/phases/log-format.md +2 -3
  185. package/pipeline/multi-agent-refs/phases/modes.md +10 -12
  186. package/pipeline/multi-agent-refs/phases/operations.md +11 -5
  187. package/pipeline/multi-agent-refs/phases/phase-0-init.md +73 -81
  188. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +22 -22
  189. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +42 -66
  190. package/pipeline/multi-agent-refs/phases/phase-3-review.md +45 -79
  191. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +28 -38
  192. package/pipeline/multi-agent-refs/phases/phase-5-report.md +27 -25
  193. package/pipeline/multi-agent-refs/phases.md +1 -1
  194. package/pipeline/multi-agent-refs/picker-contract.md +1 -1
  195. package/pipeline/multi-agent-refs/progress-contract.md +13 -16
  196. package/pipeline/multi-agent-refs/readiness-review.md +1 -1
  197. package/pipeline/multi-agent-refs/research/engine.md +91 -0
  198. package/pipeline/multi-agent-refs/rules.md +6 -4
  199. package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
  200. package/pipeline/multi-agent-refs/tracker-contract.md +2 -2
  201. package/pipeline/multi-agent-refs/unattended-contract.md +68 -16
  202. package/pipeline/rules/figma-pipeline.md +12 -12
  203. package/pipeline/schemas/agent-state.schema.json +480 -18
  204. package/pipeline/schemas/analysis-spec.schema.json +4 -4
  205. package/pipeline/schemas/answer-request.schema.json +24 -0
  206. package/pipeline/schemas/answer-result.schema.json +28 -0
  207. package/pipeline/schemas/autopilot-config.schema.json +111 -13
  208. package/pipeline/schemas/command-parameters.schema.json +99 -0
  209. package/pipeline/schemas/constitution.schema.json +56 -0
  210. package/pipeline/schemas/contract-error.schema.json +52 -0
  211. package/pipeline/schemas/design-check-config.schema.json +5 -1
  212. package/pipeline/schemas/issues.schema.json +61 -0
  213. package/pipeline/schemas/launch-plan.schema.json +46 -0
  214. package/pipeline/schemas/launch-request.schema.json +45 -0
  215. package/pipeline/schemas/launch.json +61 -0
  216. package/pipeline/schemas/launch.schema.json +84 -0
  217. package/pipeline/schemas/phases.json +2 -2
  218. package/pipeline/schemas/phases.schema.json +68 -0
  219. package/pipeline/schemas/phone-devices.schema.json +61 -0
  220. package/pipeline/schemas/phone-signed-request.schema.json +67 -0
  221. package/pipeline/schemas/plan-critique.schema.json +99 -0
  222. package/pipeline/schemas/plan-todos.schema.json +7 -7
  223. package/pipeline/schemas/planning-output.schema.json +5 -0
  224. package/pipeline/schemas/pr-request.schema.json +46 -0
  225. package/pipeline/schemas/prefs.schema.json +82 -7
  226. package/pipeline/schemas/research-output.schema.json +118 -0
  227. package/pipeline/schemas/review-file-exclusions.schema.json +25 -0
  228. package/pipeline/schemas/reviewer-output.schema.json +40 -4
  229. package/pipeline/schemas/run-questions.json +392 -0
  230. package/pipeline/schemas/run-questions.schema.json +118 -0
  231. package/pipeline/schemas/runs-index.schema.json +189 -0
  232. package/pipeline/schemas/scaffold-manifest.schema.json +43 -0
  233. package/pipeline/schemas/secret-patterns.schema.json +28 -0
  234. package/pipeline/schemas/stack-adapters.json +527 -0
  235. package/pipeline/schemas/stack-adapters.schema.json +184 -0
  236. package/pipeline/schemas/token-budget.json +1 -1
  237. package/pipeline/schemas/token-budget.schema.json +26 -0
  238. package/pipeline/schemas/triage-output.schema.json +64 -3
  239. package/pipeline/schemas/unattended-policy.json +139 -0
  240. package/pipeline/schemas/unattended-policy.schema.json +73 -0
  241. package/pipeline/schemas/unattended-profile.json +248 -0
  242. package/pipeline/schemas/unattended-profile.schema.json +198 -0
  243. package/pipeline/schemas/worktrees.schema.json +51 -0
  244. package/pipeline/scripts/README.md +1 -0
  245. package/pipeline/scripts/_autopilot-config.mjs +130 -0
  246. package/pipeline/scripts/_autopilot-ops.mjs +567 -0
  247. package/pipeline/scripts/_autopilot-outcomes.mjs +174 -0
  248. package/pipeline/scripts/_command-contract.mjs +384 -0
  249. package/pipeline/scripts/_cost.mjs +40 -0
  250. package/pipeline/scripts/_notices.mjs +160 -0
  251. package/pipeline/scripts/_phone-auth.mjs +485 -0
  252. package/pipeline/scripts/_pre-existing.mjs +294 -0
  253. package/pipeline/scripts/_redact.mjs +77 -0
  254. package/pipeline/scripts/_run-paths.mjs +4 -2
  255. package/pipeline/scripts/_stack-adapter.mjs +678 -0
  256. package/pipeline/scripts/_stack-routing.mjs +1 -1
  257. package/pipeline/scripts/agent-guard.py +348 -37
  258. package/pipeline/scripts/agent-guard.sh +41 -13
  259. package/pipeline/scripts/analysis-story-tree.mjs +79 -3
  260. package/pipeline/scripts/answer-question.mjs +181 -0
  261. package/pipeline/scripts/audit-log-rotate.sh +1 -4
  262. package/pipeline/scripts/audit-log.sh +4 -4
  263. package/pipeline/scripts/autopilot-arming.mjs +389 -21
  264. package/pipeline/scripts/autopilot-awake.mjs +255 -0
  265. package/pipeline/scripts/autopilot-intake.mjs +137 -36
  266. package/pipeline/scripts/autopilot-menubar.swift +156 -44
  267. package/pipeline/scripts/autopilot-publish.mjs +1625 -0
  268. package/pipeline/scripts/autopilot-runner.mjs +1678 -222
  269. package/pipeline/scripts/autopilot-status.sh +198 -33
  270. package/pipeline/scripts/build-lock.sh +120 -0
  271. package/pipeline/scripts/build-references.mjs +4 -1
  272. package/pipeline/scripts/build-stack-plugins.mjs +59 -22
  273. package/pipeline/scripts/capture-flush.sh +1 -1
  274. package/pipeline/scripts/capture-resume.sh +13 -9
  275. package/pipeline/scripts/check-derived-drift.mjs +52 -11
  276. package/pipeline/scripts/commands.mjs +88 -0
  277. package/pipeline/scripts/constitution.mjs +362 -0
  278. package/pipeline/scripts/contract-server.mjs +776 -0
  279. package/pipeline/scripts/cost-analyze.mjs +89 -39
  280. package/pipeline/scripts/diff-explain.mjs +12 -1
  281. package/pipeline/scripts/doctor.mjs +77 -28
  282. package/pipeline/scripts/evidence-gate.mjs +192 -12
  283. package/pipeline/scripts/feedback-send.mjs +4 -2
  284. package/pipeline/scripts/gate-ledger.mjs +449 -0
  285. package/pipeline/scripts/gc-abandoned.sh +132 -13
  286. package/pipeline/scripts/gen-facts.mjs +31 -15
  287. package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
  288. package/pipeline/scripts/github-ssh-setup.sh +140 -29
  289. package/pipeline/scripts/graph-mermaid.mjs +4 -1
  290. package/pipeline/scripts/issues.mjs +236 -0
  291. package/pipeline/scripts/jira-attach.sh +6 -2
  292. package/pipeline/scripts/jira-search.sh +4 -3
  293. package/pipeline/scripts/keychain-save.sh +125 -24
  294. package/pipeline/scripts/keychain.py +63 -93
  295. package/pipeline/scripts/launch-request.mjs +747 -0
  296. package/pipeline/scripts/localize-commands.mjs +4 -10
  297. package/pipeline/scripts/log-metric.sh +6 -5
  298. package/pipeline/scripts/maturity-followup.mjs +13 -4
  299. package/pipeline/scripts/memory-save.sh +25 -0
  300. package/pipeline/scripts/migrate-prefs.mjs +4 -3
  301. package/pipeline/scripts/open-questions-gate.mjs +276 -0
  302. package/pipeline/scripts/phase-tracker.sh +41 -27
  303. package/pipeline/scripts/phase0-exit-gate.mjs +22 -4
  304. package/pipeline/scripts/phone-devices.mjs +224 -0
  305. package/pipeline/scripts/plan-coverage-gate.mjs +200 -66
  306. package/pipeline/scripts/plan-critique-gate.mjs +591 -0
  307. package/pipeline/scripts/pr-request.mjs +188 -0
  308. package/pipeline/scripts/pre-commit-check.sh +115 -4
  309. package/pipeline/scripts/probe-evidence-capability.sh +44 -5
  310. package/pipeline/scripts/record-phase.mjs +71 -0
  311. package/pipeline/scripts/render-agent-log-cost.sh +17 -2
  312. package/pipeline/scripts/render-cost-summary.sh +1 -1
  313. package/pipeline/scripts/render-work-summary.sh +1 -1
  314. package/pipeline/scripts/require-supported-version.sh +4 -1
  315. package/pipeline/scripts/research-gate.mjs +704 -0
  316. package/pipeline/scripts/review-decision-gate.mjs +403 -0
  317. package/pipeline/scripts/routine-registry.mjs +5 -2
  318. package/pipeline/scripts/runs-index.mjs +135 -27
  319. package/pipeline/scripts/scaffold-gate.mjs +393 -0
  320. package/pipeline/scripts/skill-conformance.mjs +25 -8
  321. package/pipeline/scripts/skill-siblings.mjs +2 -1
  322. package/pipeline/scripts/smoke-cross-cli-behavior.sh +32 -6
  323. package/pipeline/scripts/smoke-schema-validation.sh +6 -2
  324. package/pipeline/scripts/spec-consistency-gate.mjs +469 -0
  325. package/pipeline/scripts/symbol-existence-gate.mjs +450 -0
  326. package/pipeline/scripts/test-gap-scan.mjs +40 -2
  327. package/pipeline/scripts/test-integrity-gate.mjs +20 -4
  328. package/pipeline/scripts/test-strength.mjs +484 -0
  329. package/pipeline/scripts/test-summary.mjs +651 -0
  330. package/pipeline/scripts/triage-memory.mjs +49 -9
  331. package/pipeline/scripts/unattended_policy.py +2786 -0
  332. package/pipeline/scripts/uninstall.mjs +10 -10
  333. package/pipeline/scripts/update-issue-progress.sh +1 -1
  334. package/pipeline/scripts/usage-identity.mjs +288 -0
  335. package/pipeline/scripts/usage-register.mjs +185 -63
  336. package/pipeline/scripts/usage-report.mjs +230 -66
  337. package/pipeline/scripts/validate-complaint-doc.mjs +28 -10
  338. package/pipeline/scripts/validate-planning.mjs +6 -0
  339. package/pipeline/scripts/verify-citations.mjs +151 -38
  340. package/pipeline/scripts/verify.mjs +58 -18
  341. package/pipeline/scripts/worktree-prepare.sh +126 -0
  342. package/pipeline/scripts/worktrees.mjs +124 -0
  343. package/pipeline/scripts/write-state.mjs +48 -17
  344. package/pipeline/skills/.skill-manifest.json +222 -226
  345. package/pipeline/skills/.skills-index.json +77 -88
  346. package/pipeline/skills/shared/README.md +44 -45
  347. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +3 -2
  348. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +3 -2
  349. package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -9
  350. package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +6 -5
  351. package/pipeline/skills/shared/core/multi-agent-analysis-jira/SKILL.md +11 -3
  352. package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +2 -1
  353. package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -3
  354. package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +32 -6
  355. package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +66 -8
  356. package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +27 -9
  357. package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -1
  358. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +7 -4
  359. package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +3 -2
  360. package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +2 -1
  361. package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +7 -5
  362. package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +2 -1
  363. package/pipeline/skills/shared/core/multi-agent-doctor/SKILL.md +3 -2
  364. package/pipeline/skills/shared/core/multi-agent-feedback/SKILL.md +2 -1
  365. package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +2 -1
  366. package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +2 -1
  367. package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +2 -1
  368. package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -1
  369. package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -1
  370. package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +3 -2
  371. package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -1
  372. package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +7 -4
  373. package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -1
  374. package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +2 -1
  375. package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +2 -1
  376. package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +2 -1
  377. package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +2 -1
  378. package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +2 -1
  379. package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +2 -1
  380. package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +2 -1
  381. package/pipeline/skills/shared/core/multi-agent-research/SKILL.md +35 -0
  382. package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +7 -3
  383. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +7 -5
  384. package/pipeline/skills/shared/core/multi-agent-review-analysis/SKILL.md +2 -1
  385. package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +3 -2
  386. package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +2 -1
  387. package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +2 -1
  388. package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +2 -1
  389. package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +2 -1
  390. package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +2 -1
  391. package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +3 -2
  392. package/pipeline/skills/shared/core/multi-agent-scaffold/SKILL.md +30 -0
  393. package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +2 -1
  394. package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +4 -3
  395. package/pipeline/skills/shared/core/multi-agent-security-review/SKILL.md +2 -1
  396. package/pipeline/skills/shared/core/multi-agent-serve/SKILL.md +60 -0
  397. package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +8 -8
  398. package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -1
  399. package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +7 -8
  400. package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -1
  401. package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +2 -1
  402. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +10 -10
  403. package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +2 -1
  404. package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +2 -1
  405. package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +2 -1
  406. package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +2 -1
  407. package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +2 -1
  408. package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +2 -1
  409. package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +3 -2
  410. package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +2 -1
  411. package/pipeline/skills/shared/external/NOTICE-avdlee-swiftui-agent-skill.md +46 -0
  412. package/pipeline/skills/shared/external/NOTICE-dimillian-skills.md +9 -3
  413. package/pipeline/skills/shared/external/NOTICE-paul-hudson-skills.md +54 -0
  414. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +9 -11
  415. package/pipeline/skills/shared/external/NOTICE-vibeship-spawner-skills.md +203 -0
  416. package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +10 -3
  417. package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +131 -25
  418. package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -3
  419. package/pipeline/skills/shared/external/alarmkit/SKILL.md +2 -1
  420. package/pipeline/skills/shared/external/android-architecture/SKILL.md +85 -76
  421. package/pipeline/skills/shared/external/android-build-quality-gates/SKILL.md +51 -3
  422. package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +9 -0
  423. package/pipeline/skills/shared/external/android-datastore/SKILL.md +4 -3
  424. package/pipeline/skills/shared/external/android-design-tokens-codegen/SKILL.md +4 -3
  425. package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +106 -181
  426. package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +147 -0
  427. package/pipeline/skills/shared/external/android-mvi-viewmodel/SKILL.md +45 -4
  428. package/pipeline/skills/shared/external/android-performance/SKILL.md +27 -2
  429. package/pipeline/skills/shared/external/android-performance/references/patterns.md +37 -37
  430. package/pipeline/skills/shared/external/api-patterns/SKILL.md +111 -67
  431. package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +128 -0
  432. package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +136 -186
  433. package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +140 -0
  434. package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +207 -0
  435. package/pipeline/skills/shared/external/api-security-best-practices/references/operations.md +66 -0
  436. package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +175 -0
  437. package/pipeline/skills/shared/external/app-clips/SKILL.md +2 -0
  438. package/pipeline/skills/shared/external/app-intents/SKILL.md +2 -0
  439. package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +4 -3
  440. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +2 -0
  441. package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -0
  442. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +2 -0
  443. package/pipeline/skills/shared/external/architecture/SKILL.md +106 -39
  444. package/pipeline/skills/shared/external/architecture/references/adr-and-review.md +76 -0
  445. package/pipeline/skills/shared/external/authentication/SKILL.md +2 -0
  446. package/pipeline/skills/shared/external/avkit/SKILL.md +2 -0
  447. package/pipeline/skills/shared/external/background-processing/SKILL.md +2 -1
  448. package/pipeline/skills/shared/external/backlog/SKILL.md +3 -2
  449. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +2 -0
  450. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +1 -1
  451. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +3 -2
  452. package/pipeline/skills/shared/external/clean-code/SKILL.md +192 -90
  453. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +2 -1
  454. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +1 -1
  455. package/pipeline/skills/shared/external/compose-components/SKILL.md +4 -4
  456. package/pipeline/skills/shared/external/compose-navigation/SKILL.md +22 -22
  457. package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +10 -10
  458. package/pipeline/skills/shared/external/compose-testing/SKILL.md +13 -6
  459. package/pipeline/skills/shared/external/compose-testing/references/patterns.md +59 -59
  460. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +2 -0
  461. package/pipeline/skills/shared/external/context-compression/SKILL.md +118 -250
  462. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +2 -0
  463. package/pipeline/skills/shared/external/core-data/SKILL.md +2 -0
  464. package/pipeline/skills/shared/external/core-motion/SKILL.md +2 -0
  465. package/pipeline/skills/shared/external/core-nfc/SKILL.md +2 -0
  466. package/pipeline/skills/shared/external/coreml/SKILL.md +2 -1
  467. package/pipeline/skills/shared/external/council/SKILL.md +2 -1
  468. package/pipeline/skills/shared/external/cryptokit/SKILL.md +2 -0
  469. package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
  470. package/pipeline/skills/shared/external/database-patterns/SKILL.md +3 -2
  471. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +2 -0
  472. package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +130 -20
  473. package/pipeline/skills/shared/external/debugging-strategies/references/hard-cases.md +54 -0
  474. package/pipeline/skills/shared/external/device-integrity/SKILL.md +2 -0
  475. package/pipeline/skills/shared/external/docker-expert/SKILL.md +137 -381
  476. package/pipeline/skills/shared/external/docker-expert/references/patterns.md +98 -0
  477. package/pipeline/skills/shared/external/energykit/SKILL.md +2 -1
  478. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +3 -1
  479. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +2 -2
  480. package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +116 -185
  481. package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +235 -0
  482. package/pipeline/skills/shared/external/fastapi-pro/references/testing-and-deployment.md +69 -0
  483. package/pipeline/skills/shared/external/firebase/SKILL.md +4 -3
  484. package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +151 -293
  485. package/pipeline/skills/shared/external/github-actions-templates/references/patterns.md +96 -0
  486. package/pipeline/skills/shared/external/healthkit/SKILL.md +2 -0
  487. package/pipeline/skills/shared/external/hig-components-content/SKILL.md +69 -72
  488. package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +111 -0
  489. package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +77 -86
  490. package/pipeline/skills/shared/external/hig-components-layout/references/containers.md +98 -0
  491. package/pipeline/skills/shared/external/hig-components-status/SKILL.md +150 -78
  492. package/pipeline/skills/shared/external/hig-components-system/SKILL.md +76 -97
  493. package/pipeline/skills/shared/external/hig-components-system/references/surfaces.md +98 -0
  494. package/pipeline/skills/shared/external/hig-foundations/SKILL.md +48 -76
  495. package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +132 -0
  496. package/pipeline/skills/shared/external/hig-inputs/SKILL.md +147 -106
  497. package/pipeline/skills/shared/external/hig-patterns/SKILL.md +61 -77
  498. package/pipeline/skills/shared/external/hig-patterns/references/patterns.md +92 -0
  499. package/pipeline/skills/shared/external/hig-platforms/SKILL.md +147 -77
  500. package/pipeline/skills/shared/external/hig-technologies/SKILL.md +61 -121
  501. package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +108 -0
  502. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +2 -0
  503. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +1 -1
  504. package/pipeline/skills/shared/external/html-semantic/SKILL.md +3 -2
  505. package/pipeline/skills/shared/external/humanizer/SKILL.md +2 -1
  506. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +2 -0
  507. package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +2 -1
  508. package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +14 -2
  509. package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
  510. package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +4 -3
  511. package/pipeline/skills/shared/external/ios-localization/SKILL.md +8 -6
  512. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +2 -2
  513. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +11 -11
  514. package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +2 -1
  515. package/pipeline/skills/shared/external/ios-networking/SKILL.md +2 -0
  516. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +2 -0
  517. package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +102 -193
  518. package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +103 -0
  519. package/pipeline/skills/shared/external/live-activities/SKILL.md +4 -2
  520. package/pipeline/skills/shared/external/live-activities/evals/evals.json +2 -2
  521. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +7 -9
  522. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +3 -3
  523. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +2 -2
  524. package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +4 -3
  525. package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +5 -3
  526. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +2 -0
  527. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +1 -1
  528. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +2 -0
  529. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +1 -1
  530. package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +149 -46
  531. package/pipeline/skills/shared/external/monorepo-architect/references/patterns.md +70 -0
  532. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +2 -0
  533. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +1 -1
  534. package/pipeline/skills/shared/external/natural-language/SKILL.md +2 -0
  535. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +3 -2
  536. package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +91 -21
  537. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +247 -0
  538. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md +57 -0
  539. package/pipeline/skills/shared/external/observability-engineer/SKILL.md +155 -232
  540. package/pipeline/skills/shared/external/observability-engineer/references/patterns.md +75 -0
  541. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +2 -0
  542. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +2 -2
  543. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +18 -18
  544. package/pipeline/skills/shared/external/pdfkit/SKILL.md +2 -1
  545. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -0
  546. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
  547. package/pipeline/skills/shared/external/permissionkit/SKILL.md +2 -0
  548. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +2 -1
  549. package/pipeline/skills/shared/external/push-notifications/SKILL.md +2 -0
  550. package/pipeline/skills/shared/external/python-patterns/SKILL.md +3 -2
  551. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +3 -2
  552. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +2 -2
  553. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
  554. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +3 -2
  555. package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +7 -7
  556. package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +69 -69
  557. package/pipeline/skills/shared/external/room-database/references/patterns.md +126 -126
  558. package/pipeline/skills/shared/external/search-first/SKILL.md +2 -1
  559. package/pipeline/skills/shared/external/security-review/SKILL.md +4 -3
  560. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +2 -2
  561. package/pipeline/skills/shared/external/signal-community/SKILL.md +1 -1
  562. package/pipeline/skills/shared/external/skill-creator/SKILL.md +2 -1
  563. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +2 -1
  564. package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +2 -0
  565. package/pipeline/skills/shared/external/storekit/SKILL.md +2 -0
  566. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +2 -0
  567. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +2 -1
  568. package/pipeline/skills/shared/external/swift-charts/SKILL.md +2 -1
  569. package/pipeline/skills/shared/external/swift-codable/SKILL.md +2 -0
  570. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +3 -1
  571. package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +5 -4
  572. package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -1
  573. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +2 -0
  574. package/pipeline/skills/shared/external/swift-language/SKILL.md +3 -1
  575. package/pipeline/skills/shared/external/swift-security/SKILL.md +2 -1
  576. package/pipeline/skills/shared/external/swift-testing/SKILL.md +2 -0
  577. package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -1
  578. package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +10 -0
  579. package/pipeline/skills/shared/external/swiftdata/SKILL.md +2 -0
  580. package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -1
  581. package/pipeline/skills/shared/external/swiftlint/SKILL.md +2 -0
  582. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +2 -0
  583. package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +3 -1
  584. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +2 -0
  585. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +2 -0
  586. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +2 -0
  587. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +2 -0
  588. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +3 -1
  589. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +3 -1
  590. package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +5 -4
  591. package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -1
  592. package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +5 -4
  593. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +2 -0
  594. package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +4 -3
  595. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +2 -0
  596. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
  597. package/pipeline/skills/shared/external/testing-backend/SKILL.md +3 -2
  598. package/pipeline/skills/shared/external/tipkit/SKILL.md +2 -0
  599. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +3 -2
  600. package/pipeline/skills/shared/external/vision-framework/SKILL.md +2 -0
  601. package/pipeline/skills/shared/external/vue-composition/SKILL.md +3 -2
  602. package/pipeline/skills/shared/external/weatherkit/SKILL.md +2 -0
  603. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +3 -2
  604. package/pipeline/skills/shared/external/web-performance/SKILL.md +3 -2
  605. package/pipeline/skills/shared/external/web-testing/SKILL.md +3 -2
  606. package/pipeline/skills/shared/external/widgetkit/SKILL.md +2 -0
  607. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +1 -1
  608. package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +2 -0
  609. package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +2 -0
  610. package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +2 -0
  611. package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +2 -0
  612. package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +2 -0
  613. package/pipeline/skills/skills-index.md +40 -41
  614. package/docs/token-budget-history.md +0 -24
  615. package/pipeline/skills/shared/external/agentflow/SKILL.md +0 -199
  616. package/pipeline/skills/shared/external/android-ui-verification/SKILL.md +0 -66
  617. package/pipeline/skills/shared/external/api-security-best-practices/references/auth.md +0 -299
  618. package/pipeline/skills/shared/external/api-security-best-practices/references/input-validation.md +0 -255
  619. package/pipeline/skills/shared/external/api-security-best-practices/references/rate-limiting.md +0 -167
  620. package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +0 -116
  621. package/pipeline/skills/shared/external/ios-developer/SKILL.md +0 -216
@@ -1,94 +1,66 @@
1
1
  ---
2
2
  name: hig-foundations
3
- description: "Apple Human Interface Guidelines design foundations. Use when a design decision turns on Apple's foundations: layout, typography, colour, motion, accessibility."
4
- risk: unknown
5
- source: community
6
- date_added: '2026-02-27'
3
+ description: "Apple HIG foundations mapped to SwiftUI: Dynamic Type, semantic color, contrast, safe areas, SF Symbols, materials and Liquid Glass, motion, icons, writing. Use when a design decision turns on Apple's foundations."
4
+ metadata:
5
+ risk: safe
6
+ source: multi-agent-pipeline
7
+ date_added: "2026-09-25"
7
8
  ---
8
9
 
9
- # Apple HIG: Design Foundations
10
+ # HIG Foundations
10
11
 
11
- Check for `.claude/apple-design-context.md` before asking questions. Use existing context and only ask for information not already covered.
12
+ The foundations are the layer every other Apple design rule sits on: how text
13
+ scales, where color comes from, which icons to use, how content relates to the
14
+ edges of the screen, and how things move. Get these right and most component
15
+ decisions become easy; get them wrong and no component fixes the result.
12
16
 
13
- ## Key Principles
17
+ This skill is written for someone building the UI, so each foundation comes
18
+ with the question to ask, the SwiftUI tool that answers it, and what a reviewer
19
+ should look for. The repository's design tokens win over anything here: if the
20
+ project maps `Color.Text.primary` to a semantic color, use the token.
14
21
 
15
- 1. **Prioritize content over chrome.** Reduce visual clutter. Use system-provided materials and subtle separators rather than heavy borders and backgrounds.
22
+ ## Order of review
16
23
 
17
- 2. **Build in accessibility from the start.** Design for VoiceOver, Dynamic Type, Reduce Motion, Increase Contrast, and Switch Control from day one. Every interactive element needs an accessible label.
24
+ When a screen feels off, check foundations in this order. Each step tends to
25
+ hide problems in the steps after it.
18
26
 
19
- 3. **Use system colors and materials.** System colors adapt to light/dark mode, increased contrast, and vibrancy. Prefer semantic colors (`label`, `secondaryLabel`, `systemBackground`) over hard-coded values.
27
+ 1. Text scales and stays readable at every size.
28
+ 2. Colors come from semantic sources and hold up in both appearances.
29
+ 3. Content respects safe areas and layout margins.
30
+ 4. Icons are symbols with consistent weight and scale.
31
+ 5. Materials and motion support the content instead of competing with it.
32
+ 6. Copy is short, specific and written in the product's voice.
20
33
 
21
- 4. **Use platform fonts and icons.** SF Pro, SF Compact, SF Mono by default. New York for serif. Follow the type hierarchy at recommended sizes. Use SF Symbols for iconography.
34
+ ## Details on demand
22
35
 
23
- 5. **Match platform conventions.** Align look and behavior with system standards. Provide direct, responsive manipulation and clear feedback for every action.
36
+ Load `references/foundations-detail.md` for each review step above, with the SwiftUI APIs and code for it.
24
37
 
25
- 6. **Respect privacy.** Request permissions only when needed, explain why clearly, provide value before asking for data. Design for minimal data collection.
38
+ ## Reporting findings
26
39
 
27
- 7. **Support internationalization.** Accommodate text expansion, right-to-left scripts, and varying date/number formats. Use Auto Layout for dynamic content sizing.
40
+ For each issue, give the foundation, what the user experiences, and the change:
28
41
 
29
- 8. **Use motion purposefully.** Animation should communicate meaning and spatial relationships. Honor Reduce Motion by providing crossfade alternatives.
42
+ ```
43
+ [Typography] Order summary total truncates at accessibility sizes.
44
+ Fix: remove lineLimit(1); stack label and value vertically when
45
+ dynamicTypeSize.isAccessibilitySize.
46
+ ```
30
47
 
31
- ## Topics
48
+ ## Related skills
32
49
 
33
- | Topic | Key content |
34
- |---|---|
35
- | Accessibility | VoiceOver, Dynamic Type, color contrast, motor accessibility, Switch Control, audio descriptions |
36
- | App Icons | Icon grid, platform-specific sizes, single focal point, no transparency |
37
- | Branding | Integrating brand identity within Apple's design language, subtle branding, custom tints |
38
- | Color | System colors, Dynamic Colors, semantic colors, custom palettes, contrast ratios |
39
- | Dark Mode | Elevated surfaces, semantic colors, adapted palettes, vibrancy, testing in both modes |
40
- | Icons | Glyph icons, SF Symbols integration, custom icon design, icon weights, optical alignment |
41
- | Images | Image resolution, @2x/@3x assets, vector assets, image accessibility |
42
- | Immersive Experiences | AR/VR design, spatial immersion, comfort zones, progressive immersion levels |
43
- | Inclusion | Diverse representation, non-gendered language, cultural sensitivity, inclusive defaults |
44
- | Layout | Margins, spacing, alignment, safe areas, adaptive layouts, readable content guides |
45
- | Materials | Vibrancy, blur, translucency, system materials, material thickness |
46
- | Motion | Animation curves, transitions, continuity, Reduce Motion support, physics-based motion |
47
- | Privacy | Permission requests, usage descriptions, privacy nutrition labels, minimal data collection |
48
- | Right-to-Left | RTL layout mirroring, bidirectional text, icons that flip, exceptions |
49
- | SF Symbols | Symbol categories, rendering modes, variable color, custom symbols, weight matching |
50
- | Spatial Layout | visionOS window placement, depth, ergonomic zones, Z-axis design |
51
- | Typography | SF Pro, Dynamic Type sizes, text styles, custom fonts, font weight hierarchy, line spacing |
52
- | Writing | UI copy guidelines, tone, capitalization rules, error messages, button labels, conciseness |
50
+ - `hig-platforms` for how these foundations shift per device.
51
+ - `hig-components-layout`, `hig-components-content` for specific containers.
52
+ - `swiftui-liquid-glass` for the iOS 26 glass APIs in depth.
53
53
 
54
- ## Applying Foundations Together
54
+ ## References
55
55
 
56
- Consider how principles interact:
57
-
58
- 1. **Color + Dark Mode + Accessibility** -- Custom palettes must work in both modes while maintaining WCAG contrast ratios. Start with system semantic colors.
59
-
60
- 2. **Typography + Accessibility + Layout** -- Dynamic Type must scale without breaking layouts. Use text styles and Auto Layout for the full range of type sizes.
61
-
62
- 3. **Icons + Branding + SF Symbols** -- Custom icons should match SF Symbols weight and optical sizing. Brand elements should integrate without overriding system conventions.
63
-
64
- 4. **Motion + Accessibility + Feedback** -- Every animation must have a Reduce Motion alternative. Motion should reinforce spatial relationships, not decorate.
65
-
66
- 5. **Privacy + Writing + Onboarding** -- Permission requests need clear, specific usage descriptions. Time them to when the user will understand the benefit.
67
-
68
- ## Output Format
69
-
70
- 1. **Cite the specific HIG foundation** by topic and section.
71
- 2. **Note platform differences** for the user's target platforms.
72
- 3. **Provide concrete code patterns** (SwiftUI/UIKit/AppKit).
73
- 4. **Explain accessibility impact** (contrast ratios, Dynamic Type scaling, VoiceOver behavior).
74
-
75
- ## Questions to Ask
76
-
77
- 1. Which platforms are you targeting?
78
- 2. Do you have existing brand guidelines?
79
- 3. What accessibility level are you targeting? (WCAG AA, AAA, Apple baseline?)
80
- 4. System colors or custom?
81
-
82
- ## Related Skills
83
-
84
- - **hig-platforms** -- How foundations apply per platform (e.g., type scale differences on watchOS vs macOS)
85
- - **hig-patterns** -- Interaction patterns where foundations like writing and accessibility are critical
86
- - **hig-components-layout** -- Structural components implementing layout principles
87
- - **hig-components-content** -- Content display using color, typography, and images
88
-
89
- ---
90
-
91
- *Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
92
-
93
- ## When to Use
94
- This skill is applicable to execute the workflow or actions described in the overview.
56
+ - https://developer.apple.com/design/human-interface-guidelines/foundations
57
+ - https://developer.apple.com/design/human-interface-guidelines/typography
58
+ - https://developer.apple.com/design/human-interface-guidelines/color
59
+ - https://developer.apple.com/design/human-interface-guidelines/dark-mode
60
+ - https://developer.apple.com/design/human-interface-guidelines/layout
61
+ - https://developer.apple.com/design/human-interface-guidelines/sf-symbols
62
+ - https://developer.apple.com/design/human-interface-guidelines/materials
63
+ - https://developer.apple.com/design/human-interface-guidelines/motion
64
+ - https://developer.apple.com/design/human-interface-guidelines/app-icons
65
+ - https://developer.apple.com/design/human-interface-guidelines/writing
66
+ - https://developer.apple.com/design/human-interface-guidelines/accessibility
@@ -0,0 +1,132 @@
1
+ # Foundations in detail
2
+
3
+ Companion to `../SKILL.md` for the `hig-foundations` skill.
4
+
5
+ ## 1. Typography
6
+
7
+ Ask: if the user sets the largest accessibility text size, does every string
8
+ still fit, wrap or scroll?
9
+
10
+ - Use text styles (`.font(.body)`, `.headline`, `.caption`) rather than fixed
11
+ point sizes. Text styles track Dynamic Type automatically.
12
+ - For a custom font, pass `relativeTo:` so it scales with a text style:
13
+ `.font(.custom("Brand-Regular", size: 17, relativeTo: .body))`.
14
+ - Scale non-text measurements that sit next to text with `@ScaledMetric`, for
15
+ example an icon frame of 24 points that should grow with the label.
16
+ - Allow wrapping. Avoid `.lineLimit(1)` on primary content; where a single line
17
+ is required, add `.minimumScaleFactor` only as a last resort.
18
+ - At accessibility sizes, switch horizontal arrangements to vertical. Read
19
+ `@Environment(\.dynamicTypeSize)` and check `.isAccessibilitySize`, or use
20
+ `ViewThatFits` to let the layout choose.
21
+ - Keep a clear hierarchy with weight and style, not with many sizes. Two or
22
+ three styles per screen is usually enough.
23
+
24
+ Review signal: truncated order totals, overlapping labels, or buttons whose
25
+ titles are clipped at `accessibility3` and above.
26
+
27
+ ## 2. Color
28
+
29
+ Ask: does this color mean something, and does it still mean it in dark mode,
30
+ with increased contrast, and to someone who cannot distinguish red from green?
31
+
32
+ - Prefer semantic colors: `.primary`, `.secondary`, `Color(.systemBackground)`,
33
+ `Color(.secondarySystemBackground)`, `.tint`. They adapt to appearance and
34
+ contrast settings for free.
35
+ - Define brand colors in the asset catalog with light, dark and high-contrast
36
+ variants instead of branching on `colorScheme` in code.
37
+ - Set the app accent once with `.tint(...)` near the root; controls pick it up.
38
+ - Never carry meaning by color alone. A failed payment shows an icon and a
39
+ word, not only a red row.
40
+ - Aim for at least 4.5:1 contrast for body text and 3:1 for large text and
41
+ essential glyphs.
42
+
43
+ Review signal: hard-coded hex values, `Color.white` text on a brand color that
44
+ fails contrast in dark mode, status conveyed only by hue.
45
+
46
+ ## 3. Layout, margins and safe areas
47
+
48
+ Ask: is content kept clear of the status bar, Dynamic Island, home indicator,
49
+ rounded corners and the keyboard, while backgrounds still reach the edges?
50
+
51
+ - Leave safe areas alone for content; extend only backgrounds with
52
+ `.ignoresSafeArea()` or `.background(..., ignoresSafeAreaEdges: .all)`.
53
+ - Use `.safeAreaInset(edge:)` for a bottom bar that content should scroll
54
+ behind, instead of padding by a guessed height.
55
+ - Use `.contentMargins` on scroll views to keep reading width comfortable on
56
+ iPad and in landscape.
57
+ - Keep interactive targets at least 44 by 44 points on iOS and iPadOS; pad the
58
+ hit area with `.contentShape` if the visual is smaller.
59
+ - Group related items by proximity and alignment. Reach for a divider only when
60
+ spacing alone does not separate groups.
61
+ - Adapt to size classes (`@Environment(\.horizontalSizeClass)`) instead of
62
+ device checks.
63
+
64
+ ## 4. Icons and SF Symbols
65
+
66
+ Ask: is there a system symbol for this, and does it match the weight of the
67
+ text beside it?
68
+
69
+ - Use `Image(systemName:)` and `Label` so symbols align with text baselines and
70
+ scale with Dynamic Type.
71
+ - Pick a rendering mode on purpose: `.symbolRenderingMode(.hierarchical)` for
72
+ depth, `.palette` for brand pairs, `.multicolor` where the symbol ships it.
73
+ - Use `.symbolVariant(.fill)` for selected states, as tab bars do.
74
+ - Animate state with `.symbolEffect` (bounce on add-to-cart, pulse while
75
+ syncing) and `.contentTransition(.symbolEffect(.replace))` between glyphs.
76
+ - Custom symbols belong in the asset catalog as symbol templates so they gain
77
+ weights and scales like system ones.
78
+
79
+ ## 5. Materials, Liquid Glass and depth
80
+
81
+ Ask: does this layer float above content, and does the content stay legible
82
+ under it?
83
+
84
+ - On iOS 26 and later, system bars, tab bars, sheets and toolbars adopt Liquid
85
+ Glass automatically when built with standard SwiftUI containers. Avoid
86
+ painting opaque backgrounds on them; that removes the effect.
87
+ - For custom floating controls, apply `.glassEffect()` and group neighbors in a
88
+ `GlassEffectContainer` so shapes blend and morph together. Keep glass for the
89
+ navigation and control layer, not for content cards.
90
+ - Use `.buttonStyle(.glass)` or `.glassProminent` for floating actions that
91
+ should match system controls.
92
+ - Before iOS 26, use materials (`.regularMaterial`, `.thinMaterial`) for
93
+ overlays; gate newer APIs with `if #available(iOS 26, *)`.
94
+ - Respect Reduce Transparency: system materials handle it, custom blurs must
95
+ check `accessibilityReduceTransparency`.
96
+
97
+ ## 6. Motion
98
+
99
+ Ask: does this animation explain a change, and what happens when Reduce Motion
100
+ is on?
101
+
102
+ - Animate to show cause and effect: an item moving into a list, a sheet coming
103
+ from where it was triggered. Use `matchedGeometryEffect` or
104
+ `.navigationTransition(.zoom(sourceID:in:))` for continuity.
105
+ - Prefer spring animations (`.smooth`, `.snappy`, `.bouncy`) that can be
106
+ interrupted.
107
+ - Read `@Environment(\.accessibilityReduceMotion)` and replace large movement
108
+ with cross-fades.
109
+ - Never block interaction until an animation finishes.
110
+
111
+ ## 7. App icon
112
+
113
+ - Provide a single 1024 by 1024 source and let Xcode generate sizes; on iOS 18
114
+ and later supply dark and tinted variants. From iOS 26, author layered icons
115
+ in Icon Composer so the system can render the glass appearance.
116
+ - Keep the icon a simple, recognizable shape without text or screenshots.
117
+
118
+ ## 8. Writing
119
+
120
+ - Use the words people use: "Save note", not "Persist entry".
121
+ - Buttons are verbs; alerts say what happened and what the person can do.
122
+ - Keep error text specific and blameless: "This coupon has expired" rather than
123
+ "Invalid input".
124
+ - Localize every user-facing string and leave room for text that grows by 30 to
125
+ 40 percent in other languages.
126
+
127
+ ## 9. Accessibility, as a foundation
128
+
129
+ Accessibility is a property of every item above, not a separate pass. A quick
130
+ screen test covers most of it: largest text size, VoiceOver swipe through the
131
+ screen, Increase Contrast, Reduce Motion, and right-to-left pseudo-language.
132
+ Deeper implementation guidance lives in the `ios-accessibility` skill.
@@ -1,110 +1,151 @@
1
1
  ---
2
2
  name: hig-inputs
3
- description: "Apple Human Interface Guidelines for input methods: touch gestures, keyboards, Apple Pencil, pointing devices, game controllers, Digital Crown and spatial input. Use when designing or reviewing input controls, forms or text entry on an Apple platform."
4
- risk: unknown
5
- source: community
6
- date_added: '2026-02-27'
3
+ description: "Apple HIG for input mapped to SwiftUI: touch gestures, keyboards, pointer, Apple Pencil, focus and game controllers, Digital Crown, eyes and hands, haptics. Use when designing or reviewing input on an Apple platform."
4
+ metadata:
5
+ risk: safe
6
+ source: multi-agent-pipeline
7
+ date_added: "2026-09-25"
7
8
  ---
8
9
 
9
- # Apple HIG: Inputs
10
-
11
- Check for `.claude/apple-design-context.md` before asking questions. Use existing context and only ask for information not already covered.
12
-
13
- ## Key Principles
14
-
15
- ### General
16
-
17
- 1. **Support multiple input methods.** Touch, pointer, keyboard, pencil, voice, eyes, hands, controllers. Design for the inputs available on each platform. On iPadOS, support both touch and pointer; on macOS, both pointer and keyboard.
18
-
19
- 2. **Consistent feedback for every input action.** Visible, audible, or haptic response.
20
-
21
- ### Gestures
22
-
23
- 3. **Standard gestures must behave consistently.** Tap to activate, swipe to scroll/navigate, pinch to zoom, long press for context menus, drag to move. Don't override system gestures (edge swipes for back, Home, notifications).
24
-
25
- 4. **Use standard recognizers; keep custom gestures discoverable.** Apple's built-in recognizers handle edge cases and accessibility. If you add non-standard gestures, provide hints or coaching to teach them.
26
-
27
- ### Apple Pencil
28
-
29
- 5. **Precision drawing, markup, and selection.** Support pressure, tilt, and hover. Distinguish finger from Pencil when appropriate (finger pans, Pencil draws).
30
-
31
- 6. **Support Scribble in text fields.** Users expect to write with Pencil in any text input.
32
-
33
- ### Keyboards
34
-
35
- 7. **Keyboard shortcuts and full navigation.** Standard shortcuts (Cmd+C/V/Z) plus custom ones visible in the iPadOS Command key overlay. Logical tab order.
36
-
37
- 8. **Respect the software keyboard.** Adjust layout when keyboard appears. Use keyboard-avoidance APIs.
38
-
39
- ### Game Controllers
40
-
41
- 9. **MFi controllers with on-screen fallbacks.** Map to extended gamepad profile, sensible defaults, remappable. Always offer touch or keyboard alternatives.
42
-
43
- ### Pointer and Trackpad
44
-
45
- 10. **Native feel.** Hover effects, pointer shape adaptation, standard cursor behaviors. Two-finger scroll, pinch to zoom, swipe to navigate.
46
-
47
- ### Digital Crown
48
-
49
- 11. **Primary scrolling and value-adjustment input on watchOS.** Scrolling lists, adjusting values, navigating views. Haptic feedback at detents.
50
-
51
- ### Eyes and Spatial (visionOS)
52
-
53
- 12. **Look and pinch.** Generous hit targets (eye tracking is less precise than touch). Avoid sustained gaze for activation. Direct hand manipulation in immersive experiences.
54
-
55
- ### Focus System
56
-
57
- 13. **Critical for tvOS and visionOS.** Predictable focus movement. Every interactive element focusable. Clear visual indicators (scale, highlight, elevation). Logical focus groups.
58
-
59
- ### Remotes
60
-
61
- 14. **Siri Remote: limited surface.** Touch area for swiping, clickpad for selection, few physical buttons. Keep interactions simple.
62
-
63
- ### Motion and Nearby
64
-
65
- 15. **Gyroscope, accelerometer, UWB: use judiciously.** Suits gaming, fitness, AR. Not for essential tasks. Provide calibration and reset. For UWB, communicate distance and direction with visual or haptic cues.
66
-
67
- ## Topics
68
-
69
- | Topic | Key content |
70
- |---|---|
71
- | Touch gestures | Tap, swipe, pinch, long press, drag, system gestures |
72
- | Apple Pencil | Precision, pressure, tilt, hover, handwriting |
73
- | Keyboards | Shortcuts, navigation, software keyboard, Command key |
74
- | Game controllers | MFi, extended gamepad, remapping, fallbacks |
75
- | Pointer/trackpad | Hover, cursor morphing, trackpad gestures |
76
- | Digital Crown | Scrolling, value adjustment, haptic detents |
77
- | Eye tracking | Look and tap, gaze targeting, hit target sizing |
78
- | Spatial input | Hand gestures, direct manipulation, immersive input |
79
- | Focus system | tvOS/visionOS navigation, focus indicators, groups |
80
- | Remotes | Touch surface, clickpad, simple interactions |
81
- | Motion sensors | Gyroscope, accelerometer, calibration, gaming |
82
- | Nearby interactions | U1 chip, directional finding, proximity triggers |
83
- | Camera Control | iPhone camera hardware button, quick launch |
84
-
85
- ## Output Format
86
-
87
- 1. **Input method recommendations by platform** and how they interact.
88
- 2. **Gesture specification table** -- standard and custom gestures with expected behaviors.
89
- 3. **Keyboard shortcut recommendations** following system conventions.
90
- 4. **Accessibility input alternatives** for VoiceOver, Switch Control, etc.
91
-
92
- ## Questions to Ask
93
-
94
- 1. Which platforms and input devices?
95
- 2. Productivity or casual app?
96
- 3. Custom gestures in the design?
97
- 4. Game controller support needed?
98
-
99
- ## Related Skills
100
-
101
- - **hig-components-status** -- Progress indicators responding to input (pull-to-refresh)
102
- - **hig-components-system** -- System experiences with unique input constraints
103
- - **hig-technologies** -- VoiceOver, Siri voice input, ARKit spatial gesture context
104
-
105
- ---
106
-
107
- *Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
108
-
109
- ## When to Use
110
- This skill is applicable to execute the workflow or actions described in the overview.
10
+ # HIG Inputs
11
+
12
+ People reach the same app with fingers, a trackpad, a keyboard, a pencil, a
13
+ remote, a crown, or their eyes. The design goal is that every task can be done
14
+ with whichever input the person has, and that each input feels native rather
15
+ than emulated. This skill covers what each input expects and how SwiftUI
16
+ supports it.
17
+
18
+ ## The baseline rule
19
+
20
+ Any action exposed only through a gesture must also be reachable some other
21
+ way: a button, a menu item, a context menu, or an accessibility action. Gestures
22
+ are shortcuts, not the only door.
23
+
24
+ Checklist for a new interactive element:
25
+
26
+ - Is there a visible control or menu entry for it?
27
+ - Does it respond to touch, pointer and keyboard where the platform has them?
28
+ - Does VoiceOver expose it (label, trait, and custom actions for swipes)?
29
+ - Is the hit area at least 44 by 44 points (about 60 on visionOS)?
30
+ - Is there feedback: a visual change, and a haptic where it adds meaning?
31
+
32
+ ## Touch gestures
33
+
34
+ - Use standard gestures with their standard meanings: tap to activate, swipe to
35
+ reveal row actions, long press for a context menu, pinch to zoom, edge swipe
36
+ to go back. Do not repurpose them.
37
+ - Prefer built-in behavior over custom recognizers: `.swipeActions` on list
38
+ rows, `.contextMenu` for long press, `.refreshable` for pull to refresh.
39
+ - For custom gestures use `DragGesture`, `MagnifyGesture` and `RotateGesture`
40
+ and compose with `.simultaneously(with:)` or `.exclusively(before:)`.
41
+ - Do not fight the system: leave screen edges and the home indicator area to
42
+ system gestures.
43
+ - Give custom gestures an accessibility equivalent with
44
+ `.accessibilityAction(named:)`.
45
+
46
+ ## Keyboards
47
+
48
+ On-screen keyboard:
49
+
50
+ - Choose the keyboard and content type so AutoFill and suggestions work:
51
+ `.keyboardType(.decimalPad)` for a quantity, `.textContentType(.oneTimeCode)`
52
+ for a verification code.
53
+ - Set `.submitLabel` and move focus with `@FocusState` so Return advances
54
+ through a form.
55
+ - Keep the focused field visible above the keyboard; SwiftUI's safe area
56
+ handles this if you do not disable keyboard avoidance.
57
+ - Dismiss with `.scrollDismissesKeyboard(.interactively)` on scrolling forms.
58
+
59
+ Hardware keyboard (iPad, Mac, visionOS):
60
+
61
+ - Add shortcuts with `.keyboardShortcut("n", modifiers: .command)` for common
62
+ commands such as a new note; list them in `.commands` so they appear in the
63
+ menu bar and the iPad shortcut overlay.
64
+ - Do not override system shortcuts (Command-C, Command-Q, Command-Tab).
65
+ - Support full keyboard navigation: focusable controls, visible focus rings,
66
+ `.onKeyPress` for arrow-key movement in custom views.
67
+
68
+ ## Pointer and trackpad
69
+
70
+ - On iPad and Mac, controls should react to hover. Standard buttons do; custom
71
+ views use `.hoverEffect(.highlight)` or `.onHover`.
72
+ - Offer context menus on secondary click (the same `.contextMenu` serves long
73
+ press and right click).
74
+ - Support precise interactions the pointer enables: multi-select, drag to
75
+ reorder, resizing, tooltips via `.help`.
76
+ - Use `.pointerStyle` (iPadOS 18 and macOS 15 and later) to signal resize or
77
+ precision regions.
78
+
79
+ ## Apple Pencil
80
+
81
+ - Pencil is for drawing, writing and precise marking; do not require it.
82
+ - Use PencilKit (`PKCanvasView`) for inking rather than a custom renderer.
83
+ - Scribble lets people handwrite into any standard text field; do not block it
84
+ with custom text input.
85
+ - Handle the double tap and squeeze gestures through
86
+ `.onPencilDoubleTap` and `.onPencilSqueeze`, respecting the preferred action
87
+ the person set in Settings.
88
+ - Show hover previews on supported iPads when the pencil approaches.
89
+
90
+ ## Focus-driven input: Apple TV, keyboard navigation, game controllers
91
+
92
+ - Every interactive element must be focusable and show a clear focused state.
93
+ - Shape movement with `.focusSection()` so focus jumps between logical groups
94
+ rather than scanning element by element.
95
+ - Set a sensible starting focus with `.defaultFocus`.
96
+ - The Siri Remote touch surface swipes and clicks; Menu or Back always goes back.
97
+ - For games, use the Game Controller framework, support standard button
98
+ mappings, and show on-screen touch controls when no controller is attached.
99
+
100
+ ## Digital Crown
101
+
102
+ - The crown scrolls by default. For value adjustment bind it with
103
+ `.digitalCrownRotation($value, from:through:by:sensitivity:)`.
104
+ - Pair crown changes with haptic detents so each step is felt.
105
+ - Keep crown use predictable: the same rotation direction increases values
106
+ throughout the app.
107
+
108
+ ## Eyes and hands (visionOS)
109
+
110
+ - People look at an element to target it and pinch to activate. Standard
111
+ controls show the system hover effect automatically; custom views need
112
+ `.hoverEffect()` and a `.contentShape` matching their visual shape.
113
+ - Keep targets well separated and avoid placing them at the edges of vision.
114
+ - Direct touch works for content within reach; design for both.
115
+ - Avoid actions triggered by gaze alone; always require a pinch or tap.
116
+
117
+ ## Haptics and motion input
118
+
119
+ - Use haptics to confirm meaningful events, not every tap:
120
+ `.sensoryFeedback(.selection, trigger: selectedSize)` in a picker,
121
+ `.success` when an order is placed.
122
+ - Shake is reserved for undo; avoid other shake gestures.
123
+ - Motion-based input (tilt) needs a non-motion alternative.
124
+
125
+ ## Review output
126
+
127
+ ```
128
+ [Gesture] Archiving a task is only possible by swiping.
129
+ Fix: add an Archive button to the row's context menu and an
130
+ accessibilityAction(named: "Archive").
131
+ ```
132
+
133
+ ## Related skills
134
+
135
+ - `hig-platforms` for which inputs each device has.
136
+ - `hig-components-system` for menus, controls and text fields.
137
+ - `swiftui-gestures` for gesture implementation detail.
138
+ - `pencilkit-drawing` for Apple Pencil canvases.
139
+
140
+ ## References
141
+
142
+ - https://developer.apple.com/design/human-interface-guidelines/inputs
143
+ - https://developer.apple.com/design/human-interface-guidelines/gestures
144
+ - https://developer.apple.com/design/human-interface-guidelines/keyboards
145
+ - https://developer.apple.com/design/human-interface-guidelines/pointing-devices
146
+ - https://developer.apple.com/design/human-interface-guidelines/apple-pencil-and-scribble
147
+ - https://developer.apple.com/design/human-interface-guidelines/focus-and-selection
148
+ - https://developer.apple.com/design/human-interface-guidelines/digital-crown
149
+ - https://developer.apple.com/design/human-interface-guidelines/game-controls
150
+ - https://developer.apple.com/design/human-interface-guidelines/eyes
151
+ - https://developer.apple.com/design/human-interface-guidelines/playing-haptics