@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.
- package/CHANGELOG.md +27 -0
- package/LICENSE +0 -10
- package/docs/facts.json +1 -1
- package/manifest.json +328 -329
- package/package.json +2 -2
- package/pipeline/multi-agent-refs/features/design-conformance.md +62 -64
- package/pipeline/scripts/_notices.mjs +12 -1
- package/pipeline/scripts/gen-skills-index.mjs +1 -1
- package/pipeline/skills/.skill-manifest.json +106 -106
- package/pipeline/skills/shared/README.md +71 -71
- package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +1 -0
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +373 -381
- package/pipeline/skills/shared/external/alarmkit/evals/evals.json +23 -18
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +328 -378
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +2 -0
- package/pipeline/skills/shared/external/android-performance/SKILL.md +2 -0
- package/pipeline/skills/shared/external/android-security/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-clips/SKILL.md +260 -160
- package/pipeline/skills/shared/external/app-clips/evals/evals.json +27 -27
- package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +150 -83
- package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +135 -83
- package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +143 -85
- package/pipeline/skills/shared/external/app-intents/SKILL.md +302 -304
- package/pipeline/skills/shared/external/app-intents/evals/evals.json +21 -21
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +594 -894
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +339 -277
- package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +27 -23
- package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +105 -122
- package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +143 -166
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +307 -326
- package/pipeline/skills/shared/external/app-store-review/evals/evals.json +21 -21
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +105 -67
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +114 -101
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +333 -360
- package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +24 -27
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +215 -322
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +161 -256
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +277 -387
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +196 -210
- package/pipeline/skills/shared/external/authentication/SKILL.md +265 -381
- package/pipeline/skills/shared/external/authentication/evals/evals.json +25 -25
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +133 -178
- package/pipeline/skills/shared/external/authentication/references/passkeys.md +111 -147
- package/pipeline/skills/shared/external/avkit/SKILL.md +267 -364
- package/pipeline/skills/shared/external/avkit/evals/evals.json +26 -26
- package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +375 -493
- package/pipeline/skills/shared/external/background-processing/SKILL.md +270 -382
- package/pipeline/skills/shared/external/background-processing/evals/evals.json +22 -22
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +169 -317
- package/pipeline/skills/shared/external/backlog/BACKLOG.md +1 -1
- package/pipeline/skills/shared/external/backlog/SKILL.md +56 -33
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +290 -371
- package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +24 -24
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +175 -343
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +1 -0
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +292 -381
- package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +33 -30
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +227 -355
- package/pipeline/skills/shared/external/compose-components/SKILL.md +2 -0
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +3 -2
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +2 -0
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +197 -346
- package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +19 -21
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +169 -308
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +226 -376
- package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +25 -22
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +257 -337
- package/pipeline/skills/shared/external/core-data/SKILL.md +292 -368
- package/pipeline/skills/shared/external/core-data/evals/evals.json +30 -27
- package/pipeline/skills/shared/external/core-motion/SKILL.md +235 -324
- package/pipeline/skills/shared/external/core-motion/evals/evals.json +31 -27
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +210 -310
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +292 -366
- package/pipeline/skills/shared/external/core-nfc/evals/evals.json +22 -24
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +233 -329
- package/pipeline/skills/shared/external/coreml/SKILL.md +323 -367
- package/pipeline/skills/shared/external/coreml/evals/evals.json +24 -21
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +562 -565
- package/pipeline/skills/shared/external/council/SKILL.md +1 -0
- package/pipeline/skills/shared/external/cryptokit/SKILL.md +253 -394
- package/pipeline/skills/shared/external/cryptokit/evals/evals.json +20 -18
- package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +299 -488
- package/pipeline/skills/shared/external/css-modern/SKILL.md +1 -0
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +1 -0
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +270 -323
- package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +27 -30
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +167 -315
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +140 -193
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +230 -353
- package/pipeline/skills/shared/external/device-integrity/evals/evals.json +25 -21
- package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +159 -197
- package/pipeline/skills/shared/external/energykit/SKILL.md +225 -392
- package/pipeline/skills/shared/external/energykit/evals/evals.json +29 -28
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +174 -470
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +261 -383
- package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +25 -22
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +165 -268
- package/pipeline/skills/shared/external/evidence-github/SKILL.md +2 -0
- package/pipeline/skills/shared/external/evidence-registry/SKILL.md +2 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +2 -0
- package/pipeline/skills/shared/external/healthkit/SKILL.md +252 -303
- package/pipeline/skills/shared/external/healthkit/evals/evals.json +24 -23
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +369 -523
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +233 -348
- package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +27 -22
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +199 -305
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +1 -0
- package/pipeline/skills/shared/external/humanizer/SKILL.md +1 -0
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +368 -340
- package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +28 -27
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +314 -260
- package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +97 -67
- package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +165 -101
- package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +1 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +258 -371
- package/pipeline/skills/shared/external/ios-localization/evals/evals.json +23 -23
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +283 -491
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +313 -440
- package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +1 -0
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +265 -341
- package/pipeline/skills/shared/external/ios-networking/evals/evals.json +24 -24
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +425 -652
- package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +143 -285
- package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -53
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +231 -456
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +517 -784
- package/pipeline/skills/shared/external/ios-security/SKILL.md +2 -0
- package/pipeline/skills/shared/external/ios-simulator/SKILL.md +265 -393
- package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +21 -21
- package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +177 -270
- package/pipeline/skills/shared/external/live-activities/SKILL.md +318 -360
- package/pipeline/skills/shared/external/live-activities/evals/evals.json +21 -21
- package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +478 -710
- package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +91 -283
- package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +119 -151
- package/pipeline/skills/shared/external/localization-reuse-map/reference/publish-and-snapshot.md +60 -90
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +119 -156
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-artifact.py +726 -787
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/build-spreadsheet.py +253 -288
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-annotations.py +243 -304
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/fetch-legacy-labels.py +88 -104
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/publish-confluence.py +181 -235
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-key-shots.py +198 -263
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/render-overlay.py +461 -466
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-legacy-values.py +145 -151
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +123 -141
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/scan-screen-keys.py +146 -157
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/snapshot-resources.sh +22 -19
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/verify-map.py +156 -140
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +295 -267
- package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +28 -24
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +378 -532
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +397 -499
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +165 -348
- package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +26 -23
- package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +123 -130
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +189 -315
- package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +22 -21
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +181 -270
- package/pipeline/skills/shared/external/natural-language/SKILL.md +188 -340
- package/pipeline/skills/shared/external/natural-language/evals/evals.json +21 -21
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +171 -225
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +1 -0
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +258 -392
- package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +30 -29
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +164 -231
- package/pipeline/skills/shared/external/pdfkit/SKILL.md +312 -344
- package/pipeline/skills/shared/external/pdfkit/evals/evals.json +19 -19
- package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +413 -624
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +242 -358
- package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +25 -21
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +161 -226
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +282 -400
- package/pipeline/skills/shared/external/permissionkit/evals/evals.json +27 -30
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +237 -350
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +276 -325
- package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +299 -545
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +344 -588
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +316 -660
- package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +270 -416
- package/pipeline/skills/shared/external/play-store-review/SKILL.md +2 -0
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +312 -340
- package/pipeline/skills/shared/external/push-notifications/evals/evals.json +27 -26
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +328 -485
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +327 -560
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +1 -0
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +218 -410
- package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +24 -27
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +221 -348
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +1 -0
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +2 -0
- package/pipeline/skills/shared/external/room-database/SKILL.md +2 -0
- package/pipeline/skills/shared/external/search-first/SKILL.md +1 -0
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +222 -393
- package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +23 -24
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +280 -420
- package/pipeline/skills/shared/external/signal-community/SKILL.md +2 -0
- package/pipeline/skills/shared/external/skill-creator/SKILL.md +80 -41
- package/pipeline/skills/shared/external/skill-creator/audit.md +63 -59
- package/pipeline/skills/shared/external/skill-creator/checklist.md +28 -20
- package/pipeline/skills/shared/external/skill-creator/examples.md +40 -40
- package/pipeline/skills/shared/external/skill-creator/label-check.md +48 -36
- package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +91 -100
- package/pipeline/skills/shared/external/skill-creator/template.md +51 -39
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +217 -421
- package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +23 -26
- package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +133 -125
- package/pipeline/skills/shared/external/storekit/SKILL.md +228 -204
- package/pipeline/skills/shared/external/storekit/evals/evals.json +27 -24
- package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +98 -109
- package/pipeline/skills/shared/external/storekit/references/core-patterns.md +298 -242
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +356 -649
- package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +274 -399
- package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +22 -24
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +107 -108
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +93 -165
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +99 -137
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +77 -120
- package/pipeline/skills/shared/external/swift-architecture/SKILL.md +334 -350
- package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +22 -22
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +208 -394
- package/pipeline/skills/shared/external/swift-charts/evals/evals.json +27 -30
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +351 -762
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +339 -343
- package/pipeline/skills/shared/external/swift-codable/evals/evals.json +20 -20
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +303 -351
- package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +27 -24
- package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +65 -80
- package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +48 -84
- package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +134 -79
- package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +145 -167
- package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +62 -50
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +92 -121
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +177 -241
- package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +258 -234
- package/pipeline/skills/shared/external/swift-language/SKILL.md +342 -382
- package/pipeline/skills/shared/external/swift-language/evals/evals.json +24 -27
- package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +79 -56
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +297 -340
- package/pipeline/skills/shared/external/swift-security/SKILL.md +180 -161
- package/pipeline/skills/shared/external/swift-security/evals/evals.json +25 -25
- package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +314 -469
- package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +408 -476
- package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +260 -530
- package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +270 -477
- package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +573 -571
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +370 -441
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +332 -433
- package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +346 -468
- package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +352 -472
- package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +431 -432
- package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +328 -425
- package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +341 -579
- package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +396 -457
- package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +354 -614
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +188 -175
- package/pipeline/skills/shared/external/swift-testing/evals/evals.json +26 -24
- package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +80 -84
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +317 -433
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +392 -256
- package/pipeline/skills/shared/external/swiftdata/evals/evals.json +24 -24
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +206 -402
- package/pipeline/skills/shared/external/swiftdata/references/indexing.md +59 -52
- package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +57 -33
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +354 -747
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +300 -508
- package/pipeline/skills/shared/external/swiftlint/SKILL.md +175 -226
- package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +141 -208
- package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +100 -109
- package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +159 -179
- package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +383 -18
- package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +143 -229
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +283 -366
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +396 -608
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +336 -385
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +239 -349
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +228 -310
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +260 -249
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +92 -74
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +112 -177
- package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +61 -64
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +94 -134
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +193 -225
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +173 -327
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +193 -168
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +127 -150
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +132 -133
- package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +152 -117
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +106 -140
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +316 -252
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +341 -332
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +547 -854
- package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +485 -537
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +417 -499
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +213 -376
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +86 -175
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +89 -195
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +95 -182
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +71 -149
- package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +21 -27
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +303 -295
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +204 -387
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +469 -683
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +140 -186
- package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +75 -86
- package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +63 -60
- package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +69 -137
- package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +95 -67
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +1 -0
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +1 -0
- package/pipeline/skills/shared/external/tipkit/SKILL.md +220 -335
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +356 -494
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +1 -0
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +260 -375
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +393 -515
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +363 -539
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +1 -0
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +152 -310
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +288 -407
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-testing/SKILL.md +1 -0
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +216 -288
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +414 -719
- 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.
|
|
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
|
|
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
|
-
|
|
16
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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.
|
|
53
|
-
|
|
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
|
-
|
|
74
|
+
checked again and again, stopping once **two consecutive attempts find nothing new** there.
|
|
78
75
|
|
|
79
|
-
- Soft cap:
|
|
80
|
-
component with a `did-not-converge` warning.
|
|
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
|
|
85
|
-
|
|
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+]` |
|
|
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.
|
|
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).
|
|
105
|
-
|
|
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
|
|
108
|
-
bar
|
|
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.
|
|
116
|
-
>
|
|
117
|
-
>
|
|
118
|
-
>
|
|
119
|
-
> it, the rail
|
|
120
|
-
>
|
|
121
|
-
>
|
|
122
|
-
>
|
|
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
|
-
|
|
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
|
|
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
|
-
>
|
|
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
|
|
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,
|
|
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,
|
|
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]`
|
|
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+]` -
|
|
218
|
-
and
|
|
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**:
|
|
225
|
-
> the design frame
|
|
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
|
|
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
|
-
>
|
|
262
|
-
>
|
|
263
|
-
> implementation
|
|
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
|
-
> - **
|
|
269
|
-
>
|
|
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
|
-
> - **
|
|
272
|
-
>
|
|
273
|
-
>
|
|
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
|
-
> - **
|
|
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` (
|
|
285
|
-
|
|
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** -
|
|
295
|
-
|
|
296
|
-
colour, background colour, border width
|
|
297
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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`;
|