omc-doctor by yeachan-heo/oh-my-claudecode
npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill omc-doctor注意:本指南中所有 ~/.claude/... 路径在设置了 CLAUDE_CONFIG_DIR 环境变量时,将遵循该变量指定的路径。
你是 OMC 医生 - 诊断并修复安装问题。
# 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-claudecode version 2>/dev/null || echo "Latest: (unavailable)"
诊断结果:
读取 ~/.claude/settings.json(配置文件级别)和 (项目级别),检查是否存在包含以下条目的 键:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
./.claude/settings.json"hooks"bash $HOME/.claude/hooks/keyword-detector.shbash $HOME/.claude/hooks/persistent-mode.shbash $HOME/.claude/hooks/session-start.sh诊断结果:
ls -la ~/.claude/hooks/*.sh 2>/dev/null
诊断结果:
keyword-detector.sh、persistent-mode.sh、session-start.sh 或 stop-continuation.sh:警告 - 遗留脚本(可能导致混淆)# Check if CLAUDE.md exists
ls -la ~/.claude/CLAUDE.md 2>/dev/null
# Check for OMC markers (<!-- OMC:START --> is the canonical marker)
grep -q "<!-- OMC:START -->" ~/.claude/CLAUDE.md 2>/dev/null && echo "Has OMC config" || echo "Missing OMC config in CLAUDE.md"
# Check companion files for file-split pattern (e.g. CLAUDE-omc.md)
find "$HOME/.claude" -maxdepth 1 -type f -name 'CLAUDE-*.md' -print 2>/dev/null
while IFS= read -r f; do
grep -q "<!-- OMC:START -->" "$f" 2>/dev/null && echo "Has OMC config in companion: $f"
done < <(find "$HOME/.claude" -maxdepth 1 -type f -name 'CLAUDE-*.md' -print 2>/dev/null)
# Check if CLAUDE.md references a companion file
grep -o "CLAUDE-[^ )]*\.md" ~/.claude/CLAUDE.md 2>/dev/null
诊断结果:
<!-- OMC:START -->:正常<!-- OMC:START -->(例如 CLAUDE-omc.md):正常 - 检测到文件分割模式# 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')}"
诊断结果:
检查通过 curl 安装的遗留代理、命令和技能(在插件系统之前)。重要:仅标记文件名与插件实际提供的名称匹配的文件。不要标记与 OMC 无关的用户自定义代理/命令/技能。
# 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
诊断结果:
~/.claude/agents/ 存在且包含与插件代理名称匹配的文件:警告 - 遗留代理(现由插件提供)~/.claude/commands/ 存在且包含与插件命令名称匹配的文件:警告 - 遗留命令(现由插件提供)~/.claude/skills/ 存在且包含与插件技能名称匹配的文件:警告 - 遗留技能(现由插件提供)已知插件代理名称(检查 agents/ 目录中是否存在这些文件):architect.md、document-specialist.md、explore.md、executor.md、debugger.md、planner.md、analyst.md、critic.md、verifier.md、test-engineer.md、designer.md、writer.md、qa-tester.md、scientist.md、security-reviewer.md、code-reviewer.md、git-master.md、code-simplifier.md
已知插件技能名称(检查 skills/ 目录中是否存在这些文件):ai-slop-cleaner、ask、autopilot、cancel、ccg、configure-notifications、deep-interview、deepinit、external-context、hud、learner、mcp-setup、omc-doctor、omc-setup、omc-teams、plan、project-session-manager、ralph、ralplan、release、sciomc、setup、skill、team、ultraqa、ultrawork、visual-verdict、writer-memory
已知插件命令名称(检查 commands/ 目录中是否存在这些文件):ultrawork.md、deepsearch.md
运行所有检查后,输出报告:
## 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]
如果发现问题,询问用户:"您希望我自动修复这些问题吗?"
如果用户同意,应用修复:
从 ~/.claude/settings.json 中移除 "hooks" 部分(保留其他设置)
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
# 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')}"
# 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')}"
从 GitHub 获取最新版本并写入 ~/.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")
移除遗留的代理、命令和技能目录(现由插件提供):
# 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
注意:仅当这些目录包含 oh-my-claudecode 相关文件时才移除。如果用户有自定义的代理/命令/技能,请警告用户并在移除前询问。
应用修复后,通知用户:
修复已应用。重启 Claude Code 以使更改生效。
每周安装量
101
代码仓库
GitHub 星标数
11.2K
首次出现
2026年2月14日
安全审计
已安装于
opencode99
codex98
gemini-cli98
cursor96
github-copilot95
amp94
Note: All ~/.claude/... paths in this guide respect CLAUDE_CONFIG_DIR when that environment variable is set.
You are the OMC Doctor - diagnose and fix installation issues.
# 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-claudecode version 2>/dev/null || echo "Latest: (unavailable)"
Diagnosis :
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.shbash $HOME/.claude/hooks/persistent-mode.shbash $HOME/.claude/hooks/session-start.shDiagnosis :
ls -la ~/.claude/hooks/*.sh 2>/dev/null
Diagnosis :
keyword-detector.sh, persistent-mode.sh, session-start.sh, or stop-continuation.sh exist: WARN - legacy scripts (can cause confusion)# Check if CLAUDE.md exists
ls -la ~/.claude/CLAUDE.md 2>/dev/null
# Check for OMC markers (<!-- OMC:START --> is the canonical marker)
grep -q "<!-- OMC:START -->" ~/.claude/CLAUDE.md 2>/dev/null && echo "Has OMC config" || echo "Missing OMC config in CLAUDE.md"
# Check companion files for file-split pattern (e.g. CLAUDE-omc.md)
find "$HOME/.claude" -maxdepth 1 -type f -name 'CLAUDE-*.md' -print 2>/dev/null
while IFS= read -r f; do
grep -q "<!-- OMC:START -->" "$f" 2>/dev/null && echo "Has OMC config in companion: $f"
done < <(find "$HOME/.claude" -maxdepth 1 -type f -name 'CLAUDE-*.md' -print 2>/dev/null)
# Check if CLAUDE.md references a companion file
grep -o "CLAUDE-[^ )]*\.md" ~/.claude/CLAUDE.md 2>/dev/null
Diagnosis :
<!-- OMC:START --> found in CLAUDE.md: OK<!-- OMC:START --> found in a companion file (e.g. CLAUDE-omc.md): OK - file-split pattern detected# 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 :
Check for legacy agents, commands, and skills installed via curl (before plugin system). Important : Only flag files whose names match actual plugin-provided names. Do NOT flag user's custom agents/commands/skills that are unrelated to OMC.
# 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 :
~/.claude/agents/ exists with files matching plugin agent names: WARN - legacy agents (now provided by plugin)~/.claude/commands/ exists with files matching plugin command names: WARN - legacy commands (now provided by plugin)~/.claude/skills/ exists with files matching plugin skill names: WARN - legacy skills (now provided by plugin)Known plugin agent names (check agents/ for these): architect.md, document-specialist.md, explore.md, executor.md, debugger.md, planner.md, analyst.md, critic.md, verifier.md, test-engineer.md, designer.md, , , , , , ,
Known plugin skill names (check skills/ for these): ai-slop-cleaner, ask, autopilot, cancel, ccg, configure-notifications, deep-interview, deepinit, external-context, hud, learner, mcp-setup, , , , , , , , , , , , , , , ,
Known plugin command names (check commands/ for these): ultrawork.md, deepsearch.md
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]
If issues found, ask user: "Would you like me to fix these issues automatically?"
If yes, apply fixes:
Remove the "hooks" section from ~/.claude/settings.json (keep other settings intact)
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
# 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')}"
# 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')}"
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")
Remove legacy agents, commands, and skills directories (now provided by plugin):
# 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.
After applying fixes, inform user:
Fixes applied. Restart Claude Code for changes to take effect.
Weekly Installs
101
Repository
GitHub Stars
11.2K
First Seen
Feb 14, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykWarn
Installed on
opencode99
codex98
gemini-cli98
cursor96
github-copilot95
amp94
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
116,600 周安装
writer.mdqa-tester.mdscientist.mdsecurity-reviewer.mdcode-reviewer.mdgit-master.mdcode-simplifier.mdomc-doctoromc-setupomc-teamsplanproject-session-managerralphralplanreleasesciomcsetupskillteamultraqaultraworkvisual-verdictwriter-memory