@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,191 +1,168 @@
1
1
  # Product Page Variants
2
2
 
3
- Custom Product Pages, product page optimization (A/B testing), and in-app event configuration for App Store discoverability and conversion.
4
-
5
- ## Contents
6
-
7
- - [Custom Product Pages](#custom-product-pages)
8
- - [Product Page Optimization Tests](#product-page-optimization-tests)
9
- - [In-App Event Configuration](#in-app-event-configuration)
10
- - [Screenshot Caption Copywriting](#screenshot-caption-copywriting)
11
-
12
3
  ## Custom Product Pages
13
4
 
14
- ### Setup in App Store Connect
5
+ ### Setting one up
15
6
 
16
- 1. Navigate to **App Store Connect > App > Custom Product Pages**.
17
- 2. Create a new Custom Product Page -- each page needs a reference name (internal only) and a locale.
18
- 3. Customize screenshots, app preview videos, promotional text, and assigned keywords for the target audience.
19
- 4. Submit the page for review -- Custom Product Pages go through App Review like regular submissions.
20
- 5. Once approved, the page is visible through its unique URL and, if configured, through assigned App Store search keywords.
7
+ 1. In App Store Connect, open the app and choose Custom Product Pages.
8
+ 2. Give the page a reference name (only your team sees it) and pick a locale.
9
+ 3. Decide what differs from the default page: screenshots, preview videos,
10
+ promotional text, search keywords.
11
+ 4. Submit it. App Review checks custom pages the same way it checks versions.
12
+ 5. After approval the page is reachable through its own URL and, when keywords
13
+ are assigned, through search.
21
14
 
22
- ### URL structure
23
-
24
- Custom Product Pages use the format:
15
+ ### URL
25
16
 
26
17
  ```
27
18
  https://apps.apple.com/app/id{APP_ID}?ppid={CUSTOM_PAGE_ID}
28
19
  ```
29
20
 
30
- The `ppid` parameter directs users to the custom page instead of the default product page. Use these URLs in:
31
-
32
- - Apple Search Ads ad group URLs
33
- - Social media campaign links
34
- - Email marketing campaigns
35
- - Web landing pages
36
- - QR codes in physical marketing
37
-
38
- ### Search visibility and deep links
39
-
40
- - You can create up to 70 Custom Product Pages per app.
41
- - Assign keywords from the latest approved app version to make an approved, visible custom page appear for matching App Store searches instead of the default page.
42
- - Use unique keyword sets per custom page so App Store search can choose the most relevant page.
43
- - Optional app deep links can send users on iOS 18 or iPadOS 18 or later to specific in-app content after they tap Open. Deep links must be approved with the custom page before they work for users.
44
-
45
- ### Campaign-to-page mapping
46
-
47
- Plan Custom Product Pages around distinct acquisition channels:
48
-
49
- | Channel | Page name convention | Screenshot strategy |
50
- |---------|---------------------|---------------------|
51
- | Search Ads -- brand terms | `Search-Brand` | Highlight brand trust and breadth |
52
- | Search Ads -- feature terms | `Search-{Feature}` | Lead with the specific feature the user searched for |
53
- | Search Ads -- competitor terms | `Search-Competitor` | Emphasize differentiators vs. category norms |
54
- | Social -- Instagram/TikTok | `Social-Visual` | Visual-first screenshots matching social creative style |
55
- | Social -- Twitter/X | `Social-Utility` | Feature-focused, less visual polish |
56
- | Email -- existing users | `Email-Upgrade` | New feature highlights for re-engagement |
57
- | Web -- blog/PR | `Web-Editorial` | Award badges, press quotes, credibility signals |
21
+ The `ppid` parameter picks the custom page. Put the URL in Apple Ads ad groups,
22
+ social posts, email campaigns, landing pages and printed QR codes.
58
23
 
59
- ### Management
24
+ ### Limits and search
60
25
 
61
- - Audit Custom Product Pages quarterly. Remove pages for ended campaigns.
62
- - Track performance per page in App Analytics -- compare conversion rates against the default page.
63
- - App Analytics reports custom page metrics after the page receives at least five first-time downloads.
64
- - Custom Product Pages count toward the 70-page limit per app. Reserve capacity for seasonal or ad-hoc campaigns.
26
+ - Up to 70 custom pages per app.
27
+ - Assigned keywords must come from the keyword set of the most recently
28
+ approved app version. A matching
29
+ search can then show the approved, visible custom page in place of the
30
+ default one.
31
+ - Give each page its own keyword set so search can choose the best match.
32
+ - A page can carry a deep link that sends people running iOS 18,
33
+ iPadOS 18 or newer straight to a given screen in the app when they tap Open. The deep link is
34
+ approved together with the page.
65
35
 
66
- ## Product Page Optimization Tests
36
+ ### One page per channel
67
37
 
68
- ### Test design patterns
38
+ | Channel | Page name | Emphasis |
39
+ |---|---|---|
40
+ | Apple Ads, brand terms | `Search-Brand` | Trust in the brand, breadth of features |
41
+ | Apple Ads, feature terms | `Search-{Feature}` | The searched feature first |
42
+ | Apple Ads, competitor-category terms | `Search-Alternative` | What sets the app apart from category norms |
43
+ | Short-video and photo social platforms | `Social-Visual` | Strong visuals first |
44
+ | Text-first social platforms | `Social-Utility` | Features and utility, less polish |
45
+ | Email to current users | `Email-Upgrade` | What is new, reasons to come back |
46
+ | Blog posts and press | `Web-Editorial` | Awards, press quotes, credibility |
69
47
 
70
- Each test compares the original product page against up to three treatments. For clearer results, design each test around one hypothesis even when you create multiple treatments.
48
+ ### Upkeep
71
49
 
72
- #### Icon test
50
+ - Review custom pages every quarter and remove those for finished campaigns.
51
+ - In App Analytics, compare each page's conversion with the default page;
52
+ figures show up after five or more first-time downloads are credited to it.
53
+ - Leave room below the 70-page limit for seasonal and one-off campaigns.
73
54
 
74
- - **Hypothesis:** A revised icon with [specific change] will increase tap-through rate by improving shelf appeal.
75
- - **Treatment:** Alternate app icon that [describes the specific difference].
76
- - **Duration:** 7-14 days minimum.
77
- - **Success metric:** Conversion rate (impressions to first-time downloads).
55
+ ## Product Page Optimization tests
78
56
 
79
- #### Screenshot order test
57
+ A test compares the original page with up to three treatments. Keep to one
58
+ hypothesis per test so the result is readable.
80
59
 
81
- - **Hypothesis:** Leading with [screen X] instead of [screen Y] will increase conversion by showing the primary value proposition sooner.
82
- - **Treatment:** Reorder the first 3 screenshots.
83
- - **Duration:** 7-14 days minimum.
84
- - **Success metric:** Conversion rate.
60
+ ### Test patterns
85
61
 
86
- #### Screenshot content test
87
-
88
- - **Hypothesis:** Benefit-oriented captions will outperform feature-descriptive captions.
89
- - **Treatment:** Replace captions on the first 3 screenshots with benefit-focused copy.
90
- - **Duration:** 7-14 days minimum.
91
- - **Success metric:** Conversion rate.
62
+ | Test | Hypothesis | Treatment | Run for | Metric |
63
+ |---|---|---|---|---|
64
+ | Icon | A different icon stands out more in search and on shelves | An alternate app icon | At least 7 to 14 days | Conversion from impression to first-time download |
65
+ | Screenshot order | Leading with a different feature converts better | The first three screenshots reordered | At least 7 to 14 days | Conversion rate |
66
+ | Screenshot copy | Benefit captions beat feature captions | New captions on the first three screenshots | At least 7 to 14 days | Conversion rate |
92
67
 
93
68
  ### Running a test
94
69
 
95
- 1. In App Store Connect, go to **Product Page Optimization**.
96
- 2. Choose up to three treatments and the element to test (icon, screenshots, or preview video).
70
+ 1. Open Product Page Optimization in App Store Connect.
71
+ 2. Create up to three treatments and pick what they change: icon, screenshots
72
+ or preview video.
97
73
  3. Upload the treatment assets.
98
- 4. Set the traffic proportion. App Store Connect splits that treatment traffic evenly across treatments.
99
- 5. Select the localizations to include; all supported localizations are selected by default.
100
- 6. Start the test and monitor App Analytics. A test runs for up to 90 days or until manually stopped.
101
-
102
- ### Interpreting results
103
-
104
- - App Store Connect reports conversion rate for control vs. treatment with a confidence interval.
105
- - Results appear after at least five first-time downloads are associated with the test.
106
- - Do not apply a treatment until the result shows 90%+ confidence.
107
- - A 2-5% conversion lift is meaningful at scale -- do not dismiss small wins.
108
- - If App Store Connect marks a test as likely inconclusive, the current traffic and lift may not be enough to reach confidence within the 90-day window. Consider a stronger creative change or a higher-traffic period.
109
- - After applying a winner, wait at least one release cycle before starting the next test to establish a clean baseline.
110
-
111
- ### Limitations
112
-
113
- - Only one test at a time per app.
114
- - Product Page Optimization tests are unavailable for Custom Product Pages, Apple Watch product pages, and iMessage product pages.
115
- - Low-traffic apps may need longer to reach 90% confidence, and some tests may remain inconclusive.
116
- - App icons used in treatments must be included in the app binary for the current App Store version. Applying a treatment applies screenshots and previews; make an icon the default in a future app version if that icon should persist broadly.
117
-
118
- ## In-App Event Configuration
119
-
120
- ### Event metadata template
121
-
122
- | Field | Limit | Guidelines |
123
- |-------|-------|-----------|
124
- | **Event name** | 30 chars | Keyword-rich, action-oriented. "Spring Fitness Challenge" not "Our Spring Event" |
125
- | **Short description** | 50 chars | One compelling sentence visible on the event card |
126
- | **Long description** | 120 chars | Expand on what the user will experience or win |
127
- | **Event card image** | 1920x1080 (16:9) | High-contrast, legible at small sizes, no text smaller than 24pt |
128
- | **Badge** | Preset options | Match badge type to event nature (see SKILL.md table) |
129
- | **Deep link** | URL | Optional. Links to the in-app event content |
130
-
131
- ### Scheduling strategy
132
-
133
- Plan events to maintain continuous App Store visibility:
134
-
135
- ```
136
- Week 1-2: [Event A -- "Spring Challenge" (Challenge badge)]
137
- Week 3-4: [Event B -- "New Workout Library" (Major Update badge)]
138
- Week 5-6: [Event C -- "Summer Kickoff" (Special Event badge)]
139
- ```
140
-
141
- Overlap the end of one event with the start of the next by 1-2 days. This prevents gaps where the app has no event card in search results.
142
-
143
- ### Event timing rules
144
-
145
- - Events can be published up to 14 days before they start.
146
- - Events must run at least 15 minutes and can run for up to 31 days.
147
- - You can publish up to 10 In-App Events on the App Store at a time and keep up to 15 approved events per app in App Store Connect.
148
- - Events are visible in search results and on the product page during their active window.
149
- - Ended events are removed from the store automatically.
150
- - Schedule events around real moments (feature releases, content drops, seasonal relevance) -- manufactured events without real in-app content feel hollow and may be rejected by App Review.
151
-
152
- ### Maximizing search impact
153
-
154
- - Use the event name and short description as visible search-result copy. Include terms that match the event's real content and user intent.
155
- - Choose a badge type that matches the actual event nature -- the badge appears prominently on the event card.
156
- - In-app events can appear on the Today tab, in search results, and on the app's product page. Apple's editorial team curates which events are featured.
157
-
158
- ## Screenshot Caption Copywriting
159
-
160
- ### Benefit-oriented vs. feature-descriptive
161
-
162
- | Feature-descriptive (weak) | Benefit-oriented (strong) |
163
- |---------------------------|--------------------------|
164
- | Calendar View | Never miss a deadline |
165
- | Dark Mode | Easy on your eyes, day or night |
166
- | Cloud Sync | Your data, everywhere |
167
- | Analytics Dashboard | See what is working |
168
- | Collaboration Tools | Build together in real time |
169
- | Offline Mode | Works without internet |
170
- | Custom Themes | Make it yours |
171
- | Push Notifications | Stay in the loop |
172
-
173
- ### Caption structure
174
-
175
- The strongest captions follow one of three patterns:
176
-
177
- 1. **Outcome-first:** State the result the user gets. "Track every mile" > "GPS Running Tracker".
178
- 2. **Problem-solver:** Name the pain point and imply the solution. "No more forgotten passwords" > "Password Manager".
179
- 3. **Social proof:** Imply scale or trust. "Join 10M users" > "Popular App".
180
-
181
- ### Per-audience caption variants
182
-
183
- Different Custom Product Pages should use different captions for the same screenshots:
184
-
185
- | Screenshot | Search Ads -- fitness terms | Social -- visual audience | Email -- lapsed users |
186
- |-----------|---------------------------|--------------------------|----------------------|
187
- | Workout screen | "Hit your goals every week" | "Your workout, beautifully tracked" | "We added 50 new workouts" |
188
- | Progress chart | "See your streak grow" | "Watch your progress unfold" | "Your history is still here" |
189
- | Social feature | "Challenge your friends" | "Share your wins" | "Your friends are still active" |
190
-
191
- Tailor the emotional angle to the acquisition channel while keeping the screenshot content consistent.
74
+ 4. Set the share of traffic in the test; it is split evenly among treatments.
75
+ 5. Pick the localizations; all are included by default.
76
+ 6. Start the test and follow it in App Analytics.
77
+
78
+ ### Reading results
79
+
80
+ - A test runs for at most 90 days or until you stop it.
81
+ - App Store Connect reports conversion for the original and each treatment with
82
+ a confidence interval, after the test has been credited with five or more
83
+ first-time downloads.
84
+ - Do not apply a treatment that has not reached 90% confidence.
85
+ - At scale, a lift of 2 to 5% in conversion is worth having.
86
+ - If App Store Connect marks the test as likely inconclusive, the traffic or
87
+ the difference is too small to reach confidence within 90 days. Try a bolder
88
+ change or a period with more traffic.
89
+ - After applying a winner, let at least one release cycle pass before testing
90
+ again.
91
+
92
+ ### Constraints
93
+
94
+ - An app can run only one test at any moment.
95
+ - Custom pages, Apple Watch product pages and iMessage product pages cannot be
96
+ tested.
97
+ - Apps with little traffic may take a long time to reach 90% confidence or
98
+ never get there.
99
+ - A treatment icon must already be in the binary of the version live on the
100
+ store.
101
+ - Applying a treatment applies its screenshots and previews. An icon that wins
102
+ only becomes the default for everyone when a later app version makes it the
103
+ primary icon.
104
+
105
+ ## In-App Event configuration
106
+
107
+ | Field | Limit | Advice |
108
+ |---|---|---|
109
+ | Event name | 30 characters | Specific and active: "Autumn Trail Challenge" beats "Our Autumn Event" |
110
+ | Short description | 50 characters | One sentence that sells the event on its card |
111
+ | Long description | 120 characters | What happens and what participants get |
112
+ | Event card media | 16:9, 1920 x 1080 | High contrast, readable at small size; avoid text smaller than about 24 pt |
113
+ | Event details page media | 9:16, 1080 x 1920 | Shown when someone opens the event |
114
+ | Badge | Preset list | The type that matches the event (see the badge list in SKILL.md) |
115
+ | Deep link | Optional URL | Opens the event content inside the app |
116
+
117
+ ### Scheduling
118
+
119
+ Run events back to back so there is always one live:
120
+
121
+ | Weeks | Event | Badge |
122
+ |---|---|---|
123
+ | 1 and 2 | Step count challenge | Challenge |
124
+ | 3 and 4 | New route planner release | Major Update |
125
+ | 5 and 6 | Seasonal trail collection | Special Event |
126
+
127
+ - Let consecutive events overlap by a day or two so there is no gap without a
128
+ card.
129
+ - Publishing can happen as early as 14 days ahead of the start time.
130
+ - An event lasts at least 15 minutes and at most 31 days.
131
+ - Up to 10 events can be published on the store at once, and up to 15 approved
132
+ events can be kept in App Store Connect.
133
+ - Events show in search and on the product page while active and disappear
134
+ automatically when they end.
135
+ - App Review may reject events that have no real content behind them.
136
+
137
+ ### Being found
138
+
139
+ - The name and short description are the visible search copy; use words that
140
+ match the real content and what people look for.
141
+ - The badge sits prominently on the card, so it must describe the event
142
+ honestly.
143
+ - Beyond search and the product page, events may be picked by Apple's editors
144
+ for the Today tab.
145
+
146
+ ## Writing screenshot captions
147
+
148
+ | Feature label | Benefit caption |
149
+ |---|---|
150
+ | Calendar View | Every deadline, on time |
151
+ | Dark Mode | Comfortable to read at any hour |
152
+ | Cloud Sync | Your files on every device |
153
+ | Analytics Dashboard | Know what is working |
154
+ | Collaboration Tools | Edit together in real time |
155
+ | Offline Mode | Keeps working with no signal |
156
+ | Custom Themes | Make it look like yours |
157
+ | Push Notifications | Hear about it first |
158
+
159
+ Three patterns that work:
160
+
161
+ 1. **Say the result.** "Finish every run stronger" beats "GPS Run Tracker".
162
+ 2. **Name the pain.** "No more lost receipts" beats "Receipt Scanner".
163
+ 3. **Show the crowd.** "Trusted by 5M cooks" beats "Popular Recipes".
164
+
165
+ The same screenshots can carry different captions on different custom pages:
166
+ goal-driven lines for a fitness search page, mood and look for a visual social
167
+ page, and "what is new since you left" for an email to lapsed users. Change the
168
+ emotional angle for the channel and keep the screen content the same.