Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user needs to create SOPs, playbooks, runbooks, or other operational documentation that defines how a recurring process should be executed.
.claude/skills/mkurman-process-docs/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 66% | 0% |
-----|------------|-----| | Trigger] | Person/Role] | Timeframe] |
How to verify the process was completed correctly.
| Date | Author | Change | |------|--------|--------|
### Template 2: Incident RunbookSeverity: P0-P3] On-Call Owner: Role] Last Tested: Date]
How this incident is identified (alerts, customer reports, monitoring).
Decision tree for identifying root cause.
Step-by-step fix for each known root cause.
Checklist for after the incident is resolved.
### Template 3: Onboarding PlaybookDuration: e.g., 2 weeks] Buddy/Owner: Role]
Tasks, access setup, key introductions.
Hands-on exercises, shadowing, tool walkthroughs.
Supervised execution of real tasks with checkpoints.
What the person must demonstrate to be considered onboarded.
## Frameworks & Best Practices
- **The "bus factor" test.** If the person who usually runs this process is unavailable, can someone else execute it from this document alone? If not, add more detail.
- **Imperative voice only.** Every step starts with a verb. "Click the Deploy button" not "The Deploy button should be clicked."
- **One action per step.** If a step contains "and," split it into two steps. Compound steps get skipped or half-done.
- **Decision points are explicit.** Use if/then language with clear conditions. "If the customer is on an Enterprise plan, skip to Step 7" not "Handle enterprise customers differently."
- **Time estimates matter.** Include expected duration for each major phase. This helps people plan and signals when something has gone wrong (step taking 3x longer than expected = escalate).
- **Screenshots decay fast.** Prefer text descriptions of UI paths (Settings > Integrations > Slack) over screenshots, which break every redesign. Use screenshots only for genuinely complex interfaces.
- **Version and date everything.** A process doc without a last-updated date is assumed to be wrong.
- **Progressive detail.** Lead each section with a one-line summary, then expand. Experienced operators scan; new hires read every word. Serve both.
- **Link, don't duplicate.** If another SOP covers a sub-process, link to it rather than copying steps inline. Duplication causes drift.
- **Test with a newcomer.** The best review is having someone unfamiliar with the process follow the doc and noting where they get stuck.
## Related Skills
- `support-docs` — Chain when the process being documented is customer-facing and needs a corresponding help center article or troubleshooting guide.
- `board-update` — Chain when operational processes need to be summarized for investor or board reporting (e.g., "here is our incident response maturity").
## Examples
### Example 1: Operational SOP
**User:** "Write an SOP for processing customer refunds."
**Good output excerpt:**
> ## Procedure
> 1. **Open the refund request** in Zendesk. Verify the ticket includes: order ID, reason for refund, and customer email.
> 2. **Check eligibility** in Stripe.
> - **Decision point:** If the order is older than 30 days, escalate to the Support Lead with a note explaining the customer's situation. Do not process the refund.
> - If within 30 days, continue to Step 3.
> 3. **Issue the refund** via Stripe Dashboard > Payments > [Order ID] > Refund. Select "Full refund" unless partial was approved by the Support Lead.
> 4. **Update the ticket** with the Stripe refund ID and set status to "Solved."
> 5. **Log the refund** in the Refund Tracker spreadsheet (column A: date, B: order ID, C: amount, D: reason code).
>
> **Estimated time:** 5-8 minutes per refund.
### Example 2: Incident Runbook
**User:** "We need a runbook for when our payment processing goes down."
**Good output excerpt:**
> ## Immediate Actions (First 5 Minutes)
> 1. **Acknowledge the alert** in PagerDuty to stop re-escalation.
> 2. **Check Stripe Status Page** (status.stripe.com). If Stripe reports an outage, skip to "External Provider Outage" section.
> 3. **Post in #incidents Slack channel:** "Investigating payment processing failures. Updates every 15 min. DRI: [your name]."
> 4. **Enable the maintenance banner** via Admin > Feature Flags > `payment_maintenance_mode` = true. This shows users "Payments temporarily unavailable, please retry shortly" instead of raw errors.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 20,212 | 14,973 | -26% | 1 | 1 | 0% | 3,276 | 3,524 | +8% | 0 | 0 | — |
case-02 | fail→fail | 23,965 | 17,508 | -27% | 1 | 1 | 0% | 3,695 | 3,852 | +4% | 0 | 0 | — |
case-03 | fail→fail | 22,343 | 18,050 | -19% | 1 | 1 | 0% | 3,427 | 3,903 | +14% | 0 | 0 | — |
case-04 | pass→pass | 12,790 | 11,416 | -11% | 1 | 1 | 0% | 2,146 | 3,030 | +41% | 0 | 0 | — |
case-05 | pass→pass | 13,816 | 12,915 | -7% | 1 | 1 | 0% | 2,059 | 3,034 | +47% | 0 | 0 | — |
case-06 | pass→pass | 13,653 | 17,819 | +31% | 1 | 1 | 0% | 2,645 | 4,613 | +74% | 0 | 0 | — |
case-07 | fail→fail | 11,419 | 17,191 | +51% | 1 | 1 | 0% | 1,870 | 4,153 | +122% | 0 | 0 | — |
case-08 | fail→fail | 9,730 | 7,755 | -20% | 1 | 1 | 0% | 1,682 | 2,461 | +46% | 0 | 0 | — |
case-09 | fail→pass | 16,341 | 16,606 | +2% | 1 | 1 | 0% | 2,341 | 3,718 | +59% | 0 | 0 | — |
case-10 | pass→pass | 8,507 | 12,069 | +42% | 1 | 1 | 0% | 1,390 | 3,173 | +128% | 0 | 0 | — |
case-11 | pass→pass | 19,326 | 23,457 | +21% | 1 | 1 | 0% | 3,179 | 5,057 | +59% | 0 | 0 | — |
case-12 | fail→fail | 19,501 | 15,559 | -20% | 1 | 1 | 0% | 3,214 | 3,620 | +13% | 0 | 0 | — |
case-13 | pass→pass | 15,373 | 14,164 | -8% | 1 | 1 | 0% | 2,476 | 3,394 | +37% | 0 | 0 | — |
case-14 | fail→fail | 18,694 | 17,801 | -5% | 1 | 1 | 0% | 3,296 | 4,157 | +26% | 0 | 0 | — |
case-15 | fail→pass | 18,463 | 14,546 | -21% | 1 | 1 | 0% | 2,972 | 3,458 | +16% | 0 | 0 | — |
case-16 | fail→fail | 17,210 | 20,516 | +19% | 1 | 1 | 0% | 2,749 | 4,279 | +56% | 0 | 0 | — |
case-17 | fail→pass | 19,469 | 19,878 | +2% | 1 | 1 | 0% | 3,069 | 4,317 | +41% | 0 | 0 | — |
case-18 | fail→pass | 17,852 | 17,288 | -3% | 1 | 1 | 0% | 2,898 | 4,099 | +41% | 0 | 0 | — |
case-19 | fail→fail | 20,178 | 18,221 | -10% | 1 | 1 | 0% | 3,102 | 3,927 | +27% | 0 | 0 | — |
case-20 | fail→fail | 19,884 | 15,679 | -21% | 1 | 1 | 0% | 3,262 | 3,674 | +13% | 0 | 0 | — |
case-21 | fail→pass | 18,823 | 25,451 | +35% | 1 | 1 | 0% | 2,976 | 4,947 | +66% | 0 | 0 | — |
case-22 | fail→pass | 20,259 | 19,683 | -3% | 1 | 1 | 0% | 3,260 | 4,231 | +30% | 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 +27 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.