@mmerterden/multi-agent-pipeline 20.34.0 → 20.36.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 (335) hide show
  1. package/CHANGELOG.md +69 -1
  2. package/README.md +7 -5
  3. package/README.tr.md +6 -5
  4. package/docs/architecture.md +3 -3
  5. package/docs/ecosystem.md +5 -5
  6. package/docs/facts.json +4 -4
  7. package/install/catalog-history.json +1 -1
  8. package/install/claude.mjs +16 -1
  9. package/install/templates/claude-hooks.json +23 -1
  10. package/manifest.json +338 -305
  11. package/package.json +5 -1
  12. package/pipeline/agents/bulk-reader.md +3 -0
  13. package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
  14. package/pipeline/commands/multi-agent/office-on/SKILL.md +7 -3
  15. package/pipeline/commands/multi-agent/office-pair/SKILL.md +66 -0
  16. package/pipeline/commands/multi-agent/office-status/SKILL.md +3 -2
  17. package/pipeline/commands/multi-agent/sync/SKILL.md +3 -3
  18. package/pipeline/contract/CHANGELOG.md +9 -0
  19. package/pipeline/contract/README.md +1 -0
  20. package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
  21. package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
  22. package/pipeline/contract/fixtures/error-unsigned.json +1 -1
  23. package/pipeline/contract/manifest.json +14 -1
  24. package/pipeline/contract/types/index.d.ts +24 -2
  25. package/pipeline/lib/json-file-lock.mjs +61 -15
  26. package/pipeline/lib/office-remote.mjs +228 -0
  27. package/pipeline/lib/qr-code.mjs +386 -0
  28. package/pipeline/lib/repo-hygiene.sh +1 -0
  29. package/pipeline/lib/run-completion.mjs +17 -0
  30. package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
  31. package/pipeline/multi-agent-refs/cross-cli-contract.md +4 -4
  32. package/pipeline/multi-agent-refs/features/office-remote-protocol.md +166 -0
  33. package/pipeline/multi-agent-refs/features/office-threat-model.md +1 -1
  34. package/pipeline/multi-agent-refs/features/scope-check.md +16 -1
  35. package/pipeline/multi-agent-refs/features/verify-by-test.md +10 -0
  36. package/pipeline/multi-agent-refs/help/en.md +1 -0
  37. package/pipeline/multi-agent-refs/help/tr.md +1 -0
  38. package/pipeline/multi-agent-refs/keychain.md +7 -0
  39. package/pipeline/multi-agent-refs/phases/phase-0-init.md +6 -2
  40. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +4 -6
  41. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +9 -12
  42. package/pipeline/multi-agent-refs/phases/phase-3-review.md +9 -8
  43. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +1 -4
  44. package/pipeline/multi-agent-refs/rules.md +3 -2
  45. package/pipeline/multi-agent-refs/tracker-contract.md +1 -1
  46. package/pipeline/office/NOTICE.md +4 -1
  47. package/pipeline/office/assets/char_12.png +0 -0
  48. package/pipeline/office/assets/char_13.png +0 -0
  49. package/pipeline/office/assets/char_14.png +0 -0
  50. package/pipeline/office/assets/char_15.png +0 -0
  51. package/pipeline/office/assets/char_16.png +0 -0
  52. package/pipeline/office/assets/char_17.png +0 -0
  53. package/pipeline/office/assets/char_18.png +0 -0
  54. package/pipeline/office/assets/char_19.png +0 -0
  55. package/pipeline/office/assets/char_20.png +0 -0
  56. package/pipeline/office/assets/char_21.png +0 -0
  57. package/pipeline/office/assets/char_22.png +0 -0
  58. package/pipeline/office/assets/char_23.png +0 -0
  59. package/pipeline/office/assets/char_24.png +0 -0
  60. package/pipeline/office/assets/char_25.png +0 -0
  61. package/pipeline/office/assets/char_26.png +0 -0
  62. package/pipeline/office/assets/char_27.png +0 -0
  63. package/pipeline/office/assets/char_28.png +0 -0
  64. package/pipeline/office/assets/char_29.png +0 -0
  65. package/pipeline/office/assets/char_30.png +0 -0
  66. package/pipeline/office/index.html +293 -49
  67. package/pipeline/schemas/agent-state.schema.json +18 -0
  68. package/pipeline/schemas/planning-output.schema.json +18 -0
  69. package/pipeline/schemas/pr-reach.schema.json +55 -0
  70. package/pipeline/schemas/prefs.schema.json +13 -7
  71. package/pipeline/schemas/triage-output.schema.json +12 -1
  72. package/pipeline/schemas/unattended-policy.json +2 -1
  73. package/pipeline/scripts/_guard_rules.py +449 -1
  74. package/pipeline/scripts/_test-gaming.mjs +36 -0
  75. package/pipeline/scripts/agent-guard.py +79 -19
  76. package/pipeline/scripts/anonymize-findings.mjs +99 -0
  77. package/pipeline/scripts/answer-check.mjs +113 -0
  78. package/pipeline/scripts/answer-check.sh +20 -0
  79. package/pipeline/scripts/autopilot-publish.mjs +9 -2
  80. package/pipeline/scripts/contract-server.mjs +35 -1
  81. package/pipeline/scripts/gate-ledger.mjs +144 -21
  82. package/pipeline/scripts/office-build.mjs +276 -5
  83. package/pipeline/scripts/office-control.mjs +70 -10
  84. package/pipeline/scripts/office-pair.mjs +438 -0
  85. package/pipeline/scripts/office-remote-client.mjs +463 -0
  86. package/pipeline/scripts/phase-tracker.sh +8 -0
  87. package/pipeline/scripts/phase0-exit-gate.mjs +40 -37
  88. package/pipeline/scripts/phone-devices.mjs +9 -1
  89. package/pipeline/scripts/pre-commit-check.sh +28 -2
  90. package/pipeline/scripts/pre-push-check.sh +6 -12
  91. package/pipeline/scripts/rework-base.mjs +87 -0
  92. package/pipeline/scripts/run-commit-check.mjs +104 -0
  93. package/pipeline/scripts/run-scope-guard.mjs +58 -3
  94. package/pipeline/scripts/run-scope-guard.sh +13 -1
  95. package/pipeline/scripts/scope-check-gate.mjs +70 -6
  96. package/pipeline/scripts/task-mirror.mjs +106 -15
  97. package/pipeline/scripts/task-mirror.sh +3 -2
  98. package/pipeline/scripts/test-stability-gate.mjs +112 -0
  99. package/pipeline/scripts/update-check.sh +7 -1
  100. package/pipeline/scripts/update-issue-progress.sh +73 -8
  101. package/pipeline/scripts/validate-planning.mjs +105 -1
  102. package/pipeline/scripts/validate-triage.mjs +42 -2
  103. package/pipeline/scripts/work-items.mjs +119 -1
  104. package/pipeline/scripts/worktree-prepare-all.mjs +200 -0
  105. package/pipeline/scripts/worktree-prepare.sh +40 -4
  106. package/pipeline/scripts/write-state.mjs +67 -24
  107. package/pipeline/skills/.skill-manifest.json +12 -8
  108. package/pipeline/skills/.skills-index.json +15 -4
  109. package/pipeline/skills/shared/README.md +4 -3
  110. package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +1 -1
  111. package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +6 -6
  112. package/pipeline/skills/shared/core/google-play-compliance/references/rules.yml +1 -1
  113. package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
  114. package/pipeline/skills/shared/core/multi-agent-office-pair/SKILL.md +19 -0
  115. package/pipeline/skills/shared/core/multi-agent-office-status/SKILL.md +2 -2
  116. package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +3 -3
  117. package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +14 -0
  118. package/pipeline/skills/shared/external/android-architecture/references/patterns.md +6 -0
  119. package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +10 -0
  120. package/pipeline/skills/shared/external/android-datastore/references/patterns.md +11 -0
  121. package/pipeline/skills/shared/external/android-design-tokens-codegen/references/patterns.md +8 -0
  122. package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +6 -0
  123. package/pipeline/skills/shared/external/android-mvi-viewmodel/references/patterns.md +10 -0
  124. package/pipeline/skills/shared/external/android-performance/references/patterns.md +13 -0
  125. package/pipeline/skills/shared/external/android-security/references/patterns.md +16 -0
  126. package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +9 -0
  127. package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +12 -0
  128. package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +13 -0
  129. package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +12 -0
  130. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +9 -0
  131. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +8 -0
  132. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +10 -0
  133. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +21 -0
  134. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +9 -0
  135. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +7 -0
  136. package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -2
  137. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +10 -0
  138. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +10 -1
  139. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +22 -0
  140. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +17 -0
  141. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +22 -0
  142. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +17 -0
  143. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +9 -0
  144. package/pipeline/skills/shared/external/authentication/references/passkeys.md +11 -0
  145. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +13 -0
  146. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +9 -0
  147. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +10 -0
  148. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +15 -0
  149. package/pipeline/skills/shared/external/compose-components/references/patterns.md +7 -0
  150. package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +7 -0
  151. package/pipeline/skills/shared/external/compose-testing/references/patterns.md +15 -0
  152. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +9 -0
  153. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +11 -0
  154. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +10 -0
  155. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +13 -0
  156. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +20 -0
  157. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +16 -0
  158. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +16 -0
  159. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +14 -0
  160. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +13 -0
  161. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +10 -0
  162. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +10 -0
  163. package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +10 -0
  164. package/pipeline/skills/shared/external/gradle-kotlin-dsl/references/patterns.md +17 -0
  165. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +12 -0
  166. package/pipeline/skills/shared/external/hig-app-icons/references/icon-workflow.md +10 -0
  167. package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +10 -0
  168. package/pipeline/skills/shared/external/hig-components-layout/references/bars-and-tabs.md +11 -0
  169. package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +13 -0
  170. package/pipeline/skills/shared/external/hig-foundations/references/type-color-spacing.md +13 -0
  171. package/pipeline/skills/shared/external/hig-patterns/references/onboarding-and-states.md +11 -0
  172. package/pipeline/skills/shared/external/hig-platforms/references/ipad-layout.md +12 -0
  173. package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +16 -0
  174. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +9 -0
  175. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +18 -0
  176. package/pipeline/skills/shared/external/ios-accessibility/references/large-content-and-appearance.md +9 -0
  177. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +9 -0
  178. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +7 -0
  179. package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +13 -0
  180. package/pipeline/skills/shared/external/ios-design-review/references/appearance-matrix.md +9 -0
  181. package/pipeline/skills/shared/external/ios-design-review/references/checklist.md +15 -0
  182. package/pipeline/skills/shared/external/ios-haptics/references/core-haptics.md +11 -0
  183. package/pipeline/skills/shared/external/ios-iphone-duo/references/api-map.md +11 -0
  184. package/pipeline/skills/shared/external/ios-iphone-duo/references/fixed-assumptions.md +15 -0
  185. package/pipeline/skills/shared/external/ios-iphone-duo/references/poses-and-panes.md +11 -0
  186. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +18 -0
  187. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +19 -0
  188. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +15 -0
  189. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +7 -0
  190. package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +8 -0
  191. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +12 -0
  192. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +17 -0
  193. package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +8 -0
  194. package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +14 -0
  195. package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -0
  196. package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +9 -0
  197. package/pipeline/skills/shared/external/ios-sf-symbols/references/effects-and-custom-symbols.md +9 -0
  198. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +13 -0
  199. package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +8 -0
  200. package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +21 -0
  201. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +9 -0
  202. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +12 -0
  203. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +16 -0
  204. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +21 -0
  205. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +10 -0
  206. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +9 -0
  207. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +12 -0
  208. package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +11 -0
  209. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +11 -0
  210. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +18 -0
  211. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +11 -0
  212. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +11 -0
  213. package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +15 -0
  214. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +14 -0
  215. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +14 -0
  216. package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +14 -0
  217. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +14 -0
  218. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +10 -0
  219. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +12 -0
  220. package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +14 -0
  221. package/pipeline/skills/shared/external/room-database/references/patterns.md +16 -0
  222. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +10 -0
  223. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +10 -0
  224. package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +14 -0
  225. package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +19 -0
  226. package/pipeline/skills/shared/external/storekit/references/core-patterns.md +13 -0
  227. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +31 -0
  228. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +8 -0
  229. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +9 -0
  230. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +10 -0
  231. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +8 -0
  232. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +24 -0
  233. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +8 -0
  234. package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +14 -0
  235. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +12 -0
  236. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +10 -0
  237. package/pipeline/skills/shared/external/swift-concurrency-expert/references/swift-6-2-concurrency.md +8 -0
  238. package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +10 -0
  239. package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +7 -0
  240. package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +10 -0
  241. package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +11 -0
  242. package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +9 -0
  243. package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +13 -0
  244. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +7 -0
  245. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +14 -0
  246. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +16 -0
  247. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +17 -0
  248. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +19 -0
  249. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +16 -0
  250. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +19 -0
  251. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +18 -0
  252. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +16 -0
  253. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +17 -0
  254. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +17 -0
  255. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +17 -0
  256. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +18 -0
  257. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +21 -0
  258. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +16 -0
  259. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +16 -0
  260. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +9 -0
  261. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +24 -0
  262. package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +9 -0
  263. package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +11 -0
  264. package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +13 -0
  265. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +8 -0
  266. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +17 -0
  267. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +12 -0
  268. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +11 -0
  269. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +7 -0
  270. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +13 -0
  271. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +24 -0
  272. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +12 -0
  273. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +15 -0
  274. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +15 -0
  275. package/pipeline/skills/shared/external/swiftui-animation/references/scroll-effects.md +12 -0
  276. package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +11 -0
  277. package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +7 -0
  278. package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +13 -0
  279. package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +9 -0
  280. package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +9 -0
  281. package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +17 -0
  282. package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +9 -0
  283. package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +10 -0
  284. package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +12 -0
  285. package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +12 -0
  286. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +13 -0
  287. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +12 -0
  288. package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +12 -0
  289. package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +7 -0
  290. package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +9 -0
  291. package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +10 -0
  292. package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +18 -0
  293. package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +16 -0
  294. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +11 -0
  295. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +8 -0
  296. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +14 -0
  297. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +9 -0
  298. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +22 -0
  299. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/uikit-glass.md +14 -0
  300. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +10 -0
  301. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +10 -0
  302. package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +13 -0
  303. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +10 -0
  304. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +14 -0
  305. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +30 -0
  306. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +16 -0
  307. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +11 -0
  308. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +11 -0
  309. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +10 -0
  310. package/pipeline/skills/shared/external/swiftui-performance-audit/references/code-smells.md +8 -0
  311. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/app-wiring.md +12 -0
  312. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/menu-bar.md +10 -0
  313. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/navigationstack.md +11 -0
  314. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/scroll-reveal.md +12 -0
  315. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/sheets.md +14 -0
  316. package/pipeline/skills/shared/external/swiftui-ui-patterns/references/tabview.md +10 -0
  317. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +10 -0
  318. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +13 -0
  319. package/pipeline/skills/shared/external/swiftui-view-refactor/references/mv-patterns.md +12 -0
  320. package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +8 -0
  321. package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +8 -0
  322. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +14 -0
  323. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +17 -0
  324. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +11 -0
  325. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +11 -0
  326. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +27 -0
  327. package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +9 -0
  328. package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +7 -0
  329. package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +9 -0
  330. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +14 -0
  331. package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +8 -0
  332. package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +14 -0
  333. package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +9 -0
  334. package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +13 -0
  335. package/pipeline/skills/skills-index.md +2 -1
@@ -1,5 +1,17 @@
1
1
  # RealityKit Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Physics](#physics)
6
+ - [Animation](#animation)
7
+ - [Materials and lighting](#materials-and-lighting)
8
+ - [Custom components and systems](#custom-components-and-systems)
9
+ - [Occlusion and environment](#occlusion-and-environment)
10
+ - [A SwiftUI model viewer](#a-swiftui-model-viewer)
11
+ - [Entity accessibility](#entity-accessibility)
12
+ - [Performance](#performance)
13
+ <!-- /toc -->
14
+
3
15
  Longer examples for the `realitykit-ar` skill. SKILL.md covers setup, anchoring,
4
16
  raycasting and gestures; this file goes deeper.
5
17
 
@@ -1,5 +1,19 @@
1
1
  # Retrofit Networking -- Reference Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [API Interface](#api-interface)
6
+ - [Retrofit Setup with Hilt](#retrofit-setup-with-hilt)
7
+ - [OkHttp Interceptors](#okhttp-interceptors)
8
+ - [Error Handling](#error-handling)
9
+ - [Network-Bound Resource](#network-bound-resource)
10
+ - [Multipart Uploads](#multipart-uploads)
11
+ - [WebSocket Support](#websocket-support)
12
+ - [Envelope to Typed Exception](#envelope-to-typed-exception)
13
+ - [Unknown-Tolerant Enum Serialization](#unknown-tolerant-enum-serialization)
14
+ - [Client Composition and Environment Config](#client-composition-and-environment-config)
15
+ <!-- /toc -->
16
+
3
17
  Full code for the patterns summarized in `SKILL.md`. Load the section you need
4
18
  when implementing that part of the networking layer.
5
19
 
@@ -1,5 +1,21 @@
1
1
  # Room Database Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Entity Definition](#entity-definition)
6
+ - [DAO Interface](#dao-interface)
7
+ - [Database Setup](#database-setup)
8
+ - [Reactive Queries with Flow](#reactive-queries-with-flow)
9
+ - [TypeConverters](#typeconverters)
10
+ - [Relations](#relations)
11
+ - [Migration Strategies](#migration-strategies)
12
+ - [Hilt Integration](#hilt-integration)
13
+ - [Testing with In-Memory Database](#testing-with-in-memory-database)
14
+ - [Encrypted Database (SQLCipher)](#encrypted-database-sqlcipher)
15
+ - [Async Database Provisioning](#async-database-provisioning)
16
+ - [Runtime Hygiene](#runtime-hygiene)
17
+ <!-- /toc -->
18
+
3
19
  Full code examples backing the guidance in `SKILL.md`. Headings mirror the
4
20
  SKILL.md sections.
5
21
 
@@ -1,5 +1,15 @@
1
1
  # SharePlay Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [A shared sticky-note board](#a-shared-sticky-note-board)
6
+ - [A reusable manager](#a-reusable-manager)
7
+ - [SwiftUI entry points](#swiftui-entry-points)
8
+ - [Syncing game state, including late joiners](#syncing-game-state-including-late-joiners)
9
+ - [Tracking who joins and leaves](#tracking-who-joins-and-leaves)
10
+ - [Nearby participants on visionOS](#nearby-participants-on-visionos)
11
+ <!-- /toc -->
12
+
3
13
  Longer examples for the `shareplay-activities` skill. SKILL.md covers setup,
4
14
  the session lifecycle and the messenger basics; this file builds on them.
5
15
 
@@ -1,5 +1,15 @@
1
1
  # SpeechAnalyzer patterns (iOS 26+)
2
2
 
3
+ <!-- toc -->
4
+ - [Picking modules](#picking-modules)
5
+ - [Model assets](#model-assets)
6
+ - [Transcribing a file](#transcribing-a-file)
7
+ - [Live audio](#live-audio)
8
+ - [Reading results](#reading-results)
9
+ - [Ending a session](#ending-a-session)
10
+ - [Further reading](#further-reading)
11
+ <!-- /toc -->
12
+
3
13
  Companion to the `speech-recognition` skill ([../SKILL.md](../SKILL.md)).
4
14
  Every API here needs iOS 26 or later.
5
15
 
@@ -1,5 +1,19 @@
1
1
  # Build Optimization Sources
2
2
 
3
+ <!-- toc -->
4
+ - [Apple: Improving the speed of incremental builds](#apple-improving-the-speed-of-incremental-builds)
5
+ - [Apple: Improving build efficiency with good coding practices](#apple-improving-build-efficiency-with-good-coding-practices)
6
+ - [Apple: Building your project with explicit module dependencies](#apple-building-your-project-with-explicit-module-dependencies)
7
+ - [SwiftLee: Build performance analysis for speeding up Xcode builds](#swiftlee-build-performance-analysis-for-speeding-up-xcode-builds)
8
+ - [Apple: Xcode Release Notes -- Compilation Caching](#apple-xcode-release-notes----compilation-caching)
9
+ - [Apple: Demystify explicitly built modules (WWDC24)](#apple-demystify-explicitly-built-modules-wwdc24)
10
+ - [Swift Compile-Time Best Practices](#swift-compile-time-best-practices)
11
+ - [Bitrise: Demystifying Explicitly Built Modules for Xcode](#bitrise-demystifying-explicitly-built-modules-for-xcode)
12
+ - [Bitrise: Xcode Compilation Cache FAQ](#bitrise-xcode-compilation-cache-faq)
13
+ - [RocketSim Docs: Build Insights](#rocketsim-docs-build-insights)
14
+ - [Swift Forums: Slow incremental builds because of planning swift module](#swift-forums-slow-incremental-builds-because-of-planning-swift-module)
15
+ <!-- /toc -->
16
+
3
17
  This file stores the external sources that the README and skill docs should cite consistently.
4
18
 
5
19
  ## Apple: Improving the speed of incremental builds
@@ -1,5 +1,24 @@
1
1
  # SPM Analysis Checks
2
2
 
3
+ <!-- toc -->
4
+ - [Package Graph Checks](#package-graph-checks)
5
+ - [Package Plugin Checks](#package-plugin-checks)
6
+ - [Package Reference Verification](#package-reference-verification)
7
+ - [Version Pin Feasibility](#version-pin-feasibility)
8
+ - [Binary And Remote Dependency Checks](#binary-and-remote-dependency-checks)
9
+ - [Module Variant Checks](#module-variant-checks)
10
+ - [Layered Architecture Validation](#layered-architecture-validation)
11
+ - [Circular Dependency Detection](#circular-dependency-detection)
12
+ - [Module Sizing Guidance](#module-sizing-guidance)
13
+ - [Transitive Dependency Minimization](#transitive-dependency-minimization)
14
+ - [Interface/Implementation Separation](#interfaceimplementation-separation)
15
+ - [Test Target Isolation](#test-target-isolation)
16
+ - [Swift Macro Rebuild Impact](#swift-macro-rebuild-impact)
17
+ - [Multi-Platform Build Multiplication](#multi-platform-build-multiplication)
18
+ - [CI-Specific Checks](#ci-specific-checks)
19
+ - [Recommendation Prioritization](#recommendation-prioritization)
20
+ <!-- /toc -->
21
+
3
22
  Use this reference when package dependencies or package plugins are suspected build bottlenecks.
4
23
 
5
24
  ## Package Graph Checks
@@ -1,5 +1,18 @@
1
1
  # StoreKit 2 Core Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Buying with PurchaseAction](#buying-with-purchaseaction)
6
+ - [Launch-Time Transaction Listener](#launch-time-transaction-listener)
7
+ - [Computing Entitlements](#computing-entitlements)
8
+ - [Subscription Paywall](#subscription-paywall)
9
+ - [Product Shelves: StoreView and ProductView](#product-shelves-storeview-and-productview)
10
+ - [Is a Plan Active?](#is-a-plan-active)
11
+ - [Verifying the Install with AppTransaction](#verifying-the-install-with-apptransaction)
12
+ - [Store View Callbacks](#store-view-callbacks)
13
+ - [Ten Mistakes, Fixed](#ten-mistakes-fixed)
14
+ <!-- /toc -->
15
+
3
16
  Complete, copyable code for the core flows, followed by the ten common
4
17
  mistakes with a wrong and a right version each. Control styles, offers,
5
18
  testing, server validation and subscription edge cases are in
@@ -1,5 +1,36 @@
1
1
  # StoreKit 2 Advanced Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Paywall Control Styles](#paywall-control-styles)
6
+ - [Where the Controls Sit](#where-the-controls-sit)
7
+ - [Button Labels](#button-labels)
8
+ - [Container Backgrounds](#container-backgrounds)
9
+ - [Store Buttons](#store-buttons)
10
+ - [Policy Destinations](#policy-destinations)
11
+ - [An Icon per Option](#an-icon-per-option)
12
+ - [Sign-In Action](#sign-in-action)
13
+ - [Grouping Options (iOS 18+)](#grouping-options-ios-18)
14
+ - [Introductory Offers](#introductory-offers)
15
+ - [Promotional Offers](#promotional-offers)
16
+ - [Win-Back Offers (iOS 18+)](#win-back-offers-ios-18)
17
+ - [Offer Codes](#offer-codes)
18
+ - [Which Offer a Transaction Used](#which-offer-a-transaction-used)
19
+ - [Server-Side Validation](#server-side-validation)
20
+ - [Testing in Xcode](#testing-in-xcode)
21
+ - [Renewal States and What to Grant](#renewal-states-and-what-to-grant)
22
+ - [Grace Period and Billing Retry](#grace-period-and-billing-retry)
23
+ - [Refunds](#refunds)
24
+ - [Family Sharing](#family-sharing)
25
+ - [Ask to Buy](#ask-to-buy)
26
+ - [Task Modifiers](#task-modifiers)
27
+ - [Live Subscription Status](#live-subscription-status)
28
+ - [Promoted Purchases on the Product Page](#promoted-purchases-on-the-product-page)
29
+ - [Price Increases](#price-increases)
30
+ - [Unfinished Transactions](#unfinished-transactions)
31
+ - [Advanced Mistakes](#advanced-mistakes)
32
+ <!-- /toc -->
33
+
3
34
  Reach for this file once purchasing, the launch-time listener and entitlement
4
35
  checks from [core-patterns.md](core-patterns.md) are in place. Each heading
5
36
  names the release an API needs; the skill as a whole targets iOS 26.
@@ -1,5 +1,13 @@
1
1
  # Argument Labels and Parameters
2
2
 
3
+ <!-- toc -->
4
+ - [Prepositional labels](#prepositional-labels)
5
+ - [Grammatical phrases](#grammatical-phrases)
6
+ - [Conversions](#conversions)
7
+ - [Parameter names are documentation](#parameter-names-are-documentation)
8
+ - [Default arguments instead of method families](#default-arguments-instead-of-method-families)
9
+ <!-- /toc -->
10
+
3
11
  Harder cases for the label rules in the main skill, plus how to name
4
12
  parameters and order defaulted ones.
5
13
 
@@ -1,5 +1,14 @@
1
1
  # Conventions and Special Rules
2
2
 
3
+ <!-- toc -->
4
+ - [Casing](#casing)
5
+ - [Complexity notes](#complexity-notes)
6
+ - [Free functions](#free-functions)
7
+ - [Overloads](#overloads)
8
+ - [Tuples and closures](#tuples-and-closures)
9
+ - [Unconstrained polymorphism](#unconstrained-polymorphism)
10
+ <!-- /toc -->
11
+
3
12
  Casing, complexity notes, when a free function is right, safe overloading,
4
13
  labelled tuples and closures, and the traps of unconstrained polymorphism.
5
14
 
@@ -1,5 +1,15 @@
1
1
  # Naming and Clarity
2
2
 
3
+ <!-- toc -->
4
+ - [Words that must stay](#words-that-must-stay)
5
+ - [Words that can go](#words-that-can-go)
6
+ - [Roles, not types](#roles-not-types)
7
+ - [Generic parameters](#generic-parameters)
8
+ - [Weak types need help](#weak-types-need-help)
9
+ - [Method or property](#method-or-property)
10
+ - [Choosing terms](#choosing-terms)
11
+ <!-- /toc -->
12
+
3
13
  How to decide which words a name needs, which it can lose, and how to choose
4
14
  between a method and a property.
5
15
 
@@ -1,5 +1,13 @@
1
1
  # Side Effects and Mutating Pairs
2
2
 
3
+ <!-- toc -->
4
+ - [Examples by kind](#examples-by-kind)
5
+ - [Choosing between -ed and -ing](#choosing-between--ed-and--ing)
6
+ - [The form prefix](#the-form-prefix)
7
+ - [Booleans](#booleans)
8
+ - [make factories](#make-factories)
9
+ <!-- /toc -->
10
+
3
11
  Naming that tells the caller, at a glance, whether an operation changes the
4
12
  receiver.
5
13
 
@@ -1,5 +1,29 @@
1
1
  # Swift Charts Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Modelling the Data](#modelling-the-data)
6
+ - [Bars](#bars)
7
+ - [Lines](#lines)
8
+ - [Pies and Donuts](#pies-and-donuts)
9
+ - [Combining Marks](#combining-marks)
10
+ - [A Tooltip on Selection](#a-tooltip-on-selection)
11
+ - [Scrolling with a Bound Position](#scrolling-with-a-bound-position)
12
+ - [Function Plots (iOS 18)](#function-plots-ios-18)
13
+ - [3D Charts and Surfaces (iOS 26)](#3d-charts-and-surfaces-ios-26)
14
+ - [Accessibility](#accessibility)
15
+ - [Dynamic Type and Colour](#dynamic-type-and-colour)
16
+ - [Performance: When to Vectorize](#performance-when-to-vectorize)
17
+ - [Dark Mode and Theming](#dark-mode-and-theming)
18
+ - [Heat Map](#heat-map)
19
+ - [Stacking](#stacking)
20
+ - [`MarkDimension`](#markdimension)
21
+ - [Symbols](#symbols)
22
+ - [`ChartProxy` and Coordinates](#chartproxy-and-coordinates)
23
+ - [Modifier Quick Reference](#modifier-quick-reference)
24
+ - [Apple Documentation](#apple-documentation)
25
+ <!-- /toc -->
26
+
3
27
  Companion to the `swift-charts` skill. Any source file touching these types
4
28
  imports `Charts` next to `SwiftUI`.
5
29
 
@@ -1,5 +1,13 @@
1
1
  # Bridging Callbacks, Delegates and GCD
2
2
 
3
+ <!-- toc -->
4
+ - [Checked continuations](#checked-continuations)
5
+ - [Bridging a delegate](#bridging-a-delegate)
6
+ - [Passing cancellation through](#passing-cancellation-through)
7
+ - [Streams from repeating callbacks](#streams-from-repeating-callbacks)
8
+ - [Replacing GCD](#replacing-gcd)
9
+ <!-- /toc -->
10
+
3
11
  ## Checked continuations
4
12
 
5
13
  `withCheckedContinuation` (non-throwing) and `withCheckedThrowingContinuation`
@@ -1,5 +1,19 @@
1
1
  # Approachable Concurrency Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [What problem 6.2 fixed](#what-problem-62-fixed)
5
+ - [Default MainActor isolation (SE-0466)](#default-mainactor-isolation-se-0466)
6
+ - [Async functions run on the caller (SE-0461)](#async-functions-run-on-the-caller-se-0461)
7
+ - [Leaving the caller with `@concurrent`](#leaving-the-caller-with-concurrent)
8
+ - [Starting without a queue hop (SE-0472)](#starting-without-a-queue-hop-se-0472)
9
+ - [Isolated conformances](#isolated-conformances)
10
+ - [Immutable weak references (SE-0481)](#immutable-weak-references-se-0481)
11
+ - [Transactional observation (SE-0475)](#transactional-observation-se-0475)
12
+ - [Global and static state](#global-and-static-state)
13
+ - [Build settings and migration](#build-settings-and-migration)
14
+ - [The progression](#the-progression)
15
+ <!-- /toc -->
16
+
3
17
  Swift 6.2 lets a target start out effectively single-threaded: with both
4
18
  Default Actor Isolation set to `MainActor` and Approachable Concurrency turned
5
19
  on, code runs on the main actor until you introduce parallelism deliberately.
@@ -1,5 +1,17 @@
1
1
  # SwiftUI and Concurrency
2
2
 
3
+ <!-- toc -->
4
+ - [Views live on the main actor](#views-live-on-the-main-actor)
5
+ - [Callbacks SwiftUI may run off the main thread](#callbacks-swiftui-may-run-off-the-main-thread)
6
+ - [Reading state inside a Sendable closure](#reading-state-inside-a-sendable-closure)
7
+ - [Structuring async work](#structuring-async-work)
8
+ - [The `.task` modifier](#the-task-modifier)
9
+ - [Observable view models](#observable-view-models)
10
+ - [Reacting to model changes with Observations](#reacting-to-model-changes-with-observations)
11
+ - [Concurrency for performance](#concurrency-for-performance)
12
+ - [Mistakes](#mistakes)
13
+ <!-- /toc -->
14
+
3
15
  ## Views live on the main actor
4
16
 
5
17
  The `View` protocol is isolated to `@MainActor` (from the iOS 18 SDK on; older
@@ -1,5 +1,15 @@
1
1
  # Synchronization Primitives
2
2
 
3
+ <!-- toc -->
4
+ - [Mutex](#mutex)
5
+ - [OSAllocatedUnfairLock](#osallocatedunfairlock)
6
+ - [Mutex or OSAllocatedUnfairLock](#mutex-or-osallocatedunfairlock)
7
+ - [Atomic](#atomic)
8
+ - [Locks or actors](#locks-or-actors)
9
+ - [Decision guide](#decision-guide)
10
+ - [Anti-patterns](#anti-patterns)
11
+ <!-- /toc -->
12
+
3
13
  When an actor is the wrong shape for some shared mutable state, these types
4
14
  protect it instead. Each one is `Sendable` and safe to use from any thread.
5
15
 
@@ -1,5 +1,13 @@
1
1
  ## Concurrent programming updates in Swift 6.2
2
2
 
3
+ <!-- toc -->
4
+ - [Concurrent programming updates in Swift 6.2](#concurrent-programming-updates-in-swift-62)
5
+ - [Data-race safety](#data-race-safety)
6
+ - [Global State](#global-state)
7
+ - [Offloading work to the background](#offloading-work-to-the-background)
8
+ - [Summary](#summary)
9
+ <!-- /toc -->
10
+
3
11
  Concurrent programming is hard because sharing memory between multiple tasks is prone to mistakes that lead to unpredictable behavior.
4
12
 
5
13
  ## Data-race safety
@@ -1,5 +1,15 @@
1
1
  # Actors
2
2
 
3
+ <!-- toc -->
4
+ - [Reentrancy](#reentrancy)
5
+ - [Protecting global and static state](#protecting-global-and-static-state)
6
+ - [Global actor inference rules](#global-actor-inference-rules)
7
+ - [`isolated` parameters](#isolated-parameters)
8
+ - [`isolated deinit`](#isolated-deinit)
9
+ - [What a custom actor changes](#what-a-custom-actor-changes)
10
+ - [Making assertions](#making-assertions)
11
+ <!-- /toc -->
12
+
3
13
  ## Reentrancy
4
14
 
5
15
  **Important:** This is the most common concurrency bug LLMs produce: after every `await` inside an actor, all assumptions about the actor's state are invalidated because other calls may have run in the meantime.
@@ -1,5 +1,12 @@
1
1
  # Cancellation
2
2
 
3
+ <!-- toc -->
4
+ - [How cancellation propagates](#how-cancellation-propagates)
5
+ - [Checking for cancellation](#checking-for-cancellation)
6
+ - [`withTaskCancellationHandler`](#withtaskcancellationhandler)
7
+ - [Broken cancellation patterns](#broken-cancellation-patterns)
8
+ <!-- /toc -->
9
+
3
10
  Cancellation in Swift concurrency is cooperative. Setting the cancelled flag does nothing unless the running code checks it.
4
11
 
5
12
  ## How cancellation propagates
@@ -1,5 +1,15 @@
1
1
  # Interop and migration
2
2
 
3
+ <!-- toc -->
4
+ - [Completion handlers → `async`/`await`](#completion-handlers-asyncawait)
5
+ - [Delegates → `AsyncStream`](#delegates-asyncstream)
6
+ - [`DispatchQueue.main.async` → `@MainActor`](#dispatchqueuemainasync-mainactor)
7
+ - [`DispatchQueue.global().async` → `@concurrent` or Task Group](#dispatchqueueglobalasync-concurrent-or-task-group)
8
+ - [Serial `DispatchQueue` → `actor`](#serial-dispatchqueue-actor)
9
+ - [Locks and checked sendability](#locks-and-checked-sendability)
10
+ - [Moving from Combine to `AsyncSequence`](#moving-from-combine-to-asyncsequence)
11
+ <!-- /toc -->
12
+
3
13
  Approved patterns for migrating legacy concurrency mechanisms to Swift concurrency.
4
14
 
5
15
  ## Completion handlers → `async`/`await`
@@ -1,5 +1,16 @@
1
1
  # Swift 6.2 concurrency
2
2
 
3
+ <!-- toc -->
4
+ - [Control default actor isolation inference](#control-default-actor-isolation-inference)
5
+ - [Global-actor isolated conformances](#global-actor-isolated-conformances)
6
+ - [Run `nonisolated` async functions on the caller's actor by default](#run-nonisolated-async-functions-on-the-callers-actor-by-default)
7
+ - [Offloading work with `@concurrent`](#offloading-work-with-concurrent)
8
+ - [Starting tasks synchronously from caller context](#starting-tasks-synchronously-from-caller-context)
9
+ - [Isolated deinit](#isolated-deinit)
10
+ - [Task priority escalation APIs](#task-priority-escalation-apis)
11
+ - [Task naming](#task-naming)
12
+ <!-- /toc -->
13
+
3
14
  Use this file for recent concurrency changes that materially affect review advice.
4
15
 
5
16
  ## Control default actor isolation inference
@@ -1,5 +1,14 @@
1
1
  # Structured concurrency
2
2
 
3
+ <!-- toc -->
4
+ - [`async let` vs task groups](#async-let-vs-task-groups)
5
+ - [Task groups over loops](#task-groups-over-loops)
6
+ - [`withDiscardingTaskGroup` (Swift 5.9+)](#withdiscardingtaskgroup-swift-59)
7
+ - [Limiting concurrency](#limiting-concurrency)
8
+ - [Error handling with partial results](#error-handling-with-partial-results)
9
+ - [Inferring the type of task groups](#inferring-the-type-of-task-groups)
10
+ <!-- /toc -->
11
+
3
12
  ## `async let` vs task groups
4
13
 
5
14
  Use `async let` when you have a fixed number of independent operations that return different types, e.g. fetching the news, the weather, and an app update at the same time. Use task groups when you have a dynamic number of operations of the same type, e.g. downloading all images in an array of URLs.
@@ -1,5 +1,18 @@
1
1
  # Testing concurrent code
2
2
 
3
+ <!-- toc -->
4
+ - [Async tests with Swift Testing](#async-tests-with-swift-testing)
5
+ - [Testing actor state](#testing-actor-state)
6
+ - [The `.serialized` trait and concurrent tests](#the-serialized-trait-and-concurrent-tests)
7
+ - [Confirmation for async events](#confirmation-for-async-events)
8
+ - [Actor isolation in tests](#actor-isolation-in-tests)
9
+ - [Test scoping traits with `@TaskLocal`](#test-scoping-traits-with-tasklocal)
10
+ - [Avoid timing-based tests](#avoid-timing-based-tests)
11
+ - [Testing cancellation](#testing-cancellation)
12
+ - [Race detection](#race-detection)
13
+ - [Swift Testing + Swift concurrency](#swift-testing-swift-concurrency)
14
+ <!-- /toc -->
15
+
3
16
  ## Async tests with Swift Testing
4
17
 
5
18
  Swift Testing supports async test functions natively. No special setup required:
@@ -1,5 +1,12 @@
1
1
  # Swift 6.3 attributes for interop, performance and layout
2
2
 
3
+ <!-- toc -->
4
+ - [@c](#c)
5
+ - [Module selectors](#module-selectors)
6
+ - [Performance annotations](#performance-annotations)
7
+ - [Symbol visibility and layout](#symbol-visibility-and-layout)
8
+ <!-- /toc -->
9
+
3
10
  Attributes that became official in Swift 6.3. Each section names the Swift
4
11
  Evolution proposal so the exact rules can be checked there.
5
12
 
@@ -1,5 +1,19 @@
1
1
  # Extended Swift patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Codable](#codable)
6
+ - [Result builders](#result-builders)
7
+ - [Property wrappers](#property-wrappers)
8
+ - [Advanced Regex](#advanced-regex)
9
+ - [Custom FormatStyle](#custom-formatstyle)
10
+ - [Collection patterns](#collection-patterns)
11
+ - [guard: complex pattern matching](#guard-complex-pattern-matching)
12
+ - [Typed throws in protocols](#typed-throws-in-protocols)
13
+ - [String interpolation](#string-interpolation)
14
+ - [Never: advanced usage](#never-advanced-usage)
15
+ <!-- /toc -->
16
+
3
17
  Longer examples behind the main skill. Deep Codable work still belongs to
4
18
  `swift-codable`, and format styles beyond a custom style to `swift-formatstyle`.
5
19
 
@@ -1,5 +1,21 @@
1
1
  # Biometric Authentication
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Why a Boolean Gate Fails](#why-a-boolean-gate-fails)
6
+ - [The Secure Pattern: Let the Keychain Ask](#the-secure-pattern-let-the-keychain-ask)
7
+ - [evaluatePolicy and evaluateAccessControl](#evaluatepolicy-and-evaluateaccesscontrol)
8
+ - [Which Flag](#which-flag)
9
+ - [Availability and Degradation](#availability-and-degradation)
10
+ - [Detecting Enrollment Changes](#detecting-enrollment-changes)
11
+ - [Threads and async/await](#threads-and-asyncawait)
12
+ - [Secure Enclave Keys Behind Biometrics](#secure-enclave-keys-behind-biometrics)
13
+ - [Controls in the Development Process](#controls-in-the-development-process)
14
+ - [Verifying at Runtime](#verifying-at-runtime)
15
+ - [Checklist](#checklist)
16
+ - [Sources and Related Files](#sources-and-related-files)
17
+ <!-- /toc -->
18
+
3
19
  Severity when violated: **CRITICAL.** Of all the insecure patterns that code
4
20
  generators produce, a lone `LAContext.evaluatePolicy()` call guarding sensitive
5
21
  content is the most dangerous, because it can be defeated at runtime without
@@ -1,5 +1,22 @@
1
1
  # Certificate Trust, Pinning and Client Certificates
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [The four types](#the-four-types)
6
+ - [Evaluating trust](#evaluating-trust)
7
+ - [Custom policies and anchors](#custom-policies-and-anchors)
8
+ - [Four ways to pin](#four-ways-to-pin)
9
+ - [Certificates and identities](#certificates-and-identities)
10
+ - [Mistakes to reject in review](#mistakes-to-reject-in-review)
11
+ - [Backup pins and rotation](#backup-pins-and-rotation)
12
+ - [Where ATS meets trust](#where-ats-meets-trust)
13
+ - [API timeline](#api-timeline)
14
+ - [Threads and performance](#threads-and-performance)
15
+ - [CI guardrails](#ci-guardrails)
16
+ - [Related and sources](#related-and-sources)
17
+ - [Checklist](#checklist)
18
+ <!-- /toc -->
19
+
3
20
  What is here: the Security types for certificates, trust, identities and policies;
4
21
  pinning, whether by leaf, by issuing CA, by public-key digest or declaratively through
5
22
  `NSPinnedDomains`; building your own trust policy; mutual TLS; the points where App
@@ -1,5 +1,24 @@
1
1
  # Insecure Patterns in Generated iOS Code
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Why generated code drifts toward insecure defaults](#why-generated-code-drifts-toward-insecure-defaults)
6
+ - [1. Secrets in UserDefaults](#1-secrets-in-userdefaults)
7
+ - [2. Hardcoded API keys](#2-hardcoded-api-keys)
8
+ - [3. Biometric check that only returns a Boolean](#3-biometric-check-that-only-returns-a-boolean)
9
+ - [4. Ignoring SecItem status codes](#4-ignoring-secitem-status-codes)
10
+ - [5. Missing or weak data protection class](#5-missing-or-weak-data-protection-class)
11
+ - [6. Reusing an AES-GCM nonce](#6-reusing-an-aes-gcm-nonce)
12
+ - [7. MD5 or SHA-1 where security matters](#7-md5-or-sha-1-where-security-matters)
13
+ - [8. Secrets in logs](#8-secrets-in-logs)
14
+ - [9. No keychain cleanup after reinstall](#9-no-keychain-cleanup-after-reinstall)
15
+ - [10. Weak randomness for security values](#10-weak-randomness-for-security-values)
16
+ - [Quick reference](#quick-reference)
17
+ - [Automating detection in CI](#automating-detection-in-ci)
18
+ - [What iOS 26 changes](#what-ios-26-changes)
19
+ - [Checklist](#checklist)
20
+ <!-- /toc -->
21
+
3
22
  This is the review backbone of the skill. It lists the ten security mistakes that code generators produce most often on Apple platforms. Every entry gives the reason it is dangerous, an insecure sample, a corrected sample, a way to detect it, and its OWASP mapping.
4
23
 
5
24
  Deeper material per entry: [credential-storage-patterns.md](credential-storage-patterns.md) (1 and 2), [biometric-authentication.md](biometric-authentication.md) (3), [keychain-fundamentals.md](keychain-fundamentals.md) (4), [keychain-access-control.md](keychain-access-control.md) (5), [cryptokit-symmetric.md](cryptokit-symmetric.md) (6 and 7), [migration-legacy-stores.md](migration-legacy-stores.md) (9), and [compliance-owasp-mapping.md](compliance-owasp-mapping.md) for the complete standards mapping.
@@ -1,5 +1,21 @@
1
1
  # OWASP Mobile Compliance for Apple Platforms
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [2016 to 2024: what moved](#2016-to-2024-what-moved)
6
+ - [Traceability matrix](#traceability-matrix)
7
+ - [M1 Improper Credential Usage](#m1-improper-credential-usage)
8
+ - [M3 Insecure Authentication/Authorization](#m3-insecure-authenticationauthorization)
9
+ - [M9 Insecure Data Storage](#m9-insecure-data-storage)
10
+ - [M10 Insufficient Cryptography](#m10-insufficient-cryptography)
11
+ - [Choosing kSecAttrAccessible](#choosing-ksecattraccessible)
12
+ - [Running an enterprise audit](#running-an-enterprise-audit)
13
+ - [Post-quantum roadmap](#post-quantum-roadmap)
14
+ - [Cross-reference index](#cross-reference-index)
15
+ - [Takeaways](#takeaways)
16
+ - [Checklist](#checklist)
17
+ <!-- /toc -->
18
+
3
19
  This file connects everyday iOS security code with three OWASP documents as they stand for 2024 to 2026: the 2024 Mobile Top 10, the MASVS at version 2.1.0, and the MASTG. It concentrates on the four categories this skill owns: M1, M3, M9 and M10.
4
20
 
5
21
  Generated code and older audit templates still quote the 2016 list, for example calling data storage "M2" or cryptography "M5". The 2024 list replaced that numbering completely.
@@ -1,5 +1,24 @@
1
1
  # Credential Storage Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Six ways credentials leak](#six-ways-credentials-leak)
6
+ - [Choosing the protection class](#choosing-the-protection-class)
7
+ - [One actor in front of the Keychain](#one-actor-in-front-of-the-keychain)
8
+ - [OAuth tokens: from sign-in to Keychain](#oauth-tokens-from-sign-in-to-keychain)
9
+ - [Refresh that survives crashes and races](#refresh-that-survives-crashes-and-races)
10
+ - [API keys fetched at runtime](#api-keys-fetched-at-runtime)
11
+ - [Logout clears everything](#logout-clears-everything)
12
+ - [Rotation and versioned storage](#rotation-and-versioned-storage)
13
+ - [Device binding and restores](#device-binding-and-restores)
14
+ - [Biometrics on high-value credentials](#biometrics-on-high-value-credentials)
15
+ - [What iOS 17 and 18 changed](#what-ios-17-and-18-changed)
16
+ - [Guardrails in CI](#guardrails-in-ci)
17
+ - [OWASP mapping](#owasp-mapping)
18
+ - [The three decisions that matter](#the-three-decisions-that-matter)
19
+ - [Checklist](#checklist)
20
+ <!-- /toc -->
21
+
3
22
  OAuth tokens, API keys and passwords have exactly one place Apple sanctions for
4
23
  them on the device: the Keychain. When a 2025 study pulled apart App Store
5
24
  binaries, 71% of the iOS apps it examined exposed one or more embedded secrets, most