cs.gohigherlevel
Get pinged here when a case is escalated or the AI can't classify one.

Playbook

The actual decision tree the shadow engine runs — generated live from cs_policy.decide() and cs_labels_spec.LABELS on every request, nothing hand-typed. 99 nodes · 94 edges · 17 label branches.
root interrupt gate classify hub label offer step refund info escalate edge = trigger ● terminal
Click any node for its full decide() output.
Always-on rulesNot branches. Checked before and around the (label × rung) table, for every label, at every rung. Detached on purpose — a message never “goes down” one of these instead of classifying.
LEGAL_THREAT
fires from ANY rung
always
ESCALATE ●
THREATENS_CHARGEBACK
fires from ANY rung
clear ultimatum
REPLY_INFO ●
mentioned, unclear
REPLY_INFO ●
£200 circuit breaker
applies AFTER any money action
order £150 (≤ £200)
FULL_REFUND · 150.00 GBP ●
order £350 (> £200)
ESCALATE · 350.00 GBP ●
Promise ledger override
applies for ANY label
open £80 refund promise on file
EXECUTE_PROMISE · 80.00 GBP ●
The flow
Inbound customer
message
classify
Classify message
→ 1 of 17 labels
opens a case
Opens a case
15 labels
ADDRESS_CHANGE
▸ ADDRESS_CHANGE
ASKS_REFUND
▸ ASKS_REFUND
we have not asked why yet
we have not asked why yet
reason known · not dispatched
reason known · not dispatched
reason known · already in transit
reason known · already in transit
ASKS_REPLACEMENT
▸ ASKS_REPLACEMENT
AUTHENTICITY_DOUBT
▸ AUTHENTICITY_DOUBT
CANCEL_REQUEST
▸ CANCEL_REQUEST
DAMAGED
▸ DAMAGED
LEGAL_THREAT
▸ LEGAL_THREAT
NOT_ARRIVED
▸ NOT_ARRIVED
OFF_SCRIPT
▸ OFF_SCRIPT
PRODUCT_QUESTION
▸ PRODUCT_QUESTION
SIZING_QUESTION
▸ SIZING_QUESTION
THREATENS_CHARGEBACK
▸ THREATENS_CHARGEBACK
WHERE_IS_ORDER
▸ WHERE_IS_ORDER
WRONG_ITEM
▸ WRONG_ITEM
WRONG_SIZE
▸ WRONG_SIZE
at rung 0 · NEW
OFFER_REPLACEMENT
ACCEPTS_OFFER · at rung 1 · REPLACEMENT_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 1 · REPLACEMENT_OFFERED
OFFER_DISCOUNT_10_KEEP · 10%
ACCEPTS_OFFER · at rung 2 · KEEP_10_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 2 · KEEP_10_OFFERED
OFFER_DISCOUNT_20_KEEP · 20%
ACCEPTS_OFFER · at rung 3 · KEEP_20_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 3 · KEEP_20_OFFERED
OFFER_PRICE_MINUS_SHIPPING
ACCEPTS_OFFER · at rung 4 · PRICE_MINUS_SHIPPING_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 4 · PRICE_MINUS_SHIPPING_OFFERED
FULL_REFUND ●
answers an offer
Answers an offer
2 labels
ACCEPTS_OFFER
▸ ACCEPTS_OFFER
REFUSES_OFFER
▸ REFUSES_OFFER

Generated from cs_policy.py (last modified 2026-09-04 08:17:05 UTC) and cs_labels_spec.py (last modified 2026-08-14 19:55:07 UTC) — every node's action, amount, rung and reason string above is the live return value of cs_policy.decide(), and the 17 label branches come straight from cs_labels_spec.LABELS. This screen does not write to the database and cannot send or move anything.