By Sagar Shankaran, Founder of CallSphere
A day-by-day walkthrough of building, testing, and refining a Claude Agent Skill with skill-creator — from a messy support problem to a shipped outcome.
Key takeaways
Abstract advice about evals and descriptions only lands when you watch it on a real task. So this post follows one skill from a Monday-morning complaint to a Friday-afternoon release. The problem: a support team kept asking Claude to "summarize this ticket and draft a reply," and the results swung wildly — sometimes a tight summary with a draft, sometimes a wall of text, sometimes no draft at all. The team had a prompt but no skill, no tests, and no idea why it varied. We'll turn that into a refined, measured Agent Skill using skill-creator, and you'll see every decision, including the ones that didn't work the first time.
The first move is not writing instructions — it is writing examples of success and failure. We collected ten real tickets and, for each, wrote what an ideal output looks like: a three-sentence summary, the customer's core ask, and a draft reply under 120 words in the team's tone. We also wrote what failure looks like: a summary longer than the ticket, a reply that invents a refund policy, or no draft at all. This labeled set becomes the eval. An Agent Skill is a folder of instructions and resources Claude loads when a task matches its description, so before scaffolding the folder we knew exactly what behavior we were optimizing toward.
We used skill-creator to scaffold ticket-triage and wrote a first SKILL.md. Then we ran the eval — five runs per ticket — and read the transcripts. The flow we followed, including the loop back when results disappointed, looked like this.
flowchart TD
A["10 real tickets + ideal outputs"] --> B["Write eval set first"]
B --> C["skill-creator scaffolds ticket-triage"]
C --> D["Run eval: 5 runs per ticket"]
D --> E{"Meets bar across runs?"}
E -->|No| F["Read transcripts, find failing layer"]
F --> G["Fix description, scope, or resource"]
G --> D
E -->|Yes| H["Version, record baseline, ship"]
The first run scored poorly — drafts appeared only about half the time. The transcripts made the cause obvious: the description said "summarize and optionally draft a reply," and Claude reasonably treated the draft as optional. We removed "optionally." Recall on the draft jumped immediately. This is the pattern of real skill work: the model was not failing; our instructions were ambiguous, and the eval made the ambiguity visible.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
The remaining failure was tone and invented policies. The draft replies sometimes promised refunds the company doesn't offer. The fix was not a better prompt — it was a resource. We added a short policy file the skill loads and instructs Claude to quote from rather than improvise. Here is the relevant slice of the refined skill.
---
name: ticket-triage
description: >
Summarize a support ticket in 3 sentences and ALWAYS draft a reply
under 120 words in the brand voice. Trigger when the user shares a
ticket and asks to summarize, triage, or draft a response.
---
## Steps
1. Summarize the ticket in exactly 3 sentences.
2. State the customer's single core ask in one line.
3. Draft a reply (<120 words). Use ONLY claims found in
resources/policy.md. If the answer isn't in policy.md, say you'll
escalate rather than inventing a policy.
## Resources
- resources/policy.md (refunds, SLAs, escalation rules)
Grounding the draft in policy.md with an explicit "don't invent" instruction eliminated the fabricated-refund failures. After this change, the eval passed the bar on nine of ten tickets across all five runs.
One ticket still failed intermittently — passing on three runs, failing on two. The tempting move was to ship and call it a fringe case. Instead we treated variance as the gate. We ran twenty additional runs on that ticket and found the failure correlated with very long ticket threads where the summary blew past three sentences. We tightened the instruction to truncate context, and the variance collapsed. The takeaway: a skill that passes on average but swings wildly is not ready; consistency across runs is the real signal.
skill-creator eval before scaffolding the skill.SKILL.md, run the eval with multiple runs per case, and read transcripts to locate the failing layer.| Aspect | Day 1 (prompt only) | Day 5 (refined skill) |
|---|---|---|
| Draft included | ~50% of the time | Every run |
| Invented policy | Occasional | Eliminated via grounding |
| Output length | Unbounded | 3-sentence summary, <120-word reply |
| Confidence to ship | None (no measurement) | Recorded baseline + rollback |
For a contained workflow like this, a few focused days. The eval set is the time investment; once it exists, iteration is fast.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
Adding a grounded resource file and forbidding improvisation. It converted a confident-but-wrong skill into a trustworthy one.
Strongly preferred. Synthetic inputs miss the messy long threads and edge phrasings that cause most real failures.
When it passes your bar consistently across many runs, has a recorded baseline, and a documented rollback — not when it nails a single demo.
CallSphere runs this same problem-to-shipped loop for voice and chat agents — grounded in your policies, measured across runs, and refined until they answer every call and book work reliably. See the result at callsphere.ai.
Source & attribution: This is an independent, original explainer inspired by Anthropic's coverage on the Claude blog. Claude, Claude Code, Claude Cowork, Claude Opus, and the Model Context Protocol are products and trademarks of Anthropic. CallSphere is not affiliated with or endorsed by Anthropic.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
Anthropic's Claude Fable 5 and Mythos 5 explained: pricing, availability, frontier benchmarks, the dual-model safeguard architecture, and what they mean for AI agents.
Where Claude Code, MCP, and multi-agent systems are taking GTM engineering next, and how to prepare your team now for standing and multi-agent workflows.
Where Claude Cowork and the Claude agent ecosystem are heading next — standing agents, MCP, skills as a moat — and the concrete moves to prepare your team now.
The metrics, leading signals, and anti-metrics that prove Claude Cowork is working — acceptance rate, time-to-outcome, and why usage counts mislead.
Shipping an agentic GTM workflow is easy; proving it works is hard. The metrics, signals, and eval loops that show a Claude Code rebuild is paying off.
A realistic end-to-end Claude Cowork use case: a quarterly vendor-spend review from vague ask to shipped deliverable, with every agentic step shown.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI