Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when a result is surprising, impossible, contradicts a sanity check, a pipeline fails, a model won't converge, or a replication fails - before adjusting anything
.claude/skills/k-dense-ai-investigating-anomalous-results/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 87% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 60% | 0% |
Random tweaks waste time and manufacture false findings. Quietly dropping the inconvenient data point, nudging the cutoff, or re-running until it "works" doesn't fix the problem — it fabricates a result.
Core principle: ALWAYS find the root cause before adjusting anything. An adjustment made before you understand the cause is, at best, noise and, at worst, fraud.
Violating the letter of this process is violating the spirit of it.
The first question for any anomaly: is this a code bug, a data issue, or a real finding? You cannot answer by guessing, and you must not "fix" it until you know — because a real finding is not something to fix.
NO ADJUSTMENTS WITHOUT ROOT-CAUSE INVESTIGATION FIRSTNo dropping data, changing a test, transforming a variable, re-running with new parameters, or "cleaning" until Phase 1 is complete. If you haven't found the cause, you cannot justify the adjustment.
Use this ESPECIALLY when:
Complete each before the next.
Before any adjustment:
git diff, data provenance, package versions.raw: N=10342, outcome mean=0.31, nulls=0
cleaned: N=10298, outcome mean=0.31, nulls=0 <- 44 dropped, expected
derived: N=10298, feature mean=4e7 <- WRONG: unit blew up here
result: coefficient enormous <- symptom; cause is upstreamResolve according to the cause you established:
If 3+ adjustments fail: STOP. The pipeline or the design may be wrong — repeated failures that each reveal a new problem indicate a structural issue, not a series of small bugs. Discuss the design with your human partner before another attempt. Re-opening the design or pre-registration must be documented as a deviation.
All of these mean: STOP. Return to Phase 1.
| Excuse | Reality | |--------|---------| | "It's clearly an outlier, just remove it" | "Clearly" is a guess. Find why it's extreme; document if you remove it. | | "Re-running with a new seed fixed it" | You changed the result by chance, not the cause. Investigate. | | "The good result is the right one" | Convenient results need MORE scrutiny, not less. | | "Emergency, no time to investigate" | Investigation is faster than retracting a wrong finding. | | "Tweak the model, then understand it" | The first tweak sets a false trail. Understand first. | | "Performance is just high, ship it" | Suspiciously high performance is usually leakage. Check. |
| Phase | Activities | Success Criteria | |-------|-----------|------------------| | 1. Characterize | Read, reproduce, check changes, instrument stages, classify | Know WHERE and WHICH (bug/data/finding) | | 2. Pattern | Working comparison, reference, list differences | Identify the difference | | 3. Hypothesis | Single theory, minimal test | Confirmed or new hypothesis | | 4. Resolution | Fix bug / document data rule / report real finding | Anomaly explained, not just hidden |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 12,142 | 9,711 | -20% | 1 | 1 | 0% | 2,020 | 2,961 | +47% | 0 | 0 | — |
case-02 | pass→pass | 10,433 | 9,168 | -12% | 1 | 1 | 0% | 1,678 | 3,209 | +91% | 0 | 0 | — |
case-03 | fail→pass | 10,983 | 9,195 | -16% | 1 | 1 | 0% | 1,731 | 3,160 | +83% | 0 | 0 | — |
case-04 | fail→pass | 13,139 | 9,827 | -25% | 1 | 1 | 0% | 2,130 | 3,332 | +56% | 0 | 0 | — |
case-05 | pass→pass | 12,096 | 6,270 | -48% | 1 | 1 | 0% | 1,840 | 2,771 | +51% | 0 | 0 | — |
case-06 | pass→pass | 12,942 | 12,854 | -1% | 1 | 1 | 0% | 1,921 | 3,709 | +93% | 0 | 0 | — |
case-07 | pass→pass | 15,572 | 7,836 | -50% | 1 | 1 | 0% | 2,217 | 2,936 | +32% | 0 | 0 | — |
case-08 | fail→pass | 12,685 | 10,836 | -15% | 1 | 1 | 0% | 1,739 | 3,257 | +87% | 0 | 0 | — |
case-09 | pass→pass | 13,322 | 10,269 | -23% | 1 | 1 | 0% | 1,936 | 3,231 | +67% | 0 | 0 | — |
case-10 | fail→fail | 10,578 | 7,842 | -26% | 1 | 1 | 0% | 1,603 | 2,811 | +75% | 0 | 0 | — |
case-11 | fail→pass | 18,147 | 12,229 | -33% | 1 | 1 | 0% | 2,615 | 3,530 | +35% | 0 | 0 | — |
case-12 | fail→fail | 15,396 | 10,985 | -29% | 1 | 1 | 0% | 2,402 | 3,391 | +41% | 0 | 0 | — |
case-13 | pass→pass | 13,355 | 9,801 | -27% | 1 | 1 | 0% | 1,820 | 3,148 | +73% | 0 | 0 | — |
case-14 | fail→pass | 14,102 | 10,778 | -24% | 1 | 1 | 0% | 2,169 | 3,478 | +60% | 0 | 0 | — |
case-15 | pass→pass | 9,838 | 8,433 | -14% | 1 | 1 | 0% | 1,564 | 2,973 | +90% | 0 | 0 | — |
case-16 | fail→pass | 10,462 | 7,511 | -28% | 1 | 1 | 0% | 1,529 | 2,940 | +92% | 0 | 0 | — |
case-17 | pass→pass | 14,367 | 12,150 | -15% | 1 | 1 | 0% | 2,003 | 3,507 | +75% | 0 | 0 | — |
case-18 | fail→fail | 16,454 | 13,780 | -16% | 1 | 1 | 0% | 2,305 | 3,806 | +65% | 0 | 0 | — |
case-19 | fail→pass | 10,225 | 6,509 | -36% | 1 | 1 | 0% | 1,549 | 2,677 | +73% | 0 | 0 | — |
case-20 | pass→pass | 16,574 | 12,149 | -27% | 1 | 1 | 0% | 2,645 | 3,751 | +42% | 0 | 0 | — |
case-21 | pass→pass | 14,941 | 14,647 | -2% | 1 | 1 | 0% | 2,416 | 4,112 | +70% | 0 | 0 | — |
case-22 | pass→pass | 9,388 | 11,150 | +19% | 1 | 1 | 0% | 1,435 | 3,363 | +134% | 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 +32 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.