@mmerterden/multi-agent-pipeline 20.7.0 → 20.8.1

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 (284) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +0 -10
  3. package/docs/facts.json +1 -1
  4. package/manifest.json +285 -285
  5. package/package.json +3 -3
  6. package/pipeline/lib/redact.mjs +3 -2
  7. package/pipeline/scripts/_notices.mjs +1 -1
  8. package/pipeline/scripts/gen-skills-index.mjs +13 -1
  9. package/pipeline/scripts/pre-commit-check.sh +4 -0
  10. package/pipeline/skills/.skill-manifest.json +69 -69
  11. package/pipeline/skills/shared/README.md +70 -70
  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/app-clips/SKILL.md +260 -160
  16. package/pipeline/skills/shared/external/app-clips/evals/evals.json +27 -27
  17. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +150 -83
  18. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +135 -83
  19. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +143 -85
  20. package/pipeline/skills/shared/external/app-intents/SKILL.md +302 -304
  21. package/pipeline/skills/shared/external/app-intents/evals/evals.json +21 -21
  22. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +594 -894
  23. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +345 -277
  24. package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +27 -23
  25. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +107 -121
  26. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +145 -165
  27. package/pipeline/skills/shared/external/app-store-review/SKILL.md +306 -326
  28. package/pipeline/skills/shared/external/app-store-review/evals/evals.json +21 -21
  29. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +105 -67
  30. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +114 -101
  31. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +335 -360
  32. package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +24 -27
  33. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +215 -322
  34. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +161 -256
  35. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +277 -387
  36. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +196 -210
  37. package/pipeline/skills/shared/external/authentication/SKILL.md +277 -381
  38. package/pipeline/skills/shared/external/authentication/evals/evals.json +25 -25
  39. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +135 -178
  40. package/pipeline/skills/shared/external/authentication/references/passkeys.md +111 -147
  41. package/pipeline/skills/shared/external/avkit/SKILL.md +267 -364
  42. package/pipeline/skills/shared/external/avkit/evals/evals.json +26 -26
  43. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +375 -493
  44. package/pipeline/skills/shared/external/background-processing/SKILL.md +274 -384
  45. package/pipeline/skills/shared/external/background-processing/evals/evals.json +22 -22
  46. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +173 -321
  47. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +290 -371
  48. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +24 -24
  49. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +175 -343
  50. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +292 -381
  51. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +33 -30
  52. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +227 -355
  53. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +197 -346
  54. package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +19 -21
  55. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +169 -308
  56. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +228 -376
  57. package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +25 -22
  58. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +257 -337
  59. package/pipeline/skills/shared/external/core-data/SKILL.md +302 -368
  60. package/pipeline/skills/shared/external/core-data/evals/evals.json +30 -27
  61. package/pipeline/skills/shared/external/core-motion/SKILL.md +235 -324
  62. package/pipeline/skills/shared/external/core-motion/evals/evals.json +31 -27
  63. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +210 -310
  64. package/pipeline/skills/shared/external/core-nfc/SKILL.md +292 -366
  65. package/pipeline/skills/shared/external/core-nfc/evals/evals.json +22 -24
  66. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +233 -329
  67. package/pipeline/skills/shared/external/coreml/SKILL.md +323 -367
  68. package/pipeline/skills/shared/external/coreml/evals/evals.json +24 -21
  69. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +562 -565
  70. package/pipeline/skills/shared/external/cryptokit/SKILL.md +253 -394
  71. package/pipeline/skills/shared/external/cryptokit/evals/evals.json +20 -18
  72. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +299 -488
  73. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +270 -323
  74. package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +27 -30
  75. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +167 -315
  76. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +140 -193
  77. package/pipeline/skills/shared/external/device-integrity/SKILL.md +236 -353
  78. package/pipeline/skills/shared/external/device-integrity/evals/evals.json +25 -21
  79. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +159 -197
  80. package/pipeline/skills/shared/external/energykit/SKILL.md +225 -392
  81. package/pipeline/skills/shared/external/energykit/evals/evals.json +29 -28
  82. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +174 -470
  83. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +261 -383
  84. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +25 -22
  85. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +165 -268
  86. package/pipeline/skills/shared/external/healthkit/SKILL.md +252 -303
  87. package/pipeline/skills/shared/external/healthkit/evals/evals.json +24 -23
  88. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +369 -523
  89. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +233 -348
  90. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +27 -22
  91. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +199 -305
  92. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +368 -340
  93. package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +28 -27
  94. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +314 -260
  95. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +97 -67
  96. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +165 -101
  97. package/pipeline/skills/shared/external/ios-localization/SKILL.md +258 -371
  98. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +23 -23
  99. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +283 -491
  100. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +313 -440
  101. package/pipeline/skills/shared/external/ios-networking/SKILL.md +265 -341
  102. package/pipeline/skills/shared/external/ios-networking/evals/evals.json +24 -24
  103. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +425 -652
  104. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +143 -285
  105. package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -53
  106. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +231 -456
  107. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +517 -784
  108. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +265 -393
  109. package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +21 -21
  110. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +177 -270
  111. package/pipeline/skills/shared/external/live-activities/SKILL.md +318 -360
  112. package/pipeline/skills/shared/external/live-activities/evals/evals.json +21 -21
  113. package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +478 -710
  114. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +3 -3
  115. package/pipeline/skills/shared/external/localization-reuse-map/example-mapping.json +1 -1
  116. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +8 -7
  117. package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +2 -2
  118. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +5 -2
  119. package/pipeline/skills/shared/external/localization-reuse-map/scripts/_shared.py +100 -0
  120. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +45 -26
  121. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +14 -16
  122. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +12 -5
  123. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +2 -1
  124. package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +6 -5
  125. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +44 -18
  126. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +5 -2
  127. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +10 -11
  128. package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +4 -33
  129. package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +12 -59
  130. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +297 -267
  131. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +28 -24
  132. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +378 -532
  133. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +397 -499
  134. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +165 -348
  135. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +26 -23
  136. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +123 -130
  137. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +189 -315
  138. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +22 -21
  139. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +181 -270
  140. package/pipeline/skills/shared/external/natural-language/SKILL.md +188 -340
  141. package/pipeline/skills/shared/external/natural-language/evals/evals.json +21 -21
  142. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +171 -225
  143. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +258 -392
  144. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +30 -29
  145. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +164 -231
  146. package/pipeline/skills/shared/external/pdfkit/SKILL.md +312 -344
  147. package/pipeline/skills/shared/external/pdfkit/evals/evals.json +19 -19
  148. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +413 -624
  149. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +242 -358
  150. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +25 -21
  151. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +161 -226
  152. package/pipeline/skills/shared/external/permissionkit/SKILL.md +282 -400
  153. package/pipeline/skills/shared/external/permissionkit/evals/evals.json +27 -30
  154. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +237 -350
  155. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +276 -325
  156. package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +299 -545
  157. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +344 -588
  158. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +316 -660
  159. package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +270 -416
  160. package/pipeline/skills/shared/external/push-notifications/SKILL.md +312 -340
  161. package/pipeline/skills/shared/external/push-notifications/evals/evals.json +27 -26
  162. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +328 -485
  163. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +327 -560
  164. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +218 -410
  165. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +24 -27
  166. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +221 -348
  167. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +222 -393
  168. package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +23 -24
  169. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +280 -420
  170. package/pipeline/skills/shared/external/skill-creator/template.md +7 -1
  171. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +217 -421
  172. package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +23 -26
  173. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +133 -125
  174. package/pipeline/skills/shared/external/storekit/SKILL.md +228 -204
  175. package/pipeline/skills/shared/external/storekit/evals/evals.json +27 -24
  176. package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +98 -109
  177. package/pipeline/skills/shared/external/storekit/references/core-patterns.md +302 -241
  178. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +356 -649
  179. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +274 -399
  180. package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +22 -24
  181. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +107 -108
  182. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +93 -165
  183. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +99 -137
  184. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +77 -120
  185. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +334 -350
  186. package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +22 -22
  187. package/pipeline/skills/shared/external/swift-charts/SKILL.md +208 -394
  188. package/pipeline/skills/shared/external/swift-charts/evals/evals.json +27 -30
  189. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +351 -762
  190. package/pipeline/skills/shared/external/swift-codable/SKILL.md +339 -343
  191. package/pipeline/skills/shared/external/swift-codable/evals/evals.json +20 -20
  192. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +304 -351
  193. package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +27 -24
  194. package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +65 -80
  195. package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +48 -84
  196. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +134 -79
  197. package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +145 -167
  198. package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +62 -50
  199. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +92 -121
  200. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +177 -241
  201. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +258 -234
  202. package/pipeline/skills/shared/external/swift-language/SKILL.md +342 -382
  203. package/pipeline/skills/shared/external/swift-language/evals/evals.json +24 -27
  204. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +79 -56
  205. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +297 -340
  206. package/pipeline/skills/shared/external/swift-security/SKILL.md +183 -162
  207. package/pipeline/skills/shared/external/swift-security/evals/evals.json +25 -25
  208. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +314 -469
  209. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +411 -476
  210. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +260 -530
  211. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +270 -477
  212. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +573 -571
  213. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +370 -441
  214. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +332 -433
  215. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +346 -468
  216. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +375 -491
  217. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +431 -432
  218. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +328 -425
  219. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +341 -579
  220. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +397 -457
  221. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +354 -614
  222. package/pipeline/skills/shared/external/swift-testing/SKILL.md +191 -175
  223. package/pipeline/skills/shared/external/swift-testing/evals/evals.json +26 -24
  224. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +81 -84
  225. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +317 -433
  226. package/pipeline/skills/shared/external/swiftdata/SKILL.md +394 -256
  227. package/pipeline/skills/shared/external/swiftdata/evals/evals.json +24 -24
  228. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +206 -402
  229. package/pipeline/skills/shared/external/swiftdata/references/indexing.md +59 -52
  230. package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +57 -33
  231. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +354 -747
  232. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +300 -508
  233. package/pipeline/skills/shared/external/swiftlint/SKILL.md +175 -226
  234. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +141 -208
  235. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +100 -109
  236. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +159 -179
  237. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +383 -18
  238. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +143 -229
  239. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +283 -366
  240. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +396 -608
  241. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +336 -385
  242. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +239 -349
  243. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +228 -310
  244. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +260 -249
  245. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +92 -74
  246. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +112 -177
  247. package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +61 -64
  248. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +94 -134
  249. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +193 -225
  250. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +173 -327
  251. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +201 -168
  252. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +127 -150
  253. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +134 -133
  254. package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +152 -117
  255. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +111 -138
  256. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +316 -252
  257. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +341 -332
  258. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +547 -854
  259. package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +485 -537
  260. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +417 -499
  261. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +213 -376
  262. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +86 -175
  263. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +89 -195
  264. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +95 -182
  265. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +71 -149
  266. package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +21 -27
  267. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +303 -295
  268. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +204 -387
  269. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +469 -683
  270. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +140 -186
  271. package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +75 -86
  272. package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +63 -60
  273. package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +69 -137
  274. package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +95 -67
  275. package/pipeline/skills/shared/external/tipkit/SKILL.md +220 -335
  276. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +356 -494
  277. package/pipeline/skills/shared/external/vision-framework/SKILL.md +260 -375
  278. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +393 -515
  279. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +363 -539
  280. package/pipeline/skills/shared/external/weatherkit/SKILL.md +160 -315
  281. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +288 -407
  282. package/pipeline/skills/shared/external/widgetkit/SKILL.md +224 -288
  283. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +416 -719
  284. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +0 -39
@@ -1,298 +1,245 @@
1
- # LLDB Patterns Reference
1
+ # LLDB Command Reference
2
2
 
3
- Complete LLDB command reference for iOS debugging. Companion to the main `debugging-instruments` skill.
3
+ Companion to the `debugging-instruments` skill. Commands are typed at the
4
+ `(lldb)` prompt in Xcode's console or in a standalone `lldb` session.
4
5
 
5
- ## Contents
6
+ ## Printing Values: `v`, `p`, `po`
6
7
 
7
- - [Inspection Commands](#inspection-commands)
8
- - [Breakpoint Patterns](#breakpoint-patterns)
9
- - [Expression Evaluation](#expression-evaluation)
10
- - [Watchpoints](#watchpoints)
11
- - [Thread and Stack Navigation](#thread-and-stack-navigation)
12
- - [Memory Inspection](#memory-inspection)
13
- - [Custom Type Summaries](#custom-type-summaries)
14
- - [Python Scripting](#python-scripting)
15
- - [Useful Symbolic Breakpoints](#useful-symbolic-breakpoints)
16
- - [LLDB Init File](#lldb-init-file)
8
+ | Command | How it works | Runs code in the target? | Speed |
9
+ |---------|--------------|--------------------------|-------|
10
+ | `v` | Reads the variable from the frame's memory | No | Fast |
11
+ | `p` | Evaluates the expression, formats the result with LLDB's data formatters | Yes | Medium |
12
+ | `po` | Evaluates the expression, then asks the object for its description | Yes | Slow |
17
13
 
18
- ## Inspection Commands
14
+ `po` shows what `CustomDebugStringConvertible` (`debugDescription`) returns.
15
+ `p` shows the static type followed by the formatted value.
19
16
 
20
- ### po vs p vs v
21
-
22
- | Command | Mechanism | Side Effects | Speed |
23
- |---------|-----------|--------------|-------|
24
- | `po expr` | Calls `debugDescription` via expression eval | Yes - runs code | Slow |
25
- | `p expr` | LLDB formatter on expression result | Yes - runs code | Medium |
26
- | `v varname` | Reads frame memory directly | No | Fast |
27
-
28
- ```text
29
- (lldb) po myArray # Calls CustomDebugStringConvertible
30
- (lldb) p myArray # Shows type + formatted value
31
- (lldb) v myArray # Fastest, no code execution
32
- (lldb) v myArray[0] # Access elements directly
33
- (lldb) v self.viewModel.state # Dot-path into properties
34
- ```
35
-
36
- Use `v` as the default. Fall back to `po` when you need `debugDescription`
37
- or custom string output. Use `p` when you need type information.
38
-
39
- ### Register and Memory
17
+ `v` understands subscripts and member paths:
40
18
 
41
19
  ```text
42
- (lldb) register read # All registers
43
- (lldb) register read x0 x1 # Specific registers (ARM64)
44
- (lldb) memory read 0x600003a04000 # Read raw memory
45
- (lldb) memory read -s1 -fx -c32 addr # 32 bytes as hex
20
+ (lldb) v invoices[0]
21
+ (lldb) v self.store.selection
46
22
  ```
47
23
 
48
- ## Breakpoint Patterns
24
+ Default to `v`. Switch to `po` when you want the type's own description, and
25
+ to `p` when you want to see the type as well.
49
26
 
50
- ### File and Line
27
+ ## Registers and Raw Memory
51
28
 
52
29
  ```text
53
- (lldb) br set -f ViewModel.swift -l 42
54
- (lldb) br set -f ViewModel.swift -l 42 -c "count > 10"
55
- (lldb) br set -f ViewModel.swift -l 42 --one-shot true # Delete after first hit
30
+ (lldb) register read # every register
31
+ (lldb) register read x0 x1 # two ARM64 argument registers
32
+ (lldb) memory read 0x16fdfe2a0
33
+ (lldb) memory read --size 1 --format x --count 32 0x16fdfe2a0 # 32 hex bytes
56
34
  ```
57
35
 
58
- ### Function and Method Names
36
+ ## Breakpoint Recipes
59
37
 
60
38
  ```text
61
- (lldb) br set -n viewDidLoad # Any function named viewDidLoad
62
- (lldb) br set -n "MyApp.ViewModel.loadData()" # Fully qualified Swift name
63
- (lldb) br set -S "setValue:forKey:" # ObjC selector
64
- (lldb) br set -r ".*Error.*" # Regex match on symbol name
65
- (lldb) br set -r "MyModule\..*\.deinit" # All deinits in a module
39
+ (lldb) br set -f InvoiceStore.swift -l 57 -c "invoice.total < 0"
40
+ (lldb) br set -f InvoiceStore.swift -l 57 --one-shot true # removed after the first hit
41
+ (lldb) br set -n "Billing.InvoiceStore.reload()" # fully qualified Swift name
42
+ (lldb) br set -r "Billing\..*\.deinit" # every deinit in a module
66
43
  ```
67
44
 
68
- ### Breakpoint Actions
45
+ Attach actions to a breakpoint:
69
46
 
70
47
  ```text
71
- (lldb) br set -n loadData
72
48
  (lldb) br command add 1
73
- > po "loadData called at \(Date())"
49
+ > po "reload hit at \(Date())"
74
50
  > bt
75
51
  > continue
76
52
  > DONE
77
53
  ```
78
54
 
79
- ### Logpoints (Auto-Continue Breakpoints)
55
+ ### Logpoints
56
+
57
+ Print on every hit without stopping:
80
58
 
81
59
  ```text
82
- (lldb) br set -f File.swift -l 42
83
- (lldb) br modify 1 --auto-continue true
60
+ (lldb) br set -f InvoiceStore.swift -l 57
61
+ (lldb) breakpoint modify --auto-continue true 1
84
62
  (lldb) br command add 1
85
- > po "state = \(self.state)"
63
+ > po invoice.number
86
64
  > DONE
87
65
  ```
88
66
 
89
- This prints the value every time line 42 is hit without stopping execution.
90
- Equivalent to Xcode's "Log Message" breakpoint action with auto-continue.
67
+ This is the command-line form of Xcode's "Log Message" action with
68
+ "Automatically continue after evaluating actions" checked.
91
69
 
92
- ### Listing and Managing
70
+ ### Housekeeping
93
71
 
94
72
  ```text
95
- (lldb) br list # Show all breakpoints
96
- (lldb) br disable 1 # Disable breakpoint 1
97
- (lldb) br enable 1 # Re-enable
98
- (lldb) br delete 1 # Remove
99
- (lldb) br delete # Remove ALL breakpoints
100
- (lldb) br modify 1 -i 5 # Skip first 5 hits (ignore count)
73
+ (lldb) br list
74
+ (lldb) br enable 1
75
+ (lldb) br modify --ignore-count 5 1 # skip the first five hits
76
+ (lldb) br delete 1
77
+ (lldb) br delete # no id: deletes every breakpoint (asks first)
101
78
  ```
102
79
 
103
- ## Expression Evaluation
80
+ ## Expressions
104
81
 
105
- ### Swift Expressions
82
+ Swift expressions can contain closures and several statements:
106
83
 
107
84
  ```text
108
- (lldb) expr myArray.count
109
- (lldb) expr myArray.filter { $0.isActive }.count
110
- (lldb) expr let result = myFunc(); print(result)
111
- (lldb) e -l swift -- import Foundation
112
- (lldb) e -l swift -- self.title = "Debug Title"
85
+ (lldb) e invoices.filter { $0.isOverdue }.count
86
+ (lldb) e let summary = store.summary(); print(summary)
87
+ (lldb) expression -l swift -- import Foundation
88
+ (lldb) expression -l swift -- self.navigationItem.title = "Debug"
113
89
  ```
114
90
 
115
- ### Objective-C Expressions (for UIKit internals)
91
+ Objective-C context is handy for UIKit internals:
116
92
 
117
93
  ```text
118
- (lldb) e -l objc -- (void)[CATransaction flush]
119
- (lldb) e -l objc -- (void)[[UIApplication sharedApplication] _performMemoryWarning]
120
- (lldb) e -l objc -- (BOOL)[(id)0x7fc... isKindOfClass:[UIView class]]
121
- (lldb) e -l objc -- (void)[0x7fc... recursiveDescription] # View hierarchy dump
94
+ (lldb) expression -l objc -- (void)[[UIApplication sharedApplication] _performMemoryWarning]
95
+ (lldb) expression -l objc -- (BOOL)[(id)0x10a3c4f00 isKindOfClass:[UIView class]]
96
+ (lldb) expression -l objc -- (void)[0x10a3c4f00 recursiveDescription]
122
97
  ```
123
98
 
124
- ### Modifying State at Runtime
99
+ The first line calls a private method to simulate a memory warning; use it only
100
+ while debugging. In Simulator, Debug > Simulate Memory Warning does the same.
101
+ `recursiveDescription` prints the view tree under the given view.
102
+
103
+ ### Changing the UI while paused
125
104
 
126
105
  ```text
127
- (lldb) e self.debugLabel.text = "Modified in debugger"
128
- (lldb) e self.view.backgroundColor = UIColor.red
129
- (lldb) e -l objc -- (void)[CATransaction flush] # Force redraw
106
+ (lldb) expression -l swift -- self.statusLabel.text = "Paid"
107
+ (lldb) expression -l swift -- self.statusLabel.backgroundColor = UIColor.systemTeal
108
+ (lldb) expression -l objc -- (void)[CATransaction flush]
130
109
  ```
131
110
 
132
- ### Calling Functions
111
+ ### Calling functions
133
112
 
134
113
  ```text
135
- (lldb) e self.viewModel.reset()
136
- (lldb) e UserDefaults.standard.set(true, forKey: "debug_mode")
137
- (lldb) e NotificationCenter.default.post(name: .init("DebugReload"), object: nil)
114
+ (lldb) expression self.store.clearCache()
115
+ (lldb) expression UserDefaults.standard.set(true, forKey: "showOnboarding")
116
+ (lldb) expression NotificationCenter.default.post(name: .init("SessionExpired"), object: nil)
138
117
  ```
139
118
 
140
119
  ## Watchpoints
141
120
 
142
121
  ```text
143
- (lldb) w set v self.score # Watch for writes
144
- (lldb) w set v self.score -w read # Watch for reads
145
- (lldb) w set v self.score -w read_write # Watch both
146
- (lldb) w set e -- 0x600003a04000 # Watch memory address
147
- (lldb) w modify 1 -c "self.score > 100" # Conditional
148
- (lldb) w list # Show active watchpoints
149
- (lldb) w delete 1 # Remove
122
+ (lldb) w set v self.balance -w read_write # reads and writes
123
+ (lldb) w set e -- 0x600003d04f10 # raw address
150
124
  ```
151
125
 
152
- Hardware watchpoint limit on Apple Silicon: 4 watchpoints. Use them
153
- sparingly for tracking unexpected mutations.
126
+ Apple Silicon offers four hardware watchpoints. Spend them carefully and delete
127
+ the ones you no longer need.
154
128
 
155
- ## Thread and Stack Navigation
129
+ ## Moving Through Threads and Frames
156
130
 
157
131
  ```text
158
- (lldb) thread list # All threads with status
159
- (lldb) thread select 3 # Switch to thread 3
160
- (lldb) bt # Backtrace current thread
161
- (lldb) bt all # Backtrace every thread
162
- (lldb) bt 5 # Show only top 5 frames
163
- (lldb) frame select 2 # Jump to frame #2
164
- (lldb) frame info # Current frame info
165
- (lldb) frame variable # All variables in frame
166
- (lldb) up # Move up one frame
167
- (lldb) down # Move down one frame
132
+ (lldb) bt 5 # top five frames only
133
+ (lldb) frame info # where am I
134
+ (lldb) frame variable # every variable in this frame
135
+ (lldb) up # one frame toward the caller
136
+ (lldb) down # one frame back toward the callee
137
+ (lldb) thread return # leave the current function now
138
+ (lldb) thread return false # leave a Bool-returning function with false
168
139
  ```
169
140
 
170
- ### Thread Return (skip execution)
171
-
172
- ```text
173
- (lldb) thread return # Return from current frame
174
- (lldb) thread return false # Return false from a Bool func
175
- ```
176
-
177
- Use `thread return` to skip the rest of a function during debugging.
178
- Useful for bypassing a crash or testing a different code path.
141
+ `thread return` skips the rest of a function. Use it to step past a line that
142
+ would crash or to try the other branch of a decision without rebuilding.
179
143
 
180
144
  ## Memory Inspection
181
145
 
182
146
  ```text
183
- (lldb) memory read 0x600003a04000 # Default format
184
- (lldb) memory read -s4 -fx -c8 addr # 8 x 4-byte hex words
185
- (lldb) memory read -f s addr # Read as C string
186
- (lldb) memory find 0x100000 0x200000 -e "DEADBEEF" # Search memory range
187
- (lldb) image lookup -a 0x100004500 # Symbol at address
188
- (lldb) image lookup -n loadData # Address of symbol
189
- (lldb) image list # All loaded images/frameworks
147
+ (lldb) memory read --size 4 --format x --count 8 0x600003d04f10 # eight 4-byte hex words
148
+ (lldb) memory read -f s 0x600003d04f10 # a C string
149
+ (lldb) memory find 0x600003d04000 0x600003d05000 -e "DEADBEEF"
150
+ (lldb) image lookup -a 0x0000000104a1c3b8 # symbol at this address
151
+ (lldb) image lookup -n InvoiceStore.reload # address of this symbol
152
+ (lldb) image list # loaded images
190
153
  ```
191
154
 
192
- ### Swift Metadata Inspection
155
+ Inspecting Swift values at runtime:
193
156
 
194
157
  ```text
195
- (lldb) e -l swift -- print(type(of: myObject))
196
- (lldb) e -l swift -- dump(myObject) # Full mirror dump
197
- (lldb) e -l swift -- Mirror(reflecting: myObject).children.map { $0.label }
158
+ (lldb) e print(type(of: store.current))
159
+ (lldb) e dump(store.current)
160
+ (lldb) e Mirror(reflecting: store.current).children.map { $0.label }
198
161
  ```
199
162
 
200
- ## Custom Type Summaries
163
+ ## Type Summaries
201
164
 
202
- Add type summaries to `.lldbinit` for cleaner debugger output:
165
+ Short summaries make `v` and `p` output easier to read. Put them in
166
+ `~/.lldbinit`:
203
167
 
204
168
  ```text
205
- # ~/.lldbinit
206
-
207
- # Show CLLocationCoordinate2D as "lat, lon"
208
- type summary add CLLocationCoordinate2D \
209
- --summary-string "lat=${var.latitude}, lon=${var.longitude}"
210
-
211
- # Show Date as readable string
212
- type summary add Foundation.Date \
213
- --summary-string "${var.timeIntervalSinceReferenceDate} secs since 2001"
214
-
215
- # Custom summary for your own types
216
- type summary add MyApp.UserProfile \
217
- --summary-string "User(${var.name}, id=${var.id})"
169
+ type summary add -s "(${var.latitude}, ${var.longitude})" CLLocationCoordinate2D
170
+ type summary add -s "ref+${var._time}" Foundation.Date
171
+ type summary add -s "#${var.number} ${var.total}" Billing.Invoice
218
172
  ```
219
173
 
174
+ The `Date` line prints the raw seconds since the reference date
175
+ (`timeIntervalSinceReferenceDate`); the stored field name can change between
176
+ toolchains, so check it with `v -R` first.
177
+
220
178
  ## Python Scripting
221
179
 
222
- ### Inline Python
180
+ One-liners:
223
181
 
224
182
  ```text
225
183
  (lldb) script import os
226
184
  (lldb) script print(os.getpid())
227
- (lldb) script lldb.debugger.GetSelectedTarget().GetProcess().GetNumThreads()
185
+ (lldb) script print(lldb.debugger.GetSelectedTarget().GetProcess().GetNumThreads())
228
186
  ```
229
187
 
230
- ### Custom Python Command
231
-
232
- Create `~/lldb_commands/dump_views.py`:
188
+ A custom command in `~/lldb_commands/window_tree.py`:
233
189
 
234
190
  ```python
235
191
  import lldb
236
192
 
237
- def dump_view_hierarchy(debugger, command, result, internal_dict):
238
- """Dump the key window's view hierarchy."""
239
- target = debugger.GetSelectedTarget()
240
- process = target.GetProcess()
241
- thread = process.GetSelectedThread()
242
- frame = thread.GetSelectedFrame()
243
-
244
- expr = '(NSString *)[[UIApplication sharedApplication].keyWindow recursiveDescription]'
245
- value = frame.EvaluateExpression(expr)
246
- result.AppendMessage(str(value.GetObjectDescription()))
193
+ def window_tree(debugger, command, result, internal_dict):
194
+ frame = (debugger.GetSelectedTarget()
195
+ .GetProcess()
196
+ .GetSelectedThread()
197
+ .GetSelectedFrame())
198
+ options = lldb.SBExpressionOptions()
199
+ options.SetLanguage(lldb.eLanguageTypeObjC)
200
+ value = frame.EvaluateExpression(
201
+ "[[[UIApplication sharedApplication] keyWindow] recursiveDescription]",
202
+ options)
203
+ result.AppendMessage(value.GetObjectDescription() or "no key window")
247
204
 
248
205
  def __lldb_init_module(debugger, internal_dict):
249
206
  debugger.HandleCommand(
250
- 'command script add -f dump_views.dump_view_hierarchy dump_views'
251
- )
207
+ "command script add -f window_tree.window_tree window_tree")
252
208
  ```
253
209
 
254
- Load in `.lldbinit`:
255
-
256
- ```text
257
- command script import ~/lldb_commands/dump_views.py
258
- ```
210
+ Load it from `~/.lldbinit` with
211
+ `command script import ~/lldb_commands/window_tree.py`, then type
212
+ `window_tree`.
259
213
 
260
- Then use in LLDB:
214
+ ## Symbolic Breakpoints Worth Keeping
261
215
 
262
- ```text
263
- (lldb) dump_views
264
- ```
265
-
266
- ## Useful Symbolic Breakpoints
267
-
268
- Set these in Xcode's Breakpoint Navigator for common debugging scenarios:
269
-
270
- | Symbol | Purpose |
271
- |--------|---------|
216
+ | Symbol | Stops on |
217
+ |--------|----------|
272
218
  | `UIViewAlertForUnsatisfiableConstraints` | Auto Layout constraint conflicts |
273
- | `swift_willThrow` | Break on all Swift throws |
274
- | `malloc_error_break` | Heap corruption detection |
275
- | `_UITraitCollectionChangeObserverNotify` | Track trait collection changes |
276
- | `objc_exception_throw` | Break on ObjC exceptions |
277
- | `-[UIApplication _performMemoryWarning]` | Memory warning simulation |
278
- | `NSInternalInconsistencyException` | Foundation assertion failures |
219
+ | `swift_willThrow` | Every Swift `throw` |
220
+ | `malloc_error_break` | Heap corruption detected by malloc |
221
+ | `_UITraitCollectionChangeObserverNotify` | Trait collection changes |
222
+ | `objc_exception_throw` | Every Objective-C exception |
223
+ | `-[UIApplication _performMemoryWarning]` | Simulated memory warnings |
279
224
 
280
- ## LLDB Init File
225
+ `NSInternalInconsistencyException` is an exception name, not a symbol, so a
226
+ symbolic breakpoint on it never fires. Catch Foundation assertion failures with
227
+ an exception breakpoint (`br set -E objc`, or Xcode's Exception Breakpoint) or
228
+ with `objc_exception_throw`, then read the reason with `po $arg1`.
281
229
 
282
- Place commonly used configuration in `~/.lldbinit`:
230
+ ## `.lldbinit`
283
231
 
284
232
  ```text
285
- # Custom aliases
286
- command alias -- pp e -l swift -- import Foundation
287
- command alias -- pjson e -l swift -- print(String(data: try! JSONSerialization.data(withJSONObject: %1, options: .prettyPrinted), encoding: .utf8)!)
288
-
289
- # Type summaries
290
- type summary add --summary-string "${var.rawValue}" -x "^.*RawRepresentable$"
291
-
292
- # Load custom scripts
293
- command script import ~/lldb_commands/dump_views.py
294
-
295
- # Settings
233
+ command alias -- swiftfound e -l swift -- import Foundation
234
+ command alias pjson expression -l swift -- print(String(decoding: try! JSONSerialization.data(withJSONObject: %1, options: [.prettyPrinted, .sortedKeys]), as: UTF8.self))
235
+ type summary add -x "^.*RawRepresentable$" -s "${var.rawValue}"
296
236
  settings set target.language swift
297
- settings set frame-format "frame #${frame.index}: ${frame.pc}{ ${module.file.basename}{\`${function.name-with-args}{${frame.no-debug}}}}\n"
237
+ settings set frame-format "#${frame.index} ${function.name}{ @ ${line.file.basename}:${line.number}}\n"
298
238
  ```
239
+
240
+ - `command alias` gives a long command a short name.
241
+ - `pjson` pretty-prints any JSON-compatible object passed as its argument
242
+ through `JSONSerialization` with `.prettyPrinted`; `%1` is the argument.
243
+ - The `-x` flag makes the summary apply to every type whose name matches the
244
+ regex.
245
+ - `frame-format` controls how each frame line looks in `bt` and when stepping.