OMC医生Skill omc-doctor

OMC医生技能专门用于诊断和修复oh-my-claudecode的安装问题,包括检查插件版本、清理旧版钩子、更新配置文件等操作,确保系统稳定运行。关键词:oh-my-claudecode, 安装诊断, 故障排除, 插件管理, DevOps工具

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

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.sh
  • bash $HOME/.claude/hooks/persistent-mode.sh
  • bash $HOME/.claude/hooks/session-start.sh

诊断:

  • 如果找到: 严重 - 旧版钩子导致重复

步骤3:检查旧版 Bash 钩子脚本

ls -la ~/.claude/hooks/*.sh 2>/dev/null

诊断:

  • 如果存在 keyword-detector.shpersistent-mode.shsession-start.shstop-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"

诊断:

  • 如果缺失: 严重 - CLAUDE.md 未配置
  • 如果缺失 OMC 标记: 警告 - CLAUDE.md 过时

步骤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.mddocument-specialist.mdexplore.mdexecutor.md 等在 agents/
  • ultrawork.mddeepsearch.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 以使更改生效。