{"name": "keywords_any-substring","note": "'alpha' is found inside 'alphabet', so keywords_any matches on substrings, not whole words.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "alphabet soup for lunch"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "keywords_any-rule","default_used": false,"outputs": {}}}
{"name": "keywords_any-case-fold","note": "'ALPHA' matches the lowercase keyword 'alpha': keyword matching is case-insensitive.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "ALPHA release notes"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "keywords_any-rule","default_used": false,"outputs": {}}}
{"name": "keywords_any-non-ascii-match","note": "The lowercase input 'café' matches the keyword 'café' — a baseline showing the non-ASCII keyword matches when the letter case already agrees.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "a café au lait please"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "unicode-keyword-rule","default_used": false,"outputs": {}}}
{"name": "keywords_any-non-ascii-no-case-fold","note": "Case folding is ASCII-only. In 'CAFÉ' the ASCII letters fold (CAF->caf) but 'É' is left untouched, so it never matches the keyword 'café' (whose final letter is 'é'). Unicode-aware folding would turn 'É' into 'é' and match -> cloud; routing to local proves the fold is ASCII-only.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "CAFÉ AU LAIT"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "keywords_all-both-present","note": "Both 'charlie' and 'delta' are present, so keywords_all matches.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "charlie and delta together"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "keywords_all-rule","default_used": false,"outputs": {}}}
{"name": "keywords_all-one-missing-no-match","note": "Only 'charlie' is present; keywords_all needs every keyword, so it fails and falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "charlie by itself"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "regex-matches-substring","note": "The pattern is searched for anywhere in the input, not matched against the whole of it: 'echo-42' inside 'deploy echo-42 now' matches 'echo-[0-9]+'.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "deploy echo-42 now"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "regex-rule","default_used": false,"outputs": {}}}
{"name": "regex-no-match","note": "'echo-x' has no digit after 'echo-', so it does not match 'echo-[0-9]+' and falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "deploy echo-x now"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "any-one-child-matches","note": "'golf' matches one branch; an any needs only one child to match.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "practising my golf swing"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "any-rule","default_used": false,"outputs": {}}}
{"name": "any-no-child-matches","note": "Neither 'foxtrot' nor 'golf' is present, so both children of the any miss; an any with no matching child is false, so the rule fails and it falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "practising my tennis serve"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "all-both-children-match","note": "Both 'hotel' and 'india' match, so the all matches.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "hotel in india"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "all-rule","default_used": false,"outputs": {}}}
{"name": "all-one-child-no-match","note": "'india' is missing, so the all fails and falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "hotel by the beach"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "not-child-absent-matches","note": "'kilo' is absent so not(kilo) is true; together with 'juliett' the rule matches.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "juliett is here"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "not-rule","default_used": false,"outputs": {}}}
{"name": "not-child-present-no-match","note": "'kilo' is present so not(kilo) is false; the rule fails and falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "juliett and kilo"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "implicit-all-both-keys","note": "A leaf with two keys (keywords_any + max_chars) requires both to hold; both do, so it matches.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "lima is ready"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "implicit-all-rule","default_used": false,"outputs": {}}}
{"name": "implicit-all-one-key-no-match","note": "The input contains 'lima' (keywords_any matches) but exceeds max_chars:1000, so the implicit AND fails and it falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "lima padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding padding"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "regex-case-sensitive-no-match","note": "regex is case-sensitive: 'ECHO-42' does not match 'echo-[0-9]+', so it falls through to default.","request": {"model": "user.Conditions-Vocab","messages": [{"role": "user","content": "deploy ECHO-42 now"}]},"decision": {"version": "1","route_to": "local","matched_rule": "","default_used": true,"outputs": {}}}
{"name": "keywords_any-trace","note": "route_trace:true records the keywords_any leaf under condition 'keywords_any'.","request": {"model": "user.Conditions-Vocab","route_trace": true,"messages": [{"role": "user","content": "alpha release notes"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "keywords_any-rule","default_used": false,"outputs": {},"trace": [{"condition": "keywords_any","result": true}]}}
{"name": "keywords_all-trace","note": "keywords_any-rule misses first (traced false), then keywords_all-rule matches under condition 'keywords_all'.","request": {"model": "user.Conditions-Vocab","route_trace": true,"messages": [{"role": "user","content": "charlie and delta together"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "keywords_all-rule","default_used": false,"outputs": {},"trace": [{"condition": "keywords_any","result": false},{"condition": "keywords_all","result": true}]}}
{"name": "regex-trace","note": "keywords_any-rule and keywords_all-rule miss first (traced false), then regex-rule matches under condition 'regex'.","request": {"model": "user.Conditions-Vocab","route_trace": true,"messages": [{"role": "user","content": "deploy echo-42 now"}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "regex-rule","default_used": false,"outputs": {},"trace": [{"condition": "keywords_any","result": false},{"condition": "keywords_all","result": false},{"condition": "regex","result": true}]}}
