Summary
The rain branch of weather_request is start-anchored (is it rain / will it rain). A trailing please is already stripped from the location (will it rain in Seattle please). A leading please was never stripped, so polite rain forms fall through to the LLM. General weather queries that contain the word weather are unaffected (substring match), which makes the rain path the asymmetric miss.
Repro (on main)
| utterance |
on main |
expected |
Please will it rain |
ABSTAIN |
get_weather{location: home} |
Please is it raining |
ABSTAIN |
get_weather{location: home} |
Please will it rain in Seattle |
ABSTAIN |
get_weather{location: seattle} |
Will it rain in Seattle please already routes today.
Root cause
weather_request rain arm uses starts_with. Leading please keeps the string from matching.
Proposed fix
Strip a leading please at the top of weather_request, mirroring #932 / #933 / #908 / #906 / #894. Do not change rain-tomorrow forecast semantics (#912/#913). Time-expression locations still resolve to home.
Acceptance
- Leading-please rain forms route to
get_weather
- Trailing-please location cleaning unchanged
- Focused regression test fails on main, passes with the fix
- No prompt growth; 4096 Jetson contract untouched
Labels / scope
Tool-dispatch correctness (deterministic quick-router).
Summary
The rain branch of
weather_requestis start-anchored (is it rain/will it rain). A trailingpleaseis already stripped from the location (will it rain in Seattle please). A leadingpleasewas never stripped, so polite rain forms fall through to the LLM. General weather queries that contain the wordweatherare unaffected (substring match), which makes the rain path the asymmetric miss.Repro (on main)
mainPlease will it rainget_weather{location: home}Please is it rainingget_weather{location: home}Please will it rain in Seattleget_weather{location: seattle}Will it rain in Seattle pleasealready routes today.Root cause
weather_requestrain arm usesstarts_with. Leadingpleasekeeps the string from matching.Proposed fix
Strip a leading
pleaseat the top ofweather_request, mirroring #932 / #933 / #908 / #906 / #894. Do not change rain-tomorrow forecast semantics (#912/#913). Time-expression locations still resolve to home.Acceptance
get_weatherLabels / scope
Tool-dispatch correctness (deterministic quick-router).