home / skills / yeachan-heo / oh-my-claudecode / omc-doctor
This skill diagnoses oh-my-claudecode installation issues and applies targeted fixes to restore a healthy Claude Code setup.
npx playbooks add skill yeachan-heo/oh-my-claudecode --skill omc-doctorReview the files below or copy the command above to add this skill to your agents.
---
name: omc-doctor
description: Diagnose and fix oh-my-claudecode installation issues
---
# Doctor Skill
Note: All `~/.claude/...` paths in this guide respect `CLAUDE_CONFIG_DIR` when that environment variable is set.
## Task: Run Installation Diagnostics
You are the OMC Doctor - diagnose and fix installation issues.
### Step 1: Check Plugin Version
```bash
# Get installed and latest versions (cross-platform)
node -e "const p=require('path'),f=require('fs'),h=require('os').homedir(),d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{const v=f.readdirSync(b).filter(x=>/^\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));console.log('Installed:',v.length?v[v.length-1]:'(none)')}catch{console.log('Installed: (none)')}"
npm view oh-my-claude-sisyphus version 2>/dev/null || echo "Latest: (unavailable)"
```
**Diagnosis**:
- If no version installed: CRITICAL - plugin not installed
- If INSTALLED != LATEST: WARN - outdated plugin
- If multiple versions exist: WARN - stale cache
### Step 2: Check for Legacy Hooks in settings.json
Read both `~/.claude/settings.json` (profile-level) and `./.claude/settings.json` (project-level) and check if there's a `"hooks"` key with entries like:
- `bash $HOME/.claude/hooks/keyword-detector.sh`
- `bash $HOME/.claude/hooks/persistent-mode.sh`
- `bash $HOME/.claude/hooks/session-start.sh`
**Diagnosis**:
- If found: CRITICAL - legacy hooks causing duplicates
### Step 3: Check for Legacy Bash Hook Scripts
```bash
ls -la ~/.claude/hooks/*.sh 2>/dev/null
```
**Diagnosis**:
- If `keyword-detector.sh`, `persistent-mode.sh`, `session-start.sh`, or `stop-continuation.sh` exist: WARN - legacy scripts (can cause confusion)
### Step 4: Check CLAUDE.md
```bash
# Check if CLAUDE.md exists
ls -la ~/.claude/CLAUDE.md 2>/dev/null
# Check for OMC marker
grep -q "oh-my-claudecode Multi-Agent System" ~/.claude/CLAUDE.md 2>/dev/null && echo "Has OMC config" || echo "Missing OMC config"
```
**Diagnosis**:
- If missing: CRITICAL - CLAUDE.md not configured
- If missing OMC marker: WARN - outdated CLAUDE.md
### Step 5: Check for Stale Plugin Cache
```bash
# Count versions in cache (cross-platform)
node -e "const p=require('path'),f=require('fs'),h=require('os').homedir(),d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{const v=f.readdirSync(b).filter(x=>/^\d/.test(x));console.log(v.length+' version(s):',v.join(', '))}catch{console.log('0 versions')}"
```
**Diagnosis**:
- If > 1 version: WARN - multiple cached versions (cleanup recommended)
### Step 6: Check for Legacy Curl-Installed Content
Check for legacy agents, commands, and skills installed via curl (before plugin system):
```bash
# Check for legacy agents directory
ls -la ~/.claude/agents/ 2>/dev/null
# Check for legacy commands directory
ls -la ~/.claude/commands/ 2>/dev/null
# Check for legacy skills directory
ls -la ~/.claude/skills/ 2>/dev/null
```
**Diagnosis**:
- If `~/.claude/agents/` exists with oh-my-claudecode-related files: WARN - legacy agents (now provided by plugin)
- If `~/.claude/commands/` exists with oh-my-claudecode-related files: WARN - legacy commands (now provided by plugin)
- If `~/.claude/skills/` exists with oh-my-claudecode-related files: WARN - legacy skills (now provided by plugin)
Look for files like:
- `architect.md`, `document-specialist.md`, `explore.md`, `executor.md`, etc. in agents/
- `ultrawork.md`, `deepsearch.md`, etc. in commands/
- Any oh-my-claudecode-related `.md` files in skills/
---
## Report Format
After running all checks, output a report:
```
## OMC Doctor Report
### Summary
[HEALTHY / ISSUES FOUND]
### Checks
| Check | Status | Details |
|-------|--------|---------|
| Plugin Version | OK/WARN/CRITICAL | ... |
| Legacy Hooks (settings.json) | OK/CRITICAL | ... |
| Legacy Scripts (~/.claude/hooks/) | OK/WARN | ... |
| CLAUDE.md | OK/WARN/CRITICAL | ... |
| Plugin Cache | OK/WARN | ... |
| Legacy Agents (~/.claude/agents/) | OK/WARN | ... |
| Legacy Commands (~/.claude/commands/) | OK/WARN | ... |
| Legacy Skills (~/.claude/skills/) | OK/WARN | ... |
### Issues Found
1. [Issue description]
2. [Issue description]
### Recommended Fixes
[List fixes based on issues]
```
---
## Auto-Fix (if user confirms)
If issues found, ask user: "Would you like me to fix these issues automatically?"
If yes, apply fixes:
### Fix: Legacy Hooks in settings.json
Remove the `"hooks"` section from `~/.claude/settings.json` (keep other settings intact)
### Fix: Legacy Bash Scripts
```bash
rm -f ~/.claude/hooks/keyword-detector.sh
rm -f ~/.claude/hooks/persistent-mode.sh
rm -f ~/.claude/hooks/session-start.sh
rm -f ~/.claude/hooks/stop-continuation.sh
```
### Fix: Outdated Plugin
```bash
# Clear plugin cache (cross-platform)
node -e "const p=require('path'),f=require('fs'),d=process.env.CLAUDE_CONFIG_DIR||p.join(require('os').homedir(),'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{f.rmSync(b,{recursive:true,force:true});console.log('Plugin cache cleared. Restart Claude Code to fetch latest version.')}catch{console.log('No plugin cache found')}"
```
### Fix: Stale Cache (multiple versions)
```bash
# Keep only latest version (cross-platform)
node -e "const p=require('path'),f=require('fs'),h=require('os').homedir(),d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{const v=f.readdirSync(b).filter(x=>/^\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));v.slice(0,-1).forEach(x=>f.rmSync(p.join(b,x),{recursive:true,force:true}));console.log('Removed',v.length-1,'old version(s)')}catch(e){console.log('No cache to clean')}"
```
### Fix: Missing/Outdated CLAUDE.md
Fetch latest from GitHub and write to `~/.claude/CLAUDE.md`:
```
WebFetch(url: "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/docs/CLAUDE.md", prompt: "Return the complete raw markdown content exactly as-is")
```
### Fix: Legacy Curl-Installed Content
Remove legacy agents, commands, and skills directories (now provided by plugin):
```bash
# Backup first (optional - ask user)
# mv ~/.claude/agents ~/.claude/agents.bak
# mv ~/.claude/commands ~/.claude/commands.bak
# mv ~/.claude/skills ~/.claude/skills.bak
# Or remove directly
rm -rf ~/.claude/agents
rm -rf ~/.claude/commands
rm -rf ~/.claude/skills
```
**Note**: Only remove if these contain oh-my-claudecode-related files. If user has custom agents/commands/skills, warn them and ask before removing.
---
## Post-Fix
After applying fixes, inform user:
> Fixes applied. **Restart Claude Code** for changes to take effect.
This skill diagnoses and repairs common installation problems with oh-my-claudecode (OMC) in a Claude Code environment. It runs a battery of checks against plugin versions, legacy hooks, hook scripts, CLAUDE.md configuration, cached plugin versions, and any curl-installed legacy content. When you allow fixes, it can automatically remove or repair problematic files and update configuration to restore a healthy OMC setup.
The skill inspects the CLAUDE_CONFIG_DIR (default ~/.claude) and checks plugin cache contents, settings.json for legacy hooks, and presence of legacy hook scripts and curl-installed agents/commands/skills. It verifies CLAUDE.md for the OMC marker and compares the installed plugin version to the latest npm version. After collecting statuses, it produces a concise report and can apply targeted fixes on user confirmation, with safe warnings where user data might be removed.
Will the auto-fix remove my custom agents or skills?
The auto-fix will only remove legacy curl-installed directories if they contain oh-my-claudecode-related files; you are warned first and encouraged to back up custom content.
Do I need to restart Claude Code after fixes?
Yes. Restart Claude Code for plugin cache and configuration changes to take effect.
Can I preview the changes before they are applied?
Yes. The skill generates a detailed report listing issues and recommended fixes; you must confirm before any automatic changes are made.