@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,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.