A
app-intents-code-review
About app-intents-code-review
A code-review skill for checking Swift App Intents implementations against guidance on intents, entities, shortcuts, and parameters. It provides targeted checklists and requires file-location and context verification before reporting findings.
Key features
- 01Review AppIntent structure and behavior
- 02Check entity queries and identifiers
- 03Inspect shortcut phrases and discovery
- 04Validate parameters and dynamic options
- 05Require location and scope verification
Use cases
- 01Review an AppIntent implementation
- 02Check Siri entity query behavior
- 03Inspect App Shortcut phrases
- 04Verify parameter defaults and validation
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ existential-birds/ beagle --skill app-intents-code-reviewAfter installing, type/app-intents-code-reviewin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/entities.mdintent-structure.mdparameters.mdshortcuts.mdDetails
From the project READMEApp 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?
Hard gates (before reporting)
Complete in order for each finding you intend to report. Do not advance until the pass condition is satisfied.
- Location artifact — The finding includes
[FILE:LINE](or a line range) copied from the current file contents; the path resolves in this repo. - Scope read — You read the full surrounding type: the
AppIntent/AppEntity/EntityQuery/AppShortcutsProvider(or equivalent) that contains the flagged code, not only a diff hunk or snippet. - Platform or integration claim (only if the finding depends on minimum iOS, Swift Package vs app target,
@IntentParameterDependencyavailability, SiriKit migration, orisDiscoverable/ extension placement) — You name one concrete artifact you inspected (for exampleIPHONEOS_DEPLOYMENT_TARGETor target membership in the Xcode project,Package.swiftplatforms, entitlements, or where the intent file lives) or you drop or downgrade the finding to an open question. - Protocol — Pre-report steps in review-verification-protocol are satisfied for this item (no finding if they are not).
Use the issue format [FILE:LINE] ISSUE_TITLE for each reported finding. Hard gate 4 is the full pre-report checklist for this skill’s review type.
Comments
Markdown supported