@mmerterden/multi-agent-pipeline 20.15.0 → 20.16.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 (33) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/docs/facts.json +5 -4
  3. package/install/catalog-history.json +1 -1
  4. package/install/claude.mjs +5 -1
  5. package/install/codex.mjs +4 -3
  6. package/manifest.json +36 -30
  7. package/package.json +1 -1
  8. package/pipeline/commands/multi-agent/review/SKILL.md +42 -1
  9. package/pipeline/multi-agent-refs/features/review-decision.md +2 -1
  10. package/pipeline/multi-agent-refs/features/valven.md +83 -0
  11. package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -0
  12. package/pipeline/multi-agent-refs/phases/phase-1-plan.md +2 -0
  13. package/pipeline/multi-agent-refs/phases/phase-2-dev.md +2 -4
  14. package/pipeline/multi-agent-refs/phases/phase-3-review.md +5 -5
  15. package/pipeline/multi-agent-refs/phases/phase-4-commit.md +1 -0
  16. package/pipeline/schemas/agent-state.schema.json +16 -0
  17. package/pipeline/schemas/prefs.schema.json +21 -0
  18. package/pipeline/scripts/gen-skills-index.mjs +2 -1
  19. package/pipeline/scripts/phase-tracker.sh +8 -0
  20. package/pipeline/scripts/pre-push-check.sh +3 -1
  21. package/pipeline/scripts/review-decision-gate.mjs +1 -1
  22. package/pipeline/scripts/uninstall.mjs +5 -1
  23. package/pipeline/scripts/valven-gate.mjs +788 -0
  24. package/pipeline/scripts/valven-port.mjs +169 -0
  25. package/pipeline/scripts/valven-split.mjs +341 -0
  26. package/pipeline/scripts/verify-citations.mjs +14 -1
  27. package/pipeline/skills/.skill-manifest.json +7 -3
  28. package/pipeline/skills/.skills-index.json +104 -71
  29. package/pipeline/skills/shared/README.md +4 -3
  30. package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +2 -0
  31. package/pipeline/skills/shared/core/valven-rules/SKILL.md +62 -0
  32. package/pipeline/skills/shared/core/valven-rules/references/rules.yml +140 -0
  33. package/pipeline/skills/skills-index.md +74 -71
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "skillCount": 218,
3
+ "skillCount": 221,
4
4
  "entries": [
5
5
  {
6
6
  "name": "accessibility-compliance-accessibility-audit",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  {
28
28
  "name": "alarmkit",
29
- "description": "Implement AlarmKit alarms and countdown timers for iOS and iPadOS with Lock Screen, Dynamic Island, StandBy, and paired Apple Watch system UI. Covers AlarmManager scheduling, AlarmAttributes and AlarmPresentation, AlarmButton stop and snooze actions, authorization, state observation, countdown widge",
29
+ "description": "AlarmKit alarms and countdown timers on iOS and iPadOS 26: AlarmManager scheduling and authorization, AlarmAttributes, AlarmPresentation, AlarmButton stop and snooze, state observation, and the widget extension for countdown Live Activity UI on the Lock Screen, Dynamic Island, StandBy and paired App",
30
30
  "platform": null,
31
31
  "group": "external",
32
32
  "plugin": "ai-ios-toolkit",
@@ -147,7 +147,7 @@
147
147
  },
148
148
  {
149
149
  "name": "app-clips",
150
- "description": "Build iOS App Clips with invocation URLs, App Clip Codes, NFC, QR codes, Safari banners, Maps, Messages, target setup, App Store Connect experiences, size/capability constraints, NSUserActivity routing, SKOverlay promotion, App Group/keychain handoff, ephemeral notifications, location confirmation, ",
150
+ "description": "iOS App Clips: target setup, invocation from NFC, App Clip Codes, QR, Messages, Maps and Safari banners, App Store Connect experiences, size limits and capability constraints, NSUserActivity routing, SKOverlay promotion, App Group or keychain handoff, ephemeral notifications, location confirmation, ",
151
151
  "platform": null,
152
152
  "group": "external",
153
153
  "plugin": "ai-ios-toolkit",
@@ -158,7 +158,7 @@
158
158
  },
159
159
  {
160
160
  "name": "app-intents",
161
- "description": "Implement App Intents for Siri, Shortcuts, Spotlight, widgets, Control Center, and Apple Intelligence on iOS. Covers AppIntent actions, AppEntity and EntityQuery models, AppShortcutsProvider phrases, IndexedEntity Spotlight indexing, WidgetConfigurationIntent, SnippetIntent, and assistant schemas. U",
161
+ "description": "App Intents for Siri, Shortcuts, Spotlight, widgets, Control Center and Apple Intelligence: AppIntent actions, AppEntity and EntityQuery, AppShortcutsProvider phrases, IndexedEntity indexing, WidgetConfigurationIntent, SnippetIntent, assistant schemas. Use when building or reviewing code that expose",
162
162
  "platform": null,
163
163
  "group": "external",
164
164
  "plugin": "ai-ios-toolkit",
@@ -180,7 +180,7 @@
180
180
  },
181
181
  {
182
182
  "name": "app-store-optimization",
183
- "description": "Optimize App Store product pages for search visibility and conversion. Use for App Store Optimization (ASO), keyword research, app name/subtitle/keyword-field strategy, conversion-focused descriptions and promotional text, screenshot captions and ordering, Custom Product Pages with assigned search k",
183
+ "description": "App Store Optimization (ASO) for ranking and conversion: keyword research; app name, subtitle and 100-byte keyword field; description and promotional text that convert; screenshot captions and slot order; Custom Product Pages and their assigned search keywords; In-App Events; Product Page Optimizati",
184
184
  "platform": null,
185
185
  "group": "external",
186
186
  "plugin": "ai-ios-toolkit",
@@ -191,7 +191,7 @@
191
191
  },
192
192
  {
193
193
  "name": "app-store-review",
194
- "description": "Prepare for App Store review and prevent rejections. Covers App Store review guidelines, app rejection reasons, PrivacyInfo.xcprivacy privacy manifest requirements, required API reason codes, in-app purchase IAP and StoreKit rules, App Store Guidelines compliance, ATT App Tracking Transparency, EU D",
194
+ "description": "App Store submission readiness and rejection prevention: Review Guidelines 2.1, 2.3, 2.5.1, 3.1.1, 4.2 and 5.1.2, PrivacyInfo.xcprivacy manifests and required-reason codes, IAP and StoreKit rules, ATT consent, EU DMA distribution, entitlements and usage strings, metadata limits, screenshots, TestFli",
195
195
  "platform": null,
196
196
  "group": "external",
197
197
  "plugin": "ai-ios-toolkit",
@@ -213,7 +213,7 @@
213
213
  },
214
214
  {
215
215
  "name": "apple-on-device-ai",
216
- "description": "Integrate on-device AI using Foundation Models framework, Core ML, and open-source LLM runtimes on Apple Silicon. Covers Foundation Models (LanguageModelSession, @Generable, @Guide, SystemLanguageModel, structured output, tool calling), Core ML (coremltools, model conversion, quantization, palettiza",
216
+ "description": "On-device AI on Apple hardware: Foundation Models (SystemLanguageModel, LanguageModelSession, @Generable and @Guide structured output, tool calling), coremltools conversion, quantization, palettization, pruning, Neural Engine, MLX Swift transformer inference on unified memory, llama.cpp GGUF models.",
217
217
  "platform": null,
218
218
  "group": "external",
219
219
  "plugin": "ai-ios-toolkit",
@@ -235,7 +235,7 @@
235
235
  },
236
236
  {
237
237
  "name": "authentication",
238
- "description": "Implement iOS authentication flows with AuthenticationServices and LocalAuthentication. Use when building Sign in with Apple, passkey/WebAuthn registration or sign-in with ASAuthorizationPlatformPublicKeyCredentialProvider, ASAuthorizationController credential state and revocation handling, ASWebAut",
238
+ "description": "iOS sign-in with AuthenticationServices and LocalAuthentication: Sign in with Apple, passkey (WebAuthn) sign-up and login via ASAuthorizationPlatformPublicKeyCredentialProvider, ASAuthorizationController credential state and revocation, ASWebAuthenticationSession OAuth, third-party login, Password A",
239
239
  "platform": null,
240
240
  "group": "external",
241
241
  "plugin": "ai-ios-toolkit",
@@ -246,7 +246,7 @@
246
246
  },
247
247
  {
248
248
  "name": "avkit",
249
- "description": "Create media playback experiences using AVKit. Use when adding video players with AVPlayerViewController, enabling Picture-in-Picture, routing media with AirPlay, using SwiftUI VideoPlayer views, configuring transport controls, displaying subtitles and closed captions, or integrating AVFoundation pl",
249
+ "description": "AVKit playback UI: AVPlayerViewController, SwiftUI VideoPlayer, Picture-in-Picture, AirPlay routing, transport controls, subtitles and closed captions, audio session and background mode, AVFoundation playback in system UI. Use when building a video player or adding PiP, AirPlay, transport controls o",
250
250
  "platform": null,
251
251
  "group": "external",
252
252
  "plugin": "ai-ios-toolkit",
@@ -257,7 +257,7 @@
257
257
  },
258
258
  {
259
259
  "name": "background-processing",
260
- "description": "Schedule and execute background work on iOS using BGTaskScheduler. Use when registering BGAppRefreshTask for short background fetches, BGProcessingTask for long-running maintenance, BGContinuedProcessingTask (iOS 26+) for foreground-started work that continues in background, background URLSession do",
260
+ "description": "iOS background work with BGTaskScheduler: BGAppRefreshTask short fetches, BGProcessingTask long maintenance, BGContinuedProcessingTask (iOS 26+) for user-started work, background URLSession transfers, silent pushes, Info.plist identifiers and modes, handler registration, expiration and completion, s",
261
261
  "platform": null,
262
262
  "group": "external",
263
263
  "plugin": "ai-ios-toolkit",
@@ -268,7 +268,7 @@
268
268
  },
269
269
  {
270
270
  "name": "backlog",
271
- "description": "The engineering backlog registry for deferred-but-approved work: each deferred job lands here with its spec, origin and unblock condition. Use when the user says 'defer it', 'add it to the list', 'later' or 'not now', asks what is on the backlog, says 'pick up {id}', or completes an item. BACKLOG.md",
271
+ "description": "Registry and routine for approved but postponed engineering work: each item keeps its full spec, origin and unblock condition, and moves through deferred, ready, in-progress and done. Use when the user postpones work ('later', 'not now', 'put it on the list', 'backlog this'), asks what is on the bac",
272
272
  "platform": null,
273
273
  "group": "external",
274
274
  "plugin": "ai-common-toolkit",
@@ -279,7 +279,7 @@
279
279
  },
280
280
  {
281
281
  "name": "callkit-voip",
282
- "description": "Implement VoIP calling with CallKit and PushKit. Use when building incoming/outgoing call flows, registering for VoIP push notifications, configuring CXProvider and CXCallController, handling call actions, coordinating audio sessions, or creating Call Directory extensions for caller ID and call bloc",
282
+ "description": "CallKit and PushKit VoIP calling: CXProvider and CXCallController, incoming and outgoing call flows, call actions, VoIP push registration and reporting, call audio sessions, Call Directory caller ID and blocking. Use when implementing VoIP calls or VoIP push handling.",
283
283
  "platform": null,
284
284
  "group": "external",
285
285
  "plugin": "ai-ios-toolkit",
@@ -312,7 +312,7 @@
312
312
  },
313
313
  {
314
314
  "name": "cloudkit-sync",
315
- "description": "Implement, review, or improve CloudKit and iCloud sync in iOS/macOS apps. Use when working with CKContainer, CKRecord, CKQuery, CKSubscription, CKSyncEngine, CKShare, NSUbiquitousKeyValueStore, or iCloud Drive file coordination; when syncing SwiftData models via ModelConfiguration with cloudKitDatab",
315
+ "description": "CloudKit and iCloud sync on iOS and macOS: CKContainer public, private and shared databases, CKRecord, CKQuery, CKSubscription, CKSyncEngine, CKShare, NSUbiquitousKeyValueStore, iCloud Drive file coordination, SwiftData sync via ModelConfiguration cloudKitDatabase, CKError handling for conflicts, ne",
316
316
  "platform": null,
317
317
  "group": "external",
318
318
  "plugin": "ai-ios-toolkit",
@@ -356,7 +356,7 @@
356
356
  },
357
357
  {
358
358
  "name": "contacts-framework",
359
- "description": "Read, create, update, and pick contacts using the Contacts and ContactsUI frameworks. Use when fetching contact data, saving new contacts, wrapping CNContactPickerViewController in SwiftUI, handling contact permissions, or working with CNContactStore fetch and save requests.",
359
+ "description": "Contacts and ContactsUI: CNContactStore authorization and limited access, fetch and save requests, creating, updating and deleting contacts, CNContactPickerViewController in SwiftUI, change observation. Use when fetching, saving or picking contacts or handling permissions.",
360
360
  "platform": null,
361
361
  "group": "external",
362
362
  "plugin": "ai-ios-toolkit",
@@ -378,7 +378,7 @@
378
378
  },
379
379
  {
380
380
  "name": "core-bluetooth",
381
- "description": "Build direct Bluetooth Low Energy workflows with Core Bluetooth. Use when implementing BLE central or peripheral GATT communication, scanning or connecting with CBCentralManager, discovering services and characteristics, reading/writing/subscribing with CBPeripheral, publishing local services with C",
381
+ "description": "Direct BLE with Core Bluetooth: central and peripheral GATT communication, CBCentralManager scanning and connecting, service and characteristic discovery, CBPeripheral reads, writes and subscriptions, CBPeripheralManager local services, Bluetooth authorization, background BLE modes, state restoratio",
382
382
  "platform": null,
383
383
  "group": "external",
384
384
  "plugin": "ai-ios-toolkit",
@@ -389,7 +389,7 @@
389
389
  },
390
390
  {
391
391
  "name": "core-data",
392
- "description": "Build, review, or improve Core Data persistence in apps that have not adopted SwiftData. Use when working with NSManagedObject subclasses, NSFetchedResultsController for list-driven UI, NSBatchInsertRequest / NSBatchDeleteRequest / NSBatchUpdateRequest for bulk operations, NSPersistentHistoryChangeR",
392
+ "description": "Create, audit or refine Core Data persistence for apps still on Core Data rather than SwiftData: stack setup, NSManagedObject subclasses, NSFetchedResultsController for list UIs, NSBatchInsertRequest, NSBatchDeleteRequest and NSBatchUpdateRequest bulk work, NSPersistentHistoryChangeRequest history t",
393
393
  "platform": null,
394
394
  "group": "external",
395
395
  "plugin": "ai-ios-toolkit",
@@ -400,7 +400,7 @@
400
400
  },
401
401
  {
402
402
  "name": "core-motion",
403
- "description": "Access Core Motion accelerometer, gyroscope, magnetometer, device-motion, pedometer, activity-recognition, altitude, headphone motion, batched high-frequency workout motion, and water-submersion/depth data. Use when reading device sensors, counting steps, detecting walking/running/driving/cycling, t",
403
+ "description": "Core Motion on iOS and watchOS: accelerometer, gyroscope, magnetometer, fused device motion and reference frames, CMPedometer steps, distance and floors, activity recognition, barometric and absolute altitude, AirPods head tracking, batched high-rate workout capture, watchOS water submersion and dep",
404
404
  "platform": null,
405
405
  "group": "external",
406
406
  "plugin": "ai-ios-toolkit",
@@ -411,7 +411,7 @@
411
411
  },
412
412
  {
413
413
  "name": "core-nfc",
414
- "description": "Read and write NFC tags using CoreNFC. Use when scanning NDEF tags, reading ISO7816/ISO15693/FeliCa/MIFARE tags, writing NDEF messages, handling NFC session lifecycle, configuring NFC entitlements, or implementing background tag reading in iOS apps.",
414
+ "description": "Core NFC on iPhone: reading and writing NDEF tags, ISO7816, ISO15693, FeliCa and MIFARE access, reader session lifecycle, NFC entitlement and Info.plist setup, background tag reading. Use when adding or reviewing NFC tag scanning or writing.",
415
415
  "platform": null,
416
416
  "group": "external",
417
417
  "plugin": "ai-ios-toolkit",
@@ -422,7 +422,7 @@
422
422
  },
423
423
  {
424
424
  "name": "coreml",
425
- "description": "Integrate Core ML models in iOS apps for on-device machine learning inference. Covers model loading (.mlmodel, .mlpackage, .mlmodelc), predictions with auto-generated classes and MLFeatureProvider, compute unit configuration (CPU, GPU, Neural Engine), MLTensor, VNCoreMLRequest, MLComputePlan, multi-",
425
+ "description": "Swift-side Core ML: loading .mlmodel, .mlpackage and .mlmodelc, predictions via generated classes and MLFeatureProvider, compute units, async and stateful prediction with MLState, MLTensor, MLMultiArray, MLComputePlan, multi-model pipelines, deployment and profiling. Use when integrating, reviewing,",
426
426
  "platform": null,
427
427
  "group": "external",
428
428
  "plugin": "ai-ios-toolkit",
@@ -444,7 +444,7 @@
444
444
  },
445
445
  {
446
446
  "name": "cryptokit",
447
- "description": "Use Apple CryptoKit for Swift cryptographic primitives. Use when hashing with SHA-2 or SHA-3, generating HMACs, encrypting with AES-GCM or ChaChaPoly, signing with P256/P384/P521/Curve25519 or ML-DSA keys, performing ECDH, HPKE, ML-KEM, or X-Wing key exchange, using Secure Enclave CryptoKit keys, or",
447
+ "description": "CryptoKit in Swift: SHA-2, SHA-3, HMAC, AES-GCM, ChaChaPoly, P256, P384, P521, Curve25519 and ML-DSA signatures, ECDH with HKDF, HPKE, ML-KEM, X-Wing, SecureEnclave.P256 signing and ECDH. Use when hashing, encrypting, signing or exchanging keys, or migrating from CommonCrypto. Not for Keychain polic",
448
448
  "platform": null,
449
449
  "group": "external",
450
450
  "plugin": "ai-ios-toolkit",
@@ -477,7 +477,7 @@
477
477
  },
478
478
  {
479
479
  "name": "debugging-instruments",
480
- "description": "Debug iOS apps and profile performance using LLDB, Memory Graph Debugger, and Instruments. Use when diagnosing crashes, memory leaks, retain cycles, main thread hangs, slow rendering, build failures, or when profiling CPU, memory, energy, and network usage.",
480
+ "description": "Xcode debugging and profiling: LLDB, Memory Graph Debugger, Instruments, crashes, leaks and retain cycles, main-thread hangs, slow rendering, build failures, CPU, memory, energy and network profiling. Use when debugging or profiling an iOS app.",
481
481
  "platform": null,
482
482
  "group": "external",
483
483
  "plugin": "ai-ios-toolkit",
@@ -499,7 +499,7 @@
499
499
  },
500
500
  {
501
501
  "name": "device-integrity",
502
- "description": "Verify device legitimacy and app integrity using DeviceCheck (DCDevice per-device bits) and App Attest (DCAppAttestService key generation, attestation, and assertion flows). Use when implementing fraud prevention, detecting compromised devices, validating app authenticity with Apple's servers, prote",
502
+ "description": "DeviceCheck and App Attest: DCDevice tokens and per-device bits, DCAppAttestService key generation, attestation and assertions. Use when adding fraud prevention, detecting compromised devices, validating app authenticity with Apple's servers, protecting sensitive endpoints with attested requests, or",
503
503
  "platform": null,
504
504
  "group": "external",
505
505
  "plugin": "ai-ios-toolkit",
@@ -521,7 +521,7 @@
521
521
  },
522
522
  {
523
523
  "name": "energykit",
524
- "description": "Query grid electricity forecasts and submit load events using EnergyKit to help users optimize home electricity usage. Use when building smart home apps, EV charger controls, HVAC scheduling, or energy management dashboards that guide users to use power during cleaner or cheaper grid periods.",
524
+ "description": "EnergyKit on iOS 26: grid electricity forecasts via ElectricityGuidance, EnergyVenue, EV and HVAC load events, ElectricityInsightService history. Use when building smart home, EV charging, HVAC scheduling or energy dashboard features that shift home power use to cleaner or cheaper grid periods.",
525
525
  "platform": null,
526
526
  "group": "external",
527
527
  "plugin": "ai-ios-toolkit",
@@ -532,7 +532,7 @@
532
532
  },
533
533
  {
534
534
  "name": "eventkit-calendar",
535
- "description": "Create, read, and manage calendar events and reminders using EventKit and EventKitUI. Use when adding events to the user's calendar, creating reminders, setting recurrence rules, requesting calendar or reminders access, presenting event editors, choosing calendars, handling alarms, observing calenda",
535
+ "description": "EventKit and EventKitUI: adding events to the user's calendar, creating reminders, recurrence rules, calendar or reminders access, event editors, calendar choosers, alarms, change observation, with EKEventStore, EKEvent, EKReminder, EKCalendar, EKRecurrenceRule, EKEventEditViewController, EKCalendar",
536
536
  "platform": null,
537
537
  "group": "external",
538
538
  "plugin": "ai-ios-toolkit",
@@ -620,7 +620,7 @@
620
620
  },
621
621
  {
622
622
  "name": "healthkit",
623
- "description": "Read, write, and query Apple Health data using HealthKit. Covers HKHealthStore authorization, sample queries, statistics queries, statistics collection queries for charts, saving HKQuantitySample data, background delivery, workout sessions with HKWorkoutSession and HKLiveWorkoutBuilder, HKUnit, and ",
623
+ "description": "HealthKit on iOS, iPadOS, watchOS and visionOS: HKHealthStore authorization, sample, statistics and chart-ready collection queries, saving HKQuantitySample values, background delivery, live workouts (HKWorkoutSession, HKLiveWorkoutBuilder), HKUnit, HKQuantityTypeIdentifier. Use when reading, writing",
624
624
  "platform": null,
625
625
  "group": "external",
626
626
  "plugin": "ai-ios-toolkit",
@@ -730,7 +730,7 @@
730
730
  },
731
731
  {
732
732
  "name": "homekit-matter",
733
- "description": "Control smart-home accessories and commission Matter devices using HomeKit and MatterSupport. Use when managing homes/rooms/accessories, creating action sets or triggers, reading accessory characteristics, onboarding Matter devices, or building a third-party smart-home ecosystem app.",
733
+ "description": "HomeKit and MatterSupport: managing homes, rooms, zones and accessories, reading characteristics, action sets and triggers, Matter commissioning, MatterSupport extensions. Use when controlling smart-home accessories, onboarding Matter devices or building a third-party ecosystem app.",
734
734
  "platform": null,
735
735
  "group": "external",
736
736
  "plugin": "ai-ios-toolkit",
@@ -763,7 +763,7 @@
763
763
  },
764
764
  {
765
765
  "name": "ios-accessibility",
766
- "description": "Implements, reviews, or improves accessibility in iOS/macOS apps with SwiftUI, UIKit, and AppKit. Use when adding VoiceOver, Voice Control, Switch Control, or Full Keyboard Access support; when working with accessibility labels, hints, values, traits, accessibilityInputLabels, NSAccessibility, group",
766
+ "description": "VoiceOver, Voice Control, Switch Control and Full Keyboard Access in SwiftUI, UIKit and AppKit on iOS, iPadOS and macOS: labels, hints, values, traits, accessibilityInputLabels, NSAccessibility, grouping and reading order, @AccessibilityFocusState focus restore, Dynamic Type and @ScaledMetric, rotor",
767
767
  "platform": null,
768
768
  "group": "external",
769
769
  "plugin": "ai-ios-toolkit",
@@ -796,7 +796,7 @@
796
796
  },
797
797
  {
798
798
  "name": "ios-localization",
799
- "description": "Implement, review, or improve localization and internationalization in iOS/macOS apps - String Catalogs (.xcstrings), generated localizable symbols, stable key naming, LocalizedStringKey, LocalizedStringResource, pluralization, FormatStyle for numbers/dates/measurements, right-to-left layout, Dyna",
799
+ "description": "i18n and l10n for iOS and macOS: String Catalogs (.xcstrings), generated localizable symbols with compile-time-checked keys, stable key naming, LocalizedStringKey, LocalizedStringResource, String(localized:), plurals, device variations, locale-aware FormatStyle for numbers, dates, currency and measu",
800
800
  "platform": null,
801
801
  "group": "external",
802
802
  "plugin": "ai-ios-toolkit",
@@ -818,7 +818,7 @@
818
818
  },
819
819
  {
820
820
  "name": "ios-networking",
821
- "description": "Build, review, or improve networking code in iOS/macOS apps using URLSession with async/await, structured concurrency, and modern Swift patterns. Use when working with REST APIs, downloading files, uploading data, WebSocket connections, pagination, retry logic, request middleware, caching, backgroun",
821
+ "description": "URLSession with async/await and structured concurrency on iOS and macOS: HTTP requests, REST API clients, response validation, error handling, retry with backoff, middleware and token refresh, pagination, caching, downloads, uploads, background transfers, WebSockets, NWPathMonitor reachability, Netw",
822
822
  "platform": null,
823
823
  "group": "external",
824
824
  "plugin": "ai-ios-toolkit",
@@ -840,7 +840,7 @@
840
840
  },
841
841
  {
842
842
  "name": "ios-simulator",
843
- "description": "Manages iOS Simulator devices and tests app behaviour with xcrun simctl: device lifecycle, app install and launch, push notification and location simulation, privacy permission grants, deep links via openurl, status bar overrides, screenshot and video capture, os_log streaming, app container paths, ",
843
+ "description": "xcrun simctl from the command line: create, boot, erase and delete devices, install and launch apps, simulated pushes without APNs, GPS locations and routes, granting or resetting privacy permissions, openurl deep links, status bar overrides, screenshots and video, os_log streaming, app containers, ",
844
844
  "platform": null,
845
845
  "group": "external",
846
846
  "plugin": "ai-ios-toolkit",
@@ -862,7 +862,7 @@
862
862
  },
863
863
  {
864
864
  "name": "live-activities",
865
- "description": "Implement, review, or improve Live Activities and Dynamic Island experiences in iOS apps using ActivityKit. Use when building real-time updating widgets for the Lock Screen and Dynamic Island - delivery tracking, sports scores, ride-sharing status, workout timers, media playback, or any time-sensi",
865
+ "description": "ActivityKit Live Activities on the Lock Screen and Dynamic Island: ActivityAttributes and ContentState, request/update/end lifecycle, compact, minimal and expanded layouts, stale dates, push-to-update, push-to-start and channel pushes, update tokens, scheduled starts, ActivityStyle. Use when buildin",
866
866
  "platform": null,
867
867
  "group": "external",
868
868
  "plugin": "ai-ios-toolkit",
@@ -873,7 +873,7 @@
873
873
  },
874
874
  {
875
875
  "name": "localization-reuse-map",
876
- "description": "Builds a per-screen localization-reuse map for one redesigned screen (iOS, Android, web): pairs each UI element's new key and values with the legacy key per platform and the live CMS copy from Figma Dev Mode annotations, recommends reuse, review or new for the content team to confirm, renders a key-",
876
+ "description": "Localization reuse map for one redesigned screen on iOS, Android and web: new keys set against each platform's legacy key, legacy values and the Figma-annotation CMS copy, with a reuse / review / new verdict, a key overlay, per-key shots, a CMS import sheet and a Confluence page. Use it to map old k",
877
877
  "platform": null,
878
878
  "group": "external",
879
879
  "plugin": "ai-common-toolkit",
@@ -906,7 +906,7 @@
906
906
  },
907
907
  {
908
908
  "name": "mapkit-location",
909
- "description": "Implement, review, or improve maps and location features in iOS/macOS apps using MapKit and CoreLocation. Use when working with Map views, annotations, markers, polylines, user location tracking, geocoding, reverse geocoding, search/autocomplete, directions and routes, geofencing, region monitoring,",
909
+ "description": "MapKit and CoreLocation on iOS and macOS: SwiftUI Map, markers, annotations, polylines and overlays, camera control, user location tracking, CLLocationUpdate streams, location authorization, geocoding and reverse geocoding, search and autocomplete, directions, routes and ETA, CLMonitor geofencing an",
910
910
  "platform": null,
911
911
  "group": "external",
912
912
  "plugin": "ai-ios-toolkit",
@@ -917,7 +917,7 @@
917
917
  },
918
918
  {
919
919
  "name": "metrickit-diagnostics",
920
- "description": "Collect and analyze on-device performance metrics and crash diagnostics using MetricKit. Use when setting up MXMetricManager, handling MXMetricPayload or MXDiagnosticPayload, processing crash/hang/disk-write diagnostics via MXCallStackTree, adding custom signpost metrics, correcting mxSignpost or ex",
920
+ "description": "MetricKit field telemetry from shipping apps: MXMetricManager subscribers, MXMetricPayload and MXDiagnosticPayload, crash, hang and disk-write call stacks in MXCallStackTree, custom mxSignpost metrics, extended launch measurement, exporting payloads to an analytics backend. Use when setting up Metri",
921
921
  "platform": null,
922
922
  "group": "external",
923
923
  "plugin": "ai-ios-toolkit",
@@ -1102,6 +1102,17 @@
1102
1102
  "triggerPaths": [],
1103
1103
  "relativePath": "shared/core/multi-agent-doctor/SKILL.md"
1104
1104
  },
1105
+ {
1106
+ "name": "multi-agent-estimate",
1107
+ "description": "Estimate new work from similar closed Jira work: a P25-P75 range per role from logged time, with the tickets behind it and the modules touched. Read-only; never a single number, none below three samples. Use when a story, analysis or request needs an effort range.",
1108
+ "platform": null,
1109
+ "group": "core",
1110
+ "plugin": null,
1111
+ "invokeAs": "multi-agent-estimate",
1112
+ "triggerKeywords": [],
1113
+ "triggerPaths": [],
1114
+ "relativePath": "shared/core/multi-agent-estimate/SKILL.md"
1115
+ },
1105
1116
  {
1106
1117
  "name": "multi-agent-feedback",
1107
1118
  "description": "Send one message to the maintainer: a bug, an idea or a question. Only the text you type is sent - no logs, no repo names, no paths. Shows the payload and asks before sending. Use when a run went wrong and the maintainer should know.",
@@ -1432,6 +1443,17 @@
1432
1443
  "triggerPaths": [],
1433
1444
  "relativePath": "shared/core/multi-agent-scan/SKILL.md"
1434
1445
  },
1446
+ {
1447
+ "name": "multi-agent-scenario-audit",
1448
+ "description": "Audit test scenarios from a CSV against the code: mark each PRESENT, PARTIAL, ABSENT or UNCLEAR, every PRESENT backed by a file:line that resolves at HEAD. Read-only. Use when a test set or acceptance list has to be checked against what the code does.",
1449
+ "platform": null,
1450
+ "group": "core",
1451
+ "plugin": null,
1452
+ "invokeAs": "multi-agent-scenario-audit",
1453
+ "triggerKeywords": [],
1454
+ "triggerPaths": [],
1455
+ "relativePath": "shared/core/multi-agent-scenario-audit/SKILL.md"
1456
+ },
1435
1457
  {
1436
1458
  "name": "multi-agent-search",
1437
1459
  "description": "Log search across every agent-log.md with smart ranking and filters. Optional --semantic flag queries the per-repo triage corpus. Use when something has to be found across past task logs.",
@@ -1621,7 +1643,7 @@
1621
1643
  },
1622
1644
  {
1623
1645
  "name": "musickit-audio",
1624
- "description": "Integrate Apple Music playback, catalog search, and Now Playing metadata using MusicKit and MediaPlayer. Use when adding music search, Apple Music subscription flows, queue management, playback controls, remote command handling, or Now Playing info to iOS apps.",
1646
+ "description": "MusicKit and MediaPlayer on iOS: Apple Music authorization, catalog search, subscription checks and offers, ApplicationMusicPlayer playback controls and queues, Now Playing info, remote commands. Use when adding Apple Music playback or Now Playing controls.",
1625
1647
  "platform": null,
1626
1648
  "group": "external",
1627
1649
  "plugin": "ai-ios-toolkit",
@@ -1632,7 +1654,7 @@
1632
1654
  },
1633
1655
  {
1634
1656
  "name": "natural-language",
1635
- "description": "Tokenize, tag, and analyze natural language text using Apple's NaturalLanguage framework and translate between languages with the Translation framework. Use when adding language identification, sentiment analysis, named entity recognition, part-of-speech tagging, text embeddings, or in-app translati",
1657
+ "description": "NaturalLanguage and Translation frameworks: tokenizing, language identification, part-of-speech tagging, named entities, sentiment, word and sentence embeddings, custom NLModel classifiers, translation sheet, TranslationSession, batch translation. Use when analyzing or translating text in-app on iOS",
1636
1658
  "platform": null,
1637
1659
  "group": "external",
1638
1660
  "plugin": "ai-ios-toolkit",
@@ -1676,7 +1698,7 @@
1676
1698
  },
1677
1699
  {
1678
1700
  "name": "passkit-wallet",
1679
- "description": "Integrate Apple Pay payments and Wallet passes using PassKit. Use when adding Apple Pay buttons, creating payment requests, handling payment authorization, adding passes to Wallet, configuring merchant capabilities, managing shipping/contact fields, or working with PKPaymentRequest, PKPaymentAuthori",
1701
+ "description": "Apple Pay and Wallet passes with PassKit: Apple Pay buttons, payment requests, authorization flow, merchant capabilities, shipping and contact fields, adding and distributing passes (PKPaymentRequest, PKPaymentButton, PKPaymentAuthorizationController, PKPass, AddPassToWalletButton, PKPassLibrary, PK",
1680
1702
  "platform": null,
1681
1703
  "group": "external",
1682
1704
  "plugin": "ai-ios-toolkit",
@@ -1687,7 +1709,7 @@
1687
1709
  },
1688
1710
  {
1689
1711
  "name": "pdfkit",
1690
- "description": "Display and manipulate PDF documents using PDFKit. Use when embedding PDFView to show PDF files, creating or modifying PDFDocument instances, adding annotations (highlights, notes, signature widgets), extracting text with PDFSelection, navigating pages, generating thumbnails, filling PDF forms, or w",
1712
+ "description": "PDFKit on iOS: PDFView display and SwiftUI wrapping, creating and editing PDFDocument and PDFPage, highlight, note, signature and form annotations, PDFSelection search and text extraction, page navigation, thumbnails, form filling, encrypted saving. Use when an app displays, searches, annotates, fil",
1691
1713
  "platform": null,
1692
1714
  "group": "external",
1693
1715
  "plugin": "ai-ios-toolkit",
@@ -1698,7 +1720,7 @@
1698
1720
  },
1699
1721
  {
1700
1722
  "name": "pencilkit-drawing",
1701
- "description": "Add Apple Pencil drawing with PKCanvasView, PKToolPicker, PKDrawing serialization/export, stroke inspection, and PencilKit/PaperKit handoffs. Use when building drawing apps, annotation features, handwriting capture, signature fields, content-version-safe ink workflows, or Apple Pencil-powered experi",
1723
+ "description": "PencilKit drawing with Apple Pencil or finger: PKCanvasView, PKToolPicker and custom items, PKDrawing persistence and export, stroke inspection and construction, content-version safe ink, SwiftUI wrapping, PaperKit handoffs. Use for drawing apps, annotation, signatures or handwriting capture on iOS,",
1702
1724
  "platform": null,
1703
1725
  "group": "external",
1704
1726
  "plugin": "ai-ios-toolkit",
@@ -1709,7 +1731,7 @@
1709
1731
  },
1710
1732
  {
1711
1733
  "name": "permissionkit",
1712
- "description": "Create child communication safety experiences using PermissionKit to request parental permission for children. Use when building apps that involve child-to-contact communication, need to check communication limits, request parent/guardian approval, or handle permission responses for minors.",
1734
+ "description": "PermissionKit parental approval for minors: CommunicationLimits handle checks, PermissionQuestion, AskCenter requests and responses, PermissionButton, AskError, pending or expired requests. Use when building child communication safety, a child asking to allow a contact, or handling approvals.",
1713
1735
  "platform": null,
1714
1736
  "group": "external",
1715
1737
  "plugin": "ai-ios-toolkit",
@@ -1720,7 +1742,7 @@
1720
1742
  },
1721
1743
  {
1722
1744
  "name": "photos-camera-media",
1723
- "description": "Implement, review, or improve photo picking, camera capture, and media handling in iOS apps using PhotoKit and AVFoundation. Use when working with PhotosPicker, PHPickerViewController, camera capture sessions (AVCaptureSession), photo library access, image loading and display, video recording, or me",
1745
+ "description": "PhotoKit and AVFoundation media on iOS: PhotosPicker and PHPickerViewController, Transferable loading of images, movies and Live Photos, photo library and camera permissions, saving to the library, AVCaptureSession photo capture and video recording, image loading, downsampling, caching and display, ",
1724
1746
  "platform": null,
1725
1747
  "group": "external",
1726
1748
  "plugin": "ai-ios-toolkit",
@@ -1742,7 +1764,7 @@
1742
1764
  },
1743
1765
  {
1744
1766
  "name": "push-notifications",
1745
- "description": "Implement, review, or debug push notifications in iOS/macOS apps - local notifications, remote (APNs) notifications, rich notifications, notification actions, silent pushes, and notification service/content extensions. Use when working with UNUserNotificationCenter, registering for remote notifica",
1767
+ "description": "UserNotifications and APNs on iOS and macOS, local and remote: permission (standard, provisional, critical), device-token registration, triggers, payloads (alert, background, mutable, localized), foreground presentation, tap handling and deep links, categories and actions, grouping, service and cont",
1746
1768
  "platform": null,
1747
1769
  "group": "external",
1748
1770
  "plugin": "ai-ios-toolkit",
@@ -1775,7 +1797,7 @@
1775
1797
  },
1776
1798
  {
1777
1799
  "name": "realitykit-ar",
1778
- "description": "Build iOS augmented reality and 3D experiences with RealityKit and ARKit. Use when adding RealityView content, loading entities or USDZ models, anchoring objects to planes or world positions, distinguishing entity hit tests from ARKit real-world raycasts, handling AR camera availability, world track",
1800
+ "description": "RealityKit and ARKit on iOS: RealityView camera content, AR camera availability and permission, entities and components, USDZ loading, plane and world anchoring, entity hit tests versus ARKit raycasts, entity gestures, per-frame scene updates, world tracking, physics, materials, performance. Use whe",
1779
1801
  "platform": null,
1780
1802
  "group": "external",
1781
1803
  "plugin": "ai-ios-toolkit",
@@ -1841,7 +1863,7 @@
1841
1863
  },
1842
1864
  {
1843
1865
  "name": "shareplay-activities",
1844
- "description": "Build shared real-time experiences using GroupActivities and SharePlay. Use when implementing shared media playback, collaborative app features, synchronized game state, or any FaceTime, Messages, AirDrop, or nearby visionOS group activity on iOS, macOS, tvOS, or visionOS.",
1866
+ "description": "GroupActivities and SharePlay on iOS, macOS, tvOS and visionOS: GroupActivity, GroupSession lifecycle, messengers, playback sync, file transfer, late joiners. Use for shared media, collaboration or synced game state over FaceTime, Messages, AirDrop or nearby sharing.",
1845
1867
  "platform": null,
1846
1868
  "group": "external",
1847
1869
  "plugin": "ai-ios-toolkit",
@@ -1863,7 +1885,7 @@
1863
1885
  },
1864
1886
  {
1865
1887
  "name": "skill-creator",
1866
- "description": "Author and refine skills for a plugin/toolkit efficiently. Use when creating a new skill, trimming or splitting an existing one, writing a skill's description, or choosing skill vs command vs agent vs CLAUDE.md. Encodes the house rules - lean SKILL.md as an index, progressive disclosure into bundled",
1888
+ "description": "House guide for authoring plugin skills: creating a new skill, trimming or splitting a bloated one, writing or sharpening a description, and choosing between a skill, slash command, subagent, CLAUDE.md entry or MCP server. Covers the lean-index SKILL.md, progressive disclosure into bundled files, th",
1867
1889
  "platform": null,
1868
1890
  "group": "external",
1869
1891
  "plugin": "ai-common-toolkit",
@@ -1874,7 +1896,7 @@
1874
1896
  },
1875
1897
  {
1876
1898
  "name": "speech-recognition",
1877
- "description": "Transcribe speech to text using Apple's Speech framework. Use when implementing live microphone transcription with AVAudioEngine, recognizing recorded audio files, handling speech and microphone authorization, choosing on-device vs server-backed SFSpeechRecognizer behavior, or adopting SpeechAnalyze",
1899
+ "description": "Speech framework speech-to-text: live microphone transcription with AVAudioEngine, recorded audio files, speech and microphone permission, on-device versus server SFSpeechRecognizer, iOS 26 SpeechAnalyzer with SpeechTranscriber, DictationTranscriber, SpeechDetector, AssetInventory and async results.",
1878
1900
  "platform": null,
1879
1901
  "group": "external",
1880
1902
  "plugin": "ai-ios-toolkit",
@@ -1896,7 +1918,7 @@
1896
1918
  },
1897
1919
  {
1898
1920
  "name": "storekit",
1899
- "description": "Implement, review, or improve in-app purchases and subscriptions using StoreKit 2. Use when building paywalls with SubscriptionStoreView or ProductView, processing transactions with Product and Transaction APIs, verifying entitlements, handling purchase flows (consumable, non-consumable, auto-renewa",
1921
+ "description": "StoreKit 2 in-app purchases and subscriptions: SubscriptionStoreView, StoreView and ProductView paywalls, consumable, non-consumable and auto-renewable purchase flows, Product and Transaction APIs, entitlement verification, subscription status and renewal, offer codes, introductory, promotional and ",
1900
1922
  "platform": null,
1901
1923
  "group": "external",
1902
1924
  "plugin": "ai-ios-toolkit",
@@ -1907,7 +1929,7 @@
1907
1929
  },
1908
1930
  {
1909
1931
  "name": "swift-api-design-guidelines",
1910
- "description": "Swift API Design Guidelines: clarity at the point of use, naming for readability over brevity, argument labels and prepositional phrases, method vs property choice, mutating/nonmutating pairs, protocol naming, generic parameter names, and documentation comment conventions. Use when naming a type, me",
1932
+ "description": "Swift API Design Guidelines: call-site clarity over brevity, argument labels and prepositions, method versus property, side-effect naming, mutating and nonmutating pairs, make factories, protocol and generic parameter names, casing, doc comments, complexity notes. Use when naming types, methods, pro",
1911
1933
  "platform": null,
1912
1934
  "group": "external",
1913
1935
  "plugin": "ai-ios-toolkit",
@@ -1918,7 +1940,7 @@
1918
1940
  },
1919
1941
  {
1920
1942
  "name": "swift-architecture",
1921
- "description": "Select, implement, or migrate between app architecture patterns for Apple platform apps. Use when choosing between MV (Model-View with @Observable), MVVM, MVI, TCA (The Composable Architecture), Clean Architecture, VIPER, or Coordinator patterns; when evaluating architecture fit for a feature's comp",
1943
+ "description": "App architecture on Apple platforms (Swift 6.3, SwiftUI, UIKit): MV with @Observable, MVVM, MVI, TCA, Clean Architecture, VIPER, Coordinator, module boundaries, dependency direction. Use when selecting, implementing or migrating between patterns, judging whether a feature's complexity justifies a he",
1922
1944
  "platform": null,
1923
1945
  "group": "external",
1924
1946
  "plugin": "ai-ios-toolkit",
@@ -1929,7 +1951,7 @@
1929
1951
  },
1930
1952
  {
1931
1953
  "name": "swift-charts",
1932
- "description": "Implement, review, or improve data visualizations using Swift Charts. Use when building bar, line, area, point, pie, donut, or iOS 26 3D charts; when adding chart selection, scrolling, annotations, axes, scales, legends, or foregroundStyle grouping; when plotting functions with BarPlot, LinePlot, Ar",
1954
+ "description": "Swift Charts: bar, line, area, point, pie, donut, iOS 26 3D charts (Chart3D, SurfacePlot), axes, scales, legends, annotations, scrolling, selection, foregroundStyle grouping, vectorized BarPlot/LinePlot/AreaPlot/PointPlot function plots, Gantt, heat maps, sparklines, grouped bars, threshold lines, s",
1933
1955
  "platform": null,
1934
1956
  "group": "external",
1935
1957
  "plugin": "ai-ios-toolkit",
@@ -1940,7 +1962,7 @@
1940
1962
  },
1941
1963
  {
1942
1964
  "name": "swift-codable",
1943
- "description": "Implement Swift Codable models for JSON and property-list encoding and decoding with JSONDecoder, JSONEncoder, CodingKeys, and custom init(from:) or encode(to:). Use when parsing API responses, remapping keys, flattening nested JSON, handling date or data decoding strategies, decoding heterogeneous ",
1965
+ "description": "Codable JSON and property-list models: JSONDecoder, JSONEncoder, CodingKeys, custom init(from:)/encode(to:), nested containers, date, data and key strategies, heterogeneous and lossy arrays, missing-key defaults. Use when parsing API responses, remapping keys, flattening nested JSON, choosing decodi",
1944
1966
  "platform": null,
1945
1967
  "group": "external",
1946
1968
  "plugin": "ai-ios-toolkit",
@@ -1951,7 +1973,7 @@
1951
1973
  },
1952
1974
  {
1953
1975
  "name": "swift-concurrency",
1954
- "description": "Swift concurrency language reference and migration: Sendable and actor-isolation diagnostics, approachable concurrency (SE-0466 default MainActor, @concurrent, nonisolated(nonsending), Task.immediate), actors, TaskGroup and the Swift 6 strict-mode migration. Use when fixing strict-concurrency errors",
1976
+ "description": "Swift 6.2+ concurrency: actor isolation, Sendable, sending, approachable concurrency (SE-0466 default MainActor, @concurrent, nonisolated(nonsending), Task.immediate), TaskGroup, cancellation, AsyncStream, bridging callbacks and GCD, Swift 6 migration. Use when answering concurrency questions, readi",
1955
1977
  "platform": null,
1956
1978
  "group": "external",
1957
1979
  "plugin": "ai-ios-toolkit",
@@ -1984,7 +2006,7 @@
1984
2006
  },
1985
2007
  {
1986
2008
  "name": "swift-formatstyle",
1987
- "description": "Format values for display using the FormatStyle protocol and its concrete types. Use when formatting numbers (integers, floating-point, decimals), currencies, percentages, dates, date ranges, relative dates, durations (Duration.TimeFormatStyle, Duration.UnitsFormatStyle), measurements, person names ",
2009
+ "description": "Display formatting with FormatStyle (iOS 15+): integers, floating point, decimals, currency, percentages, dates, date ranges, relative and anchored relative dates, durations (Duration.TimeFormatStyle, Duration.UnitsFormatStyle, iOS 16+), measurements, person names, byte counts, lists, URLs (iOS 16+)",
1988
2010
  "platform": null,
1989
2011
  "group": "external",
1990
2012
  "plugin": "ai-ios-toolkit",
@@ -1995,7 +2017,7 @@
1995
2017
  },
1996
2018
  {
1997
2019
  "name": "swift-language",
1998
- "description": "Modern Swift language patterns for code outside concurrency and SwiftUI: if/switch expressions, typed throws, result builders, property wrappers, some vs any, guard patterns, Never, Regex builders, modern collection APIs and string interpolation. Use when writing core Swift with generics, protocols,",
2020
+ "description": "Core Swift 6.3 outside concurrency and SwiftUI: if and switch expressions, typed throws, result builders, property wrappers, some vs any, guard, Never, Regex builders, collection APIs, string interpolation, @c interop, module selectors, performance attributes. Use when writing or reviewing plain Swi",
1999
2021
  "platform": null,
2000
2022
  "group": "external",
2001
2023
  "plugin": "ai-ios-toolkit",
@@ -2006,7 +2028,7 @@
2006
2028
  },
2007
2029
  {
2008
2030
  "name": "swift-security",
2009
- "description": "Use when working with iOS/macOS Keychain Services (SecItem queries, kSecClass, OSStatus errors), biometric authentication (LAContext, Face ID, Touch ID), CryptoKit (AES-GCM, ChaChaPoly, ECDSA, ECDH, HPKE, ML-KEM), Secure Enclave, secure credential storage (OAuth tokens, API keys), certificate pinnin",
2031
+ "description": "Apple client security: Keychain (SecItem, kSecClass, OSStatus, iOS, macOS), Face ID/Touch ID keychain items, CryptoKit (AES-GCM, ChaChaPoly, ECDSA, ECDH, HPKE, ML-KEM), Secure Enclave, OAuth token and API key storage, SecTrust/SPKI pinning, keychain sharing, moving secrets out of UserDefaults or pli",
2010
2032
  "platform": null,
2011
2033
  "group": "external",
2012
2034
  "plugin": "ai-ios-toolkit",
@@ -2017,7 +2039,7 @@
2017
2039
  },
2018
2040
  {
2019
2041
  "name": "swift-testing",
2020
- "description": "Writes and migrates Swift Testing framework tests with @Test, @Suite, #expect, #require, confirmation, traits, withKnownIssue, Attachment.record, processExitsWith exit tests and capture lists, Test.cancel, Issue.record warnings/manual failures, XCTest-to-Swift Testing migration, XCUITest UI-test bou",
2042
+ "description": "Writing, migrating and reviewing Swift Testing tests: @Test, @Suite, #expect, #require, confirmation, traits, withKnownIssue, Attachment.record, exit tests with processExitsWith and capture lists, Test.cancel, Issue.record warnings and manual failures, XCTest conversion (XCTUnwrap, XCTFail), mocking",
2021
2043
  "platform": null,
2022
2044
  "group": "external",
2023
2045
  "plugin": "ai-ios-toolkit",
@@ -2039,7 +2061,7 @@
2039
2061
  },
2040
2062
  {
2041
2063
  "name": "swiftdata",
2042
- "description": "Implement, review, or improve data persistence using SwiftData. Use when defining @Model classes with @Attribute, @Relationship, @Transient, @Unique, or @Index; when querying with @Query, #Predicate, FetchDescriptor, or SortDescriptor; when configuring ModelContainer and ModelContext for SwiftUI or ",
2064
+ "description": "SwiftData persistence for Apple apps: @Model classes with @Attribute, @Relationship, @Transient, #Unique and #Index; @Query, #Predicate, FetchDescriptor and SortDescriptor; ModelContainer and ModelContext setup in SwiftUI; @ModelActor background work; VersionedSchema and SchemaMigrationPlan migratio",
2043
2065
  "platform": null,
2044
2066
  "group": "external",
2045
2067
  "plugin": "ai-ios-toolkit",
@@ -2061,7 +2083,7 @@
2061
2083
  },
2062
2084
  {
2063
2085
  "name": "swiftlint",
2064
- "description": "Configures and enforces SwiftLint via build tool plugins, run scripts and CI: .swiftlint.yml rule sets, analyzer rules, baselines, autocorrect, swiftlint:disable suppressions, reporter formats, strict and lenient modes, SwiftLintBuildToolPlugin, Xcode run script phases, and rollout strategies for an",
2086
+ "description": "SwiftLint setup and enforcement: build tool and command plugins, Xcode run scripts, CI, .swiftlint.yml rule sets (default, opt-in, analyzer), baselines, --fix autocorrect, swiftlint:disable, reporters, strict/lenient modes, nested and remote configs, custom regex rules, rollout on existing code. Use",
2065
2087
  "platform": null,
2066
2088
  "group": "external",
2067
2089
  "plugin": "ai-ios-toolkit",
@@ -2072,7 +2094,7 @@
2072
2094
  },
2073
2095
  {
2074
2096
  "name": "swiftui-animation",
2075
- "description": "Implement, review, or improve SwiftUI animations and transitions. Use when adding explicit animations with withAnimation, configuring implicit animations with .animation(_:body:) or .animation(_:value:), configuring spring animations (.smooth, .snappy, .bouncy), building phase or keyframe animations",
2097
+ "description": "SwiftUI motion: withAnimation, scoped implicit .animation(_:body:) and .animation(_:value:), timing curves and springs (.smooth, .snappy, .bouncy, Spring), PhaseAnimator, KeyframeAnimator, @Animatable, matchedGeometryEffect and matchedTransitionSource zoom transitions, insertion and content transiti",
2076
2098
  "platform": null,
2077
2099
  "group": "external",
2078
2100
  "plugin": "ai-ios-toolkit",
@@ -2094,7 +2116,7 @@
2094
2116
  },
2095
2117
  {
2096
2118
  "name": "swiftui-gestures",
2097
- "description": "Implement, review, or improve SwiftUI gesture handling. Use when adding tap, long press, drag, magnify, or rotate gestures, composing gestures with simultaneously/sequenced/exclusively, managing transient state with @GestureState, resolving parent/child gesture conflicts with highPriorityGesture or ",
2119
+ "description": "SwiftUI gestures: tap, spatial tap, long press, drag, magnify, rotate, composition (simultaneously, sequenced, exclusively), @GestureState, parent/child conflicts via highPriorityGesture and simultaneousGesture, GestureMask, custom Gesture types. Use when implementing, reviewing or improving gesture",
2098
2120
  "platform": null,
2099
2121
  "group": "external",
2100
2122
  "plugin": "ai-ios-toolkit",
@@ -2105,7 +2127,7 @@
2105
2127
  },
2106
2128
  {
2107
2129
  "name": "swiftui-layout-components",
2108
- "description": "Build SwiftUI layouts using stacks, grids, lists, scroll views, forms, and controls. Covers VStack/HStack/ZStack, LazyVGrid/LazyHGrid, List with sections and swipe actions, ScrollView with ScrollPosition, Form with validation, Toggle/Picker/Slider, .searchable, and overlay patterns. Use when buildin",
2130
+ "description": "SwiftUI layouts: stacks, lazy stacks, LazyVGrid/LazyHGrid, List sections, swipe actions, ScrollView with ScrollPosition, validated Form, Toggle, Picker, Slider, .searchable, toast overlays. Use when building data-driven layouts, collection views, settings screens, search or transient overlay UI, or ",
2109
2131
  "platform": null,
2110
2132
  "group": "external",
2111
2133
  "plugin": "ai-ios-toolkit",
@@ -2116,7 +2138,7 @@
2116
2138
  },
2117
2139
  {
2118
2140
  "name": "swiftui-liquid-glass",
2119
- "description": "Implement, review, or improve SwiftUI Liquid Glass effects for iOS 26+. Covers glassEffect modifier, GlassEffectContainer, glass button styles, glass toolbar, glass tab bar, morphing transitions, translucent material, vibrancy, tinting, interactive glass, ToolbarSpacer, scrollEdgeEffectStyle, backgr",
2141
+ "description": "Liquid Glass in SwiftUI (iOS 26+): glassEffect, Glass tint/interactive variants, GlassEffectContainer, glassEffectID morphing, glassEffectUnion, GlassEffectTransition, glass and glassProminent button styles, glass toolbars and tab bars, ToolbarSpacer, scrollEdgeEffectStyle, backgroundExtensionEffect",
2120
2142
  "platform": null,
2121
2143
  "group": "external",
2122
2144
  "plugin": "ai-ios-toolkit",
@@ -2127,7 +2149,7 @@
2127
2149
  },
2128
2150
  {
2129
2151
  "name": "swiftui-navigation",
2130
- "description": "Implement SwiftUI navigation patterns including NavigationStack, NavigationSplitView, sheet presentation, tab-based navigation, and deep linking. Use when building push navigation, programmatic routing, multi-column layouts, modal sheets, tab bars, universal links, or custom URL scheme handling.",
2152
+ "description": "SwiftUI navigation: NavigationStack typed paths, routers, NavigationSplitView, sheets, TabView and Tab API, universal links, URL schemes, Handoff. Use when implementing or reviewing push or programmatic navigation, multi-column layouts, modal sheets, tab bars or deep linking.",
2131
2153
  "platform": null,
2132
2154
  "group": "external",
2133
2155
  "plugin": "ai-ios-toolkit",
@@ -2138,7 +2160,7 @@
2138
2160
  },
2139
2161
  {
2140
2162
  "name": "swiftui-patterns",
2141
- "description": "Builds SwiftUI views with MV architecture: @Observable ownership, @State/@Bindable/@Environment wiring, view decomposition, custom ViewModifiers, .task data loading, iOS 26+ APIs and Writing Tools. Use when structuring a SwiftUI app, managing state with @Observable or composing view hierarchies; for",
2163
+ "description": "SwiftUI Model-View structure: @Observable ownership, @State, @Bindable, @Environment, view decomposition, custom ViewModifiers, .task loading, iOS 26 APIs, Writing Tools. Use when structuring a SwiftUI app, managing state, composing or splitting views, or adopting iOS 26 APIs. Not for file-by-file r",
2142
2164
  "platform": null,
2143
2165
  "group": "external",
2144
2166
  "plugin": "ai-ios-toolkit",
@@ -2149,7 +2171,7 @@
2149
2171
  },
2150
2172
  {
2151
2173
  "name": "swiftui-performance",
2152
- "description": "Audit and improve SwiftUI runtime performance: slow rendering, janky scrolling, high CPU or memory, excessive view updates, layout thrash, body cost, identity churn, lazy loading, Instruments profiling. Use when diagnosing a SwiftUI performance problem; for a symptom-first audit ending in a written ",
2174
+ "description": "SwiftUI performance: slow rendering, janky scrolling, high CPU/memory, excess updates, layout thrash, costly body, identity churn, lazy loading, Observation dependencies, Instruments profiling. Use when auditing, diagnosing or improving SwiftUI performance from code or a trace. Not for report-style ",
2153
2175
  "platform": null,
2154
2176
  "group": "external",
2155
2177
  "plugin": "ai-ios-toolkit",
@@ -2193,7 +2215,7 @@
2193
2215
  },
2194
2216
  {
2195
2217
  "name": "swiftui-uikit-interop",
2196
- "description": "Bridges UIKit and SwiftUI by wrapping UIKit views and view controllers in SwiftUI with UIViewRepresentable and UIViewControllerRepresentable, embedding SwiftUI in UIKit with UIHostingController, and coordinating delegate callbacks. Use when integrating camera previews, map views, mail compose, docum",
2218
+ "description": "UIKit and SwiftUI interop: UIViewRepresentable, UIViewControllerRepresentable, UIHostingController, UIHostingConfiguration, Coordinator delegate bridging. Use when SwiftUI needs a camera preview, map view, mail compose, document scanner, PDF renderer, attributed text view or another UIKit-only or th",
2197
2219
  "platform": null,
2198
2220
  "group": "external",
2199
2221
  "plugin": "ai-ios-toolkit",
@@ -2215,7 +2237,7 @@
2215
2237
  },
2216
2238
  {
2217
2239
  "name": "swiftui-webkit",
2218
- "description": "Embeds and controls web content in SwiftUI with WebKit for SwiftUI, including WebView, WebPage, navigation policies, JavaScript execution, observable page state, link interception, local HTML or data loading, and custom URL schemes. Use when building iOS 26+ article/detail views, help centers, in-ap",
2240
+ "description": "Web content in SwiftUI with WebKit for SwiftUI: WebView, WebPage, observable page state, navigation policies, link interception, JavaScript calls, local HTML or data, custom URL schemes. Use when an iOS 26+ screen shows articles, detail pages, help centers, in-app docs or other embedded HTML, CSS an",
2219
2241
  "platform": null,
2220
2242
  "group": "external",
2221
2243
  "plugin": "ai-ios-toolkit",
@@ -2248,7 +2270,7 @@
2248
2270
  },
2249
2271
  {
2250
2272
  "name": "tipkit",
2251
- "description": "Implement, review, or improve in-app tips and onboarding using Apple's TipKit framework. Use when adding feature discovery tooltips, onboarding flows, contextual tips, first-run experiences, coach marks, or working with Tip protocol, TipView, popoverTip, tip rules, tip events, or feature education U",
2273
+ "description": "TipKit in-app tips (iOS 17+): Tip protocol, TipView, popoverTip, rules, events, TipGroup, styles, CloudKit sync. Use when building or reviewing feature-discovery tooltips, onboarding flows, first-run experiences, coach marks, contextual tips or other feature-education UI.",
2252
2274
  "platform": null,
2253
2275
  "group": "external",
2254
2276
  "plugin": "ai-ios-toolkit",
@@ -2268,9 +2290,20 @@
2268
2290
  "triggerPaths": [],
2269
2291
  "relativePath": "shared/external/typescript-patterns/SKILL.md"
2270
2292
  },
2293
+ {
2294
+ "name": "valven-rules",
2295
+ "description": "Delivery-flow rules from the metrics Valven reports: PR size, one concern per PR, tests with source, issue keys, no WIP commits, rework, PR body, small hotfixes. Use when developing, committing or reviewing a change held to these rules, or splitting a branch into stacked PRs.",
2296
+ "platform": null,
2297
+ "group": "core",
2298
+ "plugin": null,
2299
+ "invokeAs": "valven-rules",
2300
+ "triggerKeywords": [],
2301
+ "triggerPaths": [],
2302
+ "relativePath": "shared/core/valven-rules/SKILL.md"
2303
+ },
2271
2304
  {
2272
2305
  "name": "vision-framework",
2273
- "description": "Implement computer vision features including text recognition (OCR), face detection, barcode scanning, image segmentation, object tracking, and document scanning in iOS apps. Covers both the modern Swift-native Vision API (iOS 16+) and legacy VNRequest patterns, VisionKit DataScannerViewController f",
2306
+ "description": "On-device computer vision with Vision and VisionKit: OCR, face detection and landmarks, barcode and QR scanning, person and instance segmentation, object tracking, document reading and scanning, saliency, pose, Core ML inference, Swift-native (iOS 18+) and legacy VNRequest APIs, DataScannerViewContr",
2274
2307
  "platform": null,
2275
2308
  "group": "external",
2276
2309
  "plugin": "ai-ios-toolkit",
@@ -2292,7 +2325,7 @@
2292
2325
  },
2293
2326
  {
2294
2327
  "name": "weatherkit",
2295
- "description": "Fetch current, hourly, and daily weather forecasts and display required attribution using WeatherKit. Use when integrating weather data, showing forecasts, handling weather alerts, displaying Apple Weather attribution, or querying historical weather statistics in iOS apps.",
2328
+ "description": "WeatherKit on iOS: current, hourly, daily and minute forecasts, alerts, historical statistics, dataset selection, caching. Use when integrating weather data, showing forecasts, handling severe alerts or displaying the required Apple Weather attribution and legal link.",
2296
2329
  "platform": null,
2297
2330
  "group": "external",
2298
2331
  "plugin": "ai-ios-toolkit",
@@ -2336,7 +2369,7 @@
2336
2369
  },
2337
2370
  {
2338
2371
  "name": "widgetkit",
2339
- "description": "Implement, review, or improve widgets, Live Activities, and controls using WidgetKit and ActivityKit. Use when building home screen, Lock Screen, or StandBy widgets with timeline providers; when creating interactive widgets with Button/Toggle and AppIntent actions; when adding Live Activities with D",
2372
+ "description": "WidgetKit surfaces on iOS 26+: timeline-driven widgets for the Home Screen, the Lock Screen and StandBy, interactive widgets using Button or Toggle with AppIntent actions, widget views for a Live Activity (Dynamic Island compact, expanded, minimal), Control Center controls with ControlWidgetButton o",
2340
2373
  "platform": null,
2341
2374
  "group": "external",
2342
2375
  "plugin": "ai-ios-toolkit",