Runbook: Incident Response
Purpose: Diagnose and resolve issues with BoB tooling, warp-drive, or project dev environments When to use: Something is broken — warp-drive stuck, dev environment down, provisioning failed, or unexpected behavior Prerequisites: Access to the affected project directory Estimated time: 5-15 minutes
1. Identify the problem domain
Section titled “1. Identify the problem domain”Determine which system is affected:
| Symptom | Domain | Go to |
|---|---|---|
| Warp-drive stuck or erroring | State machine | Step 2 |
| Dev environment won’t start | Dev lifecycle | Step 3 |
| Provisioning/symlinks broken | Provisioning | Step 4 |
| Hooks blocking operations | Hook system | Step 5 |
| Unexpected Claude behavior | Configuration | Step 6 |
2. Diagnose warp-drive issues
Section titled “2. Diagnose warp-drive issues”Check current state:
node ~/.claude/scripts/warp-drive/state-machine.js status "$(pwd)"Expected output: JSON with phase, stale status, and budget info.
Decision tree:
- If
stale: true→ Previous session died. Reset:node ~/.claude/scripts/warp-drive/state-machine.js reset "$(pwd)" - If
budgetExceededpresent → Phase timeout or retry limit hit. Either extend budgets insettings.local.jsonunder_workflow, or abort:node ~/.claude/scripts/warp-drive/state-machine.js abort "$(pwd)" - If phase is
aborted→ Complete cleanup per the abort instructions in the state machine output - If gate blocking → Check
_workflow.verification_gatesinsettings.local.json
After fix, restart: /warp-drive
3. Diagnose dev environment issues
Section titled “3. Diagnose dev environment issues”Run health check:
~/.claude/scripts/dev-lifecycle/health-check.sh "$(pwd)"Expected output: Health status with endpoint check result.
Decision tree:
- If server not running → Start it:
~/.claude/scripts/dev-lifecycle/dev-up.sh "$(pwd)" --verbose - If server running but unhealthy → Check logs for the server process
- If migrations failed → Check the migration command in
dev.jsonand run manually - If seed data failed → Check
seed/scripts for errors, run manually
Full recovery:
~/.claude/scripts/dev-lifecycle/dev-up.sh "$(pwd)" --verbose4. Diagnose provisioning issues
Section titled “4. Diagnose provisioning issues”Check current state:
cdprov --statusExpected output: List of provisioned items with symlink status (OK/BROKEN/MISSING).
Decision tree:
- If symlinks broken → Re-provision:
cdprov - If manifest missing → Create one:
cdprov --init - If wrong items → Edit
~/.claude/provisions/<project>.jsonand re-provision
5. Diagnose hook issues
Section titled “5. Diagnose hook issues”Hooks are configured in .claude/settings.json and .claude/settings.local.json.
Check which hooks are active:
cat .claude/settings.json | jq '.hooks' 2>/dev/nullcat .claude/settings.local.json | jq '.hooks' 2>/dev/nullCommon hook issues:
- Hook script not executable →
chmod +x <script> - Hook reading wrong JSON field → Hooks receive data via stdin as JSON, not magic variables
- Hook blocking legitimate operation → Check the gate conditions in the hook script
6. Diagnose configuration issues
Section titled “6. Diagnose configuration issues”Check for conflicting settings:
cat .claude/settings.json | jq '.' 2>/dev/nullcat .claude/settings.local.json | jq '._automation, ._rdb, ._workflow' 2>/dev/nullCommon issues:
- Automation level not set →
/automation level 2 - Permissions too restrictive → Check
allowedToolsin the active profile - RDB enabled but bridge down →
/rdb offto switch back to terminal
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely Cause | Fix |
|---|---|---|
| “No active state” on warp-drive commands | State file deleted or never created | Start fresh: /warp-drive |
| “Invalid transition” error | Trying to skip a phase | Check current phase with status, follow the phase sequence |
| Permission denied on scripts | Not executable | chmod +x ~/.claude/scripts/**/*.sh |
jq: command not found |
jq not installed | brew install jq (macOS) |
| Git commit blocked by hook | Warp-drive not in committing phase | Complete current phase first, or reset warp-drive if stuck |
Escalation
Section titled “Escalation”If this runbook doesn’t resolve the issue:
- Collect diagnostics:
cdb,git status, state file contents, recentgit log - File a GitHub issue with the diagnostics attached
- As a last resort, reset all state:
node ~/.claude/scripts/warp-drive/state-machine.js reset "$(pwd)"and start fresh