关于 doctor
doctor 是用于诊断 OMX 安装与发现问题的技能。它检查配置、钩子、技能路径、插件缓存,并可选检查 Team 运行状态,随后报告证据和可行的修复方案。
主要功能
- 01检查安装与发现路径
- 02检查钩子和配置
- 03报告插件缓存及版本状态
- 04可选检查 Team 运行状态
- 05支持详细输出和修复预览
适用场景
- 01诊断 OMX 配置无法被发现的问题
- 02检查旧钩子或技能路径冲突
- 03排查 Team 运行问题
- 04预览符合条件的所有权修复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yeachan-heo/ oh-my-codex --skill doctor安装后在 Claude Code 中输入/doctor确认已加载。
详细介绍
OMX Doctor
使用此任务卡诊断安装/发现问题。共享的安全、生命周期、hook、团队、自主性和取消规则位于 templates/AGENTS.md。当设置了 CODEX_HOME 时,~/.codex 表示 ${CODEX_HOME:-~/.codex}。
运行诊断
omx doctor
omx doctor --team # include Team runtime checks
omx doctor --verbose # include detailed check evidence
omx doctor --force # repair eligible repo artifact ownership issues
omx doctor --dry-run --force # preview eligible ownership repairs
对于本地源代码检出,请先构建,然后调用 node dist/cli/omx.js doctor。保留命令输出和确切路径以供报告使用。
插件缓存和版本
PLUGIN_CACHE_ROOT="${CODEX_HOME:-$HOME/.codex}/plugins/cache"
CACHE_ENTRIES=$(find "$PLUGIN_CACHE_ROOT" -path "*/oh-my-codex/*" -mindepth 3 -maxdepth 3 -type d 2>/dev/null)
if [[ -z "$CACHE_ENTRIES" ]]; then
echo "Installed plugin cache: none"
else
while IFS= read -r d; do
m=$(basename "$(dirname "$(dirname "$d")")"); v=$(basename "$d")
printf 'Installed plugin cache: marketplace=%s version=%s path=%s\n' "$m" "$v" "$d"
done <<<"$CACHE_ENTRIES"
fi
LATEST=$(npm view oh-my-codex version 2>/dev/null)
echo "Latest npm: $LATEST"
无缓存为 INFO(对于仅 npm/setup 安装而言属正常)。缓存版本非 local 且与 LATEST 不同,或同一 marketplace 存在多个版本,则为 WARN。插件发现不能替代 npm 安装加上 omx setup;原生/运行时接线仍归 setup 所有。
Hook、AGENTS 和 skill 根目录
CODEX_DIR="${CODEX_HOME:-$HOME/.codex}"
ls -la "$CODEX_DIR/config.toml" "$CODEX_DIR/settings.json" 2>/dev/null
rg 'keyword-detector|persistent-mode|session-start|stop-continuation' "$CODEX_DIR/config.toml" "$CODEX_DIR/settings.json" 2>/dev/null || true
ls -la "$CODEX_DIR/hooks"/*.sh 2>/dev/null
ls -la "$CODEX_DIR/AGENTS.md" 2>/dev/null
grep -q "oh-my-codex Multi-Agent System" "$CODEX_DIR/AGENTS.md" 2>/dev/null && echo "Has OMX config" || echo "Missing OMX config"
ls -la "$CODEX_DIR/agents" "$CODEX_DIR/commands" "$CODEX_DIR/skills" "$HOME/.agents/skills" 2>/dev/null
将遗留 hook 引用归类为 CRITICAL(重复 hook)。脚本 keyword-detector.sh、persistent-mode.sh、session-start.sh 和 stop-continuation.sh 为 WARN。缺少 AGENTS.md 为 CRITICAL;缺少 OMX 标记为 WARN。${CODEX_HOME:-~/.codex}/skills 是规范的用户根目录。~/.agents/skills 是历史目录,重叠的目录树可能导致 skill 条目重复。遗留 agents/ 或 commands/ 下的 OMX 文件为 WARN。
使用 --team 时,保留任何 resume_blocker、slow_shutdown、delayed_status_lag、stale_leader 或 orphan_tmux_session 诊断;检查失败会设置非零退出状态。
报告约定
## OMX Doctor Report
### Summary
[HEALTHY / ISSUES FOUND]
### Checks
| Check | Status | Details |
| Plugin Version | OK/WARN/INFO | ... |
| Hook Config (config.toml / legacy settings.json) | OK/CRITICAL | ... |
| Legacy Scripts (~/.codex/hooks/) | OK/WARN | ... |
| AGENTS.md | OK/WARN/CRITICAL | ... |
| Plugin Cache | OK/WARN | ... |
| Legacy Agents / Commands | OK/WARN | ... |
| Skills (canonical / historical root) | OK/WARN | ... |
### Issues Found
1. ...
### Recommended Fixes
...
修复(在用户确认并确认每个目标均归 OMX 所有之后)
仅移除已确认的 OMX 遗留内容;保留无关的用户文件:
# If settings.json exists, remove only its legacy "hooks" section.
rm -f "$CODEX_DIR/hooks/keyword-detector.sh" "$CODEX_DIR/hooks/persistent-mode.sh" "$CODEX_DIR/hooks/session-start.sh" "$CODEX_DIR/hooks/stop-continuation.sh"
PLUGIN_CACHE_ROOT="${CODEX_HOME:-$HOME/.codex}/plugins/cache"
find "$PLUGIN_CACHE_ROOT" -path "*/oh-my-codex" -type d -prune -exec rm -rf {} +
对于较旧的 curl 安装,先检查,仅移除包含 OMX 管理文件的目录:
ls -la "$CODEX_DIR/agents" "$CODEX_DIR/commands" "$CODEX_DIR/skills" "$HOME/.agents/skills" 2>/dev/null
# Optional backups:
# mv "$CODEX_DIR/agents" "$CODEX_DIR/agents.bak"
# mv "$CODEX_DIR/commands" "$CODEX_DIR/commands.bak"
# mv "$HOME/.agents/skills" "$HOME/.agents/skills.bak"
rm -rf "$CODEX_DIR/agents" "$CODEX_DIR/commands" "$HOME/.agents/skills"
如果 AGENTS.md 缺失或过时,获取当前原始文件并将其写入 $CODEX_DIR/AGENTS.md:
WebFetch(url: "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-codex/main/docs/AGENTS.md", prompt: "Return the complete raw markdown content exactly as-is")
若只为选定的 marketplace 保留最新的缓存版本:
PLUGIN_CACHE_DIR="$PLUGIN_CACHE_ROOT/$MARKETPLACE_NAME/oh-my-codex"
KEEP_VERSION=$(for d in "$PLUGIN_CACHE_DIR"/*; do [[ -d "$d" ]] && basename "$d"; done | sort -V | tail -1)
[[ -n "$KEEP_VERSION" ]] && find "$PLUGIN_CACHE_DIR" -mindepth 1 -maxdepth 1 -type d ! -name "$KEEP_VERSION" -exec rm -rf {} +
如果 AGENTS.md 缺失或过时,从当前发布源刷新它,然后重新运行 omx doctor。如果遗留 ~/.agents/skills 与规范根目录重叠,仅在检查自定义 skill 后归档/移除该目录树。修复后重启 Codex,并报告修复前后的证据。
退出条件
仅当所需路径、hook/config 检查、AGENTS 标记、插件缓存状态以及(在被请求时)Team 检查全部通过时,才以 HEALTHY 停止。否则报告 ISSUES FOUND、确切的失败证据以及最小的已确认修复;不要仅凭建议就声称已修复。