@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
@@ -1,184 +1,165 @@
1
- # Plugins, Run Scripts, and Integrations
1
+ # Plugins, Run Scripts and Other Integrations
2
2
 
3
- Setup instructions for each SwiftLint integration method: build tool plugin, command plugin, Xcode run scripts, CI, and secondary integrations.
3
+ Back to [SKILL.md](../SKILL.md).
4
4
 
5
- ## Contents
5
+ ## Build tool plugin (first choice)
6
6
 
7
- - [Build Tool Plugin (Recommended)](#build-tool-plugin-recommended)
8
- - [Command Plugin](#command-plugin)
9
- - [Xcode Run Script Build Phase](#xcode-run-script-build-phase)
10
- - [CI Recipes](#ci-recipes)
11
- - [Working With Multiple Swift Versions](#working-with-multiple-swift-versions)
12
- - [VS Code](#vs-code)
13
- - [Fastlane](#fastlane)
14
- - [Docker](#docker)
15
- - [Pre-commit Hook](#pre-commit-hook)
7
+ `SwiftLintBuildToolPlugin` comes from the `SimplyDanny/SwiftLintPlugins`
8
+ package. Homebrew and `PATH` tweaks are unnecessary.
16
9
 
17
- ---
10
+ ### SwiftPM
18
11
 
19
- ## Build Tool Plugin (Recommended)
20
-
21
- The `SwiftLintBuildToolPlugin` from [SimplyDanny/SwiftLintPlugins](https://github.com/SimplyDanny/SwiftLintPlugins) runs SwiftLint as part of the build. No Homebrew or PATH setup needed.
12
+ ```swift
13
+ // swift-tools-version: 5.9
14
+ import PackageDescription
22
15
 
23
- ### SwiftPM setup
16
+ let lint: Target.PluginUsage = .plugin(name: "SwiftLintBuildToolPlugin", package: "SwiftLintPlugins")
24
17
 
25
- ```swift
26
- // Package.swift
27
18
  let package = Package(
28
- name: "MyApp",
19
+ name: "Orchard",
29
20
  dependencies: [
30
- .package(url: "https://github.com/SimplyDanny/SwiftLintPlugins", from: "<reviewed-version>")
21
+ // pin an exact, reviewed release
22
+ .package(url: "https://github.com/SimplyDanny/SwiftLintPlugins", exact: "<reviewed-version>")
31
23
  ],
32
24
  targets: [
33
- .target(
34
- name: "MyApp",
35
- plugins: [.plugin(name: "SwiftLintBuildToolPlugin", package: "SwiftLintPlugins")]
36
- ),
37
- .testTarget(
38
- name: "MyAppTests",
39
- dependencies: ["MyApp"],
40
- plugins: [.plugin(name: "SwiftLintBuildToolPlugin", package: "SwiftLintPlugins")]
41
- )
25
+ .target(name: "Orchard", plugins: [lint]),
26
+ .testTarget(name: "OrchardTests", dependencies: ["Orchard"], plugins: [lint])
42
27
  ]
43
28
  )
44
29
  ```
45
30
 
46
- ### Xcode project setup (no Package.swift)
31
+ ### Xcode project without `Package.swift`
47
32
 
48
- 1. **File > Add Package Dependencies** → add `https://github.com/SimplyDanny/SwiftLintPlugins`
49
- 2. For each target you want to lint, go to **Build Phases** and add `SwiftLintBuildToolPlugin` under **Run Build Tool Plug-ins**
50
- 3. When prompted, trust the plugin
33
+ 1. Choose Add Package Dependencies from the File menu and paste the
34
+ SwiftLintPlugins URL.
35
+ 2. For every target to lint: Build Phases > Run Build Tool Plug-ins, add
36
+ `SwiftLintBuildToolPlugin`.
37
+ 3. Trust the plugin when Xcode asks.
51
38
 
52
- ### Plugin trust
39
+ ### Headless CI with `xcodebuild`
53
40
 
54
- On first build, Xcode shows a trust dialog. Select **Trust & Enable All** for the SwiftLintPlugins package. In CI with `xcodebuild`, pass:
41
+ The trust prompt cannot be answered on a build agent, so skip validation:
55
42
 
56
- ```sh
57
- xcodebuild -skipPackagePluginValidation -skipMacroValidation ...
43
+ ```bash
44
+ xcodebuild -scheme Orchard -skipPackagePluginValidation -skipMacroValidation build
58
45
  ```
59
46
 
60
- ### Limitations
47
+ ### What the plugin cannot do
61
48
 
62
- - The build tool plugin cannot run `--fix` (it has read-only access to sources).
63
- - It cannot pass `--baseline` or other CLI flags - build tool plugins do not accept arguments. Use config keys like `baseline:` / `write_baseline:` where available, or switch to the command plugin / direct CLI for advanced flag-based workflows.
64
- - It runs on every build, which is desirable for local development but may slow clean builds in large projects.
49
+ - No `--fix`: build tool plugins get read-only access to sources.
50
+ - No command-line flags at all, `--baseline` included. Use the `baseline:` and
51
+ `write_baseline:` config keys, or move to the command plugin or the CLI.
52
+ - Because it fires with each build, clean builds of big projects get
53
+ noticeably slower.
65
54
 
66
- ## Command Plugin
55
+ ## Command plugin
67
56
 
68
- The command plugin provides broad SwiftPM-based CLI access to SwiftLint, including `--fix`, `--baseline`, and `analyze` workflows that the build tool plugin cannot handle directly:
57
+ Same `SwiftLintPlugins` dependency, but invoked on demand through SwiftPM with
58
+ read-write access to sources. Anything after `--` goes straight to the CLI, so
59
+ `--fix`, `--baseline` and `analyze` all work.
69
60
 
70
- ```sh
71
- swift package plugin swiftlint
72
- swift package plugin swiftlint --fix
73
- swift package plugin swiftlint -- --strict --baseline .swiftlint.baseline
61
+ ```bash
62
+ swift package plugin swiftlint --fix # rewrite correctable violations
63
+ swift package plugin swiftlint # plain lint
64
+ swift package plugin swiftlint -- --baseline .swiftlint.baseline --strict # CLI flags after --
74
65
  swift package plugin swiftlint -- analyze --compile-commands .build/debug.yaml
75
66
  ```
76
67
 
77
- The command plugin requires the same `SwiftLintPlugins` dependency. It has read-write access to sources (for `--fix`) and accepts all CLI flags after `--`.
78
-
79
- ## Xcode Run Script Build Phase
80
-
81
- Use a run script when the build tool plugin is impractical for your project shape or when you need CLI features the build tool plugin cannot provide (for example `--fix` locally or `--baseline`). Xcode projects can still use the build tool plugin via Xcode Package Dependency even without a local `Package.swift`.
68
+ ## Run script build phase
82
69
 
83
- ### Basic run script
84
-
85
- 1. Select the target → **Build Phases** → **+** → **New Run Script Phase**
86
- 2. Move the phase **after Compile Sources** - SwiftLint is designed to analyze valid, compilable source code; linting before compilation leads to confusing results
87
- 3. Add the script:
88
-
89
- ```sh
90
- if command -v swiftlint >/dev/null 2>&1; then
91
- swiftlint
92
- else
93
- echo "warning: SwiftLint not installed. Install with: brew install swiftlint"
94
- fi
95
- ```
70
+ Reach for this when the plugin does not fit or you want CLI-only behaviour in
71
+ Xcode, such as a local `--fix` or `--baseline`. Note that a plain Xcode project
72
+ can still use the plugin through a package dependency, no `Package.swift`
73
+ needed.
96
74
 
97
- On Apple Silicon with Homebrew, `swiftlint` is often installed at `/opt/homebrew/bin/swiftlint`. If the run script cannot find it, either export that path in the build phase or create a symlink into `/usr/local/bin`:
75
+ Create it from the target's Build Phases tab (the + button, then New Run
76
+ Script Phase) and move it so it sits below Compile Sources. SwiftLint assumes code that compiles; linting
77
+ earlier produces confusing results.
98
78
 
99
- ```sh
100
- if [[ "$(uname -m)" == arm64 ]]; then
101
- export PATH="/opt/homebrew/bin:$PATH"
79
+ ```bash
80
+ if [ "$(uname -m)" = "arm64" ]; then
81
+ PATH="/opt/homebrew/bin:${PATH}"; export PATH
102
82
  fi
103
83
 
104
- if command -v swiftlint >/dev/null 2>&1; then
105
- swiftlint
106
- else
107
- echo "warning: SwiftLint not installed. Install with: brew install swiftlint"
108
- fi
84
+ command -v swiftlint > /dev/null || {
85
+ echo "warning: SwiftLint missing. Install it with: brew install swiftlint"
86
+ exit 0
87
+ }
88
+ swiftlint
109
89
  ```
110
90
 
111
- ### Run script with script input files (Xcode 15+)
91
+ - Homebrew on Apple silicon installs to `/opt/homebrew/bin/swiftlint`, which is
92
+ not on Xcode's default `PATH`. Export it as above, or symlink the binary into
93
+ `/usr/local/bin`.
94
+ - User script sandboxing (`ENABLE_USER_SCRIPT_SANDBOXING`) is on by default in
95
+ projects created with Xcode 15 or later. When the build log shows a
96
+ `deny(1) file-read-data` sandbox error naming swiftlint, set
97
+ `ENABLE_USER_SCRIPT_SANDBOXING = NO` on that target.
112
98
 
113
- Xcode 15 sandboxes run scripts by default. If SwiftLint fails with `Sandbox: swiftlint ... deny(1) file-read-data`, set `ENABLE_USER_SCRIPT_SANDBOXING = NO` for the target. Input files and input file lists are a separate optimization for limiting which files are linted.
99
+ ### Limiting the files a run script lints
114
100
 
115
- 1. Set `ENABLE_USER_SCRIPT_SANDBOXING = NO` for the target if the script cannot read source files under Xcode 15+
116
- 2. Under the run script phase, check **Based on dependency analysis**
117
- 3. Add either explicit **Input Files** or readable `.xcfilelist` paths under **Input File Lists**
118
- 4. Use `--use-script-input-file-lists` when Xcode is providing `.xcfilelist` paths:
101
+ Input files are an optional speed-up on top of the basic script:
119
102
 
120
- ```sh
121
- if command -v swiftlint >/dev/null 2>&1; then
122
- swiftlint --use-script-input-file-lists
123
- fi
124
- ```
103
+ 1. Turn sandboxing off if the script needs it.
104
+ 2. Tick "Based on dependency analysis".
105
+ 3. List sources under Input Files, or point Input File Lists at `.xcfilelist`
106
+ files.
125
107
 
126
- This requires Xcode to populate `SCRIPT_INPUT_FILE_LIST_COUNT` and `SCRIPT_INPUT_FILE_LIST_n` with readable `.xcfilelist` paths. Use `--use-script-input-files` only when Xcode is populating `SCRIPT_INPUT_FILE_COUNT` and `SCRIPT_INPUT_FILE_n` directly via **Input Files** rather than **Input File Lists**.
108
+ Then tell SwiftLint where to read them from:
127
109
 
128
- Alternatively, to lint the full target without file lists:
110
+ - `--use-script-input-file-lists` reads `SCRIPT_INPUT_FILE_LIST_COUNT` and
111
+ `SCRIPT_INPUT_FILE_LIST_0`, `_1`, and so on; each points at a readable
112
+ `.xcfilelist`.
113
+ - `--use-script-input-files` reads `SCRIPT_INPUT_FILE_COUNT` and
114
+ `SCRIPT_INPUT_FILE_0`, `_1`, and so on, taken from Input Files directly.
129
115
 
130
- ```sh
131
- if command -v swiftlint >/dev/null 2>&1; then
132
- swiftlint lint --config "${SRCROOT}/.swiftlint.yml"
133
- fi
134
- ```
116
+ To lint the whole target every time instead:
135
117
 
136
- And uncheck **Based on dependency analysis** if you want it to run every build.
118
+ ```bash
119
+ swiftlint lint --config "${SRCROOT}/.swiftlint.yml"
120
+ ```
137
121
 
138
- ### CocoaPods run script
122
+ and untick "Based on dependency analysis" so the phase is never skipped.
139
123
 
140
- ```sh
141
- "${PODS_ROOT}/SwiftLint/swiftlint"
142
- ```
124
+ With CocoaPods the binary path is `"${PODS_ROOT}/SwiftLint/swiftlint"`.
143
125
 
144
- ## CI Recipes
126
+ ## Recipes for CI services
145
127
 
146
- ### GitHub Actions
128
+ ### GitHub Actions: inline annotations
147
129
 
148
130
  ```yaml
149
- name: SwiftLint
131
+ name: lint
150
132
  on:
151
133
  pull_request:
152
134
  paths: ['**/*.swift']
153
-
154
135
  jobs:
155
- lint:
136
+ swiftlint:
156
137
  runs-on: macos-latest
138
+ timeout-minutes: 15
157
139
  steps:
158
140
  - uses: actions/checkout@v4
159
- - name: Install SwiftLint
160
- run: brew install swiftlint
161
- - name: Lint
162
- run: swiftlint --strict --reporter github-actions-logging
141
+ - run: brew install swiftlint
142
+ - run: swiftlint lint --reporter github-actions-logging --strict
163
143
  ```
164
144
 
165
- For SARIF upload to GitHub code scanning:
145
+ ### GitHub Actions: code scanning
166
146
 
167
147
  ```yaml
168
- - name: Lint (SARIF)
169
- run: swiftlint --strict --reporter sarif > swiftlint.sarif
148
+ - name: Lint
149
+ run: swiftlint lint --reporter sarif --strict > lint.sarif
170
150
  continue-on-error: true
171
- - name: Upload SARIF
172
- uses: github/codeql-action/upload-sarif@v3
151
+ - uses: github/codeql-action/upload-sarif@v3
152
+ if: always()
173
153
  with:
174
- sarif_file: swiftlint.sarif
154
+ sarif_file: lint.sarif
175
155
  ```
176
156
 
177
- ### GitHub Actions with baseline
157
+ `continue-on-error` lets the upload step run even when lint fails.
158
+
159
+ ### GitHub Actions: during baseline adoption
178
160
 
179
161
  ```yaml
180
- - name: Lint (baseline)
181
- run: swiftlint --strict --baseline .swiftlint.baseline --reporter github-actions-logging
162
+ - run: swiftlint lint --reporter github-actions-logging --baseline .swiftlint.baseline --strict
182
163
  ```
183
164
 
184
165
  ### GitLab CI
@@ -186,122 +167,121 @@ For SARIF upload to GitHub code scanning:
186
167
  ```yaml
187
168
  swiftlint:
188
169
  image: ghcr.io/realm/swiftlint:latest
170
+ stage: test
189
171
  script:
190
- - swiftlint --strict --reporter codeclimate > swiftlint.json
172
+ - swiftlint lint --reporter codeclimate --strict > code-quality.json
191
173
  artifacts:
192
174
  reports:
193
- codequality: swiftlint.json
175
+ codequality: code-quality.json
194
176
  ```
195
177
 
196
- If you want GitLab JUnit-style output instead, use `--reporter gitlab` and publish the result as a JUnit artifact rather than `codequality`.
178
+ GitLab can also show results as test failures: switch to `--reporter gitlab`,
179
+ which writes JUnit XML, and attach that file as a `junit` report.
197
180
 
198
- ### Bitrise / other CI
181
+ ### Bitrise and other hosted runners
199
182
 
200
- ```sh
183
+ ```bash
201
184
  brew install swiftlint
202
185
  swiftlint --strict
203
186
  ```
204
187
 
205
- ### Reporter summary
188
+ ## Reporters at a glance
206
189
 
207
- | Reporter | Format | Best for |
208
- | -------- | ------ | -------- |
209
- | `xcode` | Xcode-compatible text | Local builds, Xcode run scripts |
210
- | `github-actions-logging` | GitHub Actions annotations | PR inline comments |
211
- | `sarif` | SARIF JSON | GitHub code scanning |
212
- | `json` | JSON array | Custom tooling, dashboards |
190
+ | Reporter | Output | Typical consumer |
191
+ |---|---|---|
192
+ | `xcode` | Xcode-style diagnostics | local runs, run scripts |
193
+ | `emoji` | decorated text | fun in a terminal |
194
+ | `github-actions-logging` | workflow commands | inline PR annotations |
195
+ | `csv` | comma-separated rows | spreadsheets |
196
+ | `sarif` | SARIF | code scanning |
213
197
  | `checkstyle` | XML | Jenkins, SonarQube |
214
- | `csv` | CSV | Spreadsheet analysis |
215
- | `emoji` | Text with emoji | Fun terminal output |
198
+ | `json` | JSON array | scripts, dashboards |
216
199
 
217
- ## Working With Multiple Swift Versions
200
+ ## Swift toolchain compatibility
218
201
 
219
- SwiftLint is predominantly SwiftSyntax-based, but some rules still rely on SourceKit/Clang for additional analysis. It must remain compatible with the Swift toolchain used to compile your project.
202
+ SwiftLint parses mostly through SwiftSyntax, yet a few rules still go through
203
+ SourceKit and Clang, so the linter has to agree with the toolchain that
204
+ compiles the code. Rule of thumb: lint with the same toolchain you build with.
220
205
 
221
- **Key rules:**
206
+ On macOS SwiftLint looks for a toolchain in this order:
222
207
 
223
- 1. Run SwiftLint with the same Swift toolchain used to build your project.
224
- 2. On macOS, SwiftLint resolves the toolchain in this order: `XCODE_DEFAULT_TOOLCHAIN_OVERRIDE`, `TOOLCHAIN_DIR` or `TOOLCHAINS`, `xcrun -find swift`, `/Applications/Xcode.app/...`, `/Applications/Xcode-beta.app/...`, `~/Applications/Xcode.app/...`, `~/Applications/Xcode-beta.app/...`.
225
- 3. In CI with multiple Xcode versions, set `DEVELOPER_DIR` before running SwiftLint:
208
+ 1. `XCODE_DEFAULT_TOOLCHAIN_OVERRIDE`
209
+ 2. `TOOLCHAIN_DIR` or `TOOLCHAINS`
210
+ 3. `xcrun -find swift`
211
+ 4. `/Applications/Xcode.app/...`
212
+ 5. `/Applications/Xcode-beta.app/...`
213
+ 6. `~/Applications/Xcode.app/...`
214
+ 7. `~/Applications/Xcode-beta.app/...`
226
215
 
227
- ```sh
228
- export DEVELOPER_DIR=/Applications/Xcode_16.app/Contents/Developer
229
- swiftlint
230
- ```
231
-
232
- 1. The build tool plugin automatically uses the correct toolchain because it runs within the build system.
233
- 2. Homebrew-installed SwiftLint may lag behind the latest Swift release. If you see parsing errors after updating Xcode, check for a SwiftLint update.
234
- 3. `sourcekitd.framework` is expected in the selected toolchain's `usr/lib/` directory. Toolchain mismatches typically show up as parsing or SourceKit failures.
216
+ - CI machines with several Xcodes installed: export `DEVELOPER_DIR` first, for
217
+ example `DEVELOPER_DIR=/Applications/Xcode_16.4.app/Contents/Developer`.
218
+ - The build tool plugin lives inside the build system and picks the right
219
+ toolchain by itself.
220
+ - The Homebrew formula can trail a new Swift release. Parse errors right after
221
+ an Xcode upgrade usually mean SwiftLint needs updating.
222
+ - The selected toolchain must contain `usr/lib/sourcekitd.framework`. A
223
+ mismatch shows up as parse failures or SourceKit errors.
235
224
 
236
225
  ## VS Code
237
226
 
238
- The [SwiftLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=vknabel.vscode-swiftlint) runs SwiftLint on save.
227
+ The `vknabel.vscode-swiftlint` extension lints when you save:
239
228
 
240
229
  ```json
241
- // .vscode/settings.json
242
230
  {
243
- "swiftlint.enable": true,
244
- "swiftlint.path": "/opt/homebrew/bin/swiftlint",
245
- "swiftlint.autoLintWorkspace": false
231
+ "swiftlint.autoLintWorkspace": false,
232
+ "swiftlint.enable": true,
233
+ "swiftlint.path": "/opt/homebrew/bin/swiftlint"
246
234
  }
247
235
  ```
248
236
 
249
237
  ## Fastlane
250
238
 
251
239
  ```ruby
252
- # Fastfile
253
240
  lane :lint do
254
241
  swiftlint(
255
- mode: :lint,
256
- config_file: ".swiftlint.yml",
242
+ raise_if_swiftlint_error: true,
257
243
  strict: true,
258
- raise_if_swiftlint_error: true
244
+ config_file: ".swiftlint.yml",
245
+ mode: :lint
259
246
  )
260
247
  end
261
248
  ```
262
249
 
263
250
  ## Docker
264
251
 
265
- The official SwiftLint Docker image is useful for Linux CI:
252
+ The official image suits Linux CI:
266
253
 
267
- ```sh
268
- docker run --rm -v "$(pwd):/work" -w /work ghcr.io/realm/swiftlint:<reviewed-version> --strict
254
+ ```bash
255
+ docker run --rm -v "$PWD:/src" -w /src ghcr.io/realm/swiftlint:<pinned-version> --strict
269
256
  ```
270
257
 
271
- ## Pre-commit Hook
258
+ ## Pre-commit
272
259
 
273
- ### Using the pre-commit framework
260
+ ### With the pre-commit framework
274
261
 
275
262
  ```yaml
276
- # .pre-commit-config.yaml
277
263
  repos:
278
264
  - repo: https://github.com/realm/SwiftLint
279
- rev: <reviewed-version>
265
+ rev: <pinned-version>
280
266
  hooks:
281
267
  - id: swiftlint
268
+ name: SwiftLint (fix, then check)
269
+ entry: swiftlint --fix --strict
282
270
  ```
283
271
 
284
- To apply fixes and fail on warnings/errors from the hook, use an `entry` override:
272
+ The `entry` override applies automatic fixes and still fails the commit on any
273
+ remaining warning or error.
285
274
 
286
- ```yaml
287
- # .pre-commit-config.yaml
288
- repos:
289
- - repo: https://github.com/realm/SwiftLint
290
- rev: <reviewed-version>
291
- hooks:
292
- - id: swiftlint
293
- entry: swiftlint --fix --strict
294
- ```
275
+ ### Plain git hook
295
276
 
296
- ### Manual git hook
277
+ `.git/hooks/pre-commit`:
297
278
 
298
- ```sh
299
- #!/bin/sh
300
- # .git/hooks/pre-commit
301
- if command -v swiftlint >/dev/null 2>&1; then
302
- git diff --cached --name-only --diff-filter=d -- '*.swift' | \
303
- xargs -I{} swiftlint lint --path "{}" --strict --quiet
304
- fi
279
+ ```bash
280
+ #!/bin/bash
281
+ git diff --cached --diff-filter=d --name-only -- '*.swift' \
282
+ | xargs -I{} swiftlint lint --strict --quiet "{}"
305
283
  ```
306
284
 
307
- Make it executable: `chmod +x .git/hooks/pre-commit`
285
+ Git ignores the hook until it has the execute bit, so run `chmod +x` on it. Older SwiftLint
286
+ releases took the file through `--path "{}"`; current releases take paths as
287
+ plain arguments.