@mmerterden/multi-agent-pipeline 20.2.1 → 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 +912 -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 -35
  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 +79 -8
  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 -65
  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,99 +1,83 @@
1
1
  ---
2
2
  name: hig-patterns
3
- description: "Apple Human Interface Guidelines interaction and UX patterns. Use when an interaction or UX pattern on an Apple platform needs designing or reviewing."
4
- risk: unknown
5
- source: community
6
- date_added: '2026-02-27'
3
+ description: "Apple HIG interaction patterns mapped to SwiftUI: modality, loading, empty and error states, feedback, undo, search, data entry, settings, sharing, accounts. Use when designing a UX flow 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: Interaction Patterns
10
+ # HIG Patterns
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
+ A pattern is a recurring answer to a recurring flow question: how do people get
13
+ started, how do they wait, how do they leave a task, how do they recover from a
14
+ mistake. Apple's own apps answer these consistently, and people carry those
15
+ expectations into yours. This skill lists the questions, the expected answer,
16
+ and how to express it in SwiftUI.
12
17
 
13
- ## Key Principles
18
+ ## Flow questions to settle first
14
19
 
15
- 1. **Minimize modality.** Use modality only when it is critical to get attention, a task must be completed or abandoned, or saving changes is essential. Prefer non-modal alternatives.
20
+ Before drawing screens, answer these for the flow under review:
16
21
 
17
- 2. **Provide clear feedback.** Every action should produce visible, audible, or haptic response. Activity indicators for indeterminate waits, progress bars for determinate, haptics for physical confirmation.
22
+ - Where does it start, and what does the person already know at that point?
23
+ - Which step can they abandon, and what happens to their input if they do?
24
+ - What do they see while the app is working?
25
+ - What do they see when there is nothing to show, or when something fails?
26
+ - How do they undo the last thing they did?
18
27
 
19
- 3. **Support undo over confirmation dialogs.** Destructive actions should be reversible when possible. Undo is almost always better than "Are you sure?"
28
+ Each maps to a pattern in `references/patterns.md`.
20
29
 
21
- 4. **Launch quickly.** Display a launch screen that transitions seamlessly into the first screen. No splash screens with logos. Restore previous state.
30
+ ## Details on demand
22
31
 
23
- 5. **Defer sign-in.** Let users explore before requiring account creation. Support Sign in with Apple and passkeys.
32
+ Load `references/patterns.md` for launch, loading, empty and error states, feedback, undo, search, data entry, settings, sharing, accounts and notifications.
24
33
 
25
- 6. **Keep onboarding brief.** Three screens max. Let users skip. Teach through progressive disclosure and contextual hints.
34
+ ## Choosing how to present a task
26
35
 
27
- 7. **Use progressive disclosure.** Show essentials first, let users drill into details. Don't overwhelm with every option on one screen.
36
+ | Situation | Treatment | SwiftUI |
37
+ |-----------|-----------|---------|
38
+ | Moving deeper into a hierarchy | Push | `NavigationLink(value:)` + `.navigationDestination` |
39
+ | Self-contained task with its own done or cancel | Sheet | `.sheet(item:)` with `.presentationDetents` |
40
+ | Task that needs the whole screen and focus | Full screen | `.fullScreenCover` |
41
+ | Must acknowledge or decide before continuing | Alert | `.alert(_:isPresented:actions:message:)` |
42
+ | Choosing among actions for the current item | Confirmation dialog | `.confirmationDialog` |
43
+ | Quick, dismissible supplemental info | Popover or inline | `.popover`, inline disclosure |
28
44
 
29
- 8. **Respect user attention.** Consolidate notifications, minimize interruptions, give users control over alerts. Never use notifications for marketing.
45
+ Rules of thumb:
30
46
 
31
- ## Topics
47
+ - A sheet should have a clear way out: Cancel on the leading side, the
48
+ confirming action on the trailing side. Protect unsaved input with
49
+ `.interactiveDismissDisabled(hasChanges)` and a discard confirmation.
50
+ - Avoid stacking modals. If a sheet opens another sheet, reconsider the flow.
51
+ - Alerts are interruptions; use them for consequences, not for success.
32
52
 
33
- | Topic | Key content |
34
- |---|---|
35
- | Charting Data | Data visualization patterns, accessible charts, interactive elements |
36
- | Collaboration & Sharing | Share sheets, activity views, collaborative editing, SharePlay |
37
- | Drag and Drop | Drag sources, drop targets, spring loading, multi-item drag, visual feedback |
38
- | Entering Data | Text fields, pickers, steppers, input validation, keyboard types, autofill |
39
- | Feedback | Alerts, action sheets, haptic patterns, sound feedback, visual indicators |
40
- | File Management | Document browser, file providers, iCloud integration, document lifecycle |
41
- | Going Full Screen | Full-screen transitions, immersive content, exiting full screen |
42
- | Launching | Launch screens, state restoration, cold vs warm launch |
43
- | Live Viewing Apps | Live content display, real-time updates, Live Activities, Dynamic Island |
44
- | Loading | Activity indicators, progress views, skeleton screens, lazy loading, placeholders |
45
- | Managing Accounts | Sign in with Apple, passkeys, account creation, credential autofill, account deletion |
46
- | Managing Notifications | Permission requests, grouping, actionable notifications, provisional delivery |
47
- | Modality | Sheets, alerts, popovers, full-screen modals, when to use each |
48
- | Multitasking | iPad Split View, Slide Over, Stage Manager, responsive layout, size class transitions |
49
- | Offering Help | Contextual tips, onboarding hints, help menus, support links |
50
- | Onboarding | Welcome screens, feature highlights, progressive onboarding, skip options |
51
- | Playing Audio | Audio sessions, background audio, Now Playing, audio routing, interruptions |
52
- | Playing Haptics | Core Haptics, UIFeedbackGenerator, haptic patterns, custom haptics |
53
- | Playing Video | Video player controls, picture-in-picture, AirPlay, full-screen video |
54
- | Printing | Print dialogs, page setup, AirPrint integration |
55
- | Ratings & Reviews | SKStoreReviewController, timing, frequency limits, in-app feedback |
56
- | Searching | Search bars, suggestions, scoped search, results display, recents |
57
- | Settings | In-app vs Settings app, preference organization, toggles, defaults |
58
- | Undo and Redo | Shake to undo, undo/redo stack, multi-level undo |
59
- | Workouts | Workout sessions, live metrics, Always On display, summaries, HealthKit |
53
+ ## Review output
60
54
 
61
- ## Pattern Selection Guide
55
+ Name the flow step, the expected pattern, what the build does instead, and the
56
+ change:
62
57
 
63
- | User Goal | Recommended Pattern | Avoid |
64
- |---|---|---|
65
- | First app experience | Brief onboarding (max 3 screens) + progressive disclosure | Long tutorials, mandatory sign-up |
66
- | Waiting for content | Skeleton screens or progress indicators | Blocking spinners with no context |
67
- | Confirming destructive action | Undo support | Excessive "Are you sure?" dialogs |
68
- | Collecting user input | Inline validation, smart defaults, autofill | Modal forms for simple inputs |
69
- | Requesting permissions | Contextual, just-in-time with explanation | Requesting all permissions at launch |
70
- | Providing feedback | Haptics + visual indicator | Silent actions with no confirmation |
71
- | Organizing preferences | In-app settings for frequent items | Burying all settings in system Settings app |
58
+ ```
59
+ [Modality] Editing a product opens a full screen cover with no Cancel.
60
+ Expected: sheet with Cancel and Save; discard confirmation when edited.
61
+ ```
72
62
 
73
- ## Output Format
63
+ ## Related skills
74
64
 
75
- 1. **Recommended pattern with rationale**, citing the relevant HIG topic.
76
- 2. **Step-by-step implementation** covering each screen or state.
77
- 3. **Platform variations** for targeted platforms.
78
- 4. **Common pitfalls** that violate HIG for this pattern.
65
+ - `hig-components-content`, `hig-components-system` for the parts of each pattern.
66
+ - `swiftui-navigation` for push, sheet and deep link implementation.
67
+ - `tipkit` for in-context onboarding.
79
68
 
80
- ## Questions to Ask
69
+ ## References
81
70
 
82
- 1. Where in the app does this pattern appear? What comes before and after?
83
- 2. Which platforms?
84
- 3. Designing from scratch or improving an existing flow?
85
- 4. Does this involve sensitive actions? (Destructive operations, payments, permissions)
86
-
87
- ## Related Skills
88
-
89
- - **hig-foundations** -- Accessibility, color, typography, and privacy principles underlying every pattern
90
- - **hig-platforms** -- Platform-specific pattern implementations
91
- - **hig-components-layout** -- Structural components (tab bars, sidebars, split views) for navigation patterns
92
- - **hig-components-content** -- Content display within patterns (charts, collections, search results)
93
-
94
- ---
95
-
96
- *Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
97
-
98
- ## When to Use
99
- This skill is applicable to execute the workflow or actions described in the overview.
71
+ - https://developer.apple.com/design/human-interface-guidelines/patterns
72
+ - https://developer.apple.com/design/human-interface-guidelines/onboarding
73
+ - https://developer.apple.com/design/human-interface-guidelines/launching
74
+ - https://developer.apple.com/design/human-interface-guidelines/loading
75
+ - https://developer.apple.com/design/human-interface-guidelines/modality
76
+ - https://developer.apple.com/design/human-interface-guidelines/feedback
77
+ - https://developer.apple.com/design/human-interface-guidelines/undo-and-redo
78
+ - https://developer.apple.com/design/human-interface-guidelines/searching
79
+ - https://developer.apple.com/design/human-interface-guidelines/entering-data
80
+ - https://developer.apple.com/design/human-interface-guidelines/settings
81
+ - https://developer.apple.com/design/human-interface-guidelines/drag-and-drop
82
+ - https://developer.apple.com/design/human-interface-guidelines/managing-accounts
83
+ - https://developer.apple.com/design/human-interface-guidelines/managing-notifications
@@ -0,0 +1,92 @@
1
+ # Interaction patterns in detail
2
+
3
+ Companion to `../SKILL.md` for the `hig-patterns` skill.
4
+
5
+ ## Starting: launch and onboarding
6
+
7
+ - Launch straight into useful content. The launch screen should look like the
8
+ first frame of the app, not a splash advert.
9
+ - Restore where the person left off (`@SceneStorage` for per-window state).
10
+ - Keep onboarding optional and short. Teach in context instead, for example a
11
+ TipKit tip the first time someone opens the filters on a product list.
12
+ - Ask for permissions at the moment they are needed, with a sentence of
13
+ context before the system prompt. Never ask for everything at launch.
14
+ - Let people try the app before creating an account whenever possible.
15
+
16
+ ## Waiting: loading and progress
17
+
18
+ - Show content as soon as any part is ready; load the rest progressively.
19
+ - Use `ProgressView(value:total:)` when progress is measurable and an
20
+ indeterminate `ProgressView()` only for short, unknown waits.
21
+ - For content shaped placeholders use `.redacted(reason: .placeholder)` on a
22
+ sample layout, which keeps the page from jumping when data arrives.
23
+ - Keep the interface usable during long work; allow cancellation.
24
+ - Pull to refresh with `.refreshable` on lists and scroll views.
25
+
26
+ ## Nothing to show, or something went wrong
27
+
28
+ - Empty states explain what would appear and offer the next step:
29
+ `ContentUnavailableView("No notes yet", systemImage: "note.text", description: ...)`
30
+ with a button to create one.
31
+ - For search with no results use `ContentUnavailableView.search(text:)`.
32
+ - Errors say what happened in plain language and what to do. Offer retry for
33
+ transient failures; keep entered data intact.
34
+
35
+ ## Feedback and confirmation
36
+
37
+ - Confirm success quietly and in place: a checkmark symbol effect, an updated
38
+ row, a brief haptic (`.sensoryFeedback(.success, trigger:)`).
39
+ - Reserve alerts for failures that block progress.
40
+ - Make destructive actions recoverable (undo, trash) rather than piling on
41
+ confirmation dialogs. Where there is no undo, confirm with a destructive-role
42
+ button (`Button("Delete Order", role: .destructive)`).
43
+
44
+ ## Undo
45
+
46
+ - Register reversible edits with `@Environment(\.undoManager)`; shake to undo on
47
+ iPhone and Command-Z on iPad and Mac come with it.
48
+ - Swipe-to-delete in a list should either be undoable or confirmed.
49
+
50
+ ## Search
51
+
52
+ - Add `.searchable(text:)` to the navigation container so the field sits where
53
+ the platform expects it. Offer `.searchSuggestions` and `.searchScopes` for
54
+ large catalogs.
55
+ - On iOS 26 a dedicated search tab (`Tab(role: .search)`) places search at the
56
+ bottom within reach.
57
+ - Search as the person types when results are local; debounce remote queries.
58
+
59
+ ## Entering data
60
+
61
+ - Ask only for what is needed; prefill what the app knows.
62
+ - Pick the right keyboard and content type (`.keyboardType(.emailAddress)`,
63
+ `.textContentType(.emailAddress)`) so AutoFill works.
64
+ - Validate inline next to the field, after the person leaves it, not on every
65
+ keystroke.
66
+ - Move focus with `@FocusState` and `.submitLabel(.next)`.
67
+
68
+ ## Settings
69
+
70
+ - Put settings people change often inside the app; put rarely changed ones in a
71
+ settings screen. On macOS use a `Settings` scene.
72
+ - Keep defaults good enough that most people never visit settings.
73
+
74
+ ## Sharing, drag and drop, files
75
+
76
+ - Use `ShareLink` with a `Transferable` model; the same conformance powers
77
+ `.draggable` and `.dropDestination`.
78
+ - For document-based apps, `DocumentGroup` provides the browser, open, save and
79
+ rename behavior people expect.
80
+
81
+ ## Accounts
82
+
83
+ - Offer Sign in with Apple wherever other third-party sign-in exists.
84
+ - Support passkeys and AutoFill for passwords.
85
+ - Provide in-app account deletion if the app lets people create an account.
86
+
87
+ ## Notifications
88
+
89
+ - Notify about things people care about and that are time-sensitive, such as an
90
+ order that has shipped. Group by thread and set an interruption level that
91
+ matches urgency.
92
+ - Deep link into the exact content the notification describes.
@@ -1,81 +1,151 @@
1
1
  ---
2
2
  name: hig-platforms
3
- description: "Apple Human Interface Guidelines for platform-specific design. Use when a design has to fit a specific Apple platform's conventions."
4
- risk: unknown
5
- source: community
6
- date_added: '2026-02-27'
3
+ description: "Apple HIG per platform: iPhone, iPad, Mac, Watch, TV and Vision Pro conventions, and adapting one SwiftUI codebase across them. Use when a design has to fit a specific 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: Platform Design
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
- 1. **Each platform has a distinct identity.** Do not port designs between platforms. Respect each platform's conventions, interaction models, and user expectations.
16
-
17
- 2. **iOS: touch-first.** Direct manipulation on a handheld screen. Optimize for one-handed use. Navigation uses tab bars and push/pop stacks.
18
-
19
- 3. **iPadOS: expanded canvas.** Support Split View, Slide Over, and Stage Manager. Use sidebars and multi-column layouts. Support pointer and keyboard alongside touch.
20
-
21
- 4. **macOS: pointer and keyboard.** Dense information display is acceptable. Use menu bars, toolbars, and keyboard shortcuts extensively. Windows are resizable with precise control.
22
-
23
- 5. **tvOS: remote and focus.** Viewed from a distance. Design for the Siri Remote with focus-based navigation. Large text, simple layouts, linear navigation.
24
-
25
- 6. **visionOS: spatial interaction.** 3D environment using windows, volumes, and spaces. Eye tracking for targeting, indirect gestures for interaction. Respect ergonomic comfort zones.
26
-
27
- 7. **watchOS: glanceable and brief.** Information consumable at a glance. Brief interactions. Digital Crown, haptics, and complications for timely content.
28
-
29
- 8. **Games: own paradigm.** Free to define in-game interaction models, but still respect platform conventions for system interactions (notifications, accessibility, controllers).
30
-
31
- ## Topics
32
-
33
- | Topic | Key content |
34
- |---|---|
35
- | iOS | Touch, tab bars, navigation stacks, gestures, screen sizes, safe areas |
36
- | iPadOS | Multitasking, sidebars, pointer, keyboard, Apple Pencil, Stage Manager |
37
- | macOS | Menu bars, toolbars, window management, keyboard shortcuts, dense layouts, Dock |
38
- | tvOS | Focus engine, Siri Remote, lean-back experience, content-forward, parallax |
39
- | visionOS | Spatial computing, windows/volumes/spaces, eye tracking, hand gestures, depth |
40
- | watchOS | Glanceable UI, Digital Crown, complications, notifications, haptics |
41
- | Games | Controllers, immersive experiences, platform-specific conventions, accessibility |
42
-
43
- ## Decision Framework
44
-
45
- 1. **Identify the primary use context.** On the go (iOS/watchOS), at a desk (macOS), on the couch (tvOS), spatial environment (visionOS)?
46
-
47
- 2. **Match input to interaction.** Touch for direct manipulation, pointer for precision, gaze+gesture for spatial, Digital Crown for quick scrolling, remote for focus navigation.
48
-
49
- 3. **Adapt, don't replicate.** A macOS sidebar becomes a tab bar on iPhone. A visionOS volume has no equivalent on watchOS. Translate intent, not implementation.
50
-
51
- 4. **Leverage platform strengths.** Live Activities on iOS, Desktop Widgets on macOS, complications on watchOS, immersive spaces on visionOS.
52
-
53
- 5. **Maintain brand consistency** while respecting each platform's visual language and interaction patterns.
54
-
55
- ## Output Format
56
-
57
- 1. **Platform-specific recommendations** citing relevant HIG sections.
58
- 2. **Platform differences table** comparing navigation, input, layout, and conventions.
59
- 3. **Implementation notes** per platform including recommended APIs and adaptation strategies.
60
-
61
- ## Questions to Ask
62
-
63
- 1. Which platforms are you targeting?
64
- 2. New app or adapting an existing one? If existing, which platform is the base?
65
- 3. SwiftUI or UIKit/AppKit?
66
- 4. Need to support older OS versions?
67
- 5. Primary use context? (On the go, desk, couch, spatial, glanceable?)
68
-
69
- ## Related Skills
70
-
71
- - **hig-foundations** -- Shared principles (color, typography, accessibility, layout) across platforms
72
- - **hig-patterns** -- Interaction patterns that manifest differently per platform
73
- - **hig-components-layout** -- Navigation structures (tab bars, sidebars, split views) that vary by platform
74
- - **hig-components-content** -- Content display that adapts across platforms
75
-
76
- ---
77
-
78
- *Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
79
-
80
- ## When to Use
81
- This skill is applicable to execute the workflow or actions described in the overview.
10
+ # HIG Platforms
11
+
12
+ Every Apple platform has a different distance between person and screen, a
13
+ different primary input, and a different idea of what an app session looks
14
+ like. A screen that is right on iPhone is rarely right, unchanged, anywhere
15
+ else. This skill gives the per-platform defaults, then the shared SwiftUI tools
16
+ that let one codebase adapt instead of fork.
17
+
18
+ ## Start with three questions
19
+
20
+ 1. **How is it held or viewed?** In the hand, on a desk, on the wrist, across a
21
+ room, or floating in space. This sets text size, density and session length.
22
+ 2. **What is the primary input?** Touch, pointer and keyboard, Digital Crown,
23
+ a focus-driven remote, or eyes and hands.
24
+ 3. **How long is a visit?** Seconds on the wrist, minutes on the phone, hours on
25
+ the Mac.
26
+
27
+ The answers usually decide navigation structure before any visual question.
28
+
29
+ ## Platform profiles
30
+
31
+ ### iPhone
32
+
33
+ - One primary task per screen, reachable with a thumb. Primary actions low,
34
+ destructive ones behind confirmation.
35
+ - Top-level navigation in a `TabView`; hierarchy inside each tab with
36
+ `NavigationStack`.
37
+ - Portrait first, but layouts must not break in landscape or at accessibility
38
+ text sizes.
39
+ - On iOS 26, standard tab bars and toolbars render in Liquid Glass and can
40
+ minimize on scroll (`.tabBarMinimizeBehavior(.onScrollDown)`); a search tab
41
+ can use `Tab(role: .search)`.
42
+
43
+ ### iPad
44
+
45
+ - Treat it as a large, multitasking canvas, not a big phone. Support every
46
+ orientation and resizable windows (Stage Manager, and the free-form windowing
47
+ introduced in iPadOS 26).
48
+ - Use `NavigationSplitView` for list-detail content such as orders and their
49
+ line items. Use `.tabViewStyle(.sidebarAdaptable)` so tabs can become a
50
+ sidebar.
51
+ - Support pointer, hardware keyboard shortcuts (`.keyboardShortcut`) and Apple
52
+ Pencil where drawing or markup fits.
53
+ - Support multiple scenes when documents or records can be open side by side.
54
+ - iPadOS 26 adds a menu bar; populate it through `.commands` as on the Mac.
55
+
56
+ ### Mac
57
+
58
+ - Windows are resizable, long-lived and often several at once. Use
59
+ `WindowGroup`, `Window`, `Settings` and `MenuBarExtra` scenes appropriately.
60
+ - Every command belongs in the menu bar with a shortcut; toolbars hold the
61
+ frequent subset. Context menus mirror menu commands.
62
+ - Higher density is expected: smaller controls, hover states, tooltips
63
+ (`.help`), multi-selection, drag and drop.
64
+ - Sidebars, inspectors (`.inspector`) and tables (`Table`) are native idioms.
65
+ - Mac Catalyst or "Designed for iPad" apps should still be checked for menu
66
+ bar completeness and pointer behavior.
67
+
68
+ ### Apple Watch
69
+
70
+ - Glanceable: a visit lasts a few seconds. Show the one thing that matters now,
71
+ such as the status of the latest order.
72
+ - Vertical `NavigationStack` or vertically paged `TabView`
73
+ (`.tabViewStyle(.verticalPage)`); avoid deep hierarchies.
74
+ - Digital Crown scrolls and adjusts values (`.digitalCrownRotation`).
75
+ - Complications and Smart Stack widgets through WidgetKit are often more used
76
+ than the app itself.
77
+ - Large, full-width buttons; edge-to-edge content that follows the display's
78
+ rounded corners.
79
+
80
+ ### Apple TV
81
+
82
+ - Viewed from across a room, driven by a focus engine and the Siri Remote.
83
+ - Everything interactive must be focusable; use `.focusable()`, `@FocusState`
84
+ and `.focusSection()` to shape movement between groups.
85
+ - Large type, generous spacing, content-forward layouts with lockups and
86
+ shelves. Keep text entry to a minimum.
87
+ - Keep overscan-safe margins; the system containers already do.
88
+
89
+ ### Apple Vision Pro
90
+
91
+ - Apps run in windows, volumes and optionally immersive spaces. Start in a
92
+ window; offer immersion only when it adds value.
93
+ - Glass window backgrounds are the default; do not replace them with opaque
94
+ fills. Keep content in the center of the field of view.
95
+ - Input is look and pinch. Give targets at least about 60 points of spacing and
96
+ let the system hover effect show focus (`.hoverEffect()` on custom views).
97
+ - Use ornaments (`.ornament`) for toolbars and tab bars outside the window.
98
+ - Depth is a tool for hierarchy, not decoration; keep text on flat planes.
99
+
100
+ ## One codebase, adapted
101
+
102
+ | Need | SwiftUI tool |
103
+ |------|--------------|
104
+ | List and detail on large screens, stack on small | `NavigationSplitView` (collapses automatically) |
105
+ | Tabs that become a sidebar | `.tabViewStyle(.sidebarAdaptable)` |
106
+ | Layout switches on width | `@Environment(\.horizontalSizeClass)`, `ViewThatFits` |
107
+ | Platform-only modifiers | `#if os(macOS)` / `#if os(visionOS)` kept at the edge of a view |
108
+ | Commands shared by menu, shortcut and toolbar | `.commands`, `CommandMenu`, `.keyboardShortcut` |
109
+ | Several windows of the same content | `WindowGroup(for: Order.ID.self)` plus `openWindow` |
110
+ | Pointer affordances | `.hoverEffect`, `.onHover`, `.pointerStyle` (iPadOS/macOS 15+) |
111
+
112
+ Keep platform conditionals small and local. A view that is half `#if` blocks
113
+ is usually two views that should share a model instead.
114
+
115
+ ## Decision guide: what to drop or add
116
+
117
+ - **Porting phone to watch:** drop browsing and editing; keep status, one or two
118
+ quick actions, and a complication.
119
+ - **Porting phone to iPad:** add a sidebar, keyboard shortcuts, multiple
120
+ windows, drag and drop between apps.
121
+ - **Porting iPad to Mac:** add a full menu bar, settings window, hover states
122
+ and higher density; remove anything that assumes touch only.
123
+ - **Porting to TV:** strip dense forms; favor browsing and playback.
124
+ - **Porting to visionOS:** keep the iPad layout as a starting window, then
125
+ replace custom opaque chrome with system glass and ornaments.
126
+
127
+ ## Review checklist
128
+
129
+ - Navigation container matches the platform (tabs, split view, windows).
130
+ - Primary input works end to end without the others (keyboard-only on Mac,
131
+ focus-only on TV, look-and-pinch on visionOS).
132
+ - Targets meet the platform minimum size.
133
+ - No device-model checks; adaptation keys off size class, scene and platform.
134
+ - Text remains legible at the platform's viewing distance and user text size.
135
+
136
+ ## Related skills
137
+
138
+ - `hig-foundations` for the base layer shared by all platforms.
139
+ - `hig-inputs` for input-specific behavior.
140
+ - `hig-components-layout` for split views, sidebars and tab bars in detail.
141
+ - `swiftui-navigation` for navigation implementation.
142
+
143
+ ## References
144
+
145
+ - https://developer.apple.com/design/human-interface-guidelines/platforms
146
+ - https://developer.apple.com/design/human-interface-guidelines/designing-for-ios
147
+ - https://developer.apple.com/design/human-interface-guidelines/designing-for-ipados
148
+ - https://developer.apple.com/design/human-interface-guidelines/designing-for-macos
149
+ - https://developer.apple.com/design/human-interface-guidelines/designing-for-watchos
150
+ - https://developer.apple.com/design/human-interface-guidelines/designing-for-tvos
151
+ - https://developer.apple.com/design/human-interface-guidelines/designing-for-visionos