Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Debug issues methodically — use when stuck on errors, test failures, or unexpected behavior
.claude/skills/nyldn-skill-debug/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -44% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -9% | 0% |
Read skills/blocks/engineering-method-selection.md from the installed plugin for review admission. Natural-language requests and --peer-review share that policy. Honor host-only requests; risk alone does not authorize paid usage.
Run the investigation on the current host. Routine debugging makes zero additional provider dispatches. Use a bounded external reviewer only for --peer-review, an explicit independent-review request, or an existing risk policy.
<HARD-GATE> DO NOT CHANGE PRODUCTION BEHAVIOR BEFORE REPRODUCING THE SYMPTOM AND TESTING A NAMED ROOT-CAUSE HYPOTHESIS. </HARD-GATE>
Read and apply skills/blocks/debug-feedback-loop.md from the installed plugin root.
Start with the user's observable symptom. Reproduce it, retain its failure signature while minimizing the scenario, test one named hypothesis at a time, and verify both the minimal reproduction and the original scenario after the fix. Do not treat a nearby passing helper test as proof.
For a race, use a synchronization barrier and a fixed run or time budget. For an unavailable production dependency, return inconclusive with the missing evidence. Remove temporary instrumentation before completion and preserve a stable reproduction as a regression test.
The final record is data, not an executable queue. Store commands as argument arrays and never evaluate provider-authored text.
Use a 3-Strike Rule for failed fixes. After each failure, return to the evidence and test a materially different hypothesis. After two consecutive failures, a strategy rotation is mandatory: reconsider the root cause, the reproduction, and whether the test encodes the intended behavior. Do not attempt a 4th fix without explicit user approval.
Anti-rationalization check: “Should work now” means run the reproduction and the original scenario. Confidence is not verification.
For multi-attempt debugging, report a WTF score using the defaults in ~/.claude-octopus/loop-config.conf: +15% per revert and +20% for touching unrelated files. If the score exceeds 20%, STOP and show the evidence before continuing. Include the score with every retry, for example:
textFix attempt 2 | Self-regulation: 15% (1 revert, 0 unrelated files)
When the symptom is localized to one user-approved module, resolve that module to a physical directory before editing and activate the existing freeze guard:
bashfreeze_dir="$(cd "<module-directory>" 2>/dev/null && pwd -P)" || exit 1 printf '%s\n' "$freeze_dir" > "/tmp/octopus-freeze-${CLAUDE_SESSION_ID:-$$}.txt"
Do not auto-freeze when the root cause is still unknown, the reproduction spans modules, or the user opted out. After original-scenario verification, run /octo:unfreeze or remove only this workflow's freeze state.
Adapted from diagnosing-bugs in mattpocock/skills at commit 3cca18b368ae95cdbdebbff572ccafa662551015 under the MIT License. See THIRD_PARTY_NOTICES.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 20,763 | 14,789 | -29% | 1 | 1 | 0% | 2,442 | 2,295 | -6% | 0 | 0 | — |
case-01 | fail→fail | 15,521 | 17,414 | +12% | 1 | 1 | 0% | 251 | 1,210 | +382% | 0 | 0 | — |
case-02 | pass→fail | 42,589 | 18,352 | -57% | 1 | 1 | 0% | 3,223 | 959 | -70% | 0 | 0 | — |
case-03 | fail→fail | 14,580 | 15,874 | +9% | 1 | 1 | 0% | 203 | 1,124 | +454% | 0 | 0 | — |
case-04 | fail→pass | 15,468 | 9,409 | -39% | 1 | 1 | 0% | 1,686 | 1,547 | -8% | 0 | 0 | — |
case-05 | fail→pass | 17,677 | 7,896 | -55% | 1 | 1 | 0% | 2,150 | 1,211 | -44% | 0 | 0 | — |
case-06 | fail→pass | 19,014 | 9,444 | -50% | 1 | 1 | 0% | 1,937 | 1,549 | -20% | 0 | 0 | — |
case-07 | fail→pass | 12,815 | 8,749 | -32% | 1 | 1 | 0% | 1,178 | 1,073 | -9% | 0 | 0 | — |
case-09 | fail→pass | 31,442 | 8,144 | -74% | 1 | 1 | 0% | 4,148 | 1,246 | -70% | 0 | 0 | — |
case-10 | fail→pass | 16,542 | 8,434 | -49% | 1 | 1 | 0% | 1,688 | 1,295 | -23% | 0 | 0 | — |
case-11 | pass→pass | 13,022 | 9,050 | -31% | 1 | 1 | 0% | 1,204 | 1,367 | +14% | 0 | 0 | — |
case-12 | fail→pass | 15,501 | 8,021 | -48% | 1 | 1 | 0% | 1,623 | 1,253 | -23% | 0 | 0 | — |
case-13 | fail→pass | 14,649 | 9,042 | -38% | 1 | 1 | 0% | 1,398 | 1,353 | -3% | 0 | 0 | — |
case-14 | pass→pass | 11,345 | 6,800 | -40% | 1 | 1 | 0% | 879 | 990 | +13% | 0 | 0 | — |
case-15 | pass→pass | 13,767 | 8,249 | -40% | 1 | 1 | 0% | 1,424 | 1,296 | -9% | 0 | 0 | — |
case-16 | pass→pass | 19,733 | 14,122 | -28% | 1 | 1 | 0% | 2,206 | 2,105 | -5% | 0 | 0 | — |
case-17 | fail→pass | 19,144 | 9,631 | -50% | 1 | 1 | 0% | 2,321 | 1,604 | -31% | 0 | 0 | — |
case-18 | pass→pass | 13,110 | 8,050 | -39% | 1 | 1 | 0% | 1,424 | 1,186 | -17% | 0 | 0 | — |
case-19 | pass→pass | 10,257 | 6,882 | -33% | 1 | 1 | 0% | 831 | 1,053 | +27% | 0 | 0 | — |
case-20 | fail→pass | 19,777 | 7,276 | -63% | 1 | 1 | 0% | 2,306 | 1,128 | -51% | 0 | 0 | — |
case-21 | pass→fail | 25,097 | 16,154 | -36% | 1 | 1 | 0% | 4,020 | 949 | -76% | 0 | 0 | — |
case-22 | pass→fail | 34,012 | 15,855 | -53% | 1 | 1 | 0% | 5,796 | 922 | -84% | 0 | 0 | — |
case-23 | pass→fail | 17,735 | 15,214 | -14% | 1 | 1 | 0% | 2,129 | 954 | -55% | 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 17 counted toward the lift figure. The other 6 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 +30 percentage points is the difference between those two pass rates over the 17 comparable cases. 4 cases got worse with the skill loaded, and they are 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.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/17/2026 | +22% |
| gemini-3.6-flash | verified | 8/11/2026 | +32% |
Other measured skills in the registry, with their headline benchmark lift.