name: omc-doctor description: 诊断和修复 oh-my-claudecode 安装问题
医生技能
注意:本指南中所有 ~/.claude/... 路径在设置 CLAUDE_CONFIG_DIR 环境变量时遵循该变量。
任务:运行安装诊断
您是 OMC 医生 - 诊断和修复安装问题。
步骤1:检查插件版本
# 获取已安装和最新版本(跨平台)
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)"
诊断:
- 如果没有安装版本: 严重 - 插件未安装
- 如果已安装 != 最新: 警告 - 插件过时
- 如果存在多个版本: 警告 - 缓存陈旧
步骤2:检查 settings.json 中的旧版钩子
读取 ~/.claude/settings.json(配置文件级别)和 ./.claude/settings.json(项目级别),并检查是否有 "hooks" 键包含如下条目:
bash $HOME/.claude/hooks/keyword-detector.shbash $HOME/.claude/hooks/persistent-mode.shbash $HOME/.claude/hooks/session-start.sh
诊断:
- 如果找到: 严重 - 旧版钩子导致重复
步骤3:检查旧版 Bash 钩子脚本
ls -la ~/.claude/hooks/*.sh 2>/dev/null
诊断:
- 如果存在
keyword-detector.sh、persistent-mode.sh、session-start.sh或stop-continuation.sh: 警告 - 旧版脚本(可能引起混淆)
步骤4:检查 CLAUDE.md
# 检查 CLAUDE.md 是否存在
ls -la ~/.claude/CLAUDE.md 2>/dev/null
# 检查 OMC 标记
grep -q "oh-my-claudecode Multi-Agent System" ~/.claude/CLAUDE.md 2>/dev/null && echo "Has OMC config" || echo "Missing OMC config"
诊断:
步骤5:检查陈旧的插件缓存
# 统计缓存中的版本数量(跨平台)
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')}"
诊断:
- 如果 > 1 版本: 警告 - 多个缓存版本(建议清理)
步骤6:检查通过 Curl 安装的旧版内容
检查通过 curl 安装的旧版代理、命令和技能(在插件系统之前):
# 检查旧版代理目录
ls -la ~/.claude/agents/ 2>/dev/null
# 检查旧版命令目录
ls -la ~/.claude/commands/ 2>/dev/null
# 检查旧版技能目录
ls -la ~/.claude/skills/ 2>/dev/null
诊断:
- 如果
~/.claude/agents/存在并包含 oh-my-claudecode 相关文件: 警告 - 旧版代理(现由插件提供) - 如果
~/.claude/commands/存在并包含 oh-my-claudecode 相关文件: 警告 - 旧版命令(现由插件提供) - 如果
~/.claude/skills/存在并包含 oh-my-claudecode 相关文件: 警告 - 旧版技能(现由插件提供)
查找文件如:
architect.md、document-specialist.md、explore.md、executor.md等在 agents/ultrawork.md、deepsearch.md等在 commands/- 任何 oh-my-claudecode 相关的
.md文件在 skills/
报告格式
运行所有检查后,输出报告:
## OMC 医生报告
### 摘要
[健康 / 发现问题]
### 检查
| 检查 | 状态 | 详情 |
|-------|--------|---------|
| 插件版本 | 正常/警告/严重 | ... |
| 旧版钩子 (settings.json) | 正常/严重 | ... |
| 旧版脚本 (~/.claude/hooks/) | 正常/警告 | ... |
| CLAUDE.md | 正常/警告/严重 | ... |
| 插件缓存 | 正常/警告 | ... |
| 旧版代理 (~/.claude/agents/) | 正常/警告 | ... |
| 旧版命令 (~/.claude/commands/) | 正常/警告 | ... |
| 旧版技能 (~/.claude/skills/) | 正常/警告 | ... |
### 发现问题
1. [问题描述]
2. [问题描述]
### 推荐修复
[基于问题的修复列表]
自动修复(如果用户确认)
如果发现问题,询问用户:“您希望我自动修复这些问题吗?”
如果是,应用修复:
修复:settings.json 中的旧版钩子
从 ~/.claude/settings.json 中移除 "hooks" 部分(保持其他设置不变)
修复:旧版 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
修复:过时插件
# 清除插件缓存(跨平台)
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')}"
修复:陈旧缓存(多个版本)
# 仅保留最新版本(跨平台)
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')}"
修复:缺失/过时的 CLAUDE.md
从 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")
修复:通过 Curl 安装的旧版内容
移除旧版代理、命令和技能目录(现由插件提供):
# 首先备份(可选 - 询问用户)
# mv ~/.claude/agents ~/.claude/agents.bak
# mv ~/.claude/commands ~/.claude/commands.bak
# mv ~/.claude/skills ~/.claude/skills.bak
# 或直接移除
rm -rf ~/.claude/agents
rm -rf ~/.claude/commands
rm -rf ~/.claude/skills
注意:仅在这些目录包含 oh-my-claudecode 相关文件时移除。如果用户有自定义代理/命令/技能,警告并询问后再移除。
修复后
应用修复后,通知用户:
修复已应用。重启 Claude Code 以使更改生效。