Community写作与编辑github.com

zjp1997720/codex-doctor

审计 Codex 健康状况和工作区上下文,通过只读检查 AGENTS.md、技能、MCP、钩子、配置和 Git 卫生。

codex-doctor 是什么?

Codex Doctor 是一个 AI 代理技能,旨在对 Codex 环境进行两层健康检查。第一层利用 Codex 内置的 `codex doctor --json` 命令评估安装、配置、认证、运行时、Git 环境、终端、应用服务器、更新和线程清单等核心方面。第二层通过一个捆绑的只读扫描器,检查内置命令未覆盖的工作区上下文治理问题,例如 AGENTS.md、技能、MCP 配置、钩子、配置文件和 Git 卫生。该技能严格遵循诊断与修复分离的原则,扫描器只收集确定性证据,由用户做出语义判断和修复决策。它支持 Claude Code 和 Cursor 等平台,并提供了详细的解释指南、报告结构和修复协议,确保安全可靠地管理 AI 代理的工作环境。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add zjp1997720/codex-doctor

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Codex Doctor

运行两层健康检查:

  1. 重复使用 Codex 稳定的内置 codex doctor --json 命令,检查安装、配置、认证、运行时、Git 环境、终端、应用服务器、更新和线程清单。
  2. 运行捆绑的只读扫描器,检查内置命令未覆盖的工作区上下文治理。

扫描器收集确定性证据。您做出语义判断。这种分离至关重要,因为脚本可以证明文本重复,但不能安全地决定某个业务事实、安全边界、品牌声音或目录规则是否可以丢弃。

运行检查

从加载的技能路径解析技能目录,然后运行:

python3 <skill-dir>/scripts/scan_workspace.py --cwd "$PWD" --compact-json

如果在同一任务中已经运行了内置报告,为了更快地仅通过工作区检查:

python3 <skill-dir>/scripts/scan_workspace.py --cwd "$PWD" --compact-json --skip-built-in

--compact-json 保留所有发现和所有内置检查行,同时省略大型技能清单和冗长的通过检查详细信息。仅在需要完整的确定性清单证据时使用 --json。

不要将原始内置报告保存在仓库内。如果需要临时存储,请使用 /tmp,并在完成前删除它。

解释发现

在提出任何清理或修复之前,请阅读 checks-and-repair-policy.md。保持严重性和置信度分离:

  • S0:已证实的秘密暴露或已证实的破坏性风险
  • S1:有效配置损坏、硬规则截断、缺少可执行文件,或安装/更新不匹配
  • S2:完全冗余、重复的活动名称/来源,或清晰的项目卫生违规
  • S3:维护压力、过时的禁用条目、新版本通知,或过大的描述
  • S4:信息性、语义候选,或证据空白

将 semantic_candidates 视为检查提示,而非发现。阅读相关来源部分并将其分类为:

  • 行为规则或安全边界:保留
  • 用户偏好、品牌声音、业务事实或目录契约:保留
  • 需要多文件合成的仓库事实:通常保留
  • 可直接发现的清单、框架版本、依赖列表或目录列表:候选以修剪
  • 过时或矛盾的陈述:在提出更改前对照仓库验证

未使用的技能证据

静态发现无法证明技能未被使用。如果用户明确询问未使用或低频技能,请使用已安装的 codex-skill-admin 技能以只读审计模式运行:

python3 <codex-skill-admin-dir>/scripts/codex_skill_admin.py audit-unused --cwd "$PWD" --days 30

报告证据窗口和不同的会话/来源计数。除非用户另行要求并批准目标列表,否则不要禁用任何东西。

报告结构

以总体结果开始,然后仅显示可操作或与决策相关的项目:

# Codex 健康检查

状态:PASS / WARN / FAIL

## 需要处理
- [发现 ID] 严重性 / 置信度 — 结论
  证据:来源和观察状态
  影响:具体失败或上下文成本
  建议:确切的下一个操作

## 建议人工审查
- 语义候选以及它们可能可推断或过时的原因

## 已通过
- 分组的域,并非每个低级行

## 证据空白
- 无法从公共/本地数据证明的检查

将内置医生子检查作为单独的事实保留。例如,HTTP 可达性失败和 WebSocket 成功必须保持两行;不要将它们合并为“网络已损坏”。

修复协议

诊断不授权修复。当用户要求修复发现时:

  1. 显示一个发现 ID、确切来源、为什么错误以及单个文件统一差异。
  2. 当更改删除或语义重写指令、更改配置、启用/禁用一个组件或移动文件时,请求明确批准该发现 ID。
  3. 在应用补丁前立即重新计算源文件的 SHA-256。如果与扫描证据不同,则停止。
  4. 仅使用 apply_patch 应用批准的差异。
  5. 重新运行相关检查并报告前后结果。

永远不要自动:

  • 删除或削弱安全规则、品牌/角色规则、业务事实、项目事实、Git 门控或目录边界
  • 仅因为文本在 AGENTS.md 和 CLAUDE.md 中重复就删除;跨主机对等性可能是故意的
  • 执行钩子以测量性能
  • 信任钩子、登录 MCP、暴露凭据、安装依赖项、更新 Codex 或更改提供者
  • 修改沙箱、审批、模型、网络或认证设置
  • 运行破坏性 Git 命令、清理未跟踪文件或移动受保护的项目目录

完成检查

在报告完成之前:

  • 确认扫描器没有对仓库进行任何更改
  • 区分内置 Codex 诊断与工作区治理发现
  • 将推断标记为推断
  • 报告跳过的检查和证据空白
  • 如果批准了修复,验证每个更改的文件并重新运行其域检查

相关技能