@mmerterden/multi-agent-pipeline 20.7.0 → 20.8.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 (264) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +0 -10
  3. package/docs/facts.json +1 -1
  4. package/manifest.json +266 -267
  5. package/package.json +2 -2
  6. package/pipeline/scripts/_notices.mjs +1 -1
  7. package/pipeline/skills/.skill-manifest.json +68 -68
  8. package/pipeline/skills/shared/README.md +70 -70
  9. package/pipeline/skills/shared/external/alarmkit/SKILL.md +373 -381
  10. package/pipeline/skills/shared/external/alarmkit/evals/evals.json +23 -18
  11. package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +328 -378
  12. package/pipeline/skills/shared/external/app-clips/SKILL.md +260 -160
  13. package/pipeline/skills/shared/external/app-clips/evals/evals.json +27 -27
  14. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +150 -83
  15. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +135 -83
  16. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +143 -85
  17. package/pipeline/skills/shared/external/app-intents/SKILL.md +302 -304
  18. package/pipeline/skills/shared/external/app-intents/evals/evals.json +21 -21
  19. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +594 -894
  20. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +339 -277
  21. package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +27 -23
  22. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +105 -122
  23. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +143 -166
  24. package/pipeline/skills/shared/external/app-store-review/SKILL.md +307 -326
  25. package/pipeline/skills/shared/external/app-store-review/evals/evals.json +21 -21
  26. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +105 -67
  27. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +114 -101
  28. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +333 -360
  29. package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +24 -27
  30. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +215 -322
  31. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +161 -256
  32. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +277 -387
  33. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +196 -210
  34. package/pipeline/skills/shared/external/authentication/SKILL.md +265 -381
  35. package/pipeline/skills/shared/external/authentication/evals/evals.json +25 -25
  36. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +133 -178
  37. package/pipeline/skills/shared/external/authentication/references/passkeys.md +111 -147
  38. package/pipeline/skills/shared/external/avkit/SKILL.md +267 -364
  39. package/pipeline/skills/shared/external/avkit/evals/evals.json +26 -26
  40. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +375 -493
  41. package/pipeline/skills/shared/external/background-processing/SKILL.md +270 -382
  42. package/pipeline/skills/shared/external/background-processing/evals/evals.json +22 -22
  43. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +169 -317
  44. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +290 -371
  45. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +24 -24
  46. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +175 -343
  47. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +292 -381
  48. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +33 -30
  49. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +227 -355
  50. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +197 -346
  51. package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +19 -21
  52. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +169 -308
  53. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +226 -376
  54. package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +25 -22
  55. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +257 -337
  56. package/pipeline/skills/shared/external/core-data/SKILL.md +292 -368
  57. package/pipeline/skills/shared/external/core-data/evals/evals.json +30 -27
  58. package/pipeline/skills/shared/external/core-motion/SKILL.md +235 -324
  59. package/pipeline/skills/shared/external/core-motion/evals/evals.json +31 -27
  60. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +210 -310
  61. package/pipeline/skills/shared/external/core-nfc/SKILL.md +292 -366
  62. package/pipeline/skills/shared/external/core-nfc/evals/evals.json +22 -24
  63. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +233 -329
  64. package/pipeline/skills/shared/external/coreml/SKILL.md +323 -367
  65. package/pipeline/skills/shared/external/coreml/evals/evals.json +24 -21
  66. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +562 -565
  67. package/pipeline/skills/shared/external/cryptokit/SKILL.md +253 -394
  68. package/pipeline/skills/shared/external/cryptokit/evals/evals.json +20 -18
  69. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +299 -488
  70. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +270 -323
  71. package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +27 -30
  72. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +167 -315
  73. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +140 -193
  74. package/pipeline/skills/shared/external/device-integrity/SKILL.md +230 -353
  75. package/pipeline/skills/shared/external/device-integrity/evals/evals.json +25 -21
  76. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +159 -197
  77. package/pipeline/skills/shared/external/energykit/SKILL.md +225 -392
  78. package/pipeline/skills/shared/external/energykit/evals/evals.json +29 -28
  79. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +174 -470
  80. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +261 -383
  81. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +25 -22
  82. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +165 -268
  83. package/pipeline/skills/shared/external/healthkit/SKILL.md +252 -303
  84. package/pipeline/skills/shared/external/healthkit/evals/evals.json +24 -23
  85. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +369 -523
  86. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +233 -348
  87. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +27 -22
  88. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +199 -305
  89. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +368 -340
  90. package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +28 -27
  91. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +314 -260
  92. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +97 -67
  93. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +165 -101
  94. package/pipeline/skills/shared/external/ios-localization/SKILL.md +258 -371
  95. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +23 -23
  96. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +283 -491
  97. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +313 -440
  98. package/pipeline/skills/shared/external/ios-networking/SKILL.md +265 -341
  99. package/pipeline/skills/shared/external/ios-networking/evals/evals.json +24 -24
  100. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +425 -652
  101. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +143 -285
  102. package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -53
  103. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +231 -456
  104. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +517 -784
  105. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +265 -393
  106. package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +21 -21
  107. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +177 -270
  108. package/pipeline/skills/shared/external/live-activities/SKILL.md +318 -360
  109. package/pipeline/skills/shared/external/live-activities/evals/evals.json +21 -21
  110. package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +478 -710
  111. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +295 -267
  112. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +28 -24
  113. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +378 -532
  114. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +397 -499
  115. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +165 -348
  116. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +26 -23
  117. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +123 -130
  118. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +189 -315
  119. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +22 -21
  120. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +181 -270
  121. package/pipeline/skills/shared/external/natural-language/SKILL.md +188 -340
  122. package/pipeline/skills/shared/external/natural-language/evals/evals.json +21 -21
  123. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +171 -225
  124. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +258 -392
  125. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +30 -29
  126. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +164 -231
  127. package/pipeline/skills/shared/external/pdfkit/SKILL.md +312 -344
  128. package/pipeline/skills/shared/external/pdfkit/evals/evals.json +19 -19
  129. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +413 -624
  130. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +242 -358
  131. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +25 -21
  132. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +161 -226
  133. package/pipeline/skills/shared/external/permissionkit/SKILL.md +282 -400
  134. package/pipeline/skills/shared/external/permissionkit/evals/evals.json +27 -30
  135. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +237 -350
  136. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +276 -325
  137. package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +299 -545
  138. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +344 -588
  139. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +316 -660
  140. package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +270 -416
  141. package/pipeline/skills/shared/external/push-notifications/SKILL.md +312 -340
  142. package/pipeline/skills/shared/external/push-notifications/evals/evals.json +27 -26
  143. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +328 -485
  144. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +327 -560
  145. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +218 -410
  146. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +24 -27
  147. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +221 -348
  148. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +222 -393
  149. package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +23 -24
  150. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +280 -420
  151. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +217 -421
  152. package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +23 -26
  153. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +133 -125
  154. package/pipeline/skills/shared/external/storekit/SKILL.md +228 -204
  155. package/pipeline/skills/shared/external/storekit/evals/evals.json +27 -24
  156. package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +98 -109
  157. package/pipeline/skills/shared/external/storekit/references/core-patterns.md +298 -242
  158. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +356 -649
  159. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +274 -399
  160. package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +22 -24
  161. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +107 -108
  162. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +93 -165
  163. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +99 -137
  164. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +77 -120
  165. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +334 -350
  166. package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +22 -22
  167. package/pipeline/skills/shared/external/swift-charts/SKILL.md +208 -394
  168. package/pipeline/skills/shared/external/swift-charts/evals/evals.json +27 -30
  169. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +351 -762
  170. package/pipeline/skills/shared/external/swift-codable/SKILL.md +339 -343
  171. package/pipeline/skills/shared/external/swift-codable/evals/evals.json +20 -20
  172. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +303 -351
  173. package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +27 -24
  174. package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +65 -80
  175. package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +48 -84
  176. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +134 -79
  177. package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +145 -167
  178. package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +62 -50
  179. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +92 -121
  180. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +177 -241
  181. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +258 -234
  182. package/pipeline/skills/shared/external/swift-language/SKILL.md +342 -382
  183. package/pipeline/skills/shared/external/swift-language/evals/evals.json +24 -27
  184. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +79 -56
  185. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +297 -340
  186. package/pipeline/skills/shared/external/swift-security/SKILL.md +180 -161
  187. package/pipeline/skills/shared/external/swift-security/evals/evals.json +25 -25
  188. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +314 -469
  189. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +408 -476
  190. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +260 -530
  191. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +270 -477
  192. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +573 -571
  193. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +370 -441
  194. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +332 -433
  195. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +346 -468
  196. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +352 -472
  197. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +431 -432
  198. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +328 -425
  199. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +341 -579
  200. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +396 -457
  201. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +354 -614
  202. package/pipeline/skills/shared/external/swift-testing/SKILL.md +188 -175
  203. package/pipeline/skills/shared/external/swift-testing/evals/evals.json +26 -24
  204. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +80 -84
  205. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +317 -433
  206. package/pipeline/skills/shared/external/swiftdata/SKILL.md +392 -256
  207. package/pipeline/skills/shared/external/swiftdata/evals/evals.json +24 -24
  208. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +206 -402
  209. package/pipeline/skills/shared/external/swiftdata/references/indexing.md +59 -52
  210. package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +57 -33
  211. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +354 -747
  212. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +300 -508
  213. package/pipeline/skills/shared/external/swiftlint/SKILL.md +175 -226
  214. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +141 -208
  215. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +100 -109
  216. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +159 -179
  217. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +383 -18
  218. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +143 -229
  219. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +283 -366
  220. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +396 -608
  221. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +336 -385
  222. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +239 -349
  223. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +228 -310
  224. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +260 -249
  225. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +92 -74
  226. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +112 -177
  227. package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +61 -64
  228. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +94 -134
  229. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +193 -225
  230. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +173 -327
  231. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +193 -168
  232. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +127 -150
  233. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +132 -133
  234. package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +152 -117
  235. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +106 -140
  236. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +316 -252
  237. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +341 -332
  238. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +547 -854
  239. package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +485 -537
  240. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +417 -499
  241. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +213 -376
  242. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +86 -175
  243. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +89 -195
  244. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +95 -182
  245. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +71 -149
  246. package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +21 -27
  247. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +303 -295
  248. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +204 -387
  249. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +469 -683
  250. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +140 -186
  251. package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +75 -86
  252. package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +63 -60
  253. package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +69 -137
  254. package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +95 -67
  255. package/pipeline/skills/shared/external/tipkit/SKILL.md +220 -335
  256. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +356 -494
  257. package/pipeline/skills/shared/external/vision-framework/SKILL.md +260 -375
  258. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +393 -515
  259. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +363 -539
  260. package/pipeline/skills/shared/external/weatherkit/SKILL.md +152 -310
  261. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +288 -407
  262. package/pipeline/skills/shared/external/widgetkit/SKILL.md +216 -288
  263. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +414 -719
  264. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +0 -39
@@ -3,41 +3,44 @@
3
3
  "evals": [
4
4
  {
5
5
  "id": 0,
6
- "prompt": "Review this Swift 6.3/Xcode 26 concurrency build-settings plan: the team says Approachable Concurrency alone makes the whole module MainActor, strict concurrency should start at Targeted in Swift 6 mode, and CPU-heavy image decoding can stay on MainActor because nonisolated async functions now hop to a background executor. Correct the plan and give the smallest build-setting and code-level recommendations.",
7
- "expected_output": "A source-grounded settings review that separates Approachable Concurrency from Default Actor Isolation, states that Swift 6 mode uses complete strict concurrency with errors, and recommends @concurrent/nonisolated offloading for CPU-heavy work instead of blocking MainActor.",
6
+ "name": "settings-plan-review",
7
+ "prompt": "Check this plan for our podcast app on Swift 6.3 and Xcode 26: (1) turning on Approachable Concurrency is enough to make the whole app target main-actor isolated; (2) we will begin the Swift 6 migration at the Targeted strict-concurrency level; (3) waveform rendering is CPU heavy but can stay on the main actor, because nonisolated async functions hop to a background thread anyway. Correct what is wrong and say what we should do instead.",
8
+ "expected_output": "Separates the two settings: Approachable Concurrency enables upcoming features, whereas inferring @MainActor everywhere needs the Default Actor Isolation build setting set to MainActor. Notes that the Swift 6 language mode (6.3 included) is complete checking with errors and that Targeted and Minimal are Swift 5 staging levels. Explains that with NonisolatedNonsendingByDefault a nonisolated async function keeps executing on whichever actor called it, so the rendering must be moved with @concurrent on a nonisolated function. Stays at the level of settings and code-level fixes.",
8
9
  "files": [],
9
- "assertions": [
10
- "Separates Xcode's Approachable Concurrency setting from Default Actor Isolation and says MainActor-by-default requires Default Actor Isolation = MainActor.",
11
- "States that Swift 6 / 6.3 language mode uses complete strict concurrency and emits errors, while Targeted or Minimal are Swift 5 migration settings.",
12
- "Explains that nonisolated async functions stay on the caller's actor with nonisolated(nonsending) behavior unless @concurrent is used.",
13
- "Recommends offloading CPU-heavy work with @concurrent and a nonisolated context rather than leaving it on MainActor.",
14
- "Avoids broad architecture or SwiftUI state-management redesign beyond the concurrency settings and code-level fix."
10
+ "expectations": [
11
+ "Treats Approachable Concurrency and Default Actor Isolation as two separate settings, and only the latter, set to MainActor, gives main-actor-by-default",
12
+ "States that in Swift 6 (and 6.3) mode checking is always complete and reports errors, while the Targeted and Minimal levels belong to Swift 5 staging",
13
+ "Says a nonisolated async function inherits the calling actor, the nonisolated(nonsending) behavior, until @concurrent is added",
14
+ "Moves the CPU-heavy rendering off the main actor with @concurrent in a nonisolated context",
15
+ "Limits the answer to build settings and code-level changes, with no broader redesign of architecture or SwiftUI state"
15
16
  ]
16
17
  },
17
18
  {
18
19
  "id": 1,
19
- "prompt": "A SwiftUI app with Default Actor Isolation set to MainActor has errors around a @Observable StickerModel conforming to Exportable, a PhotoProcessor async method, and a legacy SDK imported with @preconcurrency. Give a diagnostic remediation plan that preserves behavior, avoids unchecked Sendable unless truly justified, and explains which fixes belong in swift-concurrency rather than architecture or navigation skills.",
20
- "expected_output": "A diagnostic remediation plan that uses @MainActor or isolated conformances for UI-bound state, explains nonisolated(nonsending) and @concurrent tradeoffs for PhotoProcessor work, treats @preconcurrency as temporary, and keeps architecture/navigation details as sibling handoffs.",
20
+ "name": "default-isolation-remediation",
21
+ "prompt": "Our app target uses Default Actor Isolation = MainActor. We get errors on an @Observable PlaylistModel that conforms to our Archivable protocol, on an async render method of a plain WaveformRenderer class, and around a vendor analytics SDK we import with @preconcurrency. Give a remediation plan that keeps behavior the same, and tell us what is out of scope for this pass.",
22
+ "expected_output": "Keeps PlaylistModel on the main actor and meets the protocol through a main-actor isolated conformance, written extension PlaylistModel: @MainActor Archivable. Explains that WaveformRenderer.render executes on its caller's actor under nonisolated(nonsending), so only CPU-heavy parts should move to a @concurrent nonisolated function. Prefers immutable values, actor isolation or locks over @unchecked Sendable. Treats the @preconcurrency import as temporary with a written removal plan, and leaves module layout, navigation and who owns which SwiftUI state to sibling skills.",
21
23
  "files": [],
22
- "assertions": [
23
- "Uses @MainActor isolation or an isolated conformance such as extension StickerModel: @MainActor Exportable for UI-bound protocol conformance errors.",
24
- "Explains when PhotoProcessor can stay on the caller's actor and when CPU-heavy work should move to @concurrent/nonisolated async code.",
25
- "Prefers value immutability, actor isolation, or synchronization over adding @unchecked Sendable by default.",
26
- "Treats @preconcurrency import as a temporary bridge for third-party modules with a documented removal plan.",
27
- "Routes module architecture, navigation implementation, and detailed SwiftUI state ownership to sibling skills instead of expanding this skill's scope."
24
+ "expectations": [
25
+ "Fixes the conformance with @MainActor on the type or the isolated form extension PlaylistModel: @MainActor Archivable",
26
+ "Separates the case where WaveformRenderer may keep running on the calling actor from CPU-bound work that belongs in a @concurrent nonisolated function",
27
+ "Reaches for immutable values, an actor or a lock before any @unchecked Sendable",
28
+ "Keeps the @preconcurrency import only temporarily and asks for a written plan to drop it",
29
+ "Hands module layout, navigation and fine-grained SwiftUI state ownership over to sibling skills"
28
30
  ]
29
31
  },
30
32
  {
31
33
  "id": 2,
32
- "prompt": "Review this synchronization plan for a Swift 6.3 app: use an actor for a synchronous metrics counter called from C callbacks, put NSLock inside an actor for cache mutation, hold a Mutex while awaiting a network fetch, and ban NSLock because it is not Sendable. Replace it with a modern concurrency-safe plan for iOS 16 through iOS 26.",
33
- "expected_output": "A synchronization review that chooses actors for async shared state, Mutex or OSAllocatedUnfairLock for synchronous state depending on deployment target, Atomic for simple counters or flags, avoids locks inside actors or across await, and corrects the NSLock Sendable claim without recommending it first.",
34
+ "name": "locks-versus-actors",
35
+ "prompt": "Review this plan; the app's deployment range is iOS 16 up to iOS 26: an actor holds the frame-drop counter that a C audio callback increments synchronously; another actor guards its dictionary with an NSLock as extra protection; a Mutex stays locked while we await the network refresh; and NSLock is banned because it is not Sendable. What should change?",
36
+ "expected_output": "Keeps actors for shared mutable state reached asynchronously where hops are acceptable, and replaces the counter with Atomic on iOS 18 or a lock for iOS 16-17 because the C callback is synchronous. Picks Mutex where iOS 18 is the floor and OSAllocatedUnfairLock for the iOS 16 and 17 range or when lock ownership should be asserted. Removes the NSLock from inside the actor and never holds a lock across await. Points out that NSLock does conform to Sendable, yet still favors the newer primitives that own their state.",
34
37
  "files": [],
35
- "assertions": [
36
- "Uses an actor for shared mutable state when asynchronous access and actor hops are acceptable.",
37
- "Uses Mutex for new code targeting iOS 18+ and OSAllocatedUnfairLock for iOS 16-17 support or ownership-assertion needs.",
38
- "Uses Atomic for simple scalar counters or flags rather than an actor or full lock when appropriate.",
39
- "Rejects locks inside actors and rejects holding any lock across await suspension points.",
40
- "Corrects the claim that NSLock is not Sendable while still preferring modern state-protecting primitives for new Swift concurrency code."
38
+ "expectations": [
39
+ "Keeps an actor where every caller can await and the hop cost does not matter",
40
+ "Chooses Mutex when iOS 18 is the minimum, OSAllocatedUnfairLock for iOS 16 and 17 or for ownership preconditions",
41
+ "Uses Atomic for a simple scalar counter or flag instead of an actor or a full lock",
42
+ "Rejects locks inside actors and any lock held across await",
43
+ "Fixes the false statement that NSLock lacks Sendable, but still prefers the newer lock types that hold their state"
41
44
  ]
42
45
  }
43
46
  ]
@@ -1,87 +1,72 @@
1
1
  # Approachable Concurrency Quick Reference
2
2
 
3
- Use this reference when the project has opted into the Swift 6.2 approachable
4
- concurrency settings and, when appropriate, default MainActor isolation.
5
-
6
- ## Detecting the Mode
7
-
8
- **Xcode 26:** Check build settings under Swift Compiler > Concurrency:
9
- - Swift language version: 6.2+
10
- - Approachable Concurrency: enabled when using the bundled upcoming-feature flags
11
- (`NonisolatedNonsendingByDefault`, isolated-conformance inference, inferred
12
- Sendable captures, and related usability flags).
13
- - Default Actor Isolation: `MainActor` when unannotated code should infer
14
- `@MainActor` isolation.
15
- - Strict Concurrency Checking: Swift 6 language mode is complete and emits
16
- errors; Complete / Targeted / Minimal are migration settings for earlier
17
- language modes.
18
-
19
- **SwiftPM:** Inspect `Package.swift` `swiftSettings` for the corresponding flags.
20
-
21
- ## Behavior Changes
22
-
23
- ### Async functions stay on the caller's actor
24
-
25
- In Swift 6.2, nonisolated async functions no longer hop to the global
26
- concurrent executor. They stay on whichever actor called them. This eliminates
27
- many "sending X risks causing data races" errors.
28
-
29
- ### Default MainActor isolation
30
-
31
- With Default Actor Isolation set to `MainActor`, unannotated declarations in the
32
- module are inferred as `@MainActor`.
33
- This means:
34
- - Global and static variables are protected by default.
35
- - Protocol conformances are implicitly isolated.
36
- - Mutable state is safe without explicit annotation.
37
-
38
- ### Isolated conformances
39
-
40
- Protocol conformances can be explicitly isolated:
41
- `extension Foo: @MainActor SomeProtocol`. The compiler prevents using the
42
- conformance outside the matching isolation context.
43
-
44
- ## Applying Fixes in This Mode
45
-
46
- - **Prefer minimal annotations.** Let default MainActor isolation do the work
47
- for UI-bound code.
48
- - **Use isolated conformances** instead of `nonisolated` workarounds for
49
- protocol conformances.
50
- - **Keep global/shared mutable state on MainActor** unless there is a clear
51
- performance need to offload.
52
- - **Remove redundant `@MainActor` annotations** that are now implied by the
53
- default isolation mode.
54
-
55
- ## Offloading Work
56
-
57
- - Use `@concurrent` on async functions that must run on the concurrent pool.
58
- - Make types or members `nonisolated` only when they are truly thread-safe and
59
- used off the main actor.
60
- - Continue to respect `Sendable` boundaries when values cross actors or tasks.
61
-
62
- ## Common Pitfalls
63
-
64
- | Pitfall | Why it happens | Fix |
3
+ ## Which mode is this target in?
4
+
5
+ - **Xcode 26:** open Build Settings and read the Swift Compiler - Concurrency
6
+ group.
7
+ - **Language version:** approachable concurrency needs Swift 6.2 or later.
8
+ - **Approachable Concurrency = Yes:** the upcoming features
9
+ `NonisolatedNonsendingByDefault`, isolated-conformance inference, inferred
10
+ `Sendable` for captures and related global-actor usability changes are on.
11
+ - **Default Actor Isolation = MainActor:** declarations without an isolation
12
+ annotation are inferred `@MainActor`.
13
+ - **Strict Concurrency Checking:** Swift 6 language mode is always complete and
14
+ reports errors. Complete, Targeted and Minimal are choices for Swift 5 mode.
15
+ - **SwiftPM:** the same switches appear as entries in each target's
16
+ `swiftSettings` in `Package.swift`.
17
+
18
+ ## What changes
19
+
20
+ - A `nonisolated` async function keeps running on the actor that called it
21
+ instead of moving to the global concurrent executor, as long as
22
+ `NonisolatedNonsendingByDefault` is on. Many "sending 'x' risks causing data
23
+ races" errors go away as a result.
24
+ - With default MainActor isolation, globals and statics are protected,
25
+ conformances are isolated to the main actor, and ordinary mutable state is
26
+ safe without annotation.
27
+ - A conformance can also be isolated by hand:
28
+ `extension Timeline: @MainActor Refreshable`. The compiler rejects any use
29
+ of it outside main-actor code.
30
+
31
+ ## Fixing code in this mode
32
+
33
+ - Add as few annotations as possible; let the default isolate UI code.
34
+ - For protocol conformances, reach for an isolated conformance before a
35
+ `nonisolated` workaround.
36
+ - Keep shared mutable state on the main actor unless profiling gives a reason
37
+ to move it.
38
+ - Delete `@MainActor` attributes the default already implies.
39
+
40
+ ### Moving work off the main actor
41
+
42
+ - Put `@concurrent` on async functions that must run on the thread pool.
43
+ - Mark a type or member `nonisolated` only if it really is safe to use from
44
+ several threads and actually runs off the main actor.
45
+ - Values crossing between actors or tasks still have to be `Sendable`.
46
+
47
+ ## Pitfalls
48
+
49
+ | Symptom | Cause | Fix |
65
50
  |---|---|---|
66
- | CPU-heavy work on MainActor | Default isolation hides the problem | Move to `@concurrent` async function |
67
- | `Task.detached` breaking isolation | Ignores inherited actor context | Use `Task { }` unless you truly need detachment |
68
- | Redundant `@MainActor` everywhere | Default isolation already provides it | Remove explicit annotations |
69
- | `nonisolated` on mutable state | Breaks the safety guarantee | Keep mutable state isolated |
51
+ | UI stutters after enabling the mode | CPU-heavy work now inferred onto the main actor | Move it into a `@concurrent` async function |
52
+ | Isolation errors inside a new task | `Task.detached` drops the inherited actor | Use `Task { }` unless detachment is the point |
53
+ | `@MainActor` on nearly every declaration | Annotations from before the default was on | Remove the redundant ones |
54
+ | Races reappear | `nonisolated` placed on mutable state | Keep mutable state isolated |
70
55
 
71
- ## Concurrency Keywords
56
+ ## Keywords
72
57
 
73
- | Keyword | What it does |
58
+ | Keyword | Meaning |
74
59
  |---|---|
75
- | `async` | Function can suspend |
76
- | `await` | Suspend here until done |
77
- | `Task { }` | Start async work, inherits context |
78
- | `Task.detached { }` | Start async work, no inherited context |
79
- | `Task.immediate { }` | Start immediately on current actor |
80
- | `@MainActor` | Runs on main thread |
81
- | `actor` | Type with isolated mutable state |
82
- | `nonisolated` | Opts out of actor isolation |
60
+ | `async` | The function may suspend |
61
+ | `await` | A point where the caller may suspend until the call finishes |
62
+ | `Task { }` | New unstructured work that inherits actor, priority and task-locals |
63
+ | `Task.detached { }` | New unstructured work that inherits none of them |
64
+ | `Task.immediate { }` | New work that starts running at once on the current actor |
65
+ | `@MainActor` | Isolated to the main actor, which runs on the main thread |
66
+ | `actor` | Reference type whose mutable state is isolated to itself |
67
+ | `nonisolated` | Not isolated to any actor |
83
68
  | `Sendable` | Safe to pass between isolation domains |
84
- | `@concurrent` | Always run on background thread pool (Swift 6.2+) |
85
- | `async let` | Start parallel work (fixed count) |
86
- | `TaskGroup` | Dynamic parallel work |
87
- | `sending` | Parameter-level isolation transfer (SE-0430) |
69
+ | `@concurrent` | Always runs on the concurrent thread pool (Swift 6.2) |
70
+ | `async let` | Concurrent child work, fixed count |
71
+ | `TaskGroup` | Concurrent child work, count decided at run time |
72
+ | `sending` | Parameter or result that transfers a value to another isolation (SE-0430) |
@@ -1,113 +1,77 @@
1
1
  # Swift Async Algorithms
2
2
 
3
- [swift-async-algorithms](https://github.com/apple/swift-async-algorithms) is an Apple open-source package providing `AsyncSequence` algorithms modeled after the standard library's `Sequence` algorithms.
4
-
5
- ## Contents
6
-
7
- - [Key Algorithms](#key-algorithms)
8
- - [Common Patterns](#common-patterns)
9
-
10
- Add to Package.swift:
11
-
12
- ```swift
13
- .package(url: "https://github.com/apple/swift-async-algorithms", from: "1.0.0")
14
- ```
15
-
16
- ## Key Algorithms
17
-
18
- ### Combining
3
+ `swift-async-algorithms` is an open-source Apple package that brings the
4
+ familiar `Sequence` algorithms, plus time-based ones, to `AsyncSequence`.
19
5
 
20
6
  ```swift
21
- import AsyncAlgorithms
22
-
23
- // Merge multiple sequences into one (interleaved by arrival time)
24
- for await value in merge(streamA, streamB) {
25
- handle(value)
26
- }
27
-
28
- // Combine latest values from two sequences (emits when either updates)
29
- for await (a, b) in combineLatest(streamA, streamB) {
30
- handle(a, b)
31
- }
32
-
33
- // Zip - pairs elements 1:1 (waits for both)
34
- for await (a, b) in zip(streamA, streamB) {
35
- handle(a, b)
36
- }
37
-
38
- // Chain - concatenate sequences end-to-end
39
- for await value in chain(streamA, streamB) {
40
- handle(value)
41
- }
7
+ // Package.swift
8
+ dependencies: [
9
+ .package(
10
+ url: "https://github.com/apple/swift-async-algorithms",
11
+ .upToNextMajor(from: "1.0.0")
12
+ )
13
+ ],
14
+ targets: [
15
+ .target(
16
+ name: "Feed",
17
+ dependencies: [.product(name: "AsyncAlgorithms", package: "swift-async-algorithms")]
18
+ )
19
+ ]
42
20
  ```
43
21
 
44
- ### Temporal
22
+ Then `import AsyncAlgorithms` in the source files that use it.
45
23
 
46
- ```swift
47
- // Debounce - emit after a quiet period (e.g., search-as-you-type)
48
- let searchResults = searchTerms
49
- .debounce(for: .milliseconds(300))
24
+ ## Combining sequences
50
25
 
51
- for await term in searchResults {
52
- await performSearch(term)
53
- }
54
-
55
- // Throttle - emit at most once per interval
56
- let throttled = sensorReadings
57
- .throttle(for: .seconds(1))
58
-
59
- for await reading in throttled {
60
- updateDisplay(reading)
61
- }
26
+ | Function | Result |
27
+ |---|---|
28
+ | `merge(first, second)` | One sequence with elements from both, in the order they arrive |
29
+ | `combineLatest(first, second)` | The most recent pair, emitted whenever either side produces |
30
+ | `zip(first, second)` | Elements paired one to one; waits until both sides have one |
31
+ | `chain(first, second)` | All of `first`, then all of `second` |
62
32
 
63
- // Chunks - collect elements into arrays by count or time
64
- for await batch in events.chunks(ofCount: 10) {
65
- await processBatch(batch) // [Event] with up to 10 elements
66
- }
33
+ ## Time-based operators
67
34
 
68
- for await batch in events.chunked(by: .repeating(every: .seconds(1))) {
69
- await processBatch(batch)
70
- }
71
- ```
35
+ | Operator | Behavior | Typical use |
36
+ |---|---|---|
37
+ | `.debounce(for: .milliseconds(250))` | Emits only after the input goes quiet for the interval | Search fields |
38
+ | `.chunks(ofCount: 20)` | Arrays of up to 20 elements | Batch writes |
39
+ | `.chunked(by: .repeating(every: .seconds(5)))` | Arrays collected per time window | Periodic flushes |
40
+ | `.chunks(ofCount: 25, or: .repeating(every: .seconds(2)))` | A batch when it is full or when the timer fires, whichever comes first | Batch uploads with a latency cap |
72
41
 
73
- ### Filtering and Transformation
42
+ Throttling ships in the 1.x releases only as the underscored `_throttle(for:)`,
43
+ which is not stable public API; do not build on it.
74
44
 
75
- ```swift
76
- // Remove consecutive duplicates
77
- for await value in stream.removeDuplicates() {
78
- handle(value)
79
- }
45
+ ## Filtering and cleanup
80
46
 
81
- // Compacted - remove nils (like compactMap without transform)
82
- let values: AsyncStream<Int?> = ...
83
- for await value in values.compacted() {
84
- // value is non-optional Int
85
- }
86
- ```
47
+ - `.removeDuplicates()` drops an element equal to the one just before it.
48
+ - `.compacted()` removes `nil` from a sequence of optionals, the same as
49
+ `compactMap { $0 }`.
87
50
 
88
- ## Common Patterns
51
+ ## Patterns
89
52
 
90
- ### Search-as-you-type
53
+ ### Search as the user types
91
54
 
92
55
  ```swift
93
- func searchResults(for terms: AsyncStream<String>) -> AsyncStream<[Result]> {
56
+ func suggestions(for queries: AsyncStream<String>) -> AsyncStream<[Place]> {
94
57
  AsyncStream { continuation in
95
- Task {
96
- for await term in terms.debounce(for: .milliseconds(300)) {
97
- guard !Task.isCancelled else { break }
98
- let results = try? await searchService.search(term)
99
- continuation.yield(results ?? [])
58
+ let worker = Task {
59
+ for await query in queries.debounce(for: .milliseconds(250)).removeDuplicates() {
60
+ if Task.isCancelled { break }
61
+ let places = (try? await geocoder.search(query)) ?? []
62
+ continuation.yield(places)
100
63
  }
101
64
  continuation.finish()
102
65
  }
66
+ continuation.onTermination = { _ in worker.cancel() }
103
67
  }
104
68
  }
105
69
  ```
106
70
 
107
- ### Rate-limited API calls
71
+ ### Batched uploads
108
72
 
109
73
  ```swift
110
- for await batch in requestStream.chunks(ofCount: 50).throttle(for: .seconds(1)) {
111
- await api.sendBatch(batch)
74
+ for await batch in pendingEvents.chunks(ofCount: 25, or: .repeating(every: .seconds(2))) {
75
+ try await analytics.upload(batch)
112
76
  }
113
77
  ```