# Principle Fix Root Causes

Apply when debugging.

- Repository: https://github.com/nightly-labs/openbot (4509 stars)
- Category: Testing
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add nightly-labs/openbot --skill principle-fix-root-causes -g -a claude-code -y`
Codex: `npx skills add nightly-labs/openbot --skill principle-fix-root-causes -g -a codex -y`
Cursor: `npx skills add nightly-labs/openbot --skill principle-fix-root-causes -g -a cursor -y`
Gemini CLI: `npx skills add nightly-labs/openbot --skill principle-fix-root-causes -g -a gemini-cli -y`

## Description

Apply when debugging. Trace each symptom to its root cause and fix it there; reproduce first, ask why until you reach it, resist nil-check guards that silence crashes.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Fix Root Causes

When debugging, do not fix symptoms. Trace every problem to its root cause and fix it there.

**Why:** Symptom fixes accumulate. Each workaround makes the system harder to reason about, and the real bug remains. Root-cause fixes are slower upfront but reduce total debugging time.

**Pattern:**
- Reproduce first
- Ask "why" until you hit the root cause
- Do not add guards (adding a nil check to silence a crash is a symptom fix)
- If a workaround needs a paragraph-long comment to justify it, the code is wrong (fix the code, not the comment)
- Check for the pattern, not just the instance (grep for the same pattern, fix all instances)
- When stuck, instrument. Don't guess (add logging, read the actual error)

**Restart bugs: suspect state before code**

When something "fails after restart," suspect stale persistent state first: config files, caches, lock files, serialized state. If clearing a state file restores behavior, prioritize state validation as the fix.

