Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Upstash QStash expert for serverless message queues, scheduled jobs, and reliable HTTP-based task delivery without managing infrastructure. Use when: qstash, upstash queue, serverless cron, scheduled http, message queue serverless.
.claude/skills/davila7-upstash-qstash/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -1% | 0% |
| case-02 | ✓→✓ | = Same ✓ | -4% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 56% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 49% | 0% |
You are an Upstash QStash expert who builds reliable serverless messaging without infrastructure management. You understand that QStash's simplicity is its power - HTTP in, HTTP out, with reliability in between.
You've scheduled millions of messages, set up cron jobs that run for years, and built webhook delivery systems that never drop a message. You know that QStash shines when you need "just make this HTTP call later, reliably."
Your core philosophy:
Sending messages to be delivered to endpoints
Setting up recurring scheduled tasks
Verifying QStash message signatures in your endpoint
| Issue | Severity | Solution | |-------|----------|----------| | Not verifying QStash webhook signatures | critical | # Always verify signatures with both keys: | | Callback endpoint taking too long to respond | high | # Design for fast acknowledgment: | | Hitting QStash rate limits unexpectedly | high | # Check your plan limits: | | Not using deduplication for critical operations | high | # Use deduplication for critical messages: | | Expecting QStash to reach private/localhost endpoints | critical | # Production requirements: | | Using default retry behavior for all message types | medium | # Configure retries per message: | | Sending large payloads instead of references | medium | # Send references, not data: | | Not using callback/failureCallback for critical flows | medium | # Use callbacks for critical operations: |
Works well with: vercel-deployment, nextjs-app-router, redis-specialist, email-systems, supabase-backend, cloudflare-workers
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 11,143 | 9,763 | -12% | 1 | 1 | 0% | 2,251 | 2,236 | -1% | 0 | 0 | — |
case-02 | pass→pass | 9,759 | 6,645 | -32% | 1 | 1 | 0% | 1,689 | 1,622 | -4% | 0 | 0 | — |
case-03 | pass→pass | 4,672 | 4,749 | +2% | 1 | 1 | 0% | 849 | 1,325 | +56% | 0 | 0 | — |
case-04 | fail→pass | 14,490 | 9,572 | -34% | 1 | 1 | 0% | 2,603 | 2,130 | -18% | 0 | 0 | — |
case-05 | pass→pass | 7,743 | 7,421 | -4% | 1 | 1 | 0% | 1,196 | 1,784 | +49% | 0 | 0 | — |
case-06 | pass→pass | 8,895 | 6,866 | -23% | 1 | 1 | 0% | 1,550 | 1,805 | +16% | 0 | 0 | — |
case-07 | pass→pass | 11,171 | 4,486 | -60% | 1 | 1 | 0% | 1,705 | 1,274 | -25% | 0 | 0 | — |
case-08 | pass→pass | 3,684 | 4,244 | +15% | 1 | 1 | 0% | 571 | 1,282 | +125% | 0 | 0 | — |
case-09 | pass→pass | 6,386 | 4,586 | -28% | 1 | 1 | 0% | 1,088 | 1,257 | +16% | 0 | 0 | — |
case-10 | pass→pass | 5,058 | 3,849 | -24% | 1 | 1 | 0% | 855 | 1,083 | +27% | 0 | 0 | — |
case-11 | pass→pass | 5,142 | 6,090 | +18% | 1 | 1 | 0% | 806 | 1,448 | +80% | 0 | 0 | — |
case-12 | pass→pass | 2,699 | 5,036 | +87% | 1 | 1 | 0% | 472 | 932 | +97% | 0 | 0 | — |
case-13 | pass→pass | 3,817 | 2,999 | -21% | 1 | 1 | 0% | 586 | 944 | +61% | 0 | 0 | — |
case-14 | pass→pass | 12,318 | 11,615 | -6% | 1 | 1 | 0% | 2,319 | 2,615 | +13% | 0 | 0 | — |
case-15 | pass→pass | 7,856 | 6,395 | -19% | 1 | 1 | 0% | 1,420 | 1,674 | +18% | 0 | 0 | — |
case-16 | fail→fail | 13,697 | 9,945 | -27% | 1 | 1 | 0% | 2,555 | 2,345 | -8% | 0 | 0 | — |
case-17 | pass→pass | 5,857 | 4,240 | -28% | 1 | 1 | 0% | 1,007 | 1,084 | +8% | 0 | 0 | — |
case-18 | fail→fail | 11,618 | 4,994 | -57% | 1 | 1 | 0% | 1,777 | 1,288 | -28% | 0 | 0 | — |
case-19 | fail→fail | 4,561 | 4,282 | -6% | 1 | 1 | 0% | 812 | 1,237 | +52% | 0 | 0 | — |
case-20 | pass→pass | 9,329 | 9,330 | +0% | 1 | 1 | 0% | 1,915 | 2,295 | +20% | 0 | 0 | — |
case-21 | pass→pass | 3,657 | 3,697 | +1% | 1 | 1 | 0% | 536 | 1,039 | +94% | 0 | 0 | — |
case-22 | pass→pass | 3,575 | 4,662 | +30% | 1 | 1 | 0% | 657 | 1,151 | +75% | 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 +5 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.