Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Triage one inbound support ticket end to end: classify it, draft a reply, run an escalation check, then send or escalate. Use when the user wants a structured, multi-step process to triage a single support ticket from raw inbound to a sent reply or a clean escalation. Do NOT use for a one-line canned answer or a quick classification that one atomic skill can answer.
.claude/skills/ferroxlabs-wayland-support-ticket-triage/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 10 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 72% | 0% |
Estimated time: 10-15 minutes
This workflow triages a single inbound support ticket: it classifies the ticket, drafts a reply, runs an escalation check, and ends with the user either sending the reply or marking it for escalation. It is interactive: the user reviews and optionally refines the draft reply before the escalation check.
Step 1: Kick Off and Capture the Ticket (uses: support-reply)
Ask the user to paste the ticket: subject, body, and any context they have. Ask which product or service it is about. Capture the ticket text verbatim. Do not proceed until you have the ticket body and the product/service it concerns.
Step 2: Infer Classification (uses: support-reply)
Using the support-reply skill, infer the ticket classification: kind (bug, question, billing, feature request, etc.), urgency, owner, and SLA. State the inferred classification and the reasoning behind it. Invite the user to override if they know the customer's tier or contract specifics. Capture the resulting classification.
Step 3: Build the Reply (uses: support-reply)
Using the support-reply skill with the ticket and the classification, draft a reply to the customer. Show the full draft reply to the user.
Step 4: Review the Reply (uses: support-reply)
Present the draft reply and ask the user whether to refine it or proceed to the escalation check. If the user wants changes, gather specific refinement feedback and re-run Step 3 with that feedback plus the prior reply and the ticket, looping up to 2 times until the user is satisfied. When the user is satisfied, advance.
Step 5: Escalation Check (uses: support-escalation)
Using the support-escalation skill in escalation-check mode with the ticket, the classification, and the approved reply, determine whether this ticket should be escalated and why. Show the escalation status to the user.
Step 6: Final Review and Send or Escalate (uses: support-escalation)
Present the escalation status and ask the user whether to send the reply or mark the ticket for escalation. Record the final decision. Assemble the triage record with these sections: Ticket, Classification, Draft Reply, Escalation Status, Final Decision.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 17,639 | 15,067 | -15% | 1 | 1 | 0% | 1,998 | 2,343 | +17% | 0 | 0 | — |
case-02 | fail→pass | 17,473 | 16,030 | -8% | 1 | 1 | 0% | 1,945 | 2,477 | +27% | 0 | 0 | — |
case-03 | fail→pass | 20,098 | 16,520 | -18% | 1 | 1 | 0% | 2,163 | 2,592 | +20% | 0 | 0 | — |
case-04 | fail→fail | 15,905 | 10,728 | -33% | 1 | 1 | 0% | 1,546 | 2,464 | +59% | 0 | 0 | — |
case-05 | fail→pass | 14,853 | 4,106 | -72% | 1 | 1 | 0% | 1,328 | 1,265 | -5% | 0 | 0 | — |
case-06 | fail→pass | 16,700 | 17,226 | +3% | 1 | 1 | 0% | 1,531 | 2,631 | +72% | 0 | 0 | — |
case-07 | fail→pass | 13,815 | 16,008 | +16% | 1 | 1 | 0% | 1,728 | 2,402 | +39% | 0 | 0 | — |
case-08 | fail→pass | 7,246 | 10,965 | +51% | 1 | 1 | 0% | 1,079 | 2,423 | +125% | 0 | 0 | — |
case-09 | fail→pass | 9,611 | 11,227 | +17% | 1 | 1 | 0% | 705 | 1,696 | +141% | 0 | 0 | — |
case-10 | pass→pass | 16,699 | 7,434 | -55% | 1 | 1 | 0% | 1,765 | 2,037 | +15% | 0 | 0 | — |
case-11 | pass→pass | 9,452 | 5,982 | -37% | 1 | 1 | 0% | 571 | 1,582 | +177% | 0 | 0 | — |
case-12 | fail→pass | 13,643 | 8,995 | -34% | 1 | 1 | 0% | 1,733 | 1,222 | -29% | 0 | 0 | — |
case-13 | fail→pass | 11,363 | 15,102 | +33% | 1 | 1 | 0% | 1,576 | 2,131 | +35% | 0 | 0 | — |
case-14 | fail→pass | 12,147 | 8,506 | -30% | 1 | 1 | 0% | 915 | 1,913 | +109% | 0 | 0 | — |
case-15 | pass→pass | 4,104 | 8,321 | +103% | 1 | 1 | 0% | 558 | 1,314 | +135% | 0 | 0 | — |
case-16 | pass→pass | 24,037 | 40,427 | +68% | 1 | 1 | 0% | 2,891 | 7,955 | +175% | 0 | 0 | — |
case-17 | pass→pass | 31,739 | 27,566 | -13% | 1 | 1 | 0% | 4,169 | 4,136 | -1% | 0 | 0 | — |
case-18 | pass→pass | 21,430 | 25,306 | +18% | 1 | 1 | 0% | 2,541 | 3,710 | +46% | 0 | 0 | — |
case-19 | pass→pass | 12,082 | 15,821 | +31% | 1 | 1 | 0% | 1,133 | 2,459 | +117% | 0 | 0 | — |
case-20 | pass→pass | 9,408 | 13,240 | +41% | 1 | 1 | 0% | 1,231 | 2,018 | +64% | 0 | 0 | — |
case-21 | fail→pass | 15,475 | 10,978 | -29% | 1 | 1 | 0% | 1,170 | 1,529 | +31% | 0 | 0 | — |
case-22 | pass→pass | 15,551 | 7,940 | -49% | 1 | 1 | 0% | 1,472 | 1,100 | -25% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.