@mmerterden/multi-agent-pipeline 20.6.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 (326) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +0 -10
  3. package/docs/facts.json +1 -1
  4. package/manifest.json +328 -329
  5. package/package.json +2 -2
  6. package/pipeline/multi-agent-refs/features/design-conformance.md +62 -64
  7. package/pipeline/scripts/_notices.mjs +12 -1
  8. package/pipeline/scripts/gen-skills-index.mjs +1 -1
  9. package/pipeline/skills/.skill-manifest.json +106 -106
  10. package/pipeline/skills/shared/README.md +71 -71
  11. package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +1 -0
  12. package/pipeline/skills/shared/external/alarmkit/SKILL.md +373 -381
  13. package/pipeline/skills/shared/external/alarmkit/evals/evals.json +23 -18
  14. package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +328 -378
  15. package/pipeline/skills/shared/external/android-architecture/SKILL.md +2 -0
  16. package/pipeline/skills/shared/external/android-performance/SKILL.md +2 -0
  17. package/pipeline/skills/shared/external/android-security/SKILL.md +2 -0
  18. package/pipeline/skills/shared/external/app-clips/SKILL.md +260 -160
  19. package/pipeline/skills/shared/external/app-clips/evals/evals.json +27 -27
  20. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +150 -83
  21. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +135 -83
  22. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +143 -85
  23. package/pipeline/skills/shared/external/app-intents/SKILL.md +302 -304
  24. package/pipeline/skills/shared/external/app-intents/evals/evals.json +21 -21
  25. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +594 -894
  26. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +339 -277
  27. package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +27 -23
  28. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +105 -122
  29. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +143 -166
  30. package/pipeline/skills/shared/external/app-store-review/SKILL.md +307 -326
  31. package/pipeline/skills/shared/external/app-store-review/evals/evals.json +21 -21
  32. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +105 -67
  33. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +114 -101
  34. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +333 -360
  35. package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +24 -27
  36. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +215 -322
  37. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +161 -256
  38. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +277 -387
  39. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +196 -210
  40. package/pipeline/skills/shared/external/authentication/SKILL.md +265 -381
  41. package/pipeline/skills/shared/external/authentication/evals/evals.json +25 -25
  42. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +133 -178
  43. package/pipeline/skills/shared/external/authentication/references/passkeys.md +111 -147
  44. package/pipeline/skills/shared/external/avkit/SKILL.md +267 -364
  45. package/pipeline/skills/shared/external/avkit/evals/evals.json +26 -26
  46. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +375 -493
  47. package/pipeline/skills/shared/external/background-processing/SKILL.md +270 -382
  48. package/pipeline/skills/shared/external/background-processing/evals/evals.json +22 -22
  49. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +169 -317
  50. package/pipeline/skills/shared/external/backlog/BACKLOG.md +1 -1
  51. package/pipeline/skills/shared/external/backlog/SKILL.md +56 -33
  52. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +290 -371
  53. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +24 -24
  54. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +175 -343
  55. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +1 -0
  56. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +292 -381
  57. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +33 -30
  58. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +227 -355
  59. package/pipeline/skills/shared/external/compose-components/SKILL.md +2 -0
  60. package/pipeline/skills/shared/external/compose-navigation/SKILL.md +3 -2
  61. package/pipeline/skills/shared/external/compose-testing/SKILL.md +2 -0
  62. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +197 -346
  63. package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +19 -21
  64. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +169 -308
  65. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +226 -376
  66. package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +25 -22
  67. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +257 -337
  68. package/pipeline/skills/shared/external/core-data/SKILL.md +292 -368
  69. package/pipeline/skills/shared/external/core-data/evals/evals.json +30 -27
  70. package/pipeline/skills/shared/external/core-motion/SKILL.md +235 -324
  71. package/pipeline/skills/shared/external/core-motion/evals/evals.json +31 -27
  72. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +210 -310
  73. package/pipeline/skills/shared/external/core-nfc/SKILL.md +292 -366
  74. package/pipeline/skills/shared/external/core-nfc/evals/evals.json +22 -24
  75. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +233 -329
  76. package/pipeline/skills/shared/external/coreml/SKILL.md +323 -367
  77. package/pipeline/skills/shared/external/coreml/evals/evals.json +24 -21
  78. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +562 -565
  79. package/pipeline/skills/shared/external/council/SKILL.md +1 -0
  80. package/pipeline/skills/shared/external/cryptokit/SKILL.md +253 -394
  81. package/pipeline/skills/shared/external/cryptokit/evals/evals.json +20 -18
  82. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +299 -488
  83. package/pipeline/skills/shared/external/css-modern/SKILL.md +1 -0
  84. package/pipeline/skills/shared/external/database-patterns/SKILL.md +1 -0
  85. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +270 -323
  86. package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +27 -30
  87. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +167 -315
  88. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +140 -193
  89. package/pipeline/skills/shared/external/device-integrity/SKILL.md +230 -353
  90. package/pipeline/skills/shared/external/device-integrity/evals/evals.json +25 -21
  91. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +159 -197
  92. package/pipeline/skills/shared/external/energykit/SKILL.md +225 -392
  93. package/pipeline/skills/shared/external/energykit/evals/evals.json +29 -28
  94. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +174 -470
  95. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +261 -383
  96. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +25 -22
  97. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +165 -268
  98. package/pipeline/skills/shared/external/evidence-github/SKILL.md +2 -0
  99. package/pipeline/skills/shared/external/evidence-registry/SKILL.md +2 -0
  100. package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +2 -0
  101. package/pipeline/skills/shared/external/healthkit/SKILL.md +252 -303
  102. package/pipeline/skills/shared/external/healthkit/evals/evals.json +24 -23
  103. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +369 -523
  104. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +233 -348
  105. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +27 -22
  106. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +199 -305
  107. package/pipeline/skills/shared/external/html-semantic/SKILL.md +1 -0
  108. package/pipeline/skills/shared/external/humanizer/SKILL.md +1 -0
  109. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +368 -340
  110. package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +28 -27
  111. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +314 -260
  112. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +97 -67
  113. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +165 -101
  114. package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +1 -0
  115. package/pipeline/skills/shared/external/ios-localization/SKILL.md +258 -371
  116. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +23 -23
  117. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +283 -491
  118. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +313 -440
  119. package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +1 -0
  120. package/pipeline/skills/shared/external/ios-networking/SKILL.md +265 -341
  121. package/pipeline/skills/shared/external/ios-networking/evals/evals.json +24 -24
  122. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +425 -652
  123. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +143 -285
  124. package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -53
  125. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +231 -456
  126. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +517 -784
  127. package/pipeline/skills/shared/external/ios-security/SKILL.md +2 -0
  128. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +265 -393
  129. package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +21 -21
  130. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +177 -270
  131. package/pipeline/skills/shared/external/live-activities/SKILL.md +318 -360
  132. package/pipeline/skills/shared/external/live-activities/evals/evals.json +21 -21
  133. package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +478 -710
  134. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +91 -283
  135. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +119 -151
  136. package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +60 -90
  137. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +119 -156
  138. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +726 -787
  139. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +253 -288
  140. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +243 -304
  141. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +88 -104
  142. package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +181 -235
  143. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +198 -263
  144. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +461 -466
  145. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +145 -151
  146. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +123 -141
  147. package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +146 -157
  148. package/pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh +22 -19
  149. package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +156 -140
  150. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +295 -267
  151. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +28 -24
  152. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +378 -532
  153. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +397 -499
  154. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +165 -348
  155. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +26 -23
  156. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +123 -130
  157. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +189 -315
  158. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +22 -21
  159. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +181 -270
  160. package/pipeline/skills/shared/external/natural-language/SKILL.md +188 -340
  161. package/pipeline/skills/shared/external/natural-language/evals/evals.json +21 -21
  162. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +171 -225
  163. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +1 -0
  164. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +258 -392
  165. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +30 -29
  166. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +164 -231
  167. package/pipeline/skills/shared/external/pdfkit/SKILL.md +312 -344
  168. package/pipeline/skills/shared/external/pdfkit/evals/evals.json +19 -19
  169. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +413 -624
  170. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +242 -358
  171. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +25 -21
  172. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +161 -226
  173. package/pipeline/skills/shared/external/permissionkit/SKILL.md +282 -400
  174. package/pipeline/skills/shared/external/permissionkit/evals/evals.json +27 -30
  175. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +237 -350
  176. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +276 -325
  177. package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +299 -545
  178. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +344 -588
  179. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +316 -660
  180. package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +270 -416
  181. package/pipeline/skills/shared/external/play-store-review/SKILL.md +2 -0
  182. package/pipeline/skills/shared/external/push-notifications/SKILL.md +312 -340
  183. package/pipeline/skills/shared/external/push-notifications/evals/evals.json +27 -26
  184. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +328 -485
  185. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +327 -560
  186. package/pipeline/skills/shared/external/python-patterns/SKILL.md +1 -0
  187. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
  188. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +218 -410
  189. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +24 -27
  190. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +221 -348
  191. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +1 -0
  192. package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +2 -0
  193. package/pipeline/skills/shared/external/room-database/SKILL.md +2 -0
  194. package/pipeline/skills/shared/external/search-first/SKILL.md +1 -0
  195. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +222 -393
  196. package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +23 -24
  197. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +280 -420
  198. package/pipeline/skills/shared/external/signal-community/SKILL.md +2 -0
  199. package/pipeline/skills/shared/external/skill-creator/SKILL.md +80 -41
  200. package/pipeline/skills/shared/external/skill-creator/audit.md +63 -59
  201. package/pipeline/skills/shared/external/skill-creator/checklist.md +28 -20
  202. package/pipeline/skills/shared/external/skill-creator/examples.md +40 -40
  203. package/pipeline/skills/shared/external/skill-creator/label-check.md +48 -36
  204. package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +91 -100
  205. package/pipeline/skills/shared/external/skill-creator/template.md +51 -39
  206. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +217 -421
  207. package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +23 -26
  208. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +133 -125
  209. package/pipeline/skills/shared/external/storekit/SKILL.md +228 -204
  210. package/pipeline/skills/shared/external/storekit/evals/evals.json +27 -24
  211. package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +98 -109
  212. package/pipeline/skills/shared/external/storekit/references/core-patterns.md +298 -242
  213. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +356 -649
  214. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +274 -399
  215. package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +22 -24
  216. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +107 -108
  217. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +93 -165
  218. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +99 -137
  219. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +77 -120
  220. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +334 -350
  221. package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +22 -22
  222. package/pipeline/skills/shared/external/swift-charts/SKILL.md +208 -394
  223. package/pipeline/skills/shared/external/swift-charts/evals/evals.json +27 -30
  224. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +351 -762
  225. package/pipeline/skills/shared/external/swift-codable/SKILL.md +339 -343
  226. package/pipeline/skills/shared/external/swift-codable/evals/evals.json +20 -20
  227. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +303 -351
  228. package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +27 -24
  229. package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +65 -80
  230. package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +48 -84
  231. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +134 -79
  232. package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +145 -167
  233. package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +62 -50
  234. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +92 -121
  235. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +177 -241
  236. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +258 -234
  237. package/pipeline/skills/shared/external/swift-language/SKILL.md +342 -382
  238. package/pipeline/skills/shared/external/swift-language/evals/evals.json +24 -27
  239. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +79 -56
  240. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +297 -340
  241. package/pipeline/skills/shared/external/swift-security/SKILL.md +180 -161
  242. package/pipeline/skills/shared/external/swift-security/evals/evals.json +25 -25
  243. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +314 -469
  244. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +408 -476
  245. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +260 -530
  246. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +270 -477
  247. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +573 -571
  248. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +370 -441
  249. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +332 -433
  250. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +346 -468
  251. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +352 -472
  252. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +431 -432
  253. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +328 -425
  254. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +341 -579
  255. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +396 -457
  256. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +354 -614
  257. package/pipeline/skills/shared/external/swift-testing/SKILL.md +188 -175
  258. package/pipeline/skills/shared/external/swift-testing/evals/evals.json +26 -24
  259. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +80 -84
  260. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +317 -433
  261. package/pipeline/skills/shared/external/swiftdata/SKILL.md +392 -256
  262. package/pipeline/skills/shared/external/swiftdata/evals/evals.json +24 -24
  263. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +206 -402
  264. package/pipeline/skills/shared/external/swiftdata/references/indexing.md +59 -52
  265. package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +57 -33
  266. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +354 -747
  267. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +300 -508
  268. package/pipeline/skills/shared/external/swiftlint/SKILL.md +175 -226
  269. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +141 -208
  270. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +100 -109
  271. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +159 -179
  272. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +383 -18
  273. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +143 -229
  274. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +283 -366
  275. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +396 -608
  276. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +336 -385
  277. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +239 -349
  278. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +228 -310
  279. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +260 -249
  280. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +92 -74
  281. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +112 -177
  282. package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +61 -64
  283. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +94 -134
  284. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +193 -225
  285. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +173 -327
  286. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +193 -168
  287. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +127 -150
  288. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +132 -133
  289. package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +152 -117
  290. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +106 -140
  291. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +316 -252
  292. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +341 -332
  293. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +547 -854
  294. package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +485 -537
  295. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +417 -499
  296. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +213 -376
  297. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +86 -175
  298. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +89 -195
  299. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +95 -182
  300. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +71 -149
  301. package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +21 -27
  302. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +303 -295
  303. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +204 -387
  304. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +469 -683
  305. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +140 -186
  306. package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +75 -86
  307. package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +63 -60
  308. package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +69 -137
  309. package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +95 -67
  310. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +1 -0
  311. package/pipeline/skills/shared/external/testing-backend/SKILL.md +1 -0
  312. package/pipeline/skills/shared/external/tipkit/SKILL.md +220 -335
  313. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +356 -494
  314. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +1 -0
  315. package/pipeline/skills/shared/external/vision-framework/SKILL.md +260 -375
  316. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +393 -515
  317. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +363 -539
  318. package/pipeline/skills/shared/external/vue-composition/SKILL.md +1 -0
  319. package/pipeline/skills/shared/external/weatherkit/SKILL.md +152 -310
  320. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +288 -407
  321. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
  322. package/pipeline/skills/shared/external/web-performance/SKILL.md +1 -0
  323. package/pipeline/skills/shared/external/web-testing/SKILL.md +1 -0
  324. package/pipeline/skills/shared/external/widgetkit/SKILL.md +216 -288
  325. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +414 -719
  326. 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.