Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guided analysis of LLM traces to categorize and pattern-match failures. Reads execution traces, classifies failure modes, detects recurring patterns, and produces actionable taxonomy of errors. For diagnosing why an LLM system fails and where to focus improvement effort. Triggers on: "error analysis", "analyze failures", "failure patterns", "trace analysis", "debug eval"
.claude/skills/miosa-osa-error-analysis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 111% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 19% | 0% |
> Categorize LLM failures by reading traces and detecting patterns.
Guide through systematic analysis of LLM execution traces (eval results, agent logs, or production errors) to categorize failure modes, detect recurring patterns, and quantify their frequency. Produces an error taxonomy with root cause hypotheses and prioritized fix recommendations. Turns a pile of failures into an actionable improvement roadmap.
bash# Analyze eval results /error-analysis --traces evals/results/run-42/ # Analyze with existing taxonomy (extend it) /error-analysis --traces evals/results/ --taxonomy errors/taxonomy.yaml # Focus on specific failure type /error-analysis --traces evals/results/ --filter "score < 0.5" # Analyze agent execution logs /error-analysis --traces logs/agent-runs/ --format agent-trace # Compare error patterns between two runs /error-analysis --traces evals/results/run-42/ --compare evals/results/run-41/ # Sample from large trace sets /error-analysis --traces evals/results/ --sample 100
| Flag | Type | Default | Description | |------|------|---------|-------------| | --traces | string | required | Path to trace files or results directory | | --taxonomy | string | — | Existing error taxonomy to extend | | --filter | string | — | Expression to filter traces (e.g., "score < 0.5") | | --format | enum | auto | Trace format: auto, eval-result, agent-trace, jsonl, log | | --compare | string | — | Second trace set for differential analysis | | --sample | int | all | Random sample size for large trace sets | | --min-pattern | int | 3 | Minimum occurrences to qualify as a pattern | | --output | string | stdout | Write analysis to file | | --depth | enum | standard | Analysis depth: quick, standard, deep |
--filter to select the failure subset. Separate clean passes from failures. Report failure rate./error-analysis --traces evals/results/run-42/ --filter "score < 0.5"
## Error Analysis — run-42
### Overview
- Total traces: 500
- Failures (score < 0.5): 73 (14.6%)
- Categories identified: 5
- Patterns detected: 3
### Error Taxonomy
| Category | Count | % of Failures | Example |
|----------|-------|--------------|---------|
| Reasoning error | 28 | 38.4% | Multi-step math with carrying |
| Format violation | 19 | 26.0% | JSON output missing required field |
| Instruction ignored | 14 | 19.2% | "Do not explain" instruction skipped |
| Hallucination | 8 | 11.0% | Cited nonexistent API endpoint |
| Context loss | 4 | 5.5% | Forgot constraint from early in prompt |
### Pattern: Multi-step reasoning with >3 dependencies
- Frequency: 22/28 reasoning errors (78.6%)
- Trigger: Input requires chaining 4+ intermediate results
- Root cause: Model loses track of intermediate values
- Fix: Add scratchpad instruction or chain-of-thought enforcement
### Recommended Actions
1. [HIGH] Add explicit scratchpad section to prompt — addresses 28 reasoning errors
2. [HIGH] Add JSON schema validation as output guard — catches 19 format violations
3. [MEDIUM] Strengthen "do not explain" instruction with examples — addresses 14 violationsmarkdown## Error Analysis Report ### Summary - Traces analyzed: N - Failure rate: N% - Categories: N - Patterns: N ### Error Taxonomy | Category | Count | % | Trend | |----------|-------|---|-------| | ... | ... | ... | ... | ### Detected Patterns #### Pattern 1: <name> - Frequency: N (N% of category) - Trigger: <description> - Root cause: <hypothesis> - Confidence: high | medium | low ### Recommended Actions | Priority | Action | Addresses | Expected Impact | |----------|--------|-----------|-----------------| | 1 | ... | N failures | ... | ### Differential (if --compare used) | Category | Run A | Run B | Delta | |----------|-------|-------|-------| | ... | ... | ... | ... |
/eval-audit — Upstream audit that may trigger this skill/judge-prompt — Downstream if failures require judge redesign/synthetic-data — Downstream if failures reveal data gaps| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 15,363 | 3,048 | -80% | 1 | 1 | 0% | 2,521 | 1,730 | -31% | 0 | 0 | — |
case-02 | fail→fail | 19,842 | 6,544 | -67% | 1 | 1 | 0% | 3,618 | 1,672 | -54% | 0 | 0 | — |
case-03 | fail→fail | 4,849 | 5,358 | +10% | 1 | 1 | 0% | 235 | 1,661 | +607% | 0 | 0 | — |
case-04 | pass→pass | 23,071 | 32,112 | +39% | 1 | 1 | 0% | 3,745 | 6,241 | +67% | 0 | 0 | — |
case-05 | pass→pass | 15,613 | 14,940 | -4% | 1 | 1 | 0% | 2,522 | 4,052 | +61% | 0 | 0 | — |
case-06 | pass→pass | 15,361 | 17,638 | +15% | 1 | 1 | 0% | 3,120 | 4,739 | +52% | 0 | 0 | — |
case-07 | pass→pass | 15,136 | 15,540 | +3% | 1 | 1 | 0% | 3,048 | 4,077 | +34% | 0 | 0 | — |
case-08 | pass→pass | 7,913 | 2,068 | -74% | 1 | 1 | 0% | 1,312 | 1,765 | +35% | 0 | 0 | — |
case-09 | pass→pass | 28,452 | 2,300 | -92% | 1 | 1 | 0% | 5,304 | 1,791 | -66% | 0 | 0 | — |
case-10 | fail→pass | 10,680 | 2,720 | -75% | 1 | 1 | 0% | 1,831 | 1,781 | -3% | 0 | 0 | — |
case-11 | pass→pass | 9,947 | 2,341 | -76% | 1 | 1 | 0% | 1,709 | 1,824 | +7% | 0 | 0 | — |
case-12 | pass→pass | 12,447 | 3,057 | -75% | 1 | 1 | 0% | 2,186 | 1,792 | -18% | 0 | 0 | — |
case-13 | fail→pass | 13,965 | 2,385 | -83% | 1 | 1 | 0% | 841 | 1,773 | +111% | 0 | 0 | — |
case-14 | fail→pass | 9,093 | 2,801 | -69% | 1 | 1 | 0% | 1,705 | 1,938 | +14% | 0 | 0 | — |
case-15 | pass→pass | 14,225 | 5,787 | -59% | 1 | 1 | 0% | 2,485 | 2,407 | -3% | 0 | 0 | — |
case-16 | fail→pass | 18,992 | 13,197 | -31% | 1 | 1 | 0% | 2,978 | 3,539 | +19% | 0 | 0 | — |
case-17 | fail→pass | 8,627 | 2,155 | -75% | 1 | 1 | 0% | 1,493 | 1,772 | +19% | 0 | 0 | — |
case-18 | pass→pass | 6,916 | 5,852 | -15% | 1 | 1 | 0% | 1,293 | 2,523 | +95% | 0 | 0 | — |
case-19 | fail→pass | 23,765 | 3,538 | -85% | 1 | 1 | 0% | 2,209 | 2,025 | -8% | 0 | 0 | — |
case-20 | fail→pass | 17,720 | 12,637 | -29% | 1 | 1 | 0% | 2,774 | 3,372 | +22% | 0 | 0 | — |
case-21 | fail→pass | 9,972 | 2,051 | -79% | 1 | 1 | 0% | 1,487 | 1,701 | +14% | 0 | 0 | — |
case-22 | pass→pass | 12,904 | 1,634 | -87% | 1 | 1 | 0% | 1,929 | 1,634 | -15% | 0 | 0 | — |
case-23 | fail→pass | 9,357 | 1,556 | -83% | 1 | 1 | 0% | 1,374 | 1,609 | +17% | 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. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +39 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
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.