@mmerterden/multi-agent-pipeline 20.6.0 → 20.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +0 -10
  3. package/docs/facts.json +1 -1
  4. package/manifest.json +328 -329
  5. package/package.json +2 -2
  6. package/pipeline/multi-agent-refs/features/design-conformance.md +62 -64
  7. package/pipeline/scripts/_notices.mjs +12 -1
  8. package/pipeline/scripts/gen-skills-index.mjs +1 -1
  9. package/pipeline/skills/.skill-manifest.json +106 -106
  10. package/pipeline/skills/shared/README.md +71 -71
  11. package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +1 -0
  12. package/pipeline/skills/shared/external/alarmkit/SKILL.md +373 -381
  13. package/pipeline/skills/shared/external/alarmkit/evals/evals.json +23 -18
  14. package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +328 -378
  15. package/pipeline/skills/shared/external/android-architecture/SKILL.md +2 -0
  16. package/pipeline/skills/shared/external/android-performance/SKILL.md +2 -0
  17. package/pipeline/skills/shared/external/android-security/SKILL.md +2 -0
  18. package/pipeline/skills/shared/external/app-clips/SKILL.md +260 -160
  19. package/pipeline/skills/shared/external/app-clips/evals/evals.json +27 -27
  20. package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +150 -83
  21. package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +135 -83
  22. package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +143 -85
  23. package/pipeline/skills/shared/external/app-intents/SKILL.md +302 -304
  24. package/pipeline/skills/shared/external/app-intents/evals/evals.json +21 -21
  25. package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +594 -894
  26. package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +339 -277
  27. package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +27 -23
  28. package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +105 -122
  29. package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +143 -166
  30. package/pipeline/skills/shared/external/app-store-review/SKILL.md +307 -326
  31. package/pipeline/skills/shared/external/app-store-review/evals/evals.json +21 -21
  32. package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +105 -67
  33. package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +114 -101
  34. package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +333 -360
  35. package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +24 -27
  36. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +215 -322
  37. package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +161 -256
  38. package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +277 -387
  39. package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +196 -210
  40. package/pipeline/skills/shared/external/authentication/SKILL.md +265 -381
  41. package/pipeline/skills/shared/external/authentication/evals/evals.json +25 -25
  42. package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +133 -178
  43. package/pipeline/skills/shared/external/authentication/references/passkeys.md +111 -147
  44. package/pipeline/skills/shared/external/avkit/SKILL.md +267 -364
  45. package/pipeline/skills/shared/external/avkit/evals/evals.json +26 -26
  46. package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +375 -493
  47. package/pipeline/skills/shared/external/background-processing/SKILL.md +270 -382
  48. package/pipeline/skills/shared/external/background-processing/evals/evals.json +22 -22
  49. package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +169 -317
  50. package/pipeline/skills/shared/external/backlog/BACKLOG.md +1 -1
  51. package/pipeline/skills/shared/external/backlog/SKILL.md +56 -33
  52. package/pipeline/skills/shared/external/callkit-voip/SKILL.md +290 -371
  53. package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +24 -24
  54. package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +175 -343
  55. package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +1 -0
  56. package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +292 -381
  57. package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +33 -30
  58. package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +227 -355
  59. package/pipeline/skills/shared/external/compose-components/SKILL.md +2 -0
  60. package/pipeline/skills/shared/external/compose-navigation/SKILL.md +3 -2
  61. package/pipeline/skills/shared/external/compose-testing/SKILL.md +2 -0
  62. package/pipeline/skills/shared/external/contacts-framework/SKILL.md +197 -346
  63. package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +19 -21
  64. package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +169 -308
  65. package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +226 -376
  66. package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +25 -22
  67. package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +257 -337
  68. package/pipeline/skills/shared/external/core-data/SKILL.md +292 -368
  69. package/pipeline/skills/shared/external/core-data/evals/evals.json +30 -27
  70. package/pipeline/skills/shared/external/core-motion/SKILL.md +235 -324
  71. package/pipeline/skills/shared/external/core-motion/evals/evals.json +31 -27
  72. package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +210 -310
  73. package/pipeline/skills/shared/external/core-nfc/SKILL.md +292 -366
  74. package/pipeline/skills/shared/external/core-nfc/evals/evals.json +22 -24
  75. package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +233 -329
  76. package/pipeline/skills/shared/external/coreml/SKILL.md +323 -367
  77. package/pipeline/skills/shared/external/coreml/evals/evals.json +24 -21
  78. package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +562 -565
  79. package/pipeline/skills/shared/external/council/SKILL.md +1 -0
  80. package/pipeline/skills/shared/external/cryptokit/SKILL.md +253 -394
  81. package/pipeline/skills/shared/external/cryptokit/evals/evals.json +20 -18
  82. package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +299 -488
  83. package/pipeline/skills/shared/external/css-modern/SKILL.md +1 -0
  84. package/pipeline/skills/shared/external/database-patterns/SKILL.md +1 -0
  85. package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +270 -323
  86. package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +27 -30
  87. package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +167 -315
  88. package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +140 -193
  89. package/pipeline/skills/shared/external/device-integrity/SKILL.md +230 -353
  90. package/pipeline/skills/shared/external/device-integrity/evals/evals.json +25 -21
  91. package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +159 -197
  92. package/pipeline/skills/shared/external/energykit/SKILL.md +225 -392
  93. package/pipeline/skills/shared/external/energykit/evals/evals.json +29 -28
  94. package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +174 -470
  95. package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +261 -383
  96. package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +25 -22
  97. package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +165 -268
  98. package/pipeline/skills/shared/external/evidence-github/SKILL.md +2 -0
  99. package/pipeline/skills/shared/external/evidence-registry/SKILL.md +2 -0
  100. package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +2 -0
  101. package/pipeline/skills/shared/external/healthkit/SKILL.md +252 -303
  102. package/pipeline/skills/shared/external/healthkit/evals/evals.json +24 -23
  103. package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +369 -523
  104. package/pipeline/skills/shared/external/homekit-matter/SKILL.md +233 -348
  105. package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +27 -22
  106. package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +199 -305
  107. package/pipeline/skills/shared/external/html-semantic/SKILL.md +1 -0
  108. package/pipeline/skills/shared/external/humanizer/SKILL.md +1 -0
  109. package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +368 -340
  110. package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +28 -27
  111. package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +314 -260
  112. package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +97 -67
  113. package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +165 -101
  114. package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +1 -0
  115. package/pipeline/skills/shared/external/ios-localization/SKILL.md +258 -371
  116. package/pipeline/skills/shared/external/ios-localization/evals/evals.json +23 -23
  117. package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +283 -491
  118. package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +313 -440
  119. package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +1 -0
  120. package/pipeline/skills/shared/external/ios-networking/SKILL.md +265 -341
  121. package/pipeline/skills/shared/external/ios-networking/evals/evals.json +24 -24
  122. package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +425 -652
  123. package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +143 -285
  124. package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -53
  125. package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +231 -456
  126. package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +517 -784
  127. package/pipeline/skills/shared/external/ios-security/SKILL.md +2 -0
  128. package/pipeline/skills/shared/external/ios-simulator/SKILL.md +265 -393
  129. package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +21 -21
  130. package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +177 -270
  131. package/pipeline/skills/shared/external/live-activities/SKILL.md +318 -360
  132. package/pipeline/skills/shared/external/live-activities/evals/evals.json +21 -21
  133. package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +478 -710
  134. package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +91 -283
  135. package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +119 -151
  136. package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +60 -90
  137. package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +119 -156
  138. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +726 -787
  139. package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +253 -288
  140. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +243 -304
  141. package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +88 -104
  142. package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +181 -235
  143. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +198 -263
  144. package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +461 -466
  145. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +145 -151
  146. package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +123 -141
  147. package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +146 -157
  148. package/pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh +22 -19
  149. package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +156 -140
  150. package/pipeline/skills/shared/external/mapkit-location/SKILL.md +295 -267
  151. package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +28 -24
  152. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +378 -532
  153. package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +397 -499
  154. package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +165 -348
  155. package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +26 -23
  156. package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +123 -130
  157. package/pipeline/skills/shared/external/musickit-audio/SKILL.md +189 -315
  158. package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +22 -21
  159. package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +181 -270
  160. package/pipeline/skills/shared/external/natural-language/SKILL.md +188 -340
  161. package/pipeline/skills/shared/external/natural-language/evals/evals.json +21 -21
  162. package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +171 -225
  163. package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +1 -0
  164. package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +258 -392
  165. package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +30 -29
  166. package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +164 -231
  167. package/pipeline/skills/shared/external/pdfkit/SKILL.md +312 -344
  168. package/pipeline/skills/shared/external/pdfkit/evals/evals.json +19 -19
  169. package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +413 -624
  170. package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +242 -358
  171. package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +25 -21
  172. package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +161 -226
  173. package/pipeline/skills/shared/external/permissionkit/SKILL.md +282 -400
  174. package/pipeline/skills/shared/external/permissionkit/evals/evals.json +27 -30
  175. package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +237 -350
  176. package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +276 -325
  177. package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +299 -545
  178. package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +344 -588
  179. package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +316 -660
  180. package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +270 -416
  181. package/pipeline/skills/shared/external/play-store-review/SKILL.md +2 -0
  182. package/pipeline/skills/shared/external/push-notifications/SKILL.md +312 -340
  183. package/pipeline/skills/shared/external/push-notifications/evals/evals.json +27 -26
  184. package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +328 -485
  185. package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +327 -560
  186. package/pipeline/skills/shared/external/python-patterns/SKILL.md +1 -0
  187. package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
  188. package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +218 -410
  189. package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +24 -27
  190. package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +221 -348
  191. package/pipeline/skills/shared/external/rest-api-design/SKILL.md +1 -0
  192. package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +2 -0
  193. package/pipeline/skills/shared/external/room-database/SKILL.md +2 -0
  194. package/pipeline/skills/shared/external/search-first/SKILL.md +1 -0
  195. package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +222 -393
  196. package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +23 -24
  197. package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +280 -420
  198. package/pipeline/skills/shared/external/signal-community/SKILL.md +2 -0
  199. package/pipeline/skills/shared/external/skill-creator/SKILL.md +80 -41
  200. package/pipeline/skills/shared/external/skill-creator/audit.md +63 -59
  201. package/pipeline/skills/shared/external/skill-creator/checklist.md +28 -20
  202. package/pipeline/skills/shared/external/skill-creator/examples.md +40 -40
  203. package/pipeline/skills/shared/external/skill-creator/label-check.md +48 -36
  204. package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +91 -100
  205. package/pipeline/skills/shared/external/skill-creator/template.md +51 -39
  206. package/pipeline/skills/shared/external/speech-recognition/SKILL.md +217 -421
  207. package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +23 -26
  208. package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +133 -125
  209. package/pipeline/skills/shared/external/storekit/SKILL.md +228 -204
  210. package/pipeline/skills/shared/external/storekit/evals/evals.json +27 -24
  211. package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +98 -109
  212. package/pipeline/skills/shared/external/storekit/references/core-patterns.md +298 -242
  213. package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +356 -649
  214. package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +274 -399
  215. package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +22 -24
  216. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +107 -108
  217. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +93 -165
  218. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +99 -137
  219. package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +77 -120
  220. package/pipeline/skills/shared/external/swift-architecture/SKILL.md +334 -350
  221. package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +22 -22
  222. package/pipeline/skills/shared/external/swift-charts/SKILL.md +208 -394
  223. package/pipeline/skills/shared/external/swift-charts/evals/evals.json +27 -30
  224. package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +351 -762
  225. package/pipeline/skills/shared/external/swift-codable/SKILL.md +339 -343
  226. package/pipeline/skills/shared/external/swift-codable/evals/evals.json +20 -20
  227. package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +303 -351
  228. package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +27 -24
  229. package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +65 -80
  230. package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +48 -84
  231. package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +134 -79
  232. package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +145 -167
  233. package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +62 -50
  234. package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +92 -121
  235. package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +177 -241
  236. package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +258 -234
  237. package/pipeline/skills/shared/external/swift-language/SKILL.md +342 -382
  238. package/pipeline/skills/shared/external/swift-language/evals/evals.json +24 -27
  239. package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +79 -56
  240. package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +297 -340
  241. package/pipeline/skills/shared/external/swift-security/SKILL.md +180 -161
  242. package/pipeline/skills/shared/external/swift-security/evals/evals.json +25 -25
  243. package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +314 -469
  244. package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +408 -476
  245. package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +260 -530
  246. package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +270 -477
  247. package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +573 -571
  248. package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +370 -441
  249. package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +332 -433
  250. package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +346 -468
  251. package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +352 -472
  252. package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +431 -432
  253. package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +328 -425
  254. package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +341 -579
  255. package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +396 -457
  256. package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +354 -614
  257. package/pipeline/skills/shared/external/swift-testing/SKILL.md +188 -175
  258. package/pipeline/skills/shared/external/swift-testing/evals/evals.json +26 -24
  259. package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +80 -84
  260. package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +317 -433
  261. package/pipeline/skills/shared/external/swiftdata/SKILL.md +392 -256
  262. package/pipeline/skills/shared/external/swiftdata/evals/evals.json +24 -24
  263. package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +206 -402
  264. package/pipeline/skills/shared/external/swiftdata/references/indexing.md +59 -52
  265. package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +57 -33
  266. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +354 -747
  267. package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +300 -508
  268. package/pipeline/skills/shared/external/swiftlint/SKILL.md +175 -226
  269. package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +141 -208
  270. package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +100 -109
  271. package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +159 -179
  272. package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +383 -18
  273. package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +143 -229
  274. package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +283 -366
  275. package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +396 -608
  276. package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +336 -385
  277. package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +239 -349
  278. package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +228 -310
  279. package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +260 -249
  280. package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +92 -74
  281. package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +112 -177
  282. package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +61 -64
  283. package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +94 -134
  284. package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +193 -225
  285. package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +173 -327
  286. package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +193 -168
  287. package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +127 -150
  288. package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +132 -133
  289. package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +152 -117
  290. package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +106 -140
  291. package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +316 -252
  292. package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +341 -332
  293. package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +547 -854
  294. package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +485 -537
  295. package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +417 -499
  296. package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +213 -376
  297. package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +86 -175
  298. package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +89 -195
  299. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +95 -182
  300. package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +71 -149
  301. package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +21 -27
  302. package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +303 -295
  303. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +204 -387
  304. package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +469 -683
  305. package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +140 -186
  306. package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +75 -86
  307. package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +63 -60
  308. package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +69 -137
  309. package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +95 -67
  310. package/pipeline/skills/shared/external/tailwind-css/SKILL.md +1 -0
  311. package/pipeline/skills/shared/external/testing-backend/SKILL.md +1 -0
  312. package/pipeline/skills/shared/external/tipkit/SKILL.md +220 -335
  313. package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +356 -494
  314. package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +1 -0
  315. package/pipeline/skills/shared/external/vision-framework/SKILL.md +260 -375
  316. package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +393 -515
  317. package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +363 -539
  318. package/pipeline/skills/shared/external/vue-composition/SKILL.md +1 -0
  319. package/pipeline/skills/shared/external/weatherkit/SKILL.md +152 -310
  320. package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +288 -407
  321. package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
  322. package/pipeline/skills/shared/external/web-performance/SKILL.md +1 -0
  323. package/pipeline/skills/shared/external/web-testing/SKILL.md +1 -0
  324. package/pipeline/skills/shared/external/widgetkit/SKILL.md +216 -288
  325. package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +414 -719
  326. package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +0 -39
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmerterden/multi-agent-pipeline",
3
- "version": "20.6.0",
3
+ "version": "20.8.0",
4
4
  "description": "6-phase AI development pipeline with full orchestration on Claude Code, Copilot CLI and Codex CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -55,7 +55,7 @@
55
55
  "codex-cli"
56
56
  ],
57
57
  "author": "Mert Erden",
58
- "license": "MIT AND LicenseRef-PolyForm-Perimeter-1.0.0",
58
+ "license": "MIT",
59
59
  "publishConfig": {
60
60
  "registry": "https://registry.npmjs.org",
61
61
  "access": "public"
@@ -12,14 +12,12 @@
12
12
  <!-- /toc -->
13
13
 
14
14
  A design audit that reads a screen top to bottom and reports what looks wrong
15
- finds about one defect per element: the wrong font on a label, and not that same
16
- label's wrong colour and wrong inset. This file is the catalog, and the three
15
+ catches roughly a single defect per element: it spots a label's wrong font and
16
+ misses the wrong colour and wrong inset on that very label. This file is the catalog, and the three
17
17
  mechanisms that turn "I looked at it" into a countable result.
18
18
 
19
- Derived generically from an upstream corporate screen-QA tool (recorded in
20
- `derivedSkillSources`). The doctrine is portable. Its vendored design-token
21
- catalogs and product examples are not, and were not taken - section 7 says what
22
- replaces them.
19
+ The doctrine is generic. It carries no design-token catalog and no product
20
+ examples - section 7 says what stands in for them.
23
21
 
24
22
  Consumers: `/multi-agent:design-check` (the runner), Phase 3 review when a UI
25
23
  diff is under review, and `features/visual-evidence.md` when a capture has to
@@ -27,10 +25,9 @@ prove a fix. Gate: `smoke-design-conformance.sh`.
27
25
 
28
26
  ## 0. Why this runs as a gate
29
27
 
30
- `design-check` existed as a command for a while with no phase invoking it, so the only
31
- thing standing between a build and visual drift was the user opening the app and
32
- looking. On one run that produced 16pt padding where the frame said `Spacing/12`, and a
33
- full sheet rebuild afterwards.
28
+ A conformance check that no phase invokes leaves the user opening the app as the
29
+ only barrier between a build and visual drift: 16pt padding where the frame says
30
+ `Spacing/12` ships, and is found after the fact.
34
31
 
35
32
  The reason it cannot be advice is structural, not historical: a reviewer reading a diff
36
33
  cannot see spacing. Every other Phase 4 check reads text and reasons about text; this
@@ -49,8 +46,8 @@ once, before any comparison:
49
46
  into its parent.
50
47
  2. For each row, pre-fill the design side of every rule that applies and leave
51
48
  the implementation side blank.
52
- 3. Fill every blank. **A blank cell is a fail-to-verify, not a pass**, and it is
53
- reported as one.
49
+ 3. Complete every empty cell. **Any blank cell is a fail-to-verify** (never a pass),
50
+ and the report lists it that way.
54
51
 
55
52
  The inventory is the coverage guarantee; the rule groups in section 5 are the
56
53
  per-cell recipe. A truncated inventory makes the denominator wrong, so it is
@@ -74,15 +71,15 @@ and safe-area insets are not in it.
74
71
  ## 3. Adaptive per-component convergence
75
72
 
76
73
  One pass over a component catches roughly one defect on it. So each component is
77
- re-checked until **two consecutive attempts find nothing new on it**.
74
+ checked again and again, stopping once **two consecutive attempts find nothing new** there.
78
75
 
79
- - Soft cap: reaching attempt 8 without two consecutive clean attempts stops that
80
- component with a `did-not-converge` warning. There is never a ninth attempt.
76
+ - Soft cap: if attempt 8 arrives and the last two attempts were not both clean, the
77
+ component ends with a `did-not-converge` warning. A ninth attempt never runs.
81
78
  - A component with a font, a margin and a colour defect needs about three
82
79
  finding attempts plus two clean ones. A correct component needs the two clean
83
80
  attempts and nothing more.
84
- - The screen is done when **every** inventoried component has reached two
85
- consecutive clean attempts or its cap with a warning. Not when the walk
81
+ - The screen is finished once **each** component in the inventory has either two
82
+ clean attempts in a row or has hit its cap and carries the warning. Not when the walk
86
83
  reached the bottom.
87
84
 
88
85
  On a fixing run, each attempt that found something is fixed, re-captured, and
@@ -94,37 +91,37 @@ what each attempt changed rather than one undifferentiated diff.
94
91
  | Tag | Meaning |
95
92
  |---|---|
96
93
  | `[MEASURE]` | Verified in the primary capture: design value against measured pixels or resolved code value (section 2) |
97
- | `[CAPTURE+]` | Needs an extra capture pass - a second appearance, a mirrored layout, another width, another state. Skipping one is allowed only if the skip is logged |
94
+ | `[CAPTURE+]` | Requires one more capture - a second appearance, a mirrored layout, a different width or state. A pass may be skipped, provided the log records the skip |
98
95
  | `[A11Y]` | Accessibility lane: the platform accessibility tree (labels, element frames) plus contrast math |
99
- | `[DYNAMIC]` | Behavioural or temporal; a static capture cannot show it. Verify by driving the device, or report `not verified (dynamic)`. **Never silently pass a `[DYNAMIC]` item** |
96
+ | `[DYNAMIC]` | Behavioural or temporal; a static capture cannot show it. Drive the device to verify it, or report `not verified (dynamic)`. **Never silently pass a `[DYNAMIC]` item**; it is either exercised or reported |
100
97
 
101
98
  ## 5. The catalog
102
99
 
103
100
  Run every applicable item for **every** component, then every gap through
104
- group 2, then the whole-screen passes (17, 21, 22, 24, 25). A check that was not
105
- run is a fail-to-verify.
101
+ group 2, then the whole-screen passes (17, 21, 22, 24, 25). Any check left unrun
102
+ counts as a fail-to-verify.
106
103
 
107
- **1. Layout** `[MEASURE]` - x relative to container (never absolute y: the status
108
- bar offsets it), y relative to an in-content span, L/R/T/B margin to parent,
104
+ **1. Layout** `[MEASURE]` - x measured from the container (y is never taken as an
105
+ absolute value, since the status bar shifts it), y relative to an in-content span, L/R/T/B margin to parent,
109
106
  centring, baseline alignment across a row, shared leading edge for siblings,
110
107
  label-left/value-right rows aligned at both ends, safe-area and system-bar
111
108
  clearance.
112
109
 
113
110
  > **Horizontal-inset lane** - the most-skipped one. For every element record
114
111
  > **both** sides of the leading inset: the design value and the measured
115
- > implementation value. One side filled is a fail-to-verify. Then two cheap
116
- > catches that need no per-element math: (a) **leading rail** - every loose,
117
- > non-carded text in a vertical group must share one leading x; if the
118
- > implementation puts a subtitle at the card's outer edge while the design insets
119
- > it, the rail is broken; (b) **sibling consistency** - when sibling screens
120
- > exist, diff the same element's inset across them; the outlier is usually the
121
- > bug. A different text-wrap point is a symptom of a different margin, not only
122
- > of a different font.
112
+ > implementation value. If only one of the two is filled, that is a fail-to-verify.
113
+ > Two inexpensive checks follow that require no per-element arithmetic:
114
+ > (a) **leading rail** - loose text outside any card, stacked vertically, lines up
115
+ > on a single leading x; a subtitle the implementation places on the card's outer
116
+ > edge, where the design indents it, breaks the rail; (b) **sibling consistency** -
117
+ > if the screen has siblings, compare the inset of one element across all of them;
118
+ > the one that differs is usually the defect. Text that wraps at another point
119
+ > often signals a changed margin, and not only a changed font.
123
120
 
124
121
  **2. Spacing** `[MEASURE]` - outer margins, inner padding, screen edge margin
125
122
  (L=R symmetric), text-to-icon and icon-to-button and card-to-card and
126
123
  section-to-section gaps, list/grid/row spacing, the vertical gap **between**
127
- adjacent components (`next.y - (prev.y + prev.h)` against the stack spacing), and
124
+ neighbouring components (compute `next.y - (prev.y + prev.h)` and compare it with the stack spacing), and
128
125
  every gap resolving to a spacing token - an off-scale value is a deviation.
129
126
 
130
127
  **3. Size** `[MEASURE]` - width and height against the design (measured), min and
@@ -166,23 +163,23 @@ single-tint template is a defect), and vector crispness.
166
163
 
167
164
  **11. Buttons** `[MEASURE]` - width and **measured height** (from the rendered
168
165
  fill rect, never a frame token), L/R/T/B spacing with L=R symmetry, the inner
169
- label's font/weight/colour/alignment **as its own row**, the inner icon
166
+ label as a **separate row** (font, weight, colour, alignment), the inner icon
170
167
  (presence, size, colour, side, spacing), centring, fill and border and text
171
168
  colour for the current state, `[CAPTURE+]` the state set (group 21).
172
169
 
173
170
  > A button instance matches no text, icon or field kind, so an inventory built by
174
171
  > kind drops it silently - and with it the button height and its nested label.
175
- > The button is its own row and its children are exploded into their own rows.
172
+ > So each button gets a row, and each child inside it gets a row of its own too.
176
173
 
177
174
  **12. Input fields** `[MEASURE]` - **measured height** (the rendered field box,
178
175
  never a frame or size token, because internal padding is not in the token),
179
176
  width, border, radius, placeholder text and its colour and alignment, background
180
- shade (read-only vs editable), prefix or affix and its colour, cursor and
177
+ shade (editable vs read-only), the prefix or affix with its colour, cursor and
181
178
  selection colour, character counter behaviour, `[CAPTURE+]` focus/error/disabled/
182
179
  filled states with the error message's colour, position and icon, `[DYNAMIC]`
183
180
  keyboard type.
184
181
 
185
- **13. Card** `[MEASURE]` - padding, radius, background, border, shadow, and
182
+ **13. Card** `[MEASURE]` - radius, padding, border, background, shadow, and
186
183
  content grouping: **sample the pixel behind every text block** - is it inside a
187
184
  card or bare on the page background? A design block in a card that the
188
185
  implementation renders bare (or the reverse) is a wrong-container finding
@@ -192,7 +189,7 @@ side is code-verifiable (inside a card helper vs placed bare in a stack with
192
189
  padding). Never infer this from a glance.
193
190
 
194
191
  **14. Lists** `[MEASURE]` - item height and internal padding, divider colour and
195
- thickness and insets, inter-item spacing, section header grouping and order,
192
+ thickness and insets, spacing between items, how section headers group and order,
196
193
  `[DYNAMIC]` scroll behaviour and lazy loading.
197
194
 
198
195
  **15. Navigation / header** `[MEASURE]` - bar height, title text and alignment,
@@ -200,8 +197,8 @@ back affordance present and correct and mirrored under RTL, right-side actions
200
197
  present and ordered, bottom navigation items with icons, labels and selected
201
198
  state, `[DYNAMIC]` transition style.
202
199
 
203
- **16. Scroll** - `[DYNAMIC]` smooth scroll, bounce, overscroll, sticky header,
204
- scroll indicator; `[MEASURE]` the pinned header or footer position, which is the
200
+ **16. Scroll** - `[DYNAMIC]` scroll smoothness, bounce and overscroll, a sticky
201
+ header, the scroll indicator; `[MEASURE]` the pinned header or footer position, which is the
205
202
  static part a capture can check.
206
203
 
207
204
  **17. Responsive** `[CAPTURE+]` - small, medium and large phone widths, tablet,
@@ -214,23 +211,23 @@ width rather than reasoning about it.
214
211
  fade/scale/slide/rotation, loading and skeleton animation, haptics. Verify by
215
212
  recording the device or report `not verified (dynamic)`.
216
213
 
217
- **20. Visibility** `[CAPTURE+]` - hidden vs visible renders correctly; collapse
218
- and expand states captured separately.
214
+ **20. Visibility** `[CAPTURE+]` - both the visible and the hidden variant render as
215
+ designed; the expanded and collapsed states each get their own capture.
219
216
 
220
217
  **21. States** `[CAPTURE+]` per interactive component - default, pressed, focus,
221
218
  selected, active, disabled (colour, opacity, and genuinely not tappable),
222
219
  loading, empty, error, success.
223
220
 
224
- > **State fidelity gate**: the captured implementation must be in the exact state
225
- > the design frame depicts - the same toggle position, the same filled or empty
221
+ > **State fidelity gate**: before comparing, put the implementation into precisely
222
+ > the state shown by the design frame - the same toggle position, the same filled or empty
226
223
  > content, the same validation result. A capture in the wrong state is redone,
227
224
  > not compared.
228
225
 
229
226
  **22. Accessibility** `[A11Y]` - contrast at least 4.5:1 computed from sampled
230
227
  colours, tap target at least 44x44pt / 48x48dp from the accessibility tree,
231
228
  screen-reader label present and meaningful plus a meaningful hint, correct
232
- traits, an accessibility identifier on every interactive element, and a logical
233
- focus order. Whether to also audit scaled text sizes depends on the project: a
229
+ traits, an accessibility identifier on each element a user can interact with, and
230
+ a logical focus order. Whether to also audit scaled text sizes depends on the project: a
234
231
  design system with fixed, non-scaling typography makes a forced-scale render
235
232
  meaningless noise, so state which of the two the project is instead of assuming.
236
233
 
@@ -258,31 +255,31 @@ overflow. The value itself (a name, a number, a masked field) is not under test.
258
255
  **27. Component presence and order - hard gate** - the group the whole walk
259
256
  exists for.
260
257
 
261
- > Mechanical, not a glance. Number every element of the design list - text **and**
262
- > every icon, avatar, badge, **and every button** - and for each write its
263
- > implementation counterpart or `MISSING`. Report the count explicitly: "N design
264
- > components -> N implementation counterparts". "Complete" may not be concluded
258
+ > Done mechanically, never by eye. Give a number to each element in the design
259
+ > list - the text **and** each icon, avatar and badge, **and each button** - and
260
+ > beside it name the matching implementation element, or write `MISSING`. State
261
+ > the totals outright: "N design components -> N implementation counterparts". "Complete" may not be concluded
265
262
  > without that list. A button and the label nested inside it are two presence
266
263
  > checks, not one.
267
264
  >
268
- > - **Icons are the most-missed presence class.** For every icon in the design
269
- > list, locate it in the render by measuring its coloured bounding box. A design
265
+ > - **Presence checks miss icons more than anything else.** Find each design-list
266
+ > icon in the render by measuring the bounding box of its coloured pixels. A design
270
267
  > icon with roughly no matching pixels is a missing-element finding.
271
- > - **Recurse into nested blocks.** The gate applies to rows inside cards - masked
272
- > rows, list rows, key/value rows - not only to top-level sections. "That card
273
- > looks right" is not a pass.
268
+ > - **Descend into nested blocks.** Rows within cards (masked, list, key/value)
269
+ > fall under the gate just as top-level sections do. A card that "seems fine"
270
+ > has not passed.
274
271
  > - **Bidirectional, and code-side too.** Diff design-to-implementation
275
272
  > (`MISSING`) *and* implementation-to-design (`EXTRA`). The most-missed extra is
276
273
  > a neutral decoration the implementation adds - a trailing chevron, an
277
274
  > underline, a strikethrough - which a colour-based, one-directional comparison
278
275
  > cannot see. Diff the implementation's explicit decoration modifiers against
279
276
  > the design's own decoration nodes, independently of the string.
280
- > - **A localization gap does not short-circuit this gate.** Raw keys are one
277
+ > - **Missing localization never ends this gate early.** Raw keys form a single
281
278
  > finding; presence, icon, decoration and structure checks still run, because
282
279
  > they read code and spec rather than the rendered string.
283
280
 
284
- Findings: `MISSING` · `EXTRA` · `MISSING-BETWEEN` (dropped from the middle of the
285
- sequence) · `REORDERED` · `WRONG-STATE` · `WRONG-CONTAINER` (present but grouped
281
+ Findings: `MISSING` · `EXTRA` · `MISSING-BETWEEN` (absent from inside the sequence,
282
+ not at its ends) · `REORDERED` · `WRONG-STATE` · `WRONG-CONTAINER` (present but grouped
286
283
  differently, loose vs carded).
287
284
 
288
285
  **28. Keyboard and input behaviour** `[DYNAMIC]` - keyboard avoidance with the
@@ -291,17 +288,18 @@ correct field.
291
288
 
292
289
  **29. Analytics** - out of visual scope; checked only when the spec requires it.
293
290
 
294
- **30. Cross-check matrix** - per component confirm x, y, w, h, the four margins,
295
- the four paddings, font family/size/weight, line height, letter spacing, text
296
- colour, background colour, border width/radius/colour, shadow, opacity, icon
297
- size/colour/position, image size/crop, divider, alignment, responsive, state,
291
+ **30. Cross-check matrix** - for each component confirm x, y, w and h, all four
292
+ margins and all four paddings, the font's family, size and weight, letter spacing,
293
+ line height, text colour, background colour, the border's width, radius and
294
+ colour, shadow, opacity, icon size, colour and position, image crop and size,
295
+ divider, alignment, responsive behaviour, state,
298
296
  animation, safe area, and overflow. **Mark only deviations** on the image;
299
297
  matches belong in the report text.
300
298
 
301
299
  ## 6. Output
302
300
 
303
- Mark only problems on the image, with thin lines. Everything else goes in the
304
- report, whose section keys are stable and whose prose follows `outputLanguage`:
301
+ Draw thin lines on the image around problems and nothing else. All other
302
+ content belongs in the report, whose section keys are stable and whose prose follows `outputLanguage`:
305
303
 
306
304
  | Key | Content |
307
305
  |---|---|
@@ -309,7 +307,7 @@ report, whose section keys are stable and whose prose follows `outputLanguage`:
309
307
  | `localization` | Raw keys, missing keys, hardcoded strings |
310
308
  | `matches` | What was checked and agreed |
311
309
  | `ignored` | What was deliberately out of scope, with the reason |
312
- | `not_verified` | **Every** `[DYNAMIC]` and `[CAPTURE+]` item that was not run, so the coverage gap is explicit rather than absent |
310
+ | `not_verified` | **Every** `[DYNAMIC]` and `[CAPTURE+]` item left unrun, which makes the coverage gap visible instead of silent |
313
311
 
314
312
  Each finding is `[what] + [why] + [how]` with `file:line` wherever the
315
313
  implementation side is code-resolvable. A finding without a file reference is
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // A vendored skill carries `metadata.source: "<upstream> (<license>)"` in its
4
4
  // frontmatter, and its upstream's NOTICE-*.md lists it in a `## Skills (N)`
5
- // section. The licenses involved (MIT, Apache 2.0, PolyForm Perimeter) require
5
+ // section. The licenses involved (MIT, Apache 2.0) require
6
6
  // the notice to travel with every copy, and build-stack-plugins.mjs ships a
7
7
  // NOTICE only beside the skills that section lists, so the two records are
8
8
  // checked against each other here: lint-skills fails on a mismatch and the
@@ -158,3 +158,14 @@ export function unnamedUpstreams(externalDir) {
158
158
  }
159
159
  return out;
160
160
  }
161
+
162
+ /**
163
+ * Skills under shared/external with no `metadata.source`. Every skill that ships
164
+ * into a stack plugin states where it came from: `multi-agent-pipeline` when it
165
+ * was written here, `"<upstream> (<license>)"` when it is vendored.
166
+ */
167
+ export function sourcelessSkills(externalDir) {
168
+ return skillDirs(externalDir).filter(
169
+ (s) => !metadataSource(readFileSync(join(externalDir, s, "SKILL.md"), "utf8")),
170
+ );
171
+ }
@@ -81,7 +81,7 @@ md += `Single source of truth for skills delivered to both Claude Code (\`~/.cla
81
81
  md += `**Total:** ${total} skills (${breakdown}). Auto-generated by \`scripts/gen-skills-index.mjs\` - do not edit by hand.\n\n`;
82
82
  md += `## Directory layout\n\n`;
83
83
  md += `- **\`core/\`** - ${counts.core} \`multi-agent*\` orchestration skills that are pipeline-critical. Edits here are core-code changes.\n`;
84
- md += `- **\`external/\`** - ${counts.external} iOS / Android / generic skills imported from the upstream skill library. Mirrors of third-party guidance.\n`;
84
+ md += `- **\`external/\`** - ${counts.external} iOS / Android / generic skills that ship into the stack plugins. Each names its origin in \`metadata.source\`: \`multi-agent-pipeline\` when written here, or the upstream and license a \`NOTICE-*.md\` in this directory covers.\n`;
85
85
  md += `- Install destinations (ADR-0009): Claude Code gets NO local copy of \`external/\` - it loads those skills from the \`multi-agent-plugins\` marketplace, namespaced (\`ai-<stack>-toolkit:<name>\`); only the two compliance catalogs from \`core/\` land in \`~/.claude/skills/\`. Copilot CLI and Codex CLI receive a flat copy filtered to the enabled stacks. \`external/\` remains the single authoring source that \`build-stack-plugins.mjs\` publishes from.\n\n`;
86
86
  md += `Source layout is logical grouping only - skill discovery at runtime is unchanged.\n\n`;
87
87
  md += `## Categories\n\n`;