@moasq/siri-intents
ASiri and App Intents: AppIntents framework, App Shortcuts, voice commands, in-process intents, Shortcuts app integration. Use when adding Siri voice commands, creating App Shortcuts, or integrating with the Shortcuts app. Triggers: AppIntent, AppShortcutsProvider, Siri, voice command, shortcut.
Install
agr install @moasq/siri-intents --target claudeWrites 1 file into .claude/skills/, pinned to git-513825df.
- .claude/skills/siri-intents/SKILL.md
Document
name: "siri-intents" description: "Siri and App Intents: AppIntents framework, App Shortcuts, voice commands, in-process intents, Shortcuts app integration. Use when adding Siri voice commands, creating App Shortcuts, or integrating with the Shortcuts app. Triggers: AppIntent, AppShortcutsProvider, Siri, voice command, shortcut."
Siri Intents
SIRI VOICE COMMANDS (App Intents): FRAMEWORK: import AppIntents (iOS 16+, replaces legacy SiriKit Intents)
BASIC INTENT: struct OpenNoteIntent: AppIntent { static var title: LocalizedStringResource = "Open Note" static var description = IntentDescription("Opens a specific note in the app")
@Parameter(title: "Note Name")
var noteName: String
func perform() async throws -> some IntentResult & ProvidesDialog {
// Navigate to note or perform action
return .result(dialog: "Opening \(noteName)")
}
}
APP SHORTCUTS (makes intent discoverable via Siri without user setup): struct MyAppShortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { AppShortcut( intent: OpenNoteIntent(), phrases: ["Open (.$noteName) in (.applicationName)", "Show note (.$noteName)"], shortTitle: "Open Note", systemImageName: "note.text" ) } }
ENTITLEMENT: Add com.apple.developer.siri entitlement (CONFIG_CHANGES entitlements key). NO SEPARATE TARGET: App Intents run in-process — no extension target needed. DONATION: AppShortcutsProvider automatically donates shortcuts to Siri.
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-513825df67472026-07-31