@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,23 @@
1
1
  # CryptoKit: Signatures, Key Agreement, HPKE and Post-Quantum
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Picking a curve or algorithm](#picking-a-curve-or-algorithm)
6
+ - [Signing and key agreement are different types](#signing-and-key-agreement-are-different-types)
7
+ - [Key agreement always goes through a KDF](#key-agreement-always-goes-through-a-kdf)
8
+ - [HPKE (iOS 17+)](#hpke-ios-17)
9
+ - [Post-quantum cryptography (iOS 26+)](#post-quantum-cryptography-ios-26)
10
+ - [PEM and DER (iOS 14+)](#pem-and-der-ios-14)
11
+ - [The Secure Enclave, briefly](#the-secure-enclave-briefly)
12
+ - [RSA](#rsa)
13
+ - [Frequent mistakes](#frequent-mistakes)
14
+ - [Availability](#availability)
15
+ - [Performance and threads](#performance-and-threads)
16
+ - [Sources](#sources)
17
+ - [Summary](#summary)
18
+ - [Checklist](#checklist)
19
+ <!-- /toc -->
20
+
3
21
  Topics: digital signatures (ECDSA, EdDSA), Diffie-Hellman over elliptic curves,
4
22
  hybrid public-key encryption from iOS 17,
5
23
  ML-KEM and ML-DSA with hybrid migration (iOS 26+), key serialization, and where the
@@ -1,5 +1,21 @@
1
1
  # CryptoKit: Hashing, MACs and Symmetric Encryption
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Digests](#digests)
6
+ - [HMAC](#hmac)
7
+ - [AES-GCM](#aes-gcm)
8
+ - [ChaChaPoly](#chachapoly)
9
+ - [SymmetricKey](#symmetrickey)
10
+ - [Moving off CommonCrypto](#moving-off-commoncrypto)
11
+ - [Frequent mistakes](#frequent-mistakes)
12
+ - [Post-quantum outlook](#post-quantum-outlook)
13
+ - [OWASP mapping](#owasp-mapping)
14
+ - [Tests worth writing](#tests-worth-writing)
15
+ - [Sources](#sources)
16
+ - [Checklist](#checklist)
17
+ <!-- /toc -->
18
+
3
19
  This file covers the symmetric half of CryptoKit: digests (SHA-2 and SHA-3), HMAC,
4
20
  the two AEAD ciphers (AES-GCM and ChaChaPoly), `SymmetricKey`, nonce handling, key
5
21
  derivation with HKDF and PBKDF2, and moving old CommonCrypto code over. The baseline
@@ -1,5 +1,22 @@
1
1
  # Keychain Access Control
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [When: The Accessibility Constants](#when-the-accessibility-constants)
6
+ - [How: SecAccessControl Flags](#how-secaccesscontrol-flags)
7
+ - [Accessibility and Access Control Are Exclusive](#accessibility-and-access-control-are-exclusive)
8
+ - [Choosing a Combination](#choosing-a-combination)
9
+ - [Mistakes in Generated Code](#mistakes-in-generated-code)
10
+ - [Code Patterns](#code-patterns)
11
+ - [macOS: kSecUseDataProtectionKeychain](#macos-ksecusedataprotectionkeychain)
12
+ - [File Protection Sidebar](#file-protection-sidebar)
13
+ - [Error Codes](#error-codes)
14
+ - [Version Timeline](#version-timeline)
15
+ - [Testing](#testing)
16
+ - [Checklist](#checklist)
17
+ - [Related Files](#related-files)
18
+ <!-- /toc -->
19
+
3
20
  Two independent settings decide whether a read succeeds:
4
21
 
5
22
  - **When** the item can be decrypted: `kSecAttrAccessible` picks the data
@@ -1,5 +1,22 @@
1
1
  # Keychain Fundamentals
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [How the Keychain Is Built](#how-the-keychain-is-built)
6
+ - [Dictionary Contracts](#dictionary-contracts)
7
+ - [Uniqueness](#uniqueness)
8
+ - [Saving: Add, Then Update on Duplicate](#saving-add-then-update-on-duplicate)
9
+ - [Reading](#reading)
10
+ - [One Place That Builds Queries](#one-place-that-builds-queries)
11
+ - [OSStatus Codes](#osstatus-codes)
12
+ - [An Actor Around the Keychain (iOS 13+ / macOS 10.15+)](#an-actor-around-the-keychain-ios-13-macos-1015)
13
+ - [Performance](#performance)
14
+ - [macOS: Two Keychains (TN3137)](#macos-two-keychains-tn3137)
15
+ - [Accessibility at a Glance](#accessibility-at-a-glance)
16
+ - [Checklist](#checklist)
17
+ - [Related Files](#related-files)
18
+ <!-- /toc -->
19
+
3
20
  Every other reference in this skill builds on the material here: how the four
4
21
  `SecItem` functions behave, what their dictionaries may contain, how to read
5
22
  their status codes, and how to keep them away from the main thread.
@@ -1,5 +1,22 @@
1
1
  # Keychain Item Classes
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Primary Keys per Class](#primary-keys-per-class)
6
+ - [Generic Password](#generic-password)
7
+ - [Internet Password](#internet-password)
8
+ - [Key](#key)
9
+ - [Certificate](#certificate)
10
+ - [Identity](#identity)
11
+ - [Mistakes Generated Code Makes](#mistakes-generated-code-makes)
12
+ - [Platform Differences](#platform-differences)
13
+ - [Size and When to Use a File](#size-and-when-to-use-a-file)
14
+ - [Tests That Prove the Class Is Right](#tests-that-prove-the-class-is-right)
15
+ - [Moving Web Logins to Internet Passwords](#moving-web-logins-to-internet-passwords)
16
+ - [Checklist](#checklist)
17
+ - [Related Files](#related-files)
18
+ <!-- /toc -->
19
+
3
20
  The keychain stores five kinds of item: `kSecClassGenericPassword`,
4
21
  `kSecClassInternetPassword`, `kSecClassKey`, `kSecClassCertificate` and
5
22
  `kSecClassIdentity`. Choosing the wrong one does not crash anything. It shows up
@@ -1,5 +1,23 @@
1
1
  # Keychain Sharing Across Apps and Extensions
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [How access groups work](#how-access-groups-work)
6
+ - [Two entitlements with two formats](#two-entitlements-with-two-formats)
7
+ - [Code](#code)
8
+ - [Setting up every target](#setting-up-every-target)
9
+ - [macOS has two keychains](#macos-has-two-keychains)
10
+ - [Moving an item to another group](#moving-an-item-to-another-group)
11
+ - [Lifecycle surprises](#lifecycle-surprises)
12
+ - [Platform notes](#platform-notes)
13
+ - [Signing and distribution](#signing-and-distribution)
14
+ - [When sharing breaks](#when-sharing-breaks)
15
+ - [Threat model](#threat-model)
16
+ - [2024 to 2026](#2024-to-2026)
17
+ - [Related](#related)
18
+ - [Checklist](#checklist)
19
+ <!-- /toc -->
20
+
3
21
  Access groups are the one mechanism for letting several apps and extensions read the
4
22
  same Keychain items. Getting them right takes three things together: the exact Team ID
5
23
  prefix, an entitlement on every target that participates, and an explicit
@@ -1,5 +1,26 @@
1
1
  # Migrating Secrets Out of Legacy Stores
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Why the old stores are not acceptable](#why-the-old-stores-are-not-acceptable)
6
+ - [Five traps to avoid](#five-traps-to-avoid)
7
+ - [Cleaning up after a reinstall](#cleaning-up-after-a-reinstall)
8
+ - [Atomic migration: read, write, verify, delete](#atomic-migration-read-write-verify-delete)
9
+ - [Versioned migration with a schema number](#versioned-migration-with-a-schema-number)
10
+ - [Orphaned items after a rename](#orphaned-items-after-a-rename)
11
+ - [Locked devices and background launches](#locked-devices-and-background-launches)
12
+ - [The phantom mismatch](#the-phantom-mismatch)
13
+ - [Team ID change after an app transfer](#team-id-change-after-an-app-transfer)
14
+ - [Cleaning up legacy artefacts](#cleaning-up-legacy-artefacts)
15
+ - [Launch order](#launch-order)
16
+ - [Concurrency](#concurrency)
17
+ - [Testing migrations](#testing-migrations)
18
+ - [Very old versions](#very-old-versions)
19
+ - [Deleting files](#deleting-files)
20
+ - [Key decisions](#key-decisions)
21
+ - [Checklist](#checklist)
22
+ <!-- /toc -->
23
+
3
24
  Scope: moving credentials that an older release kept in `UserDefaults`, property lists or `NSCoding` archives into the keychain, deleting the old copies safely, wiping keychain leftovers after a reinstall, running migrations by schema version, and surviving a Team ID change after an app transfer.
4
25
 
5
26
  Availability: the patterns rely on actors and on iOS 15 pre-warming behaviour, so they apply from iOS 15. Write new code against iOS 17 or later where you can.
@@ -1,5 +1,21 @@
1
1
  # Secure Enclave
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [What It Is](#what-it-is)
6
+ - [What It Cannot Do](#what-it-cannot-do)
7
+ - [CryptoKit SecureEnclave (iOS 13+)](#cryptokit-secureenclave-ios-13)
8
+ - [Keeping a Key Across Launches](#keeping-a-key-across-launches)
9
+ - [Biometric-Gated Enclave Keys](#biometric-gated-enclave-keys)
10
+ - [Security Framework Route (iOS 10+)](#security-framework-route-ios-10)
11
+ - [iOS 26: Post-Quantum Types in the Enclave](#ios-26-post-quantum-types-in-the-enclave)
12
+ - [Enclave or Software Key?](#enclave-or-software-key)
13
+ - [Six Traps](#six-traps)
14
+ - [Testing and CI](#testing-and-ci)
15
+ - [Operating Enclave Keys](#operating-enclave-keys)
16
+ - [Summary](#summary)
17
+ <!-- /toc -->
18
+
3
19
  The Secure Enclave is a security coprocessor kept apart from the main
4
20
  processor. It creates keys, stores them and uses them without the private
5
21
  material ever reaching the Application Processor. It has shipped since the
@@ -1,5 +1,21 @@
1
1
  # Testing Security Code
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [A protocol in front of the keychain](#a-protocol-in-front-of-the-keychain)
6
+ - [Seven mistakes in generated keychain tests](#seven-mistakes-in-generated-keychain-tests)
7
+ - [Simulator versus device](#simulator-versus-device)
8
+ - [Core test patterns](#core-test-patterns)
9
+ - [Secure Enclave tests](#secure-enclave-tests)
10
+ - [Biometric flows](#biometric-flows)
11
+ - [CI configuration](#ci-configuration)
12
+ - [Test plans](#test-plans)
13
+ - [Swift Testing](#swift-testing)
14
+ - [Further techniques](#further-techniques)
15
+ - [Takeaways](#takeaways)
16
+ - [Checklist](#checklist)
17
+ <!-- /toc -->
18
+
3
19
  The pattern that makes keychain code testable is a protocol between the app and the Security framework. Unit tests run against an in-memory implementation; tests that need the real keychain, the Secure Enclave or biometric hardware run on devices.
4
20
 
5
21
  The keychain does not behave the same on Simulator, on a headless CI runner and on a phone. Tests written without that in mind fail intermittently, crash on runners, or pass while proving nothing.
@@ -1,5 +1,14 @@
1
1
  # Newer Swift Testing APIs
2
2
 
3
+ <!-- toc -->
4
+ - [Warnings: `Issue.record(_:severity:)`](#warnings-issuerecord_severity)
5
+ - [Cancelling a Test: `Test.cancel(_:)`](#cancelling-a-test-testcancel_)
6
+ - [Capturing Values in Exit Tests](#capturing-values-in-exit-tests)
7
+ - [Image Attachments](#image-attachments)
8
+ - [Version Gates](#version-gates)
9
+ - [Proposals](#proposals)
10
+ <!-- /toc -->
11
+
3
12
  Companion to the `swift-testing` skill. Each section names the Swift Testing
4
13
  proposal (ST-nnnn) and the toolchain that ships it.
5
14
 
@@ -1,5 +1,29 @@
1
1
  # Swift Testing Patterns
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Suites](#suites)
6
+ - [Parameterized Tests](#parameterized-tests)
7
+ - [Execution Model](#execution-model)
8
+ - [Confirmations](#confirmations)
9
+ - [Known Issues Limited to Specific Failures](#known-issues-limited-to-specific-failures)
10
+ - [Tags](#tags)
11
+ - [Scoped Setup and Teardown with `TestScoping`](#scoped-setup-and-teardown-with-testscoping)
12
+ - [From XCTest, Step by Step](#from-xctest-step-by-step)
13
+ - [Test Doubles](#test-doubles)
14
+ - [Designing for Tests](#designing-for-tests)
15
+ - [Async and Time](#async-and-time)
16
+ - [UI Tests Stay on XCTest](#ui-tests-stay-on-xctest)
17
+ - [Performance Tests Stay on XCTest](#performance-tests-stay-on-xctest)
18
+ - [Snapshot Tests](#snapshot-tests)
19
+ - [Attachments from Files](#attachments-from-files)
20
+ - [Exit Tests](#exit-tests)
21
+ - [Organising Files](#organising-files)
22
+ - [Readable Arguments](#readable-arguments)
23
+ - [Tests That Need a Newer OS](#tests-that-need-a-newer-os)
24
+ - [More Mistakes to Avoid](#more-mistakes-to-avoid)
25
+ <!-- /toc -->
26
+
3
27
  Companion to the `swift-testing` skill.
4
28
 
5
29
  ## Contents
@@ -1,5 +1,14 @@
1
1
  # Async tests
2
2
 
3
+ <!-- toc -->
4
+ - [Serializing tests](#serializing-tests)
5
+ - [Confirming async work](#confirming-async-work)
6
+ - [How to set a time limit for concurrent tests](#how-to-set-a-time-limit-for-concurrent-tests)
7
+ - [How to force concurrent tests to run on a specific actor](#how-to-force-concurrent-tests-to-run-on-a-specific-actor)
8
+ - [Testing pre-concurrency code](#testing-pre-concurrency-code)
9
+ - [Mocking networking](#mocking-networking)
10
+ <!-- /toc -->
11
+
3
12
  Swift Testing is built to be async and run tests in parallel; special care must be taken to ensure those tests run well, particularly when Swift concurrency is involved. For more help with Swift concurrency, suggest the [Swift Concurrency Pro agent skill](https://github.com/twostraws/swift-concurrency-agent-skill).
4
13
 
5
14
 
@@ -1,5 +1,16 @@
1
1
  # New features
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Raw identifiers](#raw-identifiers)
6
+ - [Range-based confirmations](#range-based-confirmations)
7
+ - [Test scoping traits](#test-scoping-traits)
8
+ - [Exit tests](#exit-tests)
9
+ - [Attachments](#attachments)
10
+ - [Evaluating ConditionTrait](#evaluating-conditiontrait)
11
+ - [Return errors from #expect(throws:)](#return-errors-from-expectthrows)
12
+ <!-- /toc -->
13
+
3
14
  This document specifically discusses the latest Swift and Swift Testing features, which means it will cover things where you have limited or no training data.
4
15
 
5
16
  - Follow the instructions carefully rather than trying to guess and hallucinate.
@@ -1,5 +1,18 @@
1
1
  # Writing better tests
2
2
 
3
+ <!-- toc -->
4
+ - [Encourage unit test hygiene](#encourage-unit-test-hygiene)
5
+ - [Test generation heuristics](#test-generation-heuristics)
6
+ - [Testing SwiftUI views](#testing-swiftui-views)
7
+ - [Structuring tests](#structuring-tests)
8
+ - [Expose hidden dependencies](#expose-hidden-dependencies)
9
+ - [Expect vs require](#expect-vs-require)
10
+ - [Tracking bug fixes](#tracking-bug-fixes)
11
+ - [Use Issue.record() for throw-testing](#use-issuerecord-for-throw-testing)
12
+ - [Making test results easier to read](#making-test-results-easier-to-read)
13
+ - [Writing good verification methods](#writing-good-verification-methods)
14
+ <!-- /toc -->
15
+
3
16
  This contains suggestions to help you write better tests. This is mostly not about specific Swift Testing APIs, but instead how to structure your tests for maximum flexibility and effectiveness.
4
17
 
5
18
 
@@ -1,5 +1,13 @@
1
1
  # Core Data and SwiftData together
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [The Core Data side at a glance](#the-core-data-side-at-a-glance)
6
+ - [Sharing one store](#sharing-one-store)
7
+ - [Migrating an app to SwiftData](#migrating-an-app-to-swiftdata)
8
+ - [Checklist](#checklist)
9
+ <!-- /toc -->
10
+
3
11
  For a question about running both frameworks or moving from one to the other,
4
12
  start at [Sharing one store](#sharing-one-store). The Core Data stack section
5
13
  is context for reading an existing app, not a Core Data tutorial.
@@ -1,5 +1,22 @@
1
1
  # SwiftData: advanced topics
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [Custom data stores](#custom-data-stores)
6
+ - [History tracking](#history-tracking)
7
+ - [CloudKit in detail](#cloudkit-in-detail)
8
+ - [Core Data strategies](#core-data-strategies)
9
+ - [Batch work and performance](#batch-work-and-performance)
10
+ - [Complex predicates](#complex-predicates)
11
+ - [Codable structs as composite attributes](#codable-structs-as-composite-attributes)
12
+ - [Model inheritance](#model-inheritance)
13
+ - [Several configurations in one container](#several-configurations-in-one-container)
14
+ - [Undo and redo](#undo-and-redo)
15
+ - [Previews with in-memory stores](#previews-with-in-memory-stores)
16
+ - [Save notifications](#save-notifications)
17
+ - [Errors](#errors)
18
+ <!-- /toc -->
19
+
3
20
  ## Contents
4
21
 
5
22
  - [Custom data stores](#custom-data-stores)
@@ -1,5 +1,17 @@
1
1
  # SwiftData queries
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [@Query initializers](#query-initializers)
6
+ - [FetchDescriptor in depth](#fetchdescriptor-in-depth)
7
+ - [Sorting](#sorting)
8
+ - [Grouping results into sections](#grouping-results-into-sections)
9
+ - [Changing the query at runtime](#changing-the-query-at-runtime)
10
+ - [Fetching on a background actor](#fetching-on-a-background-actor)
11
+ - [Aggregates](#aggregates)
12
+ - [enumerate for large sets](#enumerate-for-large-sets)
13
+ <!-- /toc -->
14
+
3
15
  Examples use this model:
4
16
 
5
17
  ```swift
@@ -1,5 +1,16 @@
1
1
  # Adopting and Configuring SwiftLint
2
2
 
3
+ <!-- toc -->
4
+ - [Ways to install](#ways-to-install)
5
+ - [How SwiftLint finds its config](#how-swiftlint-finds-its-config)
6
+ - [Key-by-key](#key-by-key)
7
+ - [Tuning thresholds](#tuning-thresholds)
8
+ - [Environment variables in config values](#environment-variables-in-config-values)
9
+ - [Parent, child and nested configs](#parent-child-and-nested-configs)
10
+ - [Remote parent configs](#remote-parent-configs)
11
+ - [Rolling out on an existing codebase](#rolling-out-on-an-existing-codebase)
12
+ <!-- /toc -->
13
+
3
14
  Back to [SKILL.md](../SKILL.md).
4
15
 
5
16
  ## Ways to install
@@ -1,5 +1,12 @@
1
1
  # Custom Rules and `swiftlint analyze`
2
2
 
3
+ <!-- toc -->
4
+ - [Regex rules in `custom_rules`](#regex-rules-in-custom_rules)
5
+ - [Rules written in Swift](#rules-written-in-swift)
6
+ - [`swiftlint analyze`](#swiftlint-analyze)
7
+ - [When analyzer rules pay off](#when-analyzer-rules-pay-off)
8
+ <!-- /toc -->
9
+
3
10
  Back to [SKILL.md](../SKILL.md).
4
11
 
5
12
  ## Regex rules in `custom_rules`
@@ -1,5 +1,18 @@
1
1
  # Plugins, Run Scripts and Other Integrations
2
2
 
3
+ <!-- toc -->
4
+ - [Build tool plugin (first choice)](#build-tool-plugin-first-choice)
5
+ - [Command plugin](#command-plugin)
6
+ - [Run script build phase](#run-script-build-phase)
7
+ - [Recipes for CI services](#recipes-for-ci-services)
8
+ - [Reporters at a glance](#reporters-at-a-glance)
9
+ - [Swift toolchain compatibility](#swift-toolchain-compatibility)
10
+ - [VS Code](#vs-code)
11
+ - [Fastlane](#fastlane)
12
+ - [Docker](#docker)
13
+ - [Pre-commit](#pre-commit)
14
+ <!-- /toc -->
15
+
3
16
  Back to [SKILL.md](../SKILL.md).
4
17
 
5
18
  ## Build tool plugin (first choice)
@@ -1,5 +1,29 @@
1
1
  # Rule Reference, Grouped by Concern
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [1. Controlling SwiftLint itself](#1-controlling-swiftlint-itself)
6
+ - [2. Size and complexity](#2-size-and-complexity)
7
+ - [3. Crash-prone constructs](#3-crash-prone-constructs)
8
+ - [4. Naming](#4-naming)
9
+ - [5. Access control](#5-access-control)
10
+ - [6. SwiftUI, assets and accessibility](#6-swiftui-assets-and-accessibility)
11
+ - [7. Concurrency and errors](#7-concurrency-and-errors)
12
+ - [8. Legacy and Objective-C era APIs](#8-legacy-and-objective-c-era-apis)
13
+ - [9. UIKit, Interface Builder and object lifetime](#9-uikit-interface-builder-and-object-lifetime)
14
+ - [10. Collections and sequences](#10-collections-and-sequences)
15
+ - [11. Idiomatic expressions](#11-idiomatic-expressions)
16
+ - [12. Redundant or dead code](#12-redundant-or-dead-code)
17
+ - [13. Types, declarations and file organisation](#13-types-declarations-and-file-organisation)
18
+ - [14. Enums and switch](#14-enums-and-switch)
19
+ - [15. Whitespace, braces and punctuation](#15-whitespace-braces-and-punctuation)
20
+ - [16. Multi-line layout](#16-multi-line-layout)
21
+ - [17. Comments and documentation](#17-comments-and-documentation)
22
+ - [18. Availability and deployment](#18-availability-and-deployment)
23
+ - [19. Testing](#19-testing)
24
+ - [20. Analyzer-only extras](#20-analyzer-only-extras)
25
+ <!-- /toc -->
26
+
3
27
  Back to [SKILL.md](../SKILL.md).
4
28
 
5
29
  This is an offline index of every rule identifier, so you can find the right
@@ -1,5 +1,17 @@
1
1
  # Rules, Suppressions and Baselines
2
2
 
3
+ <!-- toc -->
4
+ - [The three kinds of rule](#the-three-kinds-of-rule)
5
+ - [Looking rules up](#looking-rules-up)
6
+ - [Rules you will meet early](#rules-you-will-meet-early)
7
+ - [Configuring one rule](#configuring-one-rule)
8
+ - [Suppression syntax](#suppression-syntax)
9
+ - [Suppression policy](#suppression-policy)
10
+ - [Baselines](#baselines)
11
+ - [False positives](#false-positives)
12
+ - [Generated code and tests](#generated-code-and-tests)
13
+ <!-- /toc -->
14
+
3
15
  Back to [SKILL.md](../SKILL.md). Every identifier is indexed in the
4
16
  [rule reference](rule-reference.md).
5
17
 
@@ -1,5 +1,20 @@
1
1
  # Advanced SwiftUI Animation
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [CustomAnimation (iOS 17+)](#customanimation-ios-17)
6
+ - [Spring, every initializer](#spring-every-initializer)
7
+ - [UnitCurve (iOS 17+)](#unitcurve-ios-17)
8
+ - [PhaseAnimator patterns](#phaseanimator-patterns)
9
+ - [KeyframeAnimator patterns](#keyframeanimator-patterns)
10
+ - [Transaction and TransactionKey](#transaction-and-transactionkey)
11
+ - [Choosing an implicit scope](#choosing-an-implicit-scope)
12
+ - [Every transition (iOS 17+)](#every-transition-ios-17)
13
+ - [Symbol effects](#symbol-effects)
14
+ - [Reduce Motion](#reduce-motion)
15
+ - [Performance](#performance)
16
+ <!-- /toc -->
17
+
3
18
  Depth behind the main skill: custom curves, the full `Spring` API, unit
4
19
  curves, richer phase and keyframe patterns, transactions, every transition, Reduce
5
20
  Motion handling and performance. Symbol effects are `ios-sf-symbols`.
@@ -1,5 +1,20 @@
1
1
  # Core Animation Bridge
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [When dropping down is justified](#when-dropping-down-is-justified)
6
+ - [The model value rule](#the-model-value-rule)
7
+ - [CABasicAnimation](#cabasicanimation)
8
+ - [CAKeyframeAnimation](#cakeyframeanimation)
9
+ - [CASpringAnimation](#caspringanimation)
10
+ - [CAAnimationGroup](#caanimationgroup)
11
+ - [CADisplayLink](#cadisplaylink)
12
+ - [Hosting layer animation in SwiftUI](#hosting-layer-animation-in-swiftui)
13
+ - [Moving state across the bridge](#moving-state-across-the-bridge)
14
+ - [Performance](#performance)
15
+ - [Apple documentation](#apple-documentation)
16
+ <!-- /toc -->
17
+
3
18
  Material that did not fit in the main SwiftUI animation skill. Reach for Core
4
19
  Animation only when SwiftUI's animation system cannot do the job: layer animation on a
5
20
  hot path, a curve SwiftUI cannot express, or direct work on a `CALayer`.
@@ -1,5 +1,17 @@
1
1
  # Scroll-driven effects: scrollTransition and visualEffect
2
2
 
3
+ <!-- toc -->
4
+ - [Contents](#contents)
5
+ - [1. Which one](#1-which-one)
6
+ - [2. scrollTransition](#2-scrolltransition)
7
+ - [3. Configurations and thresholds](#3-configurations-and-thresholds)
8
+ - [4. visualEffect](#4-visualeffect)
9
+ - [5. What a VisualEffect can do](#5-what-a-visualeffect-can-do)
10
+ - [6. Concurrency: the closures are Sendable](#6-concurrency-the-closures-are-sendable)
11
+ - [7. Reduce Motion](#7-reduce-motion)
12
+ - [8. Mistakes](#8-mistakes)
13
+ <!-- /toc -->
14
+
3
15
  Companion to `../SKILL.md` for the `swiftui-animation` skill. Both APIs ship
4
16
  in iOS 17 (macOS 14, tvOS 17, watchOS 10, visionOS 1).
5
17
 
@@ -1,5 +1,16 @@
1
1
  # SwiftUI Accessibility Patterns Reference
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [Core Principle](#core-principle)
6
+ - [Dynamic Type and @ScaledMetric](#dynamic-type-and-scaledmetric)
7
+ - [Accessibility Traits](#accessibility-traits)
8
+ - [Decorative Images](#decorative-images)
9
+ - [Element Grouping](#element-grouping)
10
+ - [Custom Controls](#custom-controls)
11
+ - [Summary Checklist](#summary-checklist)
12
+ <!-- /toc -->
13
+
3
14
  ## Table of Contents
4
15
 
5
16
  - [Core Principle](#core-principle)
@@ -1,5 +1,12 @@
1
1
  # SwiftUI Advanced Animations
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [Transactions](#transactions)
6
+ - [Animation Completion Handlers (iOS 17+)](#animation-completion-handlers-ios-17)
7
+ - [Quick Reference](#quick-reference)
8
+ <!-- /toc -->
9
+
3
10
  Transactions and completion handlers (iOS 17+).
4
11
 
5
12
  > Local trim: phase animations, keyframe animations and the `@Animatable` macro are maintained in the `swiftui-animation` skill, which owns SwiftUI motion. This file keeps transactions and completion handlers.
@@ -1,5 +1,18 @@
1
1
  # SwiftUI Animation Basics
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [Core Concepts](#core-concepts)
6
+ - [Implicit Animations](#implicit-animations)
7
+ - [Explicit Animations](#explicit-animations)
8
+ - [Animation Placement](#animation-placement)
9
+ - [Selective Animation](#selective-animation)
10
+ - [Animation Performance](#animation-performance)
11
+ - [Disabling Animations](#disabling-animations)
12
+ - [Debugging](#debugging)
13
+ - [Quick Reference](#quick-reference)
14
+ <!-- /toc -->
15
+
3
16
  Core animation concepts, implicit vs explicit animations, and performance patterns.
4
17
 
5
18
  > Local trim: Timing curves and springs are maintained in the `swiftui-animation` skill, which owns SwiftUI motion. This file keeps placement, selective animation, performance and debugging.
@@ -1,5 +1,14 @@
1
1
  # SwiftUI Transitions
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [Property Animations vs Transitions](#property-animations-vs-transitions)
6
+ - [Basic Transitions](#basic-transitions)
7
+ - [Identity and Transitions](#identity-and-transitions)
8
+ - [The Animatable Protocol](#the-animatable-protocol)
9
+ - [Quick Reference](#quick-reference)
10
+ <!-- /toc -->
11
+
3
12
  Transitions for view insertion/removal and the Animatable protocol.
4
13
 
5
14
  > Local trim: built-in, combined, asymmetric and custom transitions are maintained in the `swiftui-animation` skill, which owns SwiftUI motion. This file keeps the animation-context rule, identity and the Animatable protocol.
@@ -1,5 +1,14 @@
1
1
  # Swift Charts Accessibility, Fallback, and Resources
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [Accessibility](#accessibility)
6
+ - [Composite Example](#composite-example)
7
+ - [Fallback Strategies](#fallback-strategies)
8
+ - [WWDC Sessions](#wwdc-sessions)
9
+ - [Summary Checklist](#summary-checklist)
10
+ <!-- /toc -->
11
+
3
12
  ## Table of Contents
4
13
 
5
14
  - [Accessibility](#accessibility)
@@ -1,5 +1,22 @@
1
1
  # SwiftUI Charts Reference
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [Overview](#overview)
6
+ - [Availability](#availability)
7
+ - [Core APIs](#core-apis)
8
+ - [Chart Types](#chart-types)
9
+ - [Axis Tweaks](#axis-tweaks)
10
+ - [Selection APIs](#selection-apis)
11
+ - [Annotations](#annotations)
12
+ - [ChartProxy and Custom Touch Handling](#chartproxy-and-custom-touch-handling)
13
+ - [Modifier Scope](#modifier-scope)
14
+ - [Styling and Visual Channels](#styling-and-visual-channels)
15
+ - [Composing Multiple Marks](#composing-multiple-marks)
16
+ - [Animating Chart Data](#animating-chart-data)
17
+ - [Best Practices](#best-practices)
18
+ <!-- /toc -->
19
+
3
20
  ## Table of Contents
4
21
 
5
22
  - [Overview](#overview)
@@ -1,5 +1,14 @@
1
1
  # SwiftUI Image Optimization Reference
2
2
 
3
+ <!-- toc -->
4
+ - [Table of Contents](#table-of-contents)
5
+ - [AsyncImage Best Practices](#asyncimage-best-practices)
6
+ - [Image Decoding and Downsampling (Optional Optimization)](#image-decoding-and-downsampling-optional-optimization)
7
+ - [UIImage Loading and Memory](#uiimage-loading-and-memory)
8
+ - [SF Symbols](#sf-symbols)
9
+ - [Summary Checklist](#summary-checklist)
10
+ <!-- /toc -->
11
+
3
12
  ## Table of Contents
4
13
 
5
14
  - [AsyncImage Best Practices](#asyncimage-best-practices)