From ed41df46dece804fa906076176520115d081536c Mon Sep 17 00:00:00 2001 From: FuelBoard Contributor Date: Thu, 20 Aug 2026 19:27:34 +0100 Subject: [PATCH] siri: drop generic shortcut and broaden fuel-word phrases Siri was hit-and-miss on 'unleaded near me' (\u2018can't do that, searching in app\u2019 fallback). The generic parameterized AppShortcut ('cheapest ${fuel}') competed with the fixed-fuel literal-word shortcuts for the same intent, degrading NLU ranking; it was already documented as flaky. Remove it (now 9 shortcuts, under the 10 cap) and add natural phrase variants for unleaded/petrol ('What's the cheapest unleaded near me', 'Cheapest unleaded near me', 'Where's the cheapest petrol'). All phrases keep .applicationName per the iOS 26 metadata requirement. Build-verified in extract.actionsdata: generic gone, new phrases registered. --- FuelBoard/SiriShortcuts.swift | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) 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"