diff --git a/FuelBoard/SiriShortcuts.swift b/FuelBoard/SiriShortcuts.swift index a2012fa..36809af 100644 --- a/FuelBoard/SiriShortcuts.swift +++ b/FuelBoard/SiriShortcuts.swift @@ -489,19 +489,14 @@ struct FuelMessageSnippetIntent: SnippetIntent { struct FuelBoardShortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { - // Generic parameterized shortcut — matches whatever fuel word Siri - // resolves. Parameter resolution is flaky on-device ("cheapest diesel" - // matched, "cheapest unleaded" didn't), which is why the fixed-fuel - // entries below carry the fuel word as LITERAL phrase text. - AppShortcut( - intent: CheapestFuelIntent(), - phrases: [ - "Ask \(.applicationName) what's the cheapest \(\.$fuel) near me", - ], - shortTitle: "Cheapest Fuel", - systemImageName: "fuelpump" - ) - + // NOTE (2026-08-20): the generic parameterized shortcut ("cheapest + // ${fuel}") was REMOVED. It competed with the fixed-fuel literal-word + // shortcuts for the same intent (parameter resolution was already flaky + // on-device), which degraded Siri's NLU ranking and caused the + // hit-and-miss "can't do that, searching in app" fallback. Now Siri + // routes on literal fuel words only, and the freed slot keeps us under + // the 10-shortcut cap. Every phrase carries .applicationName (iOS 26 + // metadata-processor requirement) and mirrors how people actually ask. AppShortcut( intent: CheapestFuelIntent(fuel: .e10), phrases: [ @@ -509,6 +504,10 @@ struct FuelBoardShortcuts: AppShortcutsProvider { "Ask \(.applicationName) for the cheapest petrol near me", "Find the cheapest petrol near me \(.applicationName)", "Find the cheapest unleaded near me \(.applicationName)", + "What's the cheapest unleaded near me \(.applicationName)", + "What's the cheapest petrol near me \(.applicationName)", + "Cheapest unleaded near me \(.applicationName)", + "Where's the cheapest petrol \(.applicationName)", ], shortTitle: "Cheapest Unleaded", systemImageName: "fuelpump"