@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,82 +1,154 @@
1
1
  ---
2
2
  name: hig-components-status
3
- description: "Apple HIG guidance for status and progress UI components including progress indicators, status bars, and activity rings. Use when designing or reviewing progress, status or feedback UI on an Apple platform."
4
- risk: unknown
5
- source: community
6
- date_added: '2026-02-27'
3
+ description: "Apple HIG for status UI mapped to SwiftUI: progress views, gauges, placeholders, status bar, activity rings, success and failure feedback. Use when showing progress or state 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: Status Components
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
- ### Progress Indicators
16
-
17
- 1. **Show progress for operations longer than a second or two.**
18
-
19
- 2. **Determinate when duration/percentage is known.** A filling progress bar gives users a clear sense of remaining work. Use for downloads, uploads, or any measurable process.
20
-
21
- 3. **Indeterminate when duration is unknown.** A spinner communicates work is happening without promising a timeframe. Use for unpredictable network requests.
22
-
23
- 4. **Prefer progress bars over spinners.** Determinate progress feels faster and more trustworthy.
24
-
25
- 5. **Place indicators where content will appear.** Inline progress near the content area, not modal or distant.
26
-
27
- 6. **Don't stack multiple indicators.** Aggregate simultaneous operations into one representation or show the most relevant.
28
-
29
- ### Status Bars
30
-
31
- 7. **Don't hide the status bar without good reason.** Reserve hiding for immersive experiences (full-screen media, games, AR).
32
-
33
- 8. **Match status bar style to your content.** Light or dark for adequate contrast.
34
-
35
- 9. **Respect safe areas.** No interactive content behind the status bar.
36
-
37
- 10. **Restore promptly** when exiting immersive contexts.
38
-
39
- ### Activity Rings
40
-
41
- 11. **Activity rings are for Move, Exercise, and Stand goals.** Don't repurpose the ring metaphor for unrelated data.
42
-
43
- 12. **Respect ring color conventions.** Red (Move), green (Exercise), blue (Stand) are strongly associated with Apple Fitness.
44
-
45
- 13. **Use HealthKit APIs** for activity data rather than manual tracking.
46
-
47
- 14. **Celebrate completions** with animation and haptics when rings close.
48
-
49
- ## Topics
50
-
51
- | Topic | Key content |
52
- |---|---|
53
- | Progress bars and spinners | Determinate, indeterminate, inline placement, duration |
54
- | iOS/iPadOS status bar | System info, visibility, style, safe areas |
55
- | watchOS activity rings | Move/Exercise/Stand, HealthKit, fitness tracking, color |
56
-
57
- ## Output Format
58
-
59
- 1. **Indicator type recommendation** with rationale (determinate vs indeterminate).
60
- 2. **Timing and animation guidance** -- duration thresholds, animation style, transitions.
61
- 3. **Accessibility** -- VoiceOver progress announcements, live region updates.
62
- 4. **Platform-specific behavior** across targeted platforms.
63
-
64
- ## Questions to Ask
65
-
66
- 1. Is the duration known or unknown?
67
- 2. Which platforms?
68
- 3. How long does the operation typically take?
69
- 4. System-level or in-app indicator?
70
-
71
- ## Related Skills
72
-
73
- - **hig-components-system** -- Widgets and complications displaying progress or status
74
- - **hig-inputs** -- Gestures triggering progress states (pull-to-refresh)
75
- - **hig-technologies** -- HealthKit for activity ring data; VoiceOver for progress announcements
76
-
77
- ---
78
-
79
- *Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
80
-
81
- ## When to Use
82
- This skill is applicable to execute the workflow or actions described in the overview.
10
+ # HIG: Status and Progress
11
+
12
+ People tolerate waiting when they can see that something is happening and
13
+ roughly how long it will take. This skill picks the right indicator for the
14
+ situation and checks it is honest, calm and accessible.
15
+
16
+ ## Decide what you know
17
+
18
+ The first question is whether the app knows how much work remains.
19
+
20
+ | What the app knows | Indicator | SwiftUI |
21
+ |---|---|---|
22
+ | Fraction complete (bytes, items, steps) | Determinate bar | `ProgressView(value: done, total: count)` |
23
+ | A deadline or countdown | Timer progress | `ProgressView(timerInterval: range, countsDown: true)` |
24
+ | Nothing about duration | Indeterminate spinner | `ProgressView()` |
25
+ | A level within a range (storage, battery, score) | Gauge | `Gauge(value:in:)` with a `.gaugeStyle` |
26
+ | A value on a fixed scale people set | Rating | a custom control of SF Symbols with `.accessibilityAdjustableAction` |
27
+ | Daily goal completion (Move, Exercise, Stand) | Activity rings | `HKActivityRingView` via `UIViewRepresentable` on iOS |
28
+ | Content is coming, layout is known | Placeholder | `.redacted(reason: .placeholder)` on real row views |
29
+
30
+ Switch from indeterminate to determinate as soon as a total becomes known.
31
+ Never fake a determinate bar that creeps forward on a timer.
32
+
33
+ ## Progress indicators
34
+
35
+ - Show nothing for work that finishes almost instantly; a spinner flashing on
36
+ screen reads as a glitch. Delay showing it briefly, then keep it up long
37
+ enough to be read.
38
+ - Put the indicator where the result will appear: inside the button that
39
+ started the upload, in the row that is syncing, not in a blocking overlay.
40
+ - Label long operations with what is happening ("Uploading 3 of 12 photos")
41
+ and let people cancel or leave the screen while it continues.
42
+ - Keep the app usable while work runs. A full-screen blocking spinner is a
43
+ last resort for work that truly prevents every other action.
44
+ - A bar only moves forward. If an estimate turns out wrong, pause rather than
45
+ jump backwards.
46
+ - In compact spaces such as a toolbar item, show determinate progress as a
47
+ ring with `Gauge` and `.gaugeStyle(.accessoryCircularCapacity)` rather than
48
+ a squeezed bar.
49
+
50
+ ```swift
51
+ struct UploadRow: View {
52
+ let task: UploadTask
53
+
54
+ var body: some View {
55
+ LabeledContent(task.fileName) {
56
+ if let fraction = task.fraction {
57
+ ProgressView(value: fraction)
58
+ .frame(width: 80)
59
+ } else {
60
+ ProgressView()
61
+ }
62
+ }
63
+ .accessibilityValue(task.fraction.map { $0.formatted(.percent) } ?? "Waiting")
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Loading content
69
+
70
+ - Prefer placeholders shaped like the final content (`.redacted`) over a
71
+ centred spinner; the screen stops jumping when data arrives.
72
+ - Keep previously loaded content visible during a refresh, and show the
73
+ refresh with the standard pull-to-refresh control from `.refreshable`.
74
+ - If loading fails, replace the placeholder with a short explanation and a
75
+ retry action, not an alert that has to be dismissed.
76
+
77
+ ## Gauges
78
+
79
+ - Use a gauge for a current value within known bounds, not for progress of a
80
+ task. Storage used out of capacity is a gauge; an upload is progress.
81
+ - `.gaugeStyle(.accessoryCircular)`, `.accessoryCircularCapacity` and
82
+ `.accessoryLinear` match the look of widgets and watch complications.
83
+ - Label the bounds when they matter (`currentValueLabel`,
84
+ `minimumValueLabel`, `maximumValueLabel`) and tint with a gradient only when
85
+ the colour change carries meaning, backed by the numeric label.
86
+
87
+ ## Rating indicators
88
+
89
+ - Show ratings with filled, half and empty symbols and the numeric value for
90
+ VoiceOver ("4.5 out of 5 stars").
91
+ - When people set a rating, make the whole row one adjustable accessibility
92
+ element so swipe up and down changes it.
93
+
94
+ ## Activity rings
95
+
96
+ - Rings belong to Apple's fitness system. Show them only with real
97
+ HealthKit activity summary data, using `HKActivityRingView`; never redraw a
98
+ lookalike for unrelated progress such as task completion.
99
+ - Do not recolour, relabel or repurpose the rings, and keep enough dark
100
+ background around them for contrast.
101
+
102
+ ## The status bar
103
+
104
+ - Leave the status bar visible in most apps; people rely on time, battery and
105
+ connectivity. Hide it (`.statusBarHidden()`) only for immersive media, and
106
+ use `.persistentSystemOverlays(.hidden)` to reduce the home indicator in
107
+ games or video.
108
+ - Keep content legible under it: the system matches its style to the colour
109
+ scheme, so avoid busy imagery right behind it.
110
+
111
+ ## Feedback after an action
112
+
113
+ - Confirm success quietly and in place: a checkmark in the button, a row that
114
+ updates, a short haptic with `.sensoryFeedback(.success, trigger:)`.
115
+ - Reserve alerts for failures that need a decision. For everything else,
116
+ explain inline next to the thing that failed.
117
+ - Network and sync status belongs near the affected content (a banner above
118
+ the list, a badge on the row), and disappears when resolved.
119
+
120
+ ## Accessibility and motion
121
+
122
+ - Every indicator needs an accessibility label; determinate ones expose their
123
+ value, and changes that matter are announced with
124
+ `AccessibilityNotification.Announcement`.
125
+ - Respect Reduce Motion (`@Environment(\.accessibilityReduceMotion)`): swap
126
+ pulsing or shimmering placeholders for a static state.
127
+ - Never rely on colour alone to show state; pair it with a symbol or text.
128
+
129
+ ## Review checklist
130
+
131
+ 1. Is the indicator determinate whenever the app knows the total?
132
+ 2. Is it placed where the result appears, without blocking unrelated work?
133
+ 3. Can long work be cancelled or continued in the background?
134
+ 4. Do loading states use placeholders and keep old content during refresh?
135
+ 5. Is a gauge used for levels and progress for tasks, never swapped?
136
+ 6. Is the status bar left alone outside immersive content?
137
+ 7. Are success and failure communicated inline, with alerts only for decisions?
138
+ 8. Do VoiceOver and Reduce Motion users get the same information?
139
+
140
+ ## Related skills
141
+
142
+ - `hig-components-content` for empty and error states of lists and grids.
143
+ - `hig-components-system` for progress shown in widgets and Live Activities.
144
+ - `hig-foundations` for motion, colour and accessibility basics.
145
+ - `healthkit` for reading the activity summary that feeds activity rings.
146
+
147
+ ## References
148
+
149
+ - https://developer.apple.com/design/human-interface-guidelines/progress-indicators
150
+ - https://developer.apple.com/design/human-interface-guidelines/gauges
151
+ - https://developer.apple.com/design/human-interface-guidelines/rating-indicators
152
+ - https://developer.apple.com/design/human-interface-guidelines/activity-rings
153
+ - https://developer.apple.com/design/human-interface-guidelines/status-bars
154
+ - https://developer.apple.com/design/human-interface-guidelines/feedback
@@ -1,101 +1,80 @@
1
1
  ---
2
2
  name: hig-components-system
3
- description: 'Apple HIG guidance for system experience components: widgets, live activities, notifications, complications, home screen quick actions, top shelf, watch faces, app clips, and app shortcuts. Use when designing or reviewing widgets, Live Activities or notifications on an Apple platform.'
4
- risk: unknown
5
- source: community
6
- date_added: '2026-02-27'
3
+ description: "Apple HIG for system surfaces: widgets, controls, Live Activities, Dynamic Island, notifications, complications, quick actions, App Shortcuts, App Clips. Use when an app appears outside its own window."
4
+ metadata:
5
+ risk: safe
6
+ source: multi-agent-pipeline
7
+ date_added: "2026-09-25"
7
8
  ---
8
9
 
9
- # Apple HIG: System Experiences
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. **Glanceable, immediate value.** System experiences bring your app's most important content to surfaces the user sees without launching your app. Design for seconds of attention.
18
-
19
- 2. **Respect platform context.** A Lock Screen widget has different constraints than a Home Screen widget. A complication is far smaller than a top shelf item.
20
-
21
- ### Widgets
22
-
23
- 3. **Show relevant information, not everything.** Display the most useful subset, updated appropriately.
24
-
25
- 4. **Support multiple sizes with distinct layouts.** Each size should be a thoughtful design, not a scaled version of another.
26
-
27
- 5. **Deep-link on tap.** Take users to the relevant content, not the app's root screen.
28
-
29
- ### Live Activities
30
-
31
- 6. **Track events with a clear start and end.** Deliveries, scores, timers, rides. Design for both Dynamic Island and Lock Screen.
32
-
33
- 7. **Stay updated and timely.** Stale data undermines trust. End promptly when the event concludes.
34
-
35
- ### Notifications
36
-
37
- 8. **Respect user attention.** Only send notifications for information users genuinely care about. No promotional or low-value notifications.
38
-
39
- 9. **Actionable and self-contained.** Include enough context to understand and act without opening the app. Support notification actions. Use threading and grouping.
40
-
41
- ### Complications
42
-
43
- 10. **Focused data on the watch face.** Design for the smallest useful representation. Support multiple families. Budget updates wisely.
44
-
45
- ### Home Screen Quick Actions
46
-
47
- 11. **3-4 most common tasks.** Short titles, optional subtitles, relevant SF Symbol icons.
48
-
49
- ### Top Shelf
50
-
51
- 12. **tvOS showcase.** Feature content that entices: new episodes, featured items, recent content.
52
-
53
- ### App Clips
54
-
55
- 13. **Instant, focused functionality within a strict size budget.** Load quickly without App Store download. Only what's needed for the immediate task, then offer full app install.
56
-
57
- ### App Shortcuts
58
-
59
- 14. **Surface key actions to Siri and Spotlight.** Define shortcuts for frequent tasks. Use natural, conversational trigger phrases.
60
-
61
- ## Topics
62
-
63
- | Topic | Key content |
64
- |---|---|
65
- | Widgets | Glanceable info, sizes, deep linking, timeline |
66
- | Live Activities | Real-time tracking, Dynamic Island, Lock Screen |
67
- | Notifications | Attention, actions, grouping, content |
68
- | Complications | Watch face data, families, budgeted updates |
69
- | Quick actions | Haptic Touch, common tasks, SF Symbols |
70
- | Top shelf | Featured content, showcase |
71
- | App Clips | Instant use, lightweight, focused task, NFC/QR |
72
- | Watch faces | Custom complications, face sharing |
73
- | App Shortcuts | Siri, Spotlight, voice triggers |
74
-
75
- ## Output Format
76
-
77
- 1. **System experience recommendation** -- which surface best fits the use case.
78
- 2. **Content strategy** -- what to display, priority, what to omit.
79
- 3. **Update frequency** -- refresh rate including system budget constraints.
80
- 4. **Size/family variants** -- which to support and how layout adapts.
81
- 5. **Deep link behavior** -- where tapping takes the user.
82
-
83
- ## Questions to Ask
84
-
85
- 1. What information needs to surface outside the app?
86
- 2. Which platform?
87
- 3. How frequently does the data update?
88
- 4. What is the primary glanceable need?
89
-
90
- ## Related Skills
91
-
92
- - **hig-components-status** -- Progress indicators in widgets or Live Activities
93
- - **hig-inputs** -- Interaction patterns for system experiences (Digital Crown for complications)
94
- - **hig-technologies** -- Siri for App Shortcuts, HealthKit for complications, NFC for App Clips
95
-
96
- ---
97
-
98
- *Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
99
-
100
- ## When to Use
101
- This skill is applicable to execute the workflow or actions described in the overview.
10
+ # HIG: System Surfaces
11
+
12
+ System surfaces show a slice of the app where people already are: the Home
13
+ Screen, the Lock Screen, Control Center, the watch face, Siri and Spotlight.
14
+ Each is small, glanceable and shared with every other app, so the bar is
15
+ relevance first and decoration last.
16
+
17
+ ## Choose the surface
18
+
19
+ | People want to... | Surface | Framework |
20
+ |---|---|---|
21
+ | Glance at current information without opening the app | Widget | WidgetKit `Widget`, `TimelineProvider` |
22
+ | Flip a setting or start an action in one tap | Control | WidgetKit `ControlWidget` (iOS 18) |
23
+ | Follow something happening right now, minute by minute | Live Activity | ActivityKit + WidgetKit `ActivityConfiguration` |
24
+ | Learn that something changed while away | Notification | UserNotifications, APNs |
25
+ | See one value on the watch face | Complication | WidgetKit accessory families on watchOS |
26
+ | Jump to a frequent task from the app icon | Quick action | `UIApplicationShortcutItem` |
27
+ | Ask Siri, Spotlight or the Action button to do something | App Shortcut | App Intents `AppShortcutsProvider` |
28
+ | Finish a small task without installing the app | App Clip | App Clip target + invocation URL |
29
+ | Browse featured content on Apple TV | Top Shelf | `TVTopShelfContentProvider` |
30
+
31
+ Pick one primary surface per job. A delivery that is en route is a Live
32
+ Activity; the order being placed is a notification; the list of open orders
33
+ is a widget.
34
+
35
+ ## Shared rules
36
+
37
+ - Show the one thing that matters now, then stop. Anything needing reading or
38
+ typing belongs in the app.
39
+ - Tapping a surface opens the app at the exact item shown, via `widgetURL`,
40
+ `Link` or the intent's result, never at the root screen.
41
+ - Content must stay correct without the app running: plan timelines and
42
+ pushes so stale data is never shown as current. Use relative dates
43
+ (`Text(date, style: .relative)`, `Text(timerInterval:)`) so time moves
44
+ without refreshes.
45
+ - Respect privacy on shared screens: mark sensitive text with
46
+ `.privacySensitive()` so it redacts when the device is locked.
47
+
48
+ ## Details on demand
49
+
50
+ Load `references/surfaces.md` for the rules and SwiftUI/WidgetKit/ActivityKit APIs for each surface in the table above.
51
+
52
+ ## Review checklist
53
+
54
+ 1. Is each job on the single surface that fits it best?
55
+ 2. Does every tap land on the exact item shown?
56
+ 3. Is displayed data correct without the app running, with relative times?
57
+ 4. Do widgets support every declared family, tinted and clear appearances?
58
+ 5. Do Live Activities cover all presentations and end promptly?
59
+ 6. Do notifications use honest interruption levels, threads and actions?
60
+ 7. Is sensitive content redacted on locked screens?
61
+ 8. Are App Shortcuts phrased as tasks and usable without opening the app?
62
+
63
+ ## Related skills
64
+
65
+ - `widgetkit`, `live-activities`, `push-notifications`, `app-intents`,
66
+ `app-clips` for implementation detail.
67
+ - `hig-components-status` for progress and gauges inside these surfaces.
68
+ - `hig-technologies` for Siri, Apple Pay and other system technologies.
69
+
70
+ ## References
71
+
72
+ - https://developer.apple.com/design/human-interface-guidelines/widgets
73
+ - https://developer.apple.com/design/human-interface-guidelines/controls
74
+ - https://developer.apple.com/design/human-interface-guidelines/live-activities
75
+ - https://developer.apple.com/design/human-interface-guidelines/notifications
76
+ - https://developer.apple.com/design/human-interface-guidelines/complications
77
+ - https://developer.apple.com/design/human-interface-guidelines/home-screen-quick-actions
78
+ - https://developer.apple.com/design/human-interface-guidelines/app-shortcuts
79
+ - https://developer.apple.com/design/human-interface-guidelines/app-clips
80
+ - https://developer.apple.com/design/human-interface-guidelines/top-shelf
@@ -0,0 +1,98 @@
1
+ # System surfaces in detail
2
+
3
+ Companion to `../SKILL.md` for the `hig-components-system` skill.
4
+
5
+ ## Widgets
6
+
7
+ - Design each supported family separately (`.systemSmall`, `.systemMedium`,
8
+ `.systemLarge`, `.accessoryCircular`, `.accessoryRectangular`,
9
+ `.accessoryInline`); do not just scale one layout.
10
+ - A small widget is one tap target. Medium and larger may contain several
11
+ `Link`s or, since iOS 17, `Button` and `Toggle` backed by an `AppIntent`
12
+ for interactive actions that run without opening the app.
13
+ - Provide a `containerBackground(for: .widget)` so the system can remove or
14
+ tint it in StandBy, on the Lock Screen and in tinted or clear Home Screen
15
+ appearances.
16
+ - Support accented rendering: mark the key elements with
17
+ `.widgetAccentable()` and check images with
18
+ `.widgetAccentedRenderingMode(_:)` (iOS 18) so the widget reads when the
19
+ person tints their Home Screen or uses the iOS 26 clear style.
20
+ - Make widgets configurable through `AppIntentConfiguration` when people will
21
+ want different content in different instances (which project, which list).
22
+ - Keep refreshes within the system budget: rely on timelines and
23
+ `WidgetCenter.shared.reloadTimelines(ofKind:)` after real data changes.
24
+
25
+ ## Controls
26
+
27
+ - A control does one thing: toggle a state or run an action, with a clear
28
+ symbol and a short title. Use `ControlWidgetToggle` for state and
29
+ `ControlWidgetButton` for actions.
30
+ - Controls also appear on the Lock Screen and the Action button, so the
31
+ symbol must make sense with no surrounding app context.
32
+
33
+ ## Live Activities and the Dynamic Island
34
+
35
+ - Use a Live Activity for an event with a clear start and end that people
36
+ track actively (an order being prepared and delivered, a timer, a match).
37
+ It is not a place for ads or general summaries.
38
+ - Design every presentation: Lock Screen banner, Dynamic Island compact
39
+ leading and trailing, minimal (when another activity shares the island),
40
+ and expanded regions.
41
+ - The compact and minimal views carry one glanceable value; put detail in
42
+ the expanded view and the Lock Screen banner.
43
+ - Update through ActivityKit locally or with ActivityKit push notifications;
44
+ keep content state small because the push payload is size limited.
45
+ - End the activity promptly when the event finishes, with a final state
46
+ that shows the outcome, and set a dismissal policy so it does not linger.
47
+
48
+ ## Notifications
49
+
50
+ - Send only what the person would want to be interrupted for, and let them
51
+ choose categories inside the app.
52
+ - Ask for permission in context, after the value is clear, or use
53
+ provisional authorisation so notifications arrive quietly first.
54
+ - Choose the interruption level honestly: `.passive` for background
55
+ information, `.active` by default, `.timeSensitive` only for things that
56
+ lose value within minutes, `.critical` only with Apple's entitlement.
57
+ - Group related notifications with a `threadIdentifier`, and add actionable
58
+ buttons through a `UNNotificationCategory` so common responses happen in
59
+ place.
60
+ - Write the title and body so they make sense on their own and never
61
+ include information the person would not want on a locked screen.
62
+
63
+ ## Complications and watch faces
64
+
65
+ - A complication shows one value that changes during the day (the next
66
+ task, a count, a level). Use `Gauge` and SF Symbols so it adapts to tinted
67
+ faces.
68
+ - Support the accessory families that fit the data, including
69
+ `.accessoryCorner` on watchOS, and provide a meaningful placeholder.
70
+
71
+ ## Home Screen quick actions
72
+
73
+ - Offer a small set of the most frequent tasks (new note, search, scan) and
74
+ keep them stable; dynamic items may reflect recent content.
75
+ - Each needs a short verb-led title and an SF Symbol; handle them in the
76
+ scene delegate so the app opens straight into the task.
77
+
78
+ ## App Shortcuts and Siri
79
+
80
+ - Expose the actions people repeat through `AppIntent` and list the best ones
81
+ in an `AppShortcutsProvider` with natural phrases that include the app name.
82
+ - Shortcuts work with no setup and appear in Spotlight, Siri and the Action
83
+ button, so name them as the task, not the screen.
84
+ - Return a result dialog or snippet so the action completes without opening
85
+ the app when possible.
86
+
87
+ ## App Clips
88
+
89
+ - An App Clip does one task fast (pay for a parking spot, order at a table)
90
+ and asks for no account up front; use Sign in with Apple or Apple Pay when
91
+ identity or payment is needed.
92
+ - Keep it within the platform size limit and offer the full app afterwards
93
+ with `SKOverlay`, never before the task is done.
94
+
95
+ ## Top Shelf (tvOS)
96
+
97
+ - Feature content people are likely to resume or watch next, with artwork at
98
+ the required sizes, and deep link each item into playback or its detail.