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,277 @@
1
+ # SwiftUI 26 New APIs
2
+
3
+ **iOS 26+, iPadOS 26+, macOS Tahoe+**
4
+
5
+ ## WebView & WebPage
6
+
7
+ ### Basic WebView
8
+ ```swift
9
+ import WebKit
10
+
11
+ struct ArticleView: View {
12
+ let articleURL: URL
13
+
14
+ var body: some View {
15
+ WebView(url: articleURL)
16
+ }
17
+ }
18
+ ```
19
+
20
+ ### WebPage (Observable Model)
21
+ ```swift
22
+ import WebKit
23
+
24
+ struct BrowserView: View {
25
+ @State private var webPage = WebPage()
26
+
27
+ var body: some View {
28
+ VStack {
29
+ Text(webPage.title ?? "Loading...")
30
+
31
+ WebView(page: webPage)
32
+
33
+ HStack {
34
+ Button("Back") { webPage.goBack() }
35
+ .disabled(!webPage.canGoBack)
36
+
37
+ Button("Forward") { webPage.goForward() }
38
+ .disabled(!webPage.canGoForward)
39
+ }
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ## @Animatable Macro
46
+
47
+ ### Before (Manual animatableData)
48
+ ```swift
49
+ struct HikingRouteShape: Shape {
50
+ var startPoint: CGPoint
51
+ var endPoint: CGPoint
52
+ var elevation: Double
53
+
54
+ // Tedious manual declaration
55
+ var animatableData: AnimatablePair<CGPoint.AnimatableData,
56
+ AnimatablePair<Double, CGPoint.AnimatableData>> {
57
+ get {
58
+ AnimatablePair(startPoint.animatableData,
59
+ AnimatablePair(elevation, endPoint.animatableData))
60
+ }
61
+ set {
62
+ startPoint.animatableData = newValue.first
63
+ elevation = newValue.second.first
64
+ endPoint.animatableData = newValue.second.second
65
+ }
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### After (@Animatable Macro)
71
+ ```swift
72
+ @Animatable
73
+ struct HikingRouteShape: Shape {
74
+ var startPoint: CGPoint
75
+ var endPoint: CGPoint
76
+ var elevation: Double
77
+
78
+ @AnimatableIgnored
79
+ var fillColor: Color // Excluded from animation
80
+
81
+ // animatableData automatically synthesized!
82
+ }
83
+ ```
84
+
85
+ **Requirements**:
86
+ - Properties must be VectorArithmetic (Double, CGFloat, CGPoint)
87
+ - Use `@AnimatableIgnored` for non-animatable properties
88
+
89
+ ## Chart3D
90
+
91
+ ```swift
92
+ import Charts
93
+
94
+ struct ElevationChart: View {
95
+ let hikingData: [HikeDataPoint]
96
+
97
+ var body: some View {
98
+ Chart3D {
99
+ ForEach(hikingData) { point in
100
+ LineMark3D(
101
+ x: .value("Distance", point.distance),
102
+ y: .value("Elevation", point.elevation),
103
+ z: .value("Time", point.timestamp)
104
+ )
105
+ }
106
+ }
107
+ .chartXScale(domain: 0...10)
108
+ .chartYScale(domain: 0...3000)
109
+ .chartZScale(domain: startTime...endTime)
110
+ }
111
+ }
112
+ ```
113
+
114
+ ## TextEditor with AttributedString
115
+
116
+ ```swift
117
+ struct CommentView: View {
118
+ @State private var comment = AttributedString("Enter your comment")
119
+
120
+ var body: some View {
121
+ TextEditor(text: $comment)
122
+ // Built-in formatting controls (bold, italic, etc.)
123
+ }
124
+ }
125
+ ```
126
+
127
+ **Features**:
128
+ - Binding to `AttributedString` preserves formatting
129
+ - Automatic toolbar with formatting options
130
+ - Customizable paragraph styles and attribute constraints
131
+
132
+ ## New View Modifiers
133
+
134
+ ### sliderThumbVisibility
135
+ ```swift
136
+ Slider(value: $progress)
137
+ .sliderThumbVisibility(.hidden)
138
+ // For media players, progress indicators
139
+ ```
140
+
141
+ ### safeAreaBar
142
+ ```swift
143
+ List { ... }
144
+ .safeAreaBar(edge: .bottom) {
145
+ Text("Bottom Action Bar")
146
+ .padding(.vertical, 15)
147
+ }
148
+ .scrollEdgeEffectStyle(.soft, for: .bottom)
149
+ // Sticky bars with progressive blur
150
+ ```
151
+
152
+ ### In-App URL Opening
153
+ ```swift
154
+ @Environment(\.openURL) var openURL
155
+
156
+ Button("Open In-App") {
157
+ openURL(website, prefersInApp: true) // SFSafariViewController style
158
+ }
159
+ // Default Link opens in Safari app
160
+ ```
161
+
162
+ ### Button Roles
163
+ ```swift
164
+ Button(role: .close) {
165
+ showSheet = false
166
+ }
167
+ // Renders as X icon with glass effect in toolbars
168
+
169
+ Button(role: .confirm) {
170
+ confirmAction()
171
+ }
172
+ // System-styled confirmation button
173
+ ```
174
+
175
+ ### GlassButtonStyle (iOS 26.1+)
176
+ ```swift
177
+ Button("Clear Glass") { }
178
+ .buttonStyle(GlassButtonStyle(.clear))
179
+
180
+ Button("Regular Glass") { }
181
+ .buttonStyle(GlassButtonStyle(.glass))
182
+
183
+ Button("Tinted Glass") { }
184
+ .buttonStyle(GlassButtonStyle(.tint))
185
+ .tint(.blue)
186
+ ```
187
+
188
+ ### buttonSizing
189
+ ```swift
190
+ Button("Fit") { }
191
+ .buttonSizing(.fit) // Shrinks to label
192
+
193
+ Button("Stretch") { }
194
+ .buttonSizing(.stretch) // Fills available width
195
+
196
+ Button("Flexible") { }
197
+ .buttonSizing(.flexible) // Balanced
198
+ ```
199
+
200
+ ## Drag and Drop Enhancements
201
+
202
+ ```swift
203
+ struct PhotoGrid: View {
204
+ @State private var selection: Set<Photo.ID> = []
205
+ let photos: [Photo]
206
+
207
+ var body: some View {
208
+ LazyVGrid(columns: columns) {
209
+ ForEach(photos) { photo in
210
+ PhotoCell(photo: photo)
211
+ .draggable(photo)
212
+ }
213
+ }
214
+ .dragContainer {
215
+ // Return selected items
216
+ selection.compactMap { id in
217
+ photos.first { $0.id == id }
218
+ }
219
+ }
220
+ .dragConfiguration(.init(supportedOperations: [.copy, .delete]))
221
+ .dragPreviewFormation(.stack)
222
+ .onDragSessionUpdated { session in
223
+ if case .ended(.delete) = session.phase {
224
+ deleteSelectedPhotos()
225
+ }
226
+ }
227
+ }
228
+ }
229
+ ```
230
+
231
+ ## visionOS Spatial Layout
232
+
233
+ ### Alignment3D
234
+ ```swift
235
+ HikingRouteView()
236
+ .overlay(alignment: sunAlignment) {
237
+ SunView()
238
+ }
239
+
240
+ var sunAlignment: Alignment3D {
241
+ Alignment3D(horizontal: .center, vertical: .top, depth: .back)
242
+ }
243
+ ```
244
+
245
+ ### Manipulable Objects
246
+ ```swift
247
+ Model3D(named: "WaterBottle")
248
+ .manipulable() // Users can pick up and move
249
+ ```
250
+
251
+ ### Scene Snapping
252
+ ```swift
253
+ @Environment(\.sceneSnapping) var sceneSnapping
254
+
255
+ var body: some View {
256
+ Model3D(named: item.modelName)
257
+ .overlay(alignment: .bottom) {
258
+ if sceneSnapping.isSnapped {
259
+ Pedestal()
260
+ }
261
+ }
262
+ }
263
+ ```
264
+
265
+ ## GlassEffectContainer
266
+
267
+ ```swift
268
+ // Optimize multiple glass effects
269
+ GlassEffectContainer {
270
+ HStack {
271
+ Button("Action 1") { }.glassEffect()
272
+ Button("Action 2") { }.glassEffect()
273
+ Button("Action 3") { }.glassEffect()
274
+ }
275
+ }
276
+ // Benefits: Performance optimization, fluid morphing between shapes
277
+ ```
@@ -0,0 +1,250 @@
1
+ # Toolbar & Navigation
2
+
3
+ **iOS 26+**
4
+
5
+ ## Toolbar Spacer API
6
+
7
+ ### Separate Button Groups
8
+ ```swift
9
+ .toolbar {
10
+ ToolbarItemGroup(placement: .topBarTrailing) {
11
+ // Navigation group
12
+ Button("Up") { }
13
+ Button("Down") { }
14
+
15
+ Spacer(.fixed) // Separates groups visually
16
+
17
+ // Action group
18
+ Button("Settings") { }
19
+ }
20
+ }
21
+ ```
22
+
23
+ **Visual Effect**: Items within group share Liquid Glass background. `.fixed` creates clear separation.
24
+
25
+ ### Flexible Spacer
26
+ ```swift
27
+ .toolbar {
28
+ ToolbarSpacer(.flexible, placement: .topBarTrailing)
29
+
30
+ ToolbarItem(placement: .topBarTrailing) {
31
+ Button(role: .close) {
32
+ dismiss()
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ ## Prominent Toolbar Buttons
39
+
40
+ ```swift
41
+ .toolbar {
42
+ ToolbarItem(placement: .topBarTrailing) {
43
+ Button("Add Trip") {
44
+ addTrip()
45
+ }
46
+ .buttonStyle(.borderedProminent)
47
+ .tint(.blue) // Tinting works with Liquid Glass
48
+ }
49
+ }
50
+ ```
51
+
52
+ **Best Practice**: Use for primary actions. Don't over-tint.
53
+
54
+ ## Close & Confirm Buttons
55
+
56
+ ```swift
57
+ .sheet(isPresented: $showSheet) {
58
+ NavigationStack {
59
+ VStack { }
60
+ .navigationTitle("Info")
61
+ .toolbar {
62
+ ToolbarSpacer(.flexible, placement: .topBarTrailing)
63
+
64
+ ToolbarItem(placement: .topBarTrailing) {
65
+ Button(role: .close) { // X icon with glass
66
+ showSheet = false
67
+ }
68
+ }
69
+ }
70
+ }
71
+ .presentationDetents([.medium])
72
+ }
73
+ ```
74
+
75
+ ## Search Placement
76
+
77
+ ### Automatic Platform Placement
78
+ ```swift
79
+ NavigationSplitView {
80
+ List { }
81
+ .searchable(text: $searchText)
82
+ }
83
+ // iPhone: Bottom-aligned (ergonomic)
84
+ // iPad: Top trailing corner
85
+ ```
86
+
87
+ ### Search Tab Role
88
+ ```swift
89
+ TabView {
90
+ SearchView()
91
+ .tabItem { Label("Search", systemImage: "magnifyingglass") }
92
+ .tabRole(.search) // Separated, morphs into search field
93
+
94
+ TripsView()
95
+ .tabItem { Label("Trips", systemImage: "map") }
96
+ }
97
+ ```
98
+
99
+ ### Compact Search Toolbar
100
+ ```swift
101
+ List { ... }
102
+ .navigationTitle("Search Users")
103
+ .searchable(text: $searchText)
104
+ .searchToolbarBehavior(.minimize) // Compact when unfocused
105
+ .toolbar {
106
+ ToolbarSpacer(.flexible, placement: .bottomBar)
107
+ DefaultToolbarItem(kind: .search, placement: .bottomBar)
108
+ }
109
+ ```
110
+
111
+ ### Prevent Title Hiding (iOS 17.1+)
112
+ ```swift
113
+ .searchable(text: $searchText)
114
+ .searchPresentationToolbarBehavior(.avoidHidingContent)
115
+ ```
116
+
117
+ ## Tab Bar Adaptations
118
+
119
+ ### Sidebar Adaptable
120
+ ```swift
121
+ TabView {
122
+ ContentView()
123
+ .tabItem { Label("Home", systemImage: "house") }
124
+ }
125
+ .tabViewStyle(.sidebarAdaptable)
126
+ // iPad: Can switch to sidebar
127
+ // iPhone: Remains tab bar
128
+ ```
129
+
130
+ ### Tab Bar Minimization
131
+ ```swift
132
+ TabView { ... }
133
+ .tabBarMinimizationBehavior(.onScrollDown)
134
+ // .onScrollDown - Minimize when scrolling down
135
+ // .onScrollUp - Minimize when scrolling up
136
+ // .automatic - System decides
137
+ // .never - Always visible
138
+ ```
139
+
140
+ ## Navigation Hierarchy
141
+
142
+ ### Clear Layer Separation
143
+ ```
144
+ Navigation Layer (Liquid Glass)
145
+ ├── Tab bar
146
+ ├── Navigation bar
147
+ ├── Toolbar
148
+ └── Floating controls
149
+
150
+ Content Layer (No Glass)
151
+ └── Lists, tables, images, text
152
+ ```
153
+
154
+ ### Split Views
155
+ ```swift
156
+ NavigationSplitView {
157
+ // Sidebar (gets glass automatically)
158
+ List(folders, selection: $selectedFolder) {
159
+ Label($0.name, systemImage: $0.icon)
160
+ }
161
+ } content: {
162
+ // Main content
163
+ List(items, selection: $selectedItem) { ... }
164
+ } detail: {
165
+ // Inspector
166
+ InspectorView(item: selectedItem)
167
+ }
168
+ ```
169
+
170
+ ## Menus
171
+
172
+ ### Standard Actions Get Icons Automatically
173
+ ```swift
174
+ Menu("Actions") {
175
+ Button(action: cut) { Text("Cut") } // Gets scissors icon
176
+ Button(action: copy) { Text("Copy") } // Gets documents icon
177
+ Button(action: paste) { Text("Paste") } // Gets clipboard icon
178
+ }
179
+ ```
180
+
181
+ ### Match Swipe and Context Menu Actions
182
+ ```swift
183
+ List(emails) { email in
184
+ EmailRow(email)
185
+ .swipeActions(edge: .trailing) {
186
+ Button("Delete", systemImage: "trash", role: .destructive) {
187
+ delete(email)
188
+ }
189
+ }
190
+ .contextMenu {
191
+ // Same actions at top of menu
192
+ Button("Delete", systemImage: "trash", role: .destructive) {
193
+ delete(email)
194
+ }
195
+ Divider()
196
+ // Additional actions below
197
+ }
198
+ }
199
+ ```
200
+
201
+ ## iPad Menu Bar
202
+
203
+ ```swift
204
+ .commands {
205
+ TextEditingCommands()
206
+
207
+ CommandGroup(after: .newItem) {
208
+ Button("Add Note") {
209
+ addNote()
210
+ }
211
+ .keyboardShortcut("n", modifiers: [.command, .shift])
212
+ }
213
+ }
214
+ // Creates menu bar on iPad via swipe down
215
+ ```
216
+
217
+ ## Icons vs Text in Toolbars
218
+
219
+ ### Consistent Style Per Group
220
+ ```swift
221
+ // Correct: All icons in group
222
+ .toolbar {
223
+ ToolbarItemGroup {
224
+ Button { share() } label: {
225
+ Image(systemName: "square.and.arrow.up")
226
+ }
227
+ Button { save() } label: {
228
+ Image(systemName: "square.and.arrow.down")
229
+ }
230
+ }
231
+ }
232
+
233
+ // Wrong: Mixed icons and text
234
+ .toolbar {
235
+ ToolbarItemGroup {
236
+ Button("Save") { } // Text
237
+ Button { } label: { Image(systemName: "...") } // Icon
238
+ }
239
+ }
240
+ ```
241
+
242
+ ### Accessibility Labels Required
243
+ ```swift
244
+ Button {
245
+ share()
246
+ } label: {
247
+ Image(systemName: "square.and.arrow.up")
248
+ }
249
+ .accessibilityLabel("Share")
250
+ ```
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: ios-bootstrap
3
+ description: Bootstraps a new iOS project — gates Xcode 26.3, guides the Xcode New Project dialog, wires XcodeBuildMCP + apple-docs-mcp, installs Maestro. Use when project_type=ios and no .xcodeproj exists in the project root.
4
+ version: 0.2.0
5
+ status: ready
6
+ ---
7
+
8
+ # iOS Bootstrap (Phase -1)
9
+
10
+ ## Purpose
11
+ Phase -1 bring-up for a fresh iOS project. Enforces the Xcode 26.3 hard requirement, walks the user through Xcode's New Project dialog (no Tuist), and wires the MCP + CLI tooling stack the rest of the iOS workflow depends on.
12
+
13
+ ## When this fires
14
+ - `project_type=ios` AND no `.xcodeproj` / `.xcworkspace` at project root
15
+ - User explicitly invokes `/build` iOS branch on an empty directory
16
+ - First-run provisioning for an iOS mode session
17
+
18
+ ## Inputs
19
+ - `app_name` (string)
20
+ - `bundle_id_prefix` (string, e.g. `com.acme`)
21
+ - `team_id` (string, optional — Apple Developer team ID)
22
+ - `deployment_target` (string, default `iOS 26.0`)
23
+ - `ship_to_device` (bool, default false — skip signing if simulator-only)
24
+
25
+ ## Outputs
26
+ - `.xcodeproj` created by Xcode (user-assisted via dialog)
27
+ - `docs/plans/` and `maestro/` directories created
28
+ - MCP config updated with XcodeBuildMCP + apple-docs-mcp
29
+ - Maestro installed via Homebrew and on PATH
30
+ - `.build-state.md` seeded with toolchain versions
31
+
32
+ ## Workflow
33
+
34
+ ### 1. Xcode version gate (blocking)
35
+ Run `xcodebuild -version`. Parse the first line (`Xcode <version>`). Require `Xcode 26.3` or later.
36
+ If missing or older: fail with `"Install Xcode 26.3 from the Mac App Store, then run xcode-select -s /Applications/Xcode.app"`. Do not proceed.
37
+
38
+ ### 2. Host environment check
39
+ - `sw_vers -productVersion` — require macOS 26.0+ (Tahoe). Warn if older; Xcode 26.3 may still run but is unsupported.
40
+ - `uname -m` — require `arm64` (Apple Silicon). Intel Macs are not a supported dev host for iOS 26 SDKs.
41
+
42
+ ### 3. Create project directory structure
43
+ From project root, create:
44
+ - `docs/plans/` — holds `.build-state.md`, `ios-design-board.md`, task lists
45
+ - `maestro/` — canonical name for Maestro YAML flows
46
+
47
+ ### 4. User-assisted Xcode New Project dialog
48
+ Instruct the user to run `open -a Xcode` then **File → New → Project** (`⇧⌘N`). Exact selections:
49
+
50
+ | Step | Choice |
51
+ |---|---|
52
+ | Platform tab | **iOS** |
53
+ | Template | **App** |
54
+ | Product Name | `{app_name}` |
55
+ | Team | user's default (or None for sim-only) |
56
+ | Organization Identifier | `{bundle_id_prefix}` (becomes `{bundle_id_prefix}.{app_name}`) |
57
+ | Interface | **SwiftUI** |
58
+ | Language | **Swift** |
59
+ | Storage | **SwiftData** |
60
+ | Include Tests | **checked** |
61
+ | Save location | project root (do NOT create a nested git repo) |
62
+
63
+ See `references/new-project-dialog.md` for the full click path.
64
+
65
+ ### 5. Wire XcodeBuildMCP
66
+ Run `claude mcp list` and check for an `xcodebuildmcp` entry. If absent:
67
+ ```bash
68
+ claude mcp add xcodebuildmcp -- npx -y xcodebuildmcp@latest
69
+ ```
70
+ If the command succeeds, record `configured`. If it fails, fall back to showing the user the JSON snippet from `references/xcode-mcp-config.md` for manual addition. Either way, a Claude Code restart is required for the MCP to load — tell the user.
71
+
72
+ ### 6. Wire apple-docs-mcp
73
+ Run `claude mcp list` and check for an `apple-docs` entry. If absent:
74
+ ```bash
75
+ claude mcp add apple-docs -- npx -y apple-docs-mcp@latest
76
+ ```
77
+ Same fallback and restart note as Step 5.
78
+
79
+ ### 7. Install Maestro
80
+ ```bash
81
+ which maestro || brew install maestro
82
+ maestro --version # verify — expect 1.x
83
+ ```
84
+ If `brew` missing: halt and instruct user to install Homebrew (`brew.sh`) first, then `brew install maestro`.
85
+
86
+ ### 8. Signing defaults (conditional)
87
+ If `ship_to_device=true`: prompt user for Team ID, write to project's `.xcconfig` or target build settings via XcodeBuildMCP. If `false` (simulator-only): skip — user can add signing later.
88
+
89
+ ### 9. Deferred (do NOT install here)
90
+ - **fastlane** — Phase 7 only (distribution). Skip.
91
+ - **Optional Apple Developer account check** — only runs if `ship_to_device=true`.
92
+
93
+ ## Handoff checklist
94
+ - [ ] `xcodebuild -version` ≥ 26.3
95
+ - [ ] `.xcodeproj` exists at root, opens in Xcode, builds clean for simulator
96
+ - [ ] `docs/plans/` and `maestro/` present
97
+ - [ ] `maestro --version` prints a version
98
+ - [ ] `claude mcp list` shows `xcodebuildmcp` and `apple-docs`
99
+ - [ ] Claude Code restarted (MCPs load on restart)
100
+
101
+ ## References
102
+ - `references/xcode-mcp-config.md` — fallback JSON snippet if `claude mcp add` fails
103
+ - `references/apple-docs-mcp-config.md` — fallback JSON snippet if `claude mcp add` fails
104
+ - `references/new-project-dialog.md` — exact Xcode click path
105
+
106
+ ---
107
+ _Part of buildanything iOS mode. See `protocols/ios-context.md` for Senior iOS Engineer persona._
@@ -0,0 +1,28 @@
1
+ # apple-docs-mcp — MCP config snippet
2
+
3
+ Add under `mcpServers` in `~/.claude.json` or `./.mcp.json`:
4
+
5
+ ```json
6
+ {
7
+ "mcpServers": {
8
+ "apple-docs": {
9
+ "command": "npx",
10
+ "args": ["-y", "apple-docs-mcp@latest"]
11
+ }
12
+ }
13
+ }
14
+ ```
15
+
16
+ ## What it gives you
17
+ - Live query against developer.apple.com/documentation
18
+ - Framework → symbol lookup (protocols, methods, availability annotations)
19
+ - Deprecation flags and iOS-version gating
20
+ - Sample-code snippets for specific APIs
21
+
22
+ ## When to use it
23
+ - Before writing any non-trivial iOS code, confirm the current API (especially for iOS 26 additions: FoundationModels, AlarmKit, SwiftUI `WebView`, Visual Intelligence).
24
+ - Whenever a symbol triggers a deprecation warning — find the replacement.
25
+ - When `ios-frameworks-map.md` is ambiguous about which framework covers a capability.
26
+
27
+ ## Verification
28
+ After restarting Claude Code, confirm tools prefixed `mcp__apple-docs__` appear.
@@ -0,0 +1,41 @@
1
+ # Xcode 26.3 — New Project Dialog click path
2
+
3
+ ## Launch
4
+ - `open -a Xcode` (or click Xcode in /Applications)
5
+ - Menu: **File → New → Project…** (`⇧⌘N`)
6
+
7
+ ## Dialog screens
8
+
9
+ ### Screen 1 — Choose a template
10
+ - Platform tabs at top: select **iOS**
11
+ - Template grid: select **App**
12
+ - Click **Next**
13
+
14
+ ### Screen 2 — Choose options
15
+ | Field | Value |
16
+ |---|---|
17
+ | Product Name | `{app_name}` (e.g. `HabitForge`) |
18
+ | Team | your Apple Developer team (or **None** for simulator-only) |
19
+ | Organization Identifier | `{bundle_id_prefix}` (e.g. `com.acme`) |
20
+ | Bundle Identifier | auto-populated: `{bundle_id_prefix}.{app_name}` |
21
+ | Interface | **SwiftUI** |
22
+ | Language | **Swift** |
23
+ | Storage | **SwiftData** |
24
+ | Include Tests | **checked** |
25
+
26
+ Click **Next**.
27
+
28
+ ### Screen 3 — Save location
29
+ - Navigate to the project root directory (NOT a subdirectory).
30
+ - **Uncheck** "Create Git repository on my Mac" if a git repo already exists at the root (avoid nested repos).
31
+ - Click **Create**.
32
+
33
+ ## Verification after creation
34
+ - `.xcodeproj` bundle is at project root
35
+ - `⌘B` builds clean with no errors
36
+ - `⌘R` launches the default "Hello, world!" SwiftUI view in a booted simulator
37
+
38
+ ## Common pitfalls
39
+ - Choosing UIKit storyboard template by mistake — re-do, the iOS mode assumes SwiftUI lifecycle.
40
+ - Saving into a nested folder — breaks downstream path assumptions in MCP tools.
41
+ - Selecting CoreData instead of SwiftData — iOS 26 default is SwiftData; CoreData is legacy.