app-intents-code-review
SKILL.md
App Intents Code Review
Quick Reference
| 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 |
Review Checklist
-
perform()marked with@MainActorif accessing UI/main thread resources -
perform()completes within 30-second timeout (no heavy downloads/processing) - Custom errors conform to
CustomLocalizedStringResourceConvertible -
EntityQuery.entities(for:)handles missing identifiers gracefully -
EntityStringQueryused if Siri voice input needed (not plainEntityQuery) -
suggestedEntities()returns reasonable defaults for disambiguation -
AppShortcutphrases include.applicationNameparameter - Non-optional
@Parameterhas sensible defaults or usesrequestValue() -
@IntentParameterDependencynot used on iOS 16 targets (crashes) - Phrases localized in
AppShortcuts.strings, notLocalizable.strings - App Intents defined in app bundle, not Swift Package (pre-iOS 17)
-
isDiscoverable = falsefor internal/widget-only intents
When to Load References
- AppIntent protocol implementation -> intent-structure.md
- Entity queries, identifiers, Spotlight -> entities.md
- App Shortcuts, phrases, discovery -> shortcuts.md
- Parameter validation, dynamic options -> parameters.md
Review Questions
- Does
perform()handle timeout limits for long-running operations? - Are entity queries self-contained (no
@Dependencyinjection in Siri context)? - Do phrases read naturally and include the app name?
- Are SwiftData models passed by
persistentModelID, not directly? - Would migrating from SiriKit break existing user shortcuts?
Weekly Installs
29
Repository
existential-birds/beagleFirst Seen
14 days ago
Installed on
claude-code23
opencode20
antigravity19
gemini-cli19
codex19
cursor18