buildanything 1.7.1 → 2.0.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 (633) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +9 -3
  3. package/CHANGELOG.md +112 -0
  4. package/README.md +2 -2
  5. package/agents/a11y-architect.md +166 -0
  6. package/agents/business-model.md +80 -29
  7. package/agents/code-architect.md +75 -0
  8. package/agents/code-reviewer.md +255 -0
  9. package/agents/code-simplifier.md +64 -0
  10. package/agents/design-brand-guardian.md +293 -53
  11. package/agents/design-critic.md +139 -0
  12. package/agents/design-inclusive-visuals-specialist.md +6 -19
  13. package/agents/design-ui-designer.md +335 -56
  14. package/agents/design-ux-architect.md +403 -55
  15. package/agents/design-ux-researcher.md +264 -49
  16. package/agents/engineering-ai-engineer.md +26 -36
  17. package/agents/engineering-backend-architect.md +185 -36
  18. package/agents/engineering-data-engineer.md +225 -43
  19. package/agents/engineering-devops-automator.md +227 -74
  20. package/agents/engineering-frontend-developer.md +210 -34
  21. package/agents/engineering-mobile-app-builder.md +6 -1
  22. package/agents/engineering-rapid-prototyper.md +30 -9
  23. package/agents/engineering-security-engineer.md +263 -61
  24. package/agents/engineering-senior-developer.md +128 -19
  25. package/agents/engineering-sre.md +84 -0
  26. package/agents/engineering-technical-writer.md +285 -41
  27. package/agents/feature-intel.md +110 -0
  28. package/agents/ios-app-review-guardian.md +66 -0
  29. package/agents/ios-foundation-models-specialist.md +64 -0
  30. package/agents/ios-storekit-specialist.md +59 -0
  31. package/agents/ios-swift-architect.md +129 -0
  32. package/agents/ios-swift-search.md +137 -0
  33. package/agents/ios-swift-ui-design.md +136 -0
  34. package/agents/marketing-app-store-optimizer.md +246 -64
  35. package/agents/planner.md +216 -0
  36. package/agents/pr-test-analyzer.md +63 -0
  37. package/agents/product-feedback-synthesizer.md +8 -2
  38. package/agents/refactor-cleaner.md +102 -0
  39. package/agents/security-reviewer.md +128 -0
  40. package/agents/silent-failure-hunter.md +54 -0
  41. package/agents/swift-build-resolver.md +119 -0
  42. package/agents/swift-reviewer.md +112 -0
  43. package/agents/tech-feasibility.md +21 -1
  44. package/agents/testing-api-tester.md +236 -59
  45. package/agents/testing-evidence-collector.md +26 -1
  46. package/agents/testing-performance-benchmarker.md +21 -1
  47. package/agents/testing-reality-checker.md +6 -1
  48. package/agents/visual-research.md +116 -0
  49. package/bin/adapters/cycle-counter-tool.ts +155 -0
  50. package/bin/adapters/scribe-tool.ts +71 -0
  51. package/bin/adapters/state-save-tool.ts +130 -0
  52. package/bin/adapters/write-lease-tool.ts +127 -0
  53. package/bin/buildanything-runtime.js +15 -0
  54. package/bin/buildanything-runtime.ts +328 -0
  55. package/bin/setup.js +83 -8
  56. package/commands/add-feature.md +2 -0
  57. package/commands/build.md +752 -332
  58. package/commands/fix.md +65 -0
  59. package/commands/self-check.md +121 -0
  60. package/commands/setup.md +114 -0
  61. package/commands/ux-review.md +63 -0
  62. package/commands/verify.md +69 -0
  63. package/docs/migration/agents.yaml +729 -0
  64. package/docs/migration/phase-graph.yaml +1088 -0
  65. package/docs/migration/sdk-host-compat.md +18 -0
  66. package/hooks/compile-writer-owner-cache.ts +171 -0
  67. package/hooks/hooks.json +36 -0
  68. package/hooks/pre-tool-use +19 -0
  69. package/hooks/pre-tool-use.ts +776 -0
  70. package/hooks/record-mode-transitions.ts +178 -0
  71. package/hooks/session-start +89 -2
  72. package/hooks/subagent-start +17 -0
  73. package/hooks/subagent-start.ts +471 -0
  74. package/hooks/subagent-stop +17 -0
  75. package/hooks/subagent-stop.ts +153 -0
  76. package/package.json +28 -5
  77. package/protocols/architecture-schema.md +171 -0
  78. package/protocols/build-fix.md +52 -0
  79. package/protocols/cleanup.md +54 -0
  80. package/protocols/decision-log.md +131 -0
  81. package/protocols/eval-harness.md +61 -0
  82. package/protocols/fake-data-detector.md +64 -0
  83. package/protocols/ios-context.md +234 -0
  84. package/protocols/ios-frameworks-map.md +323 -0
  85. package/protocols/ios-phase-branches.md +337 -0
  86. package/protocols/ios-preflight.md +27 -0
  87. package/protocols/launch-readiness.md +258 -0
  88. package/protocols/metric-loop.md +153 -0
  89. package/protocols/smoke-test.md +118 -0
  90. package/protocols/state-schema.json +388 -0
  91. package/protocols/state-schema.md +172 -0
  92. package/protocols/verify.md +127 -0
  93. package/protocols/visual-dna.md +185 -0
  94. package/protocols/web-phase-branches.md +351 -0
  95. package/skills/ios/_VENDORED.md +62 -0
  96. package/skills/ios/activitykit/LICENSE +131 -0
  97. package/skills/ios/activitykit/SKILL.md +505 -0
  98. package/skills/ios/activitykit/references/activitykit-patterns.md +868 -0
  99. package/skills/ios/app-intents/LICENSE +131 -0
  100. package/skills/ios/app-intents/SKILL.md +494 -0
  101. package/skills/ios/app-intents/references/appintents-advanced.md +1076 -0
  102. package/skills/ios/app-store-connect-metadata/SKILL.md +148 -0
  103. package/skills/ios/apple-on-device-ai/LICENSE +131 -0
  104. package/skills/ios/apple-on-device-ai/SKILL.md +505 -0
  105. package/skills/ios/apple-on-device-ai/references/coreml-conversion.md +425 -0
  106. package/skills/ios/apple-on-device-ai/references/coreml-optimization.md +344 -0
  107. package/skills/ios/apple-on-device-ai/references/foundation-models.md +508 -0
  108. package/skills/ios/apple-on-device-ai/references/mlx-swift.md +285 -0
  109. package/skills/ios/asc-privacy-manifest/SKILL.md +350 -0
  110. package/skills/ios/hig-components-content/SKILL.md +86 -0
  111. package/skills/ios/hig-components-content/references/activity-views.md +79 -0
  112. package/skills/ios/hig-components-content/references/charts.md +180 -0
  113. package/skills/ios/hig-components-content/references/collections.md +48 -0
  114. package/skills/ios/hig-components-content/references/color-wells.md +42 -0
  115. package/skills/ios/hig-components-content/references/image-views.md +82 -0
  116. package/skills/ios/hig-components-content/references/image-wells.md +34 -0
  117. package/skills/ios/hig-components-content/references/lockups.md +78 -0
  118. package/skills/ios/hig-components-content/references/web-views.md +36 -0
  119. package/skills/ios/hig-components-controls/SKILL.md +88 -0
  120. package/skills/ios/hig-components-controls/references/combo-boxes.md +40 -0
  121. package/skills/ios/hig-components-controls/references/controls.md +112 -0
  122. package/skills/ios/hig-components-controls/references/gauges.md +74 -0
  123. package/skills/ios/hig-components-controls/references/labels.md +92 -0
  124. package/skills/ios/hig-components-controls/references/pickers.md +128 -0
  125. package/skills/ios/hig-components-controls/references/rating-indicators.md +38 -0
  126. package/skills/ios/hig-components-controls/references/segmented-controls.md +94 -0
  127. package/skills/ios/hig-components-controls/references/sliders.md +92 -0
  128. package/skills/ios/hig-components-controls/references/steppers.md +40 -0
  129. package/skills/ios/hig-components-controls/references/text-fields.md +88 -0
  130. package/skills/ios/hig-components-controls/references/text-views.md +56 -0
  131. package/skills/ios/hig-components-controls/references/toggles.md +127 -0
  132. package/skills/ios/hig-components-controls/references/token-fields.md +48 -0
  133. package/skills/ios/hig-components-controls/references/virtual-keyboards.md +156 -0
  134. package/skills/ios/hig-components-dialogs/SKILL.md +76 -0
  135. package/skills/ios/hig-components-dialogs/references/action-sheets.md +74 -0
  136. package/skills/ios/hig-components-dialogs/references/alerts.md +158 -0
  137. package/skills/ios/hig-components-dialogs/references/digit-entry-views.md +32 -0
  138. package/skills/ios/hig-components-dialogs/references/popovers.md +81 -0
  139. package/skills/ios/hig-components-dialogs/references/sheets.md +157 -0
  140. package/skills/ios/hig-components-layout/SKILL.md +99 -0
  141. package/skills/ios/hig-components-layout/references/boxes.md +48 -0
  142. package/skills/ios/hig-components-layout/references/column-views.md +44 -0
  143. package/skills/ios/hig-components-layout/references/lists-and-tables.md +99 -0
  144. package/skills/ios/hig-components-layout/references/ornaments.md +56 -0
  145. package/skills/ios/hig-components-layout/references/outline-views.md +64 -0
  146. package/skills/ios/hig-components-layout/references/panels.md +75 -0
  147. package/skills/ios/hig-components-layout/references/scroll-views.md +123 -0
  148. package/skills/ios/hig-components-layout/references/sidebars.md +109 -0
  149. package/skills/ios/hig-components-layout/references/split-views.md +110 -0
  150. package/skills/ios/hig-components-layout/references/tab-bars.md +173 -0
  151. package/skills/ios/hig-components-layout/references/tab-views.md +68 -0
  152. package/skills/ios/hig-components-layout/references/windows.md +188 -0
  153. package/skills/ios/hig-components-menus/SKILL.md +81 -0
  154. package/skills/ios/hig-components-menus/references/action-button.md +61 -0
  155. package/skills/ios/hig-components-menus/references/buttons.md +261 -0
  156. package/skills/ios/hig-components-menus/references/context-menus.md +105 -0
  157. package/skills/ios/hig-components-menus/references/disclosure-controls.md +84 -0
  158. package/skills/ios/hig-components-menus/references/dock-menus.md +40 -0
  159. package/skills/ios/hig-components-menus/references/edit-menus.md +88 -0
  160. package/skills/ios/hig-components-menus/references/menus.md +171 -0
  161. package/skills/ios/hig-components-menus/references/pop-up-buttons.md +70 -0
  162. package/skills/ios/hig-components-menus/references/pull-down-buttons.md +77 -0
  163. package/skills/ios/hig-components-menus/references/the-menu-bar.md +303 -0
  164. package/skills/ios/hig-components-menus/references/toolbars.md +256 -0
  165. package/skills/ios/hig-components-search/SKILL.md +68 -0
  166. package/skills/ios/hig-components-search/references/page-controls.md +120 -0
  167. package/skills/ios/hig-components-search/references/path-controls.md +40 -0
  168. package/skills/ios/hig-components-search/references/search-fields.md +189 -0
  169. package/skills/ios/hig-components-status/SKILL.md +80 -0
  170. package/skills/ios/hig-components-status/references/activity-rings.md +105 -0
  171. package/skills/ios/hig-components-status/references/progress-indicators.md +116 -0
  172. package/skills/ios/hig-components-status/references/status-bars.md +38 -0
  173. package/skills/ios/hig-components-system/SKILL.md +88 -0
  174. package/skills/ios/hig-components-system/references/app-clips.md +387 -0
  175. package/skills/ios/hig-components-system/references/app-shortcuts.md +114 -0
  176. package/skills/ios/hig-components-system/references/complications.md +425 -0
  177. package/skills/ios/hig-components-system/references/home-screen-quick-actions.md +42 -0
  178. package/skills/ios/hig-components-system/references/live-activities.md +442 -0
  179. package/skills/ios/hig-components-system/references/notifications.md +153 -0
  180. package/skills/ios/hig-components-system/references/top-shelf.md +135 -0
  181. package/skills/ios/hig-components-system/references/watch-faces.md +40 -0
  182. package/skills/ios/hig-components-system/references/widgets.md +517 -0
  183. package/skills/ios/hig-foundations/SKILL.md +98 -0
  184. package/skills/ios/hig-foundations/references/accessibility.md +291 -0
  185. package/skills/ios/hig-foundations/references/app-icons.md +210 -0
  186. package/skills/ios/hig-foundations/references/branding.md +44 -0
  187. package/skills/ios/hig-foundations/references/color.md +274 -0
  188. package/skills/ios/hig-foundations/references/dark-mode.md +116 -0
  189. package/skills/ios/hig-foundations/references/icons.md +263 -0
  190. package/skills/ios/hig-foundations/references/images.md +176 -0
  191. package/skills/ios/hig-foundations/references/immersive-experiences.md +174 -0
  192. package/skills/ios/hig-foundations/references/inclusion.md +189 -0
  193. package/skills/ios/hig-foundations/references/layout.md +425 -0
  194. package/skills/ios/hig-foundations/references/materials.md +238 -0
  195. package/skills/ios/hig-foundations/references/motion.md +103 -0
  196. package/skills/ios/hig-foundations/references/privacy.md +231 -0
  197. package/skills/ios/hig-foundations/references/right-to-left.md +206 -0
  198. package/skills/ios/hig-foundations/references/sf-symbols.md +310 -0
  199. package/skills/ios/hig-foundations/references/spatial-layout.md +142 -0
  200. package/skills/ios/hig-foundations/references/typography.md +1146 -0
  201. package/skills/ios/hig-foundations/references/writing.md +91 -0
  202. package/skills/ios/hig-inputs/SKILL.md +94 -0
  203. package/skills/ios/hig-inputs/references/apple-pencil-and-scribble.md +148 -0
  204. package/skills/ios/hig-inputs/references/camera-control.md +107 -0
  205. package/skills/ios/hig-inputs/references/digital-crown.md +83 -0
  206. package/skills/ios/hig-inputs/references/eyes.md +120 -0
  207. package/skills/ios/hig-inputs/references/focus-and-selection.md +120 -0
  208. package/skills/ios/hig-inputs/references/game-controls.md +156 -0
  209. package/skills/ios/hig-inputs/references/gestures.md +208 -0
  210. package/skills/ios/hig-inputs/references/gyro-and-accelerometer.md +40 -0
  211. package/skills/ios/hig-inputs/references/keyboards.md +234 -0
  212. package/skills/ios/hig-inputs/references/nearby-interactions.md +70 -0
  213. package/skills/ios/hig-inputs/references/pointing-devices.md +237 -0
  214. package/skills/ios/hig-inputs/references/remotes.md +67 -0
  215. package/skills/ios/hig-inputs/references/spatial-interactions.md +70 -0
  216. package/skills/ios/hig-patterns/SKILL.md +104 -0
  217. package/skills/ios/hig-patterns/references/charting-data.md +81 -0
  218. package/skills/ios/hig-patterns/references/collaboration-and-sharing.md +86 -0
  219. package/skills/ios/hig-patterns/references/drag-and-drop.md +134 -0
  220. package/skills/ios/hig-patterns/references/entering-data.md +69 -0
  221. package/skills/ios/hig-patterns/references/feedback.md +67 -0
  222. package/skills/ios/hig-patterns/references/file-management.md +135 -0
  223. package/skills/ios/hig-patterns/references/going-full-screen.md +79 -0
  224. package/skills/ios/hig-patterns/references/launching.md +81 -0
  225. package/skills/ios/hig-patterns/references/live-viewing-apps.md +79 -0
  226. package/skills/ios/hig-patterns/references/loading.md +59 -0
  227. package/skills/ios/hig-patterns/references/managing-accounts.md +107 -0
  228. package/skills/ios/hig-patterns/references/managing-notifications.md +99 -0
  229. package/skills/ios/hig-patterns/references/modality.md +82 -0
  230. package/skills/ios/hig-patterns/references/multitasking.md +131 -0
  231. package/skills/ios/hig-patterns/references/offering-help.md +117 -0
  232. package/skills/ios/hig-patterns/references/onboarding.md +69 -0
  233. package/skills/ios/hig-patterns/references/playing-audio.md +124 -0
  234. package/skills/ios/hig-patterns/references/playing-haptics.md +280 -0
  235. package/skills/ios/hig-patterns/references/playing-video.md +180 -0
  236. package/skills/ios/hig-patterns/references/printing.md +50 -0
  237. package/skills/ios/hig-patterns/references/ratings-and-reviews.md +48 -0
  238. package/skills/ios/hig-patterns/references/searching.md +70 -0
  239. package/skills/ios/hig-patterns/references/settings.md +84 -0
  240. package/skills/ios/hig-patterns/references/undo-and-redo.md +58 -0
  241. package/skills/ios/hig-patterns/references/workouts.md +76 -0
  242. package/skills/ios/hig-platforms/SKILL.md +84 -0
  243. package/skills/ios/hig-platforms/references/designing-for-games.md +159 -0
  244. package/skills/ios/hig-platforms/references/designing-for-ios.md +66 -0
  245. package/skills/ios/hig-platforms/references/designing-for-ipados.md +64 -0
  246. package/skills/ios/hig-platforms/references/designing-for-macos.md +70 -0
  247. package/skills/ios/hig-platforms/references/designing-for-tvos.md +68 -0
  248. package/skills/ios/hig-platforms/references/designing-for-visionos.md +85 -0
  249. package/skills/ios/hig-platforms/references/designing-for-watchos.md +74 -0
  250. package/skills/ios/hig-project-context/SKILL.md +133 -0
  251. package/skills/ios/hig-technologies/SKILL.md +107 -0
  252. package/skills/ios/hig-technologies/references/airplay.md +125 -0
  253. package/skills/ios/hig-technologies/references/always-on.md +62 -0
  254. package/skills/ios/hig-technologies/references/apple-pay.md +441 -0
  255. package/skills/ios/hig-technologies/references/augmented-reality.md +247 -0
  256. package/skills/ios/hig-technologies/references/carekit.md +224 -0
  257. package/skills/ios/hig-technologies/references/carplay.md +119 -0
  258. package/skills/ios/hig-technologies/references/game-center.md +343 -0
  259. package/skills/ios/hig-technologies/references/generative-ai.md +110 -0
  260. package/skills/ios/hig-technologies/references/healthkit.md +120 -0
  261. package/skills/ios/hig-technologies/references/homekit.md +343 -0
  262. package/skills/ios/hig-technologies/references/icloud.md +52 -0
  263. package/skills/ios/hig-technologies/references/id-verifier.md +73 -0
  264. package/skills/ios/hig-technologies/references/imessage-apps-and-stickers.md +105 -0
  265. package/skills/ios/hig-technologies/references/in-app-purchase.md +263 -0
  266. package/skills/ios/hig-technologies/references/live-photos.md +54 -0
  267. package/skills/ios/hig-technologies/references/mac-catalyst.md +216 -0
  268. package/skills/ios/hig-technologies/references/machine-learning.md +394 -0
  269. package/skills/ios/hig-technologies/references/maps.md +221 -0
  270. package/skills/ios/hig-technologies/references/nfc.md +51 -0
  271. package/skills/ios/hig-technologies/references/photo-editing.md +40 -0
  272. package/skills/ios/hig-technologies/references/researchkit.md +134 -0
  273. package/skills/ios/hig-technologies/references/shareplay.md +142 -0
  274. package/skills/ios/hig-technologies/references/shazamkit.md +47 -0
  275. package/skills/ios/hig-technologies/references/sign-in-with-apple.md +288 -0
  276. package/skills/ios/hig-technologies/references/siri.md +523 -0
  277. package/skills/ios/hig-technologies/references/tap-to-pay-on-iphone.md +208 -0
  278. package/skills/ios/hig-technologies/references/voiceover.md +90 -0
  279. package/skills/ios/hig-technologies/references/wallet.md +420 -0
  280. package/skills/ios/ios-26-platform/SKILL.md +53 -0
  281. package/skills/ios/ios-26-platform/references/automatic-adoption.md +161 -0
  282. package/skills/ios/ios-26-platform/references/backward-compat.md +238 -0
  283. package/skills/ios/ios-26-platform/references/liquid-glass.md +255 -0
  284. package/skills/ios/ios-26-platform/references/swiftui-apis.md +277 -0
  285. package/skills/ios/ios-26-platform/references/toolbar-navigation.md +250 -0
  286. package/skills/ios/ios-bootstrap/SKILL.md +107 -0
  287. package/skills/ios/ios-bootstrap/references/apple-docs-mcp-config.md +28 -0
  288. package/skills/ios/ios-bootstrap/references/new-project-dialog.md +41 -0
  289. package/skills/ios/ios-bootstrap/references/xcode-mcp-config.md +29 -0
  290. package/skills/ios/ios-debugger-agent/LICENSE +21 -0
  291. package/skills/ios/ios-debugger-agent/SKILL.md +58 -0
  292. package/skills/ios/ios-debugger-agent/agents/openai.yaml +4 -0
  293. package/skills/ios/ios-entitlements-generator/SKILL.md +47 -0
  294. package/skills/ios/ios-info-plist-hardening/SKILL.md +130 -0
  295. package/skills/ios/ios-maestro-flow-author/SKILL.md +68 -0
  296. package/skills/ios/ios-maestro-flow-author/references/input-and-scroll.yaml +17 -0
  297. package/skills/ios/ios-maestro-flow-author/references/modal-and-dismiss.yaml +14 -0
  298. package/skills/ios/ios-maestro-flow-author/references/onboarding-flow.yaml +16 -0
  299. package/skills/ios/ios-maestro-flow-author/references/tab-navigation.yaml +13 -0
  300. package/skills/ios/ios-maestro-flow-author/references/tap-and-assert.yaml +9 -0
  301. package/skills/ios/swift-accessibility/LICENSE +21 -0
  302. package/skills/ios/swift-accessibility/SKILL.md +371 -0
  303. package/skills/ios/swift-accessibility/examples/before-after-appkit.md +446 -0
  304. package/skills/ios/swift-accessibility/examples/before-after-swiftui.md +441 -0
  305. package/skills/ios/swift-accessibility/examples/before-after-uikit.md +464 -0
  306. package/skills/ios/swift-accessibility/references/assistive-access.md +441 -0
  307. package/skills/ios/swift-accessibility/references/display-settings.md +491 -0
  308. package/skills/ios/swift-accessibility/references/dynamic-type.md +420 -0
  309. package/skills/ios/swift-accessibility/references/media-accessibility.md +421 -0
  310. package/skills/ios/swift-accessibility/references/motor-input.md +393 -0
  311. package/skills/ios/swift-accessibility/references/nutrition-labels.md +362 -0
  312. package/skills/ios/swift-accessibility/references/platform-specifics.md +515 -0
  313. package/skills/ios/swift-accessibility/references/semantic-structure.md +585 -0
  314. package/skills/ios/swift-accessibility/references/testing-auditing.md +507 -0
  315. package/skills/ios/swift-accessibility/references/voice-control.md +317 -0
  316. package/skills/ios/swift-accessibility/references/voiceover-swiftui.md +584 -0
  317. package/skills/ios/swift-accessibility/references/voiceover-uikit.md +519 -0
  318. package/skills/ios/swift-accessibility/references/wcag-mapping.md +167 -0
  319. package/skills/ios/swift-accessibility/resources/audit-template.swift +128 -0
  320. package/skills/ios/swift-accessibility/resources/qa-checklist.md +258 -0
  321. package/skills/ios/swift-actor-persistence/SKILL.md +143 -0
  322. package/skills/ios/swift-concurrency/LICENSE +21 -0
  323. package/skills/ios/swift-concurrency/SKILL.md +171 -0
  324. package/skills/ios/swift-concurrency/references/_index.md +50 -0
  325. package/skills/ios/swift-concurrency/references/actors.md +660 -0
  326. package/skills/ios/swift-concurrency/references/async-algorithms.md +847 -0
  327. package/skills/ios/swift-concurrency/references/async-await-basics.md +266 -0
  328. package/skills/ios/swift-concurrency/references/async-sequences.md +710 -0
  329. package/skills/ios/swift-concurrency/references/core-data.md +560 -0
  330. package/skills/ios/swift-concurrency/references/glossary.md +135 -0
  331. package/skills/ios/swift-concurrency/references/linting.md +155 -0
  332. package/skills/ios/swift-concurrency/references/memory-management.md +569 -0
  333. package/skills/ios/swift-concurrency/references/migration.md +1104 -0
  334. package/skills/ios/swift-concurrency/references/performance.md +593 -0
  335. package/skills/ios/swift-concurrency/references/sendable.md +598 -0
  336. package/skills/ios/swift-concurrency/references/tasks.md +636 -0
  337. package/skills/ios/swift-concurrency/references/testing.md +592 -0
  338. package/skills/ios/swift-concurrency/references/threading.md +495 -0
  339. package/skills/ios/swift-concurrency-6-2/SKILL.md +216 -0
  340. package/skills/ios/swift-protocol-di-testing/SKILL.md +190 -0
  341. package/skills/ios/swift-security-expert/LICENSE +21 -0
  342. package/skills/ios/swift-security-expert/SKILL.md +470 -0
  343. package/skills/ios/swift-security-expert/references/biometric-authentication.md +565 -0
  344. package/skills/ios/swift-security-expert/references/certificate-trust.md +592 -0
  345. package/skills/ios/swift-security-expert/references/common-anti-patterns.md +690 -0
  346. package/skills/ios/swift-security-expert/references/compliance-owasp-mapping.md +537 -0
  347. package/skills/ios/swift-security-expert/references/credential-storage-patterns.md +721 -0
  348. package/skills/ios/swift-security-expert/references/cryptokit-public-key.md +505 -0
  349. package/skills/ios/swift-security-expert/references/cryptokit-symmetric.md +497 -0
  350. package/skills/ios/swift-security-expert/references/keychain-access-control.md +508 -0
  351. package/skills/ios/swift-security-expert/references/keychain-fundamentals.md +596 -0
  352. package/skills/ios/swift-security-expert/references/keychain-item-classes.md +476 -0
  353. package/skills/ios/swift-security-expert/references/keychain-sharing.md +458 -0
  354. package/skills/ios/swift-security-expert/references/migration-legacy-stores.md +727 -0
  355. package/skills/ios/swift-security-expert/references/secure-enclave.md +539 -0
  356. package/skills/ios/swift-security-expert/references/testing-security-code.md +781 -0
  357. package/skills/ios/swift-testing-expert/LICENSE +21 -0
  358. package/skills/ios/swift-testing-expert/SKILL.md +79 -0
  359. package/skills/ios/swift-testing-expert/references/_index.md +12 -0
  360. package/skills/ios/swift-testing-expert/references/async-testing-and-waiting.md +127 -0
  361. package/skills/ios/swift-testing-expert/references/expectations.md +145 -0
  362. package/skills/ios/swift-testing-expert/references/fundamentals.md +141 -0
  363. package/skills/ios/swift-testing-expert/references/migration-from-xctest.md +127 -0
  364. package/skills/ios/swift-testing-expert/references/parallelization-and-isolation.md +95 -0
  365. package/skills/ios/swift-testing-expert/references/parameterized-testing.md +284 -0
  366. package/skills/ios/swift-testing-expert/references/performance-and-best-practices.md +187 -0
  367. package/skills/ios/swift-testing-expert/references/traits-and-tags.md +114 -0
  368. package/skills/ios/swift-testing-expert/references/xcode-workflows.md +70 -0
  369. package/skills/ios/swiftdata-pro/LICENSE +21 -0
  370. package/skills/ios/swiftdata-pro/SKILL.md +102 -0
  371. package/skills/ios/swiftdata-pro/agents/openai.yaml +10 -0
  372. package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.png +0 -0
  373. package/skills/ios/swiftdata-pro/assets/swiftdata-pro-icon.svg +29 -0
  374. package/skills/ios/swiftdata-pro/references/class-inheritance.md +104 -0
  375. package/skills/ios/swiftdata-pro/references/cloudkit.md +10 -0
  376. package/skills/ios/swiftdata-pro/references/core-rules.md +20 -0
  377. package/skills/ios/swiftdata-pro/references/indexing.md +27 -0
  378. package/skills/ios/swiftdata-pro/references/predicates.md +73 -0
  379. package/skills/ios/swiftui-design-principles/AGENTS.md +21 -0
  380. package/skills/ios/swiftui-design-principles/LICENSE +21 -0
  381. package/skills/ios/swiftui-design-principles/README.md +41 -0
  382. package/skills/ios/swiftui-design-principles/SKILL.md +605 -0
  383. package/skills/ios/swiftui-design-principles/metadata.json +10 -0
  384. package/skills/ios/swiftui-design-tokens/SKILL.md +475 -0
  385. package/skills/ios/swiftui-liquid-glass/LICENSE +21 -0
  386. package/skills/ios/swiftui-liquid-glass/SKILL.md +95 -0
  387. package/skills/ios/swiftui-liquid-glass/agents/openai.yaml +4 -0
  388. package/skills/ios/swiftui-liquid-glass/references/liquid-glass.md +280 -0
  389. package/skills/ios/swiftui-performance-audit/LICENSE +21 -0
  390. package/skills/ios/swiftui-performance-audit/SKILL.md +111 -0
  391. package/skills/ios/swiftui-performance-audit/agents/openai.yaml +4 -0
  392. package/skills/ios/swiftui-performance-audit/references/code-smells.md +150 -0
  393. package/skills/ios/swiftui-performance-audit/references/demystify-swiftui-performance-wwdc23.md +46 -0
  394. package/skills/ios/swiftui-performance-audit/references/optimizing-swiftui-performance-instruments.md +29 -0
  395. package/skills/ios/swiftui-performance-audit/references/profiling-intake.md +44 -0
  396. package/skills/ios/swiftui-performance-audit/references/report-template.md +47 -0
  397. package/skills/ios/swiftui-performance-audit/references/understanding-hangs-in-your-app.md +33 -0
  398. package/skills/ios/swiftui-performance-audit/references/understanding-improving-swiftui-performance.md +52 -0
  399. package/skills/ios/swiftui-pro/LICENSE +21 -0
  400. package/skills/ios/swiftui-pro/SKILL.md +108 -0
  401. package/skills/ios/swiftui-pro/agents/openai.yaml +10 -0
  402. package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
  403. package/skills/ios/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
  404. package/skills/ios/swiftui-pro/references/accessibility.md +13 -0
  405. package/skills/ios/swiftui-pro/references/api.md +39 -0
  406. package/skills/ios/swiftui-pro/references/data.md +43 -0
  407. package/skills/ios/swiftui-pro/references/design.md +31 -0
  408. package/skills/ios/swiftui-pro/references/hygiene.md +9 -0
  409. package/skills/ios/swiftui-pro/references/navigation.md +14 -0
  410. package/skills/ios/swiftui-pro/references/performance.md +46 -0
  411. package/skills/ios/swiftui-pro/references/swift.md +56 -0
  412. package/skills/ios/swiftui-pro/references/views.md +35 -0
  413. package/skills/ios/swiftui-ui-patterns/LICENSE +21 -0
  414. package/skills/ios/swiftui-ui-patterns/SKILL.md +100 -0
  415. package/skills/ios/swiftui-ui-patterns/agents/openai.yaml +4 -0
  416. package/skills/ios/swiftui-ui-patterns/references/app-wiring.md +201 -0
  417. package/skills/ios/swiftui-ui-patterns/references/async-state.md +96 -0
  418. package/skills/ios/swiftui-ui-patterns/references/components-index.md +50 -0
  419. package/skills/ios/swiftui-ui-patterns/references/controls.md +57 -0
  420. package/skills/ios/swiftui-ui-patterns/references/deeplinks.md +66 -0
  421. package/skills/ios/swiftui-ui-patterns/references/focus.md +90 -0
  422. package/skills/ios/swiftui-ui-patterns/references/form.md +97 -0
  423. package/skills/ios/swiftui-ui-patterns/references/grids.md +71 -0
  424. package/skills/ios/swiftui-ui-patterns/references/haptics.md +71 -0
  425. package/skills/ios/swiftui-ui-patterns/references/input-toolbar.md +51 -0
  426. package/skills/ios/swiftui-ui-patterns/references/lightweight-clients.md +93 -0
  427. package/skills/ios/swiftui-ui-patterns/references/list.md +86 -0
  428. package/skills/ios/swiftui-ui-patterns/references/loading-placeholders.md +38 -0
  429. package/skills/ios/swiftui-ui-patterns/references/macos-settings.md +71 -0
  430. package/skills/ios/swiftui-ui-patterns/references/matched-transitions.md +59 -0
  431. package/skills/ios/swiftui-ui-patterns/references/media.md +73 -0
  432. package/skills/ios/swiftui-ui-patterns/references/menu-bar.md +101 -0
  433. package/skills/ios/swiftui-ui-patterns/references/navigationstack.md +159 -0
  434. package/skills/ios/swiftui-ui-patterns/references/overlay.md +45 -0
  435. package/skills/ios/swiftui-ui-patterns/references/performance.md +62 -0
  436. package/skills/ios/swiftui-ui-patterns/references/previews.md +48 -0
  437. package/skills/ios/swiftui-ui-patterns/references/scroll-reveal.md +133 -0
  438. package/skills/ios/swiftui-ui-patterns/references/scrollview.md +87 -0
  439. package/skills/ios/swiftui-ui-patterns/references/searchable.md +71 -0
  440. package/skills/ios/swiftui-ui-patterns/references/sheets.md +155 -0
  441. package/skills/ios/swiftui-ui-patterns/references/split-views.md +72 -0
  442. package/skills/ios/swiftui-ui-patterns/references/tabview.md +114 -0
  443. package/skills/ios/swiftui-ui-patterns/references/theming.md +71 -0
  444. package/skills/ios/swiftui-ui-patterns/references/title-menus.md +93 -0
  445. package/skills/ios/swiftui-ui-patterns/references/top-bar.md +49 -0
  446. package/skills/ios/swiftui-view-refactor/LICENSE +21 -0
  447. package/skills/ios/swiftui-view-refactor/SKILL.md +207 -0
  448. package/skills/ios/swiftui-view-refactor/agents/openai.yaml +4 -0
  449. package/skills/ios/swiftui-view-refactor/references/mv-patterns.md +161 -0
  450. package/skills/ios/widgetkit/LICENSE +131 -0
  451. package/skills/ios/widgetkit/SKILL.md +502 -0
  452. package/skills/ios/widgetkit/references/widgetkit-advanced.md +871 -0
  453. package/skills/ios/writing-for-interfaces/SKILL.md +75 -0
  454. package/skills/web/accessibility/SKILL.md +146 -0
  455. package/skills/web/aceternity-ui/SKILL.md +719 -0
  456. package/skills/web/aceternity-ui/metadata.json +10 -0
  457. package/skills/web/api-design/SKILL.md +523 -0
  458. package/skills/web/chart-accessibility/SKILL.md +332 -0
  459. package/skills/web/composition-patterns/AGENTS.md +946 -0
  460. package/skills/web/composition-patterns/README.md +60 -0
  461. package/skills/web/composition-patterns/SKILL.md +89 -0
  462. package/skills/web/composition-patterns/metadata.json +11 -0
  463. package/skills/web/composition-patterns/rules/_sections.md +29 -0
  464. package/skills/web/composition-patterns/rules/_template.md +24 -0
  465. package/skills/web/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  466. package/skills/web/composition-patterns/rules/architecture-compound-components.md +112 -0
  467. package/skills/web/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  468. package/skills/web/composition-patterns/rules/patterns-explicit-variants.md +100 -0
  469. package/skills/web/composition-patterns/rules/react19-no-forwardref.md +42 -0
  470. package/skills/web/composition-patterns/rules/state-context-interface.md +191 -0
  471. package/skills/web/composition-patterns/rules/state-decouple-implementation.md +113 -0
  472. package/skills/web/composition-patterns/rules/state-lift-state.md +125 -0
  473. package/skills/web/cost-aware-llm-pipeline/SKILL.md +183 -0
  474. package/skills/web/database-migrations/SKILL.md +429 -0
  475. package/skills/web/deployment-patterns/SKILL.md +427 -0
  476. package/skills/web/docker-patterns/SKILL.md +364 -0
  477. package/skills/web/e2e-testing/SKILL.md +326 -0
  478. package/skills/web/lighthouse-ci/SKILL.md +361 -0
  479. package/skills/web/mcp-server-patterns/SKILL.md +69 -0
  480. package/skills/web/next-best-practices/SKILL.md +153 -0
  481. package/skills/web/next-best-practices/async-patterns.md +87 -0
  482. package/skills/web/next-best-practices/bundling.md +180 -0
  483. package/skills/web/next-best-practices/data-patterns.md +297 -0
  484. package/skills/web/next-best-practices/debug-tricks.md +105 -0
  485. package/skills/web/next-best-practices/directives.md +73 -0
  486. package/skills/web/next-best-practices/error-handling.md +227 -0
  487. package/skills/web/next-best-practices/file-conventions.md +140 -0
  488. package/skills/web/next-best-practices/font.md +245 -0
  489. package/skills/web/next-best-practices/functions.md +108 -0
  490. package/skills/web/next-best-practices/hydration-error.md +91 -0
  491. package/skills/web/next-best-practices/image.md +173 -0
  492. package/skills/web/next-best-practices/metadata.md +301 -0
  493. package/skills/web/next-best-practices/parallel-routes.md +287 -0
  494. package/skills/web/next-best-practices/route-handlers.md +146 -0
  495. package/skills/web/next-best-practices/rsc-boundaries.md +159 -0
  496. package/skills/web/next-best-practices/runtime-selection.md +39 -0
  497. package/skills/web/next-best-practices/scripts.md +141 -0
  498. package/skills/web/next-best-practices/self-hosting.md +371 -0
  499. package/skills/web/next-best-practices/suspense-boundaries.md +67 -0
  500. package/skills/web/next-cache-components/SKILL.md +411 -0
  501. package/skills/web/postgres-best-practices/SKILL.md +14 -0
  502. package/skills/web/postgres-best-practices/references/schema-design.md +9 -0
  503. package/skills/web/react-best-practices/AGENTS.md +3810 -0
  504. package/skills/web/react-best-practices/README.md +123 -0
  505. package/skills/web/react-best-practices/SKILL.md +149 -0
  506. package/skills/web/react-best-practices/metadata.json +15 -0
  507. package/skills/web/react-best-practices/rules/_sections.md +46 -0
  508. package/skills/web/react-best-practices/rules/_template.md +28 -0
  509. package/skills/web/react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  510. package/skills/web/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  511. package/skills/web/react-best-practices/rules/advanced-init-once.md +42 -0
  512. package/skills/web/react-best-practices/rules/advanced-use-latest.md +39 -0
  513. package/skills/web/react-best-practices/rules/async-api-routes.md +38 -0
  514. package/skills/web/react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  515. package/skills/web/react-best-practices/rules/async-defer-await.md +82 -0
  516. package/skills/web/react-best-practices/rules/async-dependencies.md +51 -0
  517. package/skills/web/react-best-practices/rules/async-parallel.md +28 -0
  518. package/skills/web/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  519. package/skills/web/react-best-practices/rules/bundle-analyzable-paths.md +63 -0
  520. package/skills/web/react-best-practices/rules/bundle-barrel-imports.md +60 -0
  521. package/skills/web/react-best-practices/rules/bundle-conditional.md +31 -0
  522. package/skills/web/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  523. package/skills/web/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  524. package/skills/web/react-best-practices/rules/bundle-preload.md +50 -0
  525. package/skills/web/react-best-practices/rules/client-event-listeners.md +74 -0
  526. package/skills/web/react-best-practices/rules/client-localstorage-schema.md +71 -0
  527. package/skills/web/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  528. package/skills/web/react-best-practices/rules/client-swr-dedup.md +56 -0
  529. package/skills/web/react-best-practices/rules/js-batch-dom-css.md +107 -0
  530. package/skills/web/react-best-practices/rules/js-cache-function-results.md +80 -0
  531. package/skills/web/react-best-practices/rules/js-cache-property-access.md +28 -0
  532. package/skills/web/react-best-practices/rules/js-cache-storage.md +70 -0
  533. package/skills/web/react-best-practices/rules/js-combine-iterations.md +32 -0
  534. package/skills/web/react-best-practices/rules/js-early-exit.md +50 -0
  535. package/skills/web/react-best-practices/rules/js-flatmap-filter.md +60 -0
  536. package/skills/web/react-best-practices/rules/js-hoist-regexp.md +45 -0
  537. package/skills/web/react-best-practices/rules/js-index-maps.md +37 -0
  538. package/skills/web/react-best-practices/rules/js-length-check-first.md +49 -0
  539. package/skills/web/react-best-practices/rules/js-min-max-loop.md +82 -0
  540. package/skills/web/react-best-practices/rules/js-request-idle-callback.md +105 -0
  541. package/skills/web/react-best-practices/rules/js-set-map-lookups.md +24 -0
  542. package/skills/web/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  543. package/skills/web/react-best-practices/rules/rendering-activity.md +26 -0
  544. package/skills/web/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  545. package/skills/web/react-best-practices/rules/rendering-conditional-render.md +40 -0
  546. package/skills/web/react-best-practices/rules/rendering-content-visibility.md +38 -0
  547. package/skills/web/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  548. package/skills/web/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  549. package/skills/web/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  550. package/skills/web/react-best-practices/rules/rendering-resource-hints.md +85 -0
  551. package/skills/web/react-best-practices/rules/rendering-script-defer-async.md +68 -0
  552. package/skills/web/react-best-practices/rules/rendering-svg-precision.md +28 -0
  553. package/skills/web/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  554. package/skills/web/react-best-practices/rules/rerender-defer-reads.md +39 -0
  555. package/skills/web/react-best-practices/rules/rerender-dependencies.md +45 -0
  556. package/skills/web/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  557. package/skills/web/react-best-practices/rules/rerender-derived-state.md +29 -0
  558. package/skills/web/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  559. package/skills/web/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  560. package/skills/web/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  561. package/skills/web/react-best-practices/rules/rerender-memo.md +44 -0
  562. package/skills/web/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  563. package/skills/web/react-best-practices/rules/rerender-no-inline-components.md +82 -0
  564. package/skills/web/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  565. package/skills/web/react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  566. package/skills/web/react-best-practices/rules/rerender-transitions.md +40 -0
  567. package/skills/web/react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  568. package/skills/web/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  569. package/skills/web/react-best-practices/rules/server-after-nonblocking.md +73 -0
  570. package/skills/web/react-best-practices/rules/server-auth-actions.md +96 -0
  571. package/skills/web/react-best-practices/rules/server-cache-lru.md +41 -0
  572. package/skills/web/react-best-practices/rules/server-cache-react.md +76 -0
  573. package/skills/web/react-best-practices/rules/server-dedup-props.md +65 -0
  574. package/skills/web/react-best-practices/rules/server-hoist-static-io.md +149 -0
  575. package/skills/web/react-best-practices/rules/server-no-shared-module-state.md +50 -0
  576. package/skills/web/react-best-practices/rules/server-parallel-fetching.md +83 -0
  577. package/skills/web/react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  578. package/skills/web/react-best-practices/rules/server-serialization.md +38 -0
  579. package/skills/web/seo/SKILL.md +154 -0
  580. package/skills/web/web-design-guidelines/SKILL.md +39 -0
  581. package/skills/web/zap-scan-config/SKILL.md +444 -0
  582. package/skills/web/zap-scan-config/assets/.gitkeep +9 -0
  583. package/skills/web/zap-scan-config/assets/github_action.yml +207 -0
  584. package/skills/web/zap-scan-config/assets/gitlab_ci.yml +226 -0
  585. package/skills/web/zap-scan-config/assets/zap_automation.yaml +196 -0
  586. package/skills/web/zap-scan-config/assets/zap_context.xml +192 -0
  587. package/skills/web/zap-scan-config/references/EXAMPLE.md +40 -0
  588. package/skills/web/zap-scan-config/references/api_testing_guide.md +475 -0
  589. package/skills/web/zap-scan-config/references/authentication_guide.md +431 -0
  590. package/skills/web/zap-scan-config/references/false_positive_handling.md +427 -0
  591. package/skills/web/zap-scan-config/references/owasp_mapping.md +255 -0
  592. package/src/lrr/aggregator.ts +80 -0
  593. package/src/orchestrator/hooks/context-header.ts +95 -0
  594. package/src/orchestrator/hooks/token-accounting-emitter.ts +77 -0
  595. package/src/orchestrator/hooks/token-accounting.ts +101 -0
  596. package/src/orchestrator/mcp/cycle-counter.ts +129 -0
  597. package/src/orchestrator/mcp/scribe.ts +283 -0
  598. package/src/orchestrator/mcp/state-save.ts +149 -0
  599. package/src/orchestrator/mcp/write-lease.ts +167 -0
  600. package/src/orchestrator/phase4-shared-context.ts +41 -0
  601. package/src/orchestrator/schemas/backward-edge.ts +46 -0
  602. package/agents/agentic-identity-trust.md +0 -121
  603. package/agents/data-consolidation-agent.md +0 -39
  604. package/agents/design-image-prompt-engineer.md +0 -105
  605. package/agents/design-visual-storyteller.md +0 -147
  606. package/agents/design-whimsy-injector.md +0 -89
  607. package/agents/engineering-autonomous-optimization-architect.md +0 -105
  608. package/agents/market-intel.md +0 -35
  609. package/agents/marketing-instagram-curator.md +0 -111
  610. package/agents/marketing-reddit-community-builder.md +0 -121
  611. package/agents/marketing-social-media-strategist.md +0 -74
  612. package/agents/marketing-tiktok-strategist.md +0 -123
  613. package/agents/marketing-twitter-engager.md +0 -124
  614. package/agents/marketing-wechat-official-account.md +0 -143
  615. package/agents/marketing-xiaohongshu-specialist.md +0 -136
  616. package/agents/marketing-zhihu-strategist.md +0 -160
  617. package/agents/product-behavioral-nudge-engine.md +0 -78
  618. package/agents/project-management-experiment-tracker.md +0 -102
  619. package/agents/report-distribution-agent.md +0 -43
  620. package/agents/risk-analysis.md +0 -45
  621. package/agents/sales-data-extraction-agent.md +0 -46
  622. package/agents/specialized-cultural-intelligence-strategist.md +0 -65
  623. package/agents/specialized-developer-advocate.md +0 -146
  624. package/agents/support-analytics-reporter.md +0 -133
  625. package/agents/support-executive-summary-generator.md +0 -64
  626. package/agents/support-finance-tracker.md +0 -145
  627. package/agents/support-legal-compliance-checker.md +0 -129
  628. package/agents/support-support-responder.md +0 -91
  629. package/agents/testing-accessibility-auditor.md +0 -110
  630. package/agents/testing-test-results-analyzer.md +0 -97
  631. package/agents/testing-tool-evaluator.md +0 -76
  632. package/agents/testing-workflow-optimizer.md +0 -99
  633. package/agents/user-research.md +0 -40
@@ -0,0 +1,234 @@
1
+ # iOS Context Sidecar
2
+
3
+ _Loaded by every iOS implementation agent when `project_type=ios`. Not loaded in web mode. This is your persona + house rules — read it as your own instructions._
4
+
5
+ ## Credits
6
+ - Core rules derived from **twostraws/SwiftAgents** (Paul Hudson) — MIT-style open guide.
7
+ - HIG baseline + iOS 26 platform awareness adapted from **johnrogers/claude-swift-engineering** skills (granular `hig-foundations` + `hig-components-*` family, `ios-26-platform`).
8
+ - Tool-preference hierarchy and post-training-cutoff watch-terms **paraphrased** from Apple's Xcode 26 `AgentSystemPromptAddition` template (Apple copyright — paraphrased, never quoted).
9
+
10
+ ---
11
+
12
+ ## 1. Role
13
+
14
+ You are a **Senior iOS Engineer** working inside the buildanything orchestrator. You specialize in SwiftUI, SwiftData, Swift Concurrency, and the iOS 26 platform. Your code must always adhere to Apple's Human Interface Guidelines and App Review guidelines. You write modern, safe, idiomatic Swift — no legacy patterns, no UIKit detours, no third-party dependencies without explicit approval.
15
+
16
+ You are opinionated about correctness. When you see a violation of the rules below in existing code, flag it.
17
+
18
+ ---
19
+
20
+ ## 2. Core Stack (non-negotiable)
21
+
22
+ - **Target iOS 26.0+** (yes, it exists). **Swift 6.2+** with strict concurrency.
23
+ - **SwiftUI only** — no UIKit unless the user explicitly requests it or a feature has no SwiftUI equivalent.
24
+ - **SwiftData** for persistence (Core Data only for legacy coexistence).
25
+ - **`@Observable` classes** for shared state — never `ObservableObject` / `@Published` / `@StateObject` / `@ObservedObject` / `@EnvironmentObject` unless unavoidable legacy.
26
+ - **`@MainActor`** on every `@Observable` class (unless project has main-actor default isolation).
27
+ - **Async/await** over closure callbacks whenever both exist.
28
+ - **No third-party frameworks** without asking first.
29
+ - **Architecture default:** vanilla SwiftUI + `@Observable`. TCA / The Composable Architecture is opt-in only, when the user requests it.
30
+
31
+ ---
32
+
33
+ ## 3. Prefer Apple Frameworks Over Custom Code
34
+
35
+ **When the user describes a capability that an Apple framework solves, USE THE FRAMEWORK.** Custom implementations of standard iOS capabilities are anti-patterns.
36
+
37
+ Before writing custom code for any capability:
38
+ 1. `Read` `protocols/ios-frameworks-map.md` (on-demand — it is not preloaded in your prompt); grep §1 Capability Index for the user's capability; extract the 1-2 relevant rows (framework + entitlement). Do NOT read the whole file — it's 323 lines, scan or grep for your specific capability.
39
+ 2. If not listed, query `apple-docs-mcp` to confirm no framework exists
40
+ 3. Only then consider custom code or third-party libraries
41
+
42
+ Common traps:
43
+ - Photo picker → use `PhotosPicker` (PhotosUI), not a custom grid
44
+ - Calendar/reminders → use EventKit, not a custom datastore
45
+ - Notifications → use UserNotifications, not a custom scheduler
46
+ - Biometric auth → use LocalAuthentication, not custom flows
47
+ - Keychain → use Security framework, not `UserDefaults`
48
+ - Sign-in → use AuthenticationServices, not OAuth-from-scratch
49
+ - Weather → use WeatherKit, not a third-party API
50
+ - Maps → use MapKit, not an embedded web map
51
+
52
+ The agent reasons about capabilities and imports the correct framework autonomously. The user should not have to say "use HealthKit here" — the agent infers it from context.
53
+
54
+ ---
55
+
56
+ ## 4. Swift Language Rules
57
+
58
+ - Prefer Swift-native string API: `replacing("a", with: "b")` over `replacingOccurrences(of:with:)`.
59
+ - Modern Foundation: `URL.documentsDirectory`, `url.appending(path:)`.
60
+ - Never `String(format: "%.2f", x)`. Use `x.formatted(.number.precision(.fractionLength(2)))`.
61
+ - Prefer static member lookup: `.circle` over `Circle()`, `.borderedProminent` over `BorderedProminentButtonStyle()`.
62
+ - **Never** `DispatchQueue.main.async` or any legacy GCD. Use structured concurrency.
63
+ - User-input text filtering must use `localizedStandardContains()`, not `contains()`.
64
+ - Avoid force unwraps and force `try` unless genuinely unrecoverable.
65
+ - **Never** use legacy `DateFormatter` / `NumberFormatter` / `MeasurementFormatter`. Use `FormatStyle`: `myDate.formatted(date: .abbreviated, time: .shortened)`, `Date(str, strategy: .iso8601)`, `n.formatted(.number)`.
66
+ - `Task.sleep(for:)` — never `Task.sleep(nanoseconds:)`.
67
+
68
+ ---
69
+
70
+ ## 5. SwiftUI Rules
71
+
72
+ - `foregroundStyle()`, never `foregroundColor()`.
73
+ - `clipShape(.rect(cornerRadius:))`, never `cornerRadius()`.
74
+ - New `Tab` API, never `tabItem()`.
75
+ - `onChange()` — use the 2-param or 0-param variant, never the 1-param deprecated one.
76
+ - Use `Button` for all taps. Only use `onTapGesture()` when you genuinely need tap location or tap count.
77
+ - Never read layout via `UIScreen.main.bounds`.
78
+ - **Do not break views up with computed properties** — extract to new `View` structs instead.
79
+ - **Never hard-code font sizes** — use Dynamic Type.
80
+ - `NavigationStack` + `navigationDestination(for:)` — never `NavigationView`.
81
+ - Button with image: `Button("Tap me", systemImage: "plus", action: …)` — always include text alongside an icon.
82
+ - Prefer `ImageRenderer` over `UIGraphicsImageRenderer` for SwiftUI view rendering.
83
+ - Use `.bold()`, not `.fontWeight(.bold)`.
84
+ - Avoid `GeometryReader` when `containerRelativeFrame()` or `visualEffect()` works.
85
+ - `ForEach(x.enumerated(), id: \.element.id)` — do not wrap in `Array(...)`.
86
+ - Hide scroll indicators via `.scrollIndicators(.hidden)`, not `showsIndicators: false`.
87
+ - Use modern `ScrollPosition` and `defaultScrollAnchor` — avoid `ScrollViewReader`.
88
+ - Put view logic in view models so it can be tested.
89
+ - Avoid `AnyView` unless absolutely required.
90
+ - Avoid hard-coded padding / stack spacing unless the user requests specific values.
91
+ - No UIKit colors in SwiftUI code.
92
+
93
+ ---
94
+
95
+ ## 6. SwiftData Rules
96
+
97
+ If SwiftData is configured with CloudKit:
98
+
99
+ - **Never** use `@Attribute(.unique)` (CloudKit rejects it).
100
+ - Model properties must have default values **or** be optional.
101
+ - All relationships must be marked optional.
102
+
103
+ Prefer SwiftData migrations via `VersionedSchema` + `SchemaMigrationPlan` over ad-hoc model changes.
104
+
105
+ ---
106
+
107
+ ## 7. iOS 26 Platform Awareness
108
+
109
+ iOS 26 APIs — see `skills/ios/ios-26-platform/` for full reference.
110
+ Watch-terms: Liquid Glass, FoundationModels, Visual Intelligence, AlarmKit — always consult apple-docs-mcp before using (post-training-cutoff).
111
+ Glass applies to navigation chrome only, never content; gate iOS 26 APIs behind `@available(iOS 26, *)` for backward compat.
112
+
113
+ ---
114
+
115
+ ## 8. HIG Compliance Baseline
116
+
117
+ HIG compliance — start with `skills/ios/hig-foundations/`; granular `skills/ios/hig-components-*` skills (content, controls, dialogs, layout, menus, search, status, system) cover specific component categories, and `hig-inputs`, `hig-patterns`, `hig-platforms`, `hig-project-context`, `hig-technologies` cover the remaining HIG surface area.
118
+ Non-negotiables: 44pt touch targets, Dynamic Type support, dark mode parity, VoiceOver labels, Reduce Motion respect.
119
+ Permission requests must be contextual with purpose strings; haptics rare and meaningful only.
120
+
121
+ ---
122
+
123
+ ## 9. Project Structure
124
+
125
+ - Folder layout by **feature**, not by type (`Features/Checkout/…`, not `Views/`, `Models/`).
126
+ - **One primary type per Swift file.** Don't jam multiple structs/classes/enums into one file.
127
+ - Follow strict, Apple-style naming for types, properties, methods, and SwiftData models.
128
+ - Unit tests for core logic. UI tests only when unit tests aren't possible.
129
+ - Documentation comments on public API.
130
+ - **Never commit secrets.** API keys go in `.xcconfig` (gitignored) or the keychain.
131
+ - **Localization:** if the project uses `Localizable.xcstrings`, add user-facing strings as **symbol keys** (e.g. `helloWorld`) with `extractionState: "manual"`, accessed via generated symbols: `Text(.helloWorld)`. Offer to translate new keys into all supported languages.
132
+ - **PrivacyInfo.xcprivacy ownership:** the `ios-info-plist-hardening` skill (Phase 4 Step 4.0 Scaffold) owns creating `PrivacyInfo.xcprivacy` — NOT Phase 7 Ship. Any required-reason API declarations, tracking domains, and collected-data-type entries must land in Phase 4 alongside Info.plist hardening.
133
+
134
+ ---
135
+
136
+ ## 10. Tool Preferences (MCP-first)
137
+
138
+ When MCP servers are available, **always prefer them** over generic file or shell tools. Rough hierarchy:
139
+
140
+ 1. **XcodeBuildMCP / xcode-tools MCP** — project operations, builds, previews, issue navigator, simulators.
141
+ 2. **apple-docs-mcp / `DocumentationSearch`** — verify API availability, signatures, and version gating **before** writing code. Always check when you touch `Liquid Glass` or `FoundationModels`.
142
+ 3. **File-level MCP tools** (`XcodeRead`, `XcodeWrite`, `XcodeUpdate`) for files inside the Xcode project.
143
+ 4. **Generic Read/Write/Edit** only when no MCP equivalent exists.
144
+ 5. **Shell / CLI last resort.** Never use `ls` / `find` to explore when an MCP tool can answer. Use dedicated search tools (Glob, Grep) over shell equivalents.
145
+
146
+ **Validation loop (preferred order):**
147
+ `BuildProject` → `XcodeRefreshCodeIssuesInFile` (fast live diagnostics) → `ExecuteSnippet` (REPL-style check) → `RenderPreview` for visual verification.
148
+
149
+ **Never hand-edit `.xcodeproj` / `.pbxproj`.** Use MCP tools or `xcodeproj` helpers. Corrupting the project file wastes a full debug loop.
150
+
151
+ **apple-docs-mcp fallback rule:** If `apple-docs-mcp` is unreachable, fall back to `WebFetch` of `developer.apple.com/documentation/<framework>`. If `WebFetch` also fails, HALT and mark the task blocked — do NOT hallucinate API signatures for iOS 26 frameworks (Liquid Glass, FoundationModels, Visual Intelligence, AlarmKit, etc.).
152
+
153
+ ---
154
+
155
+ ## 11. PR Hygiene
156
+
157
+ - If SwiftLint is installed, it must return **zero warnings and zero errors** before you commit.
158
+ - Run a clean `BuildProject` before declaring work done.
159
+ - Run unit tests (Swift Testing `@Test` / `#expect` preferred over XCTest for new tests).
160
+ - Complete-file replacement when writing code via MCP tools — do not ship partial edits that rely on surrounding context the tool can't see.
161
+ - Commit messages: conventional commits (`feat:`, `fix:`, `refactor:`…), imperative mood, explain the _why_ in the body.
162
+
163
+ ---
164
+
165
+ ## iOS Feature Flag Schema
166
+
167
+ These flags gate Phase 4 per-task skill loading and Phase 4 Step 4.0 entitlement generation. Orchestrator resolves them at the end of Phase 2 (see `commands/build.md` → Phase 2 "Feature Flag Resolution") and persists them to `docs/plans/.build-state.md` under an `ios_features:` key.
168
+
169
+ ```yaml
170
+ ios_features:
171
+ widgets: bool # gates skills/ios/widgetkit/
172
+ liveActivities: bool # gates skills/ios/activitykit/
173
+ appIntents: bool # gates skills/ios/app-intents/
174
+ foundationModels: bool # gates ios-foundation-models-specialist
175
+ storekit: bool # gates ios-storekit-specialist
176
+ healthkit: bool # triggers HealthKit entitlement
177
+ push: bool
178
+ cloudkit: bool
179
+ siri: bool
180
+ location: bool
181
+ background: bool
182
+ cameraPhoto: bool
183
+ microphone: bool
184
+ contacts: bool
185
+ calendar: bool
186
+ appleWatch: bool
187
+ ```
188
+
189
+ **Read contract:** Phase 4 Step 4.0 (`ios-entitlements-generator`) and Phase 4 per-task flow (skill loader) MUST read this block from `.build-state.md` before acting. A skill gated by flag `X` is loaded only when `ios_features.X == true`. Unset flags default to `false`.
190
+
191
+ ---
192
+
193
+ ## Phase Skill Bundles
194
+
195
+ _Per-phase skill bundle — orchestrator loads the relevant subset based on current phase._
196
+
197
+ ### Phase 1 — Plan
198
+ - Primary agent: `agents/ios-swift-architect.md` (Opus, read-only planner)
199
+ - Supporting: `agents/ios-swift-search.md` (Haiku context-isolation)
200
+ - If AI/LLM features in prompt: `agents/ios-foundation-models-specialist.md`
201
+
202
+ ### Phase 2 — Architecture
203
+ - `skills/ios/ios-26-platform/` — select iOS 26 APIs + @available strategy
204
+ - `skills/ios/apple-on-device-ai/` — if AI planned: Foundation Models schema + @Generable design
205
+ - MCP: apple-docs-mcp
206
+
207
+ ### Phase 3 — Design
208
+ - `agents/ios-swift-ui-design.md` — visual intake (mockups → SwiftUI plan)
209
+ - `skills/ios/hig-foundations/` + granular `hig-*` skills — HIG compliance (see agent shortlists for per-agent selection)
210
+ - `skills/ios/swiftui-design-principles/` — 10-rule visual polish
211
+ - `skills/ios/swiftui-liquid-glass/` — iOS 26 glass decision tree
212
+
213
+ ### Phase 4 — Build (Step 4.0 Scaffold)
214
+ - `skills/ios/ios-entitlements-generator/` (stub)
215
+ - `skills/ios/ios-info-plist-hardening/` (stub)
216
+
217
+ ### Phase 4 — Build (Step 4.1+ per-task flow)
218
+ - `skills/ios/swiftui-pro/` (every UI write)
219
+ - `skills/ios/swift-concurrency-6-2/` (async/actor/Sendable — Swift 6.2 single-threaded default)
220
+ - `skills/ios/swiftdata-pro/` (@Model/@Query usage)
221
+ - `skills/ios/swift-accessibility/` (every UI write — a11y first-draft)
222
+ - `skills/ios/swift-security-expert/` (Keychain/Crypto/auth)
223
+ - Feature-flag-gated: `skills/ios/widgetkit/`, `skills/ios/activitykit/`, `skills/ios/app-intents/`
224
+ - AI feature: `agents/ios-foundation-models-specialist.md`
225
+ - IAP feature: `agents/ios-storekit-specialist.md`
226
+
227
+ ### Phase 5 — Audit
228
+ _Dispatches to `/verify` + `/ux-review` + `/fix` iOS twins in sequence. Each twin has its own skill bundle inline in its command file._
229
+
230
+ ### Phase 7 — Ship (optional)
231
+ - `asc-*` pack (TBD — not yet ported; 15 of 22 per _COMPARISON.md)
232
+ - `app-store-aso` (TBD)
233
+ - `app-store-changelog` (TBD)
234
+ - `agents/ios-app-review-guardian.md`
@@ -0,0 +1,323 @@
1
+ # iOS Frameworks Capability Map
2
+
3
+ _**Reference file** — agents READ this on demand when hitting a "user wants X → which Apple framework?" question. **NOT injected into agent prompts** (323 lines would waste ~400k tokens across a build). The orchestrator cites this file by path; agents open it, grep for their capability, extract the 1-2 relevant rows. Authoritative source for framework selection. When in doubt, consult apple-docs-mcp to confirm current API status._
4
+
5
+ ## Purpose
6
+
7
+ This is a **framework-selection index**, not a best-practices guide. It answers: "the user described capability X, which Apple framework should I import?" The rule is: **prefer Apple's native framework over custom code or third-party libraries whenever one exists.**
8
+
9
+ ---
10
+
11
+ ## 1. Capability Index (user intent → framework)
12
+
13
+ ### Health & Fitness
14
+
15
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
16
+ |---|---|---|---|
17
+ | Log workouts, steps, heart rate, sleep | HealthKit | `com.apple.developer.healthkit` | — |
18
+ | Start/control workout sessions, build workout plans | WorkoutKit (iOS 17+) | HealthKit | — |
19
+ | Pull clinical records (labs, allergies, meds) | HealthKit ClinicalHealth | `health-records` | — |
20
+ | Mindful minutes / state of mind | HealthKit (iOS 17+) | HealthKit | — |
21
+
22
+ ### Calendar & Reminders
23
+
24
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
25
+ |---|---|---|---|
26
+ | Create/read calendar events | EventKit | `NSCalendarsFullAccessUsageDescription` | Deprecated: `NSCalendarsUsageDescription` (iOS 17+ splits read/write) |
27
+ | Pre-built event editor UI | EventKitUI | Calendar | — |
28
+ | Create/read reminders | EventKit | `NSRemindersFullAccessUsageDescription` | — |
29
+
30
+ ### Photos & Media
31
+
32
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
33
+ |---|---|---|---|
34
+ | Pick photos/videos from library | PhotosUI (`PhotosPicker`) | — (no permission prompt needed for picker) | Deprecated: `UIImagePickerController` |
35
+ | Full library access, albums, assets | PhotoKit | `NSPhotoLibraryUsageDescription` | — |
36
+ | Camera capture, audio/video record | AVFoundation | `NSCameraUsageDescription`, `NSMicrophoneUsageDescription` | — |
37
+ | Play video with controls | AVKit (`VideoPlayer`) | — | Deprecated: `MPMoviePlayerController` |
38
+ | Play user's music, now-playing info | MediaPlayer | `NSAppleMusicUsageDescription` | — |
39
+ | Apple Music catalog, playback | MusicKit | MusicKit capability | — |
40
+ | Song ID (Shazam) | ShazamKit | Microphone | — |
41
+ | Classify sounds on-device | SoundAnalysis | Microphone | — |
42
+ | Speech-to-text | Speech | `NSSpeechRecognitionUsageDescription` | — |
43
+ | View/annotate/render PDF | PDFKit | — | — |
44
+ | Preview documents inline | QuickLook | — | — |
45
+ | Thumbnails for any file type | QuickLookThumbnailing | — | — |
46
+ | Image filters, Core Image | CoreImage | — | — |
47
+ | Low-level audio engine/effects | AVAudioEngine | — | Prefer over `AudioToolbox` for new code |
48
+
49
+ ### Maps & Location
50
+
51
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
52
+ |---|---|---|---|
53
+ | Show a map, annotations, overlays | MapKit (SwiftUI `Map` iOS 17+) | — | Deprecated for SwiftUI: `MKMapView` wrapper |
54
+ | User location / geofencing | CoreLocation | `NSLocationWhenInUseUsageDescription`, `NSLocationAlwaysAndWhenInUseUsageDescription` | — |
55
+ | Weather forecast / historical | WeatherKit | WeatherKit capability | — |
56
+ | Directions, search, POI, lookAround | MapKit | — | — |
57
+
58
+ ### Identity & Auth
59
+
60
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
61
+ |---|---|---|---|
62
+ | Sign in with Apple, passkeys, OAuth web flow | AuthenticationServices | `com.apple.developer.applesignin` | Deprecated: custom `WKWebView` OAuth |
63
+ | Face ID / Touch ID / passcode | LocalAuthentication | `NSFaceIDUsageDescription` | — |
64
+ | Keychain storage | Security | — | Avoid: `UserDefaults` for secrets |
65
+ | Crypto primitives (AES, ChaCha, SHA, EC) | CryptoKit | — | Deprecated: `CommonCrypto` in new Swift code |
66
+
67
+ ### Payments & Commerce
68
+
69
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
70
+ |---|---|---|---|
71
+ | In-app purchases, subscriptions | StoreKit 2 | In-App Purchase capability | Deprecated: StoreKit 1 (`SKPayment*`) |
72
+ | Apple Pay, Wallet passes | PassKit | `com.apple.developer.in-app-payments`, merchant IDs | — |
73
+
74
+ ### Communication & Notifications
75
+
76
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
77
+ |---|---|---|---|
78
+ | Local + remote push notifications | UserNotifications | `aps-environment` (remote) | Deprecated: `UILocalNotification`, `UIUserNotification*` |
79
+ | VoIP push | PushKit + CallKit | VoIP capability | — |
80
+ | System call UI, CallKit directory | CallKit | — | — |
81
+ | iMessage app extensions, stickers | Messages | — | — |
82
+ | Peer-to-peer device networking | MultipeerConnectivity | Local network | — |
83
+ | Bonjour / local network discovery | Network | `NSLocalNetworkUsageDescription` | Deprecated: `NetService` |
84
+ | Email / SMS compose sheets | MessageUI | — | — |
85
+
86
+ ### AR / Vision / ML
87
+
88
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
89
+ |---|---|---|---|
90
+ | World-tracking AR, plane detection | ARKit | Camera | — |
91
+ | 3D rendering for AR | RealityKit | Camera | Deprecated in AR: `SceneKit+ARKit` combo |
92
+ | Room scanning (LiDAR) | RoomPlan | Camera | — |
93
+ | Text recognition, face/body detect, barcode | Vision | — | — |
94
+ | Document scanner, data-scanner UI | VisionKit | Camera | — |
95
+ | Run custom ML models | CoreML | — | — |
96
+ | Train models on-device | CreateML | — | — |
97
+ | On-device LLM (text gen, summarize) | **FoundationModels (iOS 26+)** | — | iOS 26 only; check availability |
98
+ | Visual Intelligence interactions | **Visual Intelligence (iOS 26+)** | — | iOS 26 only |
99
+ | Natural-language tokenization, tagging | NaturalLanguage | — | — |
100
+ | Live Text / Data scanner | VisionKit `DataScannerViewController` | Camera | — |
101
+
102
+ ### Contacts & People
103
+
104
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
105
+ |---|---|---|---|
106
+ | Read/write contacts | Contacts | `NSContactsUsageDescription` | Deprecated: `AddressBook` |
107
+ | Contact picker UI | ContactsUI | Contacts (picker-only: not required) | — |
108
+
109
+ ### System & Device
110
+
111
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
112
+ |---|---|---|---|
113
+ | Background fetch, background processing | BackgroundTasks | `BGTaskSchedulerPermittedIdentifiers` | Deprecated: `performFetchWithCompletionHandler` |
114
+ | Background asset download at install | BackgroundAssets | Background Assets capability | — |
115
+ | VPN / content filter / packet tunnel | NetworkExtension | NetworkExtension capability | — |
116
+ | Device attestation / anti-abuse | DeviceCheck / AppAttest | — | — |
117
+ | IDFA / tracking consent | AppTrackingTransparency | `NSUserTrackingUsageDescription` | — |
118
+ | File Provider extension (cloud drive) | FileProvider | File Provider capability | — |
119
+ | Share sheet / activity items | UIKit `UIActivityViewController` (SwiftUI `ShareLink`) | — | Prefer SwiftUI `ShareLink` |
120
+ | Drag & drop, pasteboard | UniformTypeIdentifiers + SwiftUI `Transferable` | — | Deprecated: `kUTType*` constants |
121
+
122
+ ### Home & IoT
123
+
124
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
125
+ |---|---|---|---|
126
+ | HomeKit accessories | HomeKit | `NSHomeKitUsageDescription` | — |
127
+ | Matter accessory pairing | MatterSupport | Matter capability | — |
128
+ | BLE peripherals & centrals | CoreBluetooth | `NSBluetoothAlwaysUsageDescription` | — |
129
+ | Ultra-wideband ranging | NearbyInteraction | — | — |
130
+ | Car key | CarKey | CarKey entitlement | — |
131
+ | CarPlay apps / audio / nav | CarPlay | CarPlay entitlement (Apple approval) | — |
132
+
133
+ ### Wearables & Companions
134
+
135
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
136
+ |---|---|---|---|
137
+ | iPhone ↔ Apple Watch messaging | WatchConnectivity | — | — |
138
+ | Watch workouts | WorkoutKit + HealthKit | HealthKit | — |
139
+
140
+ ### Intents, Widgets & Automation
141
+
142
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
143
+ |---|---|---|---|
144
+ | Siri / Shortcuts / App Intents | AppIntents | — | Deprecated: `SiriKit` custom intents (keep only for domains AppIntents doesn't cover) |
145
+ | Home/Lock-Screen widgets | WidgetKit | App Groups (usually) | — |
146
+ | Live Activities / Dynamic Island | ActivityKit | `NSSupportsLiveActivities` Info.plist | — |
147
+ | Control Center widgets (iOS 18+) | WidgetKit `ControlWidget` | — | — |
148
+ | System-style alarms (iOS 26+) | **AlarmKit** | — | iOS 26 only |
149
+
150
+ ### Web & Content
151
+
152
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
153
+ |---|---|---|---|
154
+ | In-app Safari tab (SFSafariVC) | SafariServices | — | — |
155
+ | Full web view / JS bridge | WebKit | — | Deprecated: `UIWebView` |
156
+ | SwiftUI-native web view (iOS 26+) | SwiftUI `WebView` | — | iOS 26 only |
157
+ | Rich URL preview cards | LinkPresentation | — | — |
158
+
159
+ ### Graphics & Games
160
+
161
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
162
+ |---|---|---|---|
163
+ | 2D game engine | SpriteKit | — | — |
164
+ | 3D scene graph | SceneKit | — | (Maintenance mode; prefer RealityKit for new 3D) |
165
+ | GPU rendering | MetalKit / Metal | — | Deprecated: OpenGL ES |
166
+ | 3D model I/O (USDZ) | ModelIO | — | — |
167
+ | Game Center, leaderboards, matches | GameKit | Game Center capability | — |
168
+ | Controller input | GameController | — | — |
169
+
170
+ ### Accessibility & Input
171
+
172
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
173
+ |---|---|---|---|
174
+ | VoiceOver/Switch Control labels | Accessibility (SwiftUI modifiers) | — | — |
175
+ | Dictation / speech recognition | Speech | Speech recognition | — |
176
+ | Hand/pencil input | PencilKit | — | — |
177
+
178
+ ### Persistence
179
+
180
+ | User intent | Framework(s) | Entitlement needed | Deprecation note |
181
+ |---|---|---|---|
182
+ | Model persistence (new projects) | SwiftData | — | — |
183
+ | Model persistence (legacy) | CoreData | — | Prefer SwiftData for new work |
184
+ | Tiny prefs (≤ a few KB) | Foundation `UserDefaults` | — | Do not use for secrets or large blobs |
185
+ | iCloud key-value | Foundation `NSUbiquitousKeyValueStore` | iCloud Key-Value | — |
186
+ | iCloud Drive documents | CloudKit + UIDocument | iCloud (CloudKit) | — |
187
+ | CloudKit sync | CloudKit | iCloud (CloudKit) | — |
188
+
189
+ ---
190
+
191
+ ## 2. Selection Rules (multi-choice disambiguation)
192
+
193
+ When multiple frameworks can solve a problem, pick the most modern:
194
+
195
+ - **Photos:** PhotosUI `PhotosPicker` (iOS 16+) > PhotoKit `PHPickerViewController` (iOS 14+) > `UIImagePickerController` (deprecated).
196
+ - **Auth:** AuthenticationServices (Sign in with Apple, passkeys, OAuth) > manual `WKWebView` OAuth flows.
197
+ - **Audio:** `AVAudioEngine` (modern graph) > `AVAudioPlayer` (simple file playback) > `AudioToolbox` (low-level CoreAudio).
198
+ - **Notifications:** UserNotifications (local + remote, iOS 10+) > legacy `UIUserNotification*` (removed).
199
+ - **Maps:** SwiftUI `Map` (iOS 17+) > `MKMapView` via `UIViewRepresentable`.
200
+ - **On-device AI:** FoundationModels (iOS 26+, text) > CoreML (custom models) > MLX (low-level experimental).
201
+ - **Persistence:** SwiftData > Core Data (legacy only) > `UserDefaults` (tiny prefs only).
202
+ - **3D:** RealityKit (AR + general 3D) > SceneKit (maintenance mode).
203
+ - **Web view:** SwiftUI `WebView` (iOS 26+) > `WKWebView` via `UIViewRepresentable` > `SFSafariViewController` (if you just need a browser tab).
204
+ - **Background work:** BackgroundTasks (`BGAppRefreshTask`, `BGProcessingTask`) > deprecated background-fetch.
205
+ - **Networking:** `URLSession` + async/await > `Network` framework (sockets, Bonjour) > third-party HTTP clients.
206
+ - **JSON:** `Codable` > `JSONSerialization`.
207
+ - **Share:** SwiftUI `ShareLink` > `UIActivityViewController` wrapper.
208
+ - **Crypto:** CryptoKit > `CommonCrypto`.
209
+
210
+ ---
211
+
212
+ ## 3. Framework Combinations (common pairings)
213
+
214
+ - **Push notifications** = UserNotifications + APNs + `aps-environment` entitlement.
215
+ - **VoIP** = CallKit + PushKit + VoIP background mode + CallKit entitlement.
216
+ - **Sign in with Apple** = AuthenticationServices + "Sign in with Apple" capability.
217
+ - **Widgets** = WidgetKit + App Groups + shared SwiftData container.
218
+ - **Live Activities** = ActivityKit + UserNotifications push + `NSSupportsLiveActivities` in Info.plist.
219
+ - **App Intents in widgets** = AppIntents + WidgetKit + shared target membership.
220
+ - **HealthKit workouts** = HealthKit + WorkoutKit + HealthKit entitlement + `NSHealthShareUsageDescription` + `NSHealthUpdateUsageDescription`.
221
+ - **ARKit 3D scene** = ARKit + RealityKit + `NSCameraUsageDescription`.
222
+ - **Document scanning** = VisionKit `VNDocumentCameraViewController` + `NSCameraUsageDescription`.
223
+ - **Barcode / text scanner** = VisionKit `DataScannerViewController` + Camera.
224
+ - **Passkeys** = AuthenticationServices + Associated Domains (`webcredentials:`).
225
+ - **Universal Links** = Associated Domains (`applinks:`) + `onOpenURL` / `NSUserActivity`.
226
+ - **CloudKit-synced SwiftData** = SwiftData + iCloud (CloudKit) capability + follow CloudKit-compatible model rules (no `.unique`, all relationships optional).
227
+ - **Matter pairing** = MatterSupport + HomeKit + Matter entitlement.
228
+ - **Apple Pay** = PassKit + Merchant ID + in-app-payments entitlement.
229
+
230
+ ---
231
+
232
+ ## 4. Entitlement Mapping (feeds ios-entitlements-generator)
233
+
234
+ | Framework | Entitlement key | Info.plist keys | Setup notes |
235
+ |---|---|---|---|
236
+ | HealthKit | `com.apple.developer.healthkit` | `NSHealthShareUsageDescription`, `NSHealthUpdateUsageDescription` | Add access types to entitlement plist |
237
+ | HomeKit | — | `NSHomeKitUsageDescription` | HomeKit capability on target |
238
+ | EventKit | — | `NSCalendarsFullAccessUsageDescription`, `NSRemindersFullAccessUsageDescription` | iOS 17+ split access model |
239
+ | Contacts | — | `NSContactsUsageDescription` | — |
240
+ | Photos | — | `NSPhotoLibraryUsageDescription`, `NSPhotoLibraryAddUsageDescription` | Not needed for `PhotosPicker` |
241
+ | Camera | — | `NSCameraUsageDescription` | AVFoundation, Vision, ARKit, VisionKit |
242
+ | Microphone | — | `NSMicrophoneUsageDescription` | AVFoundation, Speech, ShazamKit |
243
+ | Speech | — | `NSSpeechRecognitionUsageDescription` | — |
244
+ | Face ID | — | `NSFaceIDUsageDescription` | LocalAuthentication |
245
+ | CoreLocation | — | `NSLocationWhenInUseUsageDescription`, `NSLocationAlwaysAndWhenInUseUsageDescription`, `NSLocationTemporaryUsageDescriptionDictionary` | — |
246
+ | Bluetooth | — | `NSBluetoothAlwaysUsageDescription` | — |
247
+ | Local Network | — | `NSLocalNetworkUsageDescription`, `NSBonjourServices` | Multipeer, Bonjour |
248
+ | Music | — | `NSAppleMusicUsageDescription` | MediaPlayer, MusicKit |
249
+ | Tracking (IDFA) | — | `NSUserTrackingUsageDescription` | AppTrackingTransparency |
250
+ | Sign in with Apple | `com.apple.developer.applesignin` | — | — |
251
+ | Push (remote) | `aps-environment` | — | `development` / `production` |
252
+ | Associated Domains | `com.apple.developer.associated-domains` | — | `applinks:`, `webcredentials:`, `activitycontinuation:` |
253
+ | App Groups | `com.apple.security.application-groups` | — | Share data with widgets/extensions |
254
+ | iCloud (CloudKit) | `com.apple.developer.icloud-services`, `com.apple.developer.icloud-container-identifiers` | — | CloudKit + iCloud Drive |
255
+ | Keychain Sharing | `keychain-access-groups` | — | Share keychain items across apps |
256
+ | In-App Purchase | `com.apple.developer.in-app-payments` (Apple Pay) | — | IAP capability on target for StoreKit |
257
+ | HealthKit Clinical | `com.apple.developer.healthkit.access` | — | Array of clinical record types |
258
+ | WeatherKit | `com.apple.developer.weatherkit` | — | Register service in developer portal |
259
+ | MusicKit | `com.apple.developer.musickit` | — | — |
260
+ | CarPlay | `com.apple.developer.carplay-*` | — | Requires Apple entitlement approval |
261
+ | CarKey | `com.apple.developer.car-key` | — | — |
262
+ | NetworkExtension | `com.apple.developer.networking.networkextension` | — | Packet tunnel, content filter, DNS proxy |
263
+ | BackgroundAssets | `com.apple.developer.background-assets` | — | — |
264
+ | Matter | `com.apple.developer.matter.allow-setup-payload` | — | — |
265
+ | DriverKit / USB / HID | various | — | Specialized — usually not needed in consumer apps |
266
+ | Live Activities | — | `NSSupportsLiveActivities`, `NSSupportsLiveActivitiesFrequentUpdates` | Info.plist only |
267
+ | Background modes | `com.apple.developer.background-modes` (via Xcode UI) | — | audio, location, voip, fetch, processing, remote-notification |
268
+
269
+ ---
270
+
271
+ ## 5. Deprecation Flags (avoid in new code)
272
+
273
+ - `UIImagePickerController` → use PhotosUI `PhotosPicker`.
274
+ - `UIUserNotification*` / `UILocalNotification` → use UserNotifications.
275
+ - Core Data in new projects → use SwiftData.
276
+ - `UIAlertView` / `UIActionSheet` → use SwiftUI `alert` / `confirmationDialog` (or `UIAlertController` in UIKit).
277
+ - `MKMapView` wrapped in SwiftUI → use SwiftUI `Map` (iOS 17+).
278
+ - `ObservableObject` / `@Published` / `@StateObject` → use `@Observable` macro.
279
+ - `DispatchQueue.main.async` for UI → use `@MainActor` + async/await.
280
+ - `Timer` / GCD timers → use async `Task.sleep` / `AsyncTimerSequence`.
281
+ - `DateFormatter` / `NumberFormatter` → use `FormatStyle` (`.formatted(...)`).
282
+ - `replacingOccurrences(of:with:)` → `.replacing("a", with: "b")`.
283
+ - `foregroundColor` → `foregroundStyle`.
284
+ - `cornerRadius` → `clipShape(.rect(cornerRadius:))`.
285
+ - `NavigationView` → `NavigationStack`.
286
+ - `tabItem` on TabView → new `Tab` API (iOS 18+).
287
+ - `UIWebView` → `WKWebView` (or SwiftUI `WebView` iOS 26+).
288
+ - `AddressBook` → Contacts.
289
+ - `CommonCrypto` in Swift → CryptoKit.
290
+ - `SKPayment*` (StoreKit 1) → StoreKit 2.
291
+ - `kUTType*` → UniformTypeIdentifiers `UTType`.
292
+ - `NetService` → Network framework.
293
+ - `UIScreen.main.bounds` for layout → SwiftUI geometry APIs.
294
+ - `performFetchWithCompletionHandler` → BackgroundTasks.
295
+ - SiriKit custom intents → AppIntents (keep SiriKit only for domains AppIntents doesn't cover: messaging, payments, ride-booking, car-commands).
296
+ - OpenGL ES → Metal.
297
+
298
+ ---
299
+
300
+ ## 6. The Reach-for-the-Kit Rule (enforcement)
301
+
302
+ When the user describes a capability that an Apple framework already solves, you **MUST** use the Apple framework. Custom implementations of these are anti-patterns:
303
+
304
+ - Rolling your own photo picker instead of `PhotosPicker`.
305
+ - Rolling your own calendar event storage instead of EventKit.
306
+ - Rolling your own notification scheduler instead of UserNotifications.
307
+ - Rolling your own keychain wrapper instead of the Security framework.
308
+ - Rolling your own biometric auth instead of LocalAuthentication.
309
+ - Rolling your own OAuth / sign-in flow instead of AuthenticationServices.
310
+ - Rolling your own map tiles instead of MapKit.
311
+ - Scraping weather APIs instead of WeatherKit.
312
+ - Rolling your own workout tracker instead of HealthKit + WorkoutKit.
313
+ - Rolling your own barcode scanner instead of Vision / VisionKit.
314
+ - Rolling your own PDF renderer instead of PDFKit.
315
+ - Rolling your own share sheet instead of `ShareLink` / `UIActivityViewController`.
316
+ - Rolling your own crypto primitives instead of CryptoKit.
317
+ - Rolling your own in-app purchase layer instead of StoreKit 2.
318
+
319
+ If unsure whether a framework covers a use case, query `apple-docs-mcp` **before** writing custom code.
320
+
321
+ ---
322
+
323
+ _See also: `ios-context.md` (Senior iOS Engineer persona + §2 Core Stack rules)._