Help us improve
Share bugs, ideas, or general feedback.
From beagle-ios
Reviews App Intents code for intent structure, entities, shortcuts, parameters, perform() timeouts, entity queries, phrases, and best practices like @MainActor and localization. Use with import AppIntents or @AppIntent.
npx claudepluginhub existential-birds/beagle --plugin beagle-iosHow this skill is triggered — by the user, by Claude, or both
Slash command
/beagle-ios:app-intents-code-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Issue Type | Reference |
Guides designing iOS/macOS features App Intent-first to reuse logic across Siri/Shortcuts, widgets, and SwiftUI views; avoids UI duplication.
Implements App Intents for Siri, Shortcuts, Spotlight, widgets, Control Center, and Apple Intelligence on iOS. Covers AppIntent, AppEntity, EntityQuery, AppShortcutsProvider, IndexedEntity, and assistant schemas.
Designs and implements App Intents, AppEntity, EntityQuery, and App Shortcuts for iOS system surfaces like Shortcuts, Siri, Spotlight, widgets, and controls.
Share bugs, ideas, or general feedback.
| Issue Type | Reference |
|---|---|
| AppIntent protocol, perform(), return types | references/intent-structure.md |
| AppEntity, EntityQuery, identifiers | references/entities.md |
| AppShortcutsProvider, phrases, discovery | references/shortcuts.md |
| @Parameter, validation, dynamic options | references/parameters.md |
perform() marked with @MainActor if accessing UI/main thread resourcesperform() completes within 30-second timeout (no heavy downloads/processing)CustomLocalizedStringResourceConvertibleEntityQuery.entities(for:) handles missing identifiers gracefullyEntityStringQuery used if Siri voice input needed (not plain EntityQuery)suggestedEntities() returns reasonable defaults for disambiguationAppShortcut phrases include .applicationName parameter@Parameter has sensible defaults or uses requestValue()@IntentParameterDependency not used on iOS 16 targets (crashes)AppShortcuts.strings, not Localizable.stringsisDiscoverable = false for internal/widget-only intentsperform() handle timeout limits for long-running operations?@Dependency injection in Siri context)?persistentModelID, not directly?