Install
openclaw skills install @huiyonghkw/hekouwang-claude-md-doctor-skill会勇禾口王的AI笔记 · CLAUDE.md 体检器。检查一个项目的 CLAUDE.md(及子目录本地 CLAUDE.md)是否符合"把它当运行时配置、不是项目说明书"的最佳实践,给出评分卡 + 按优先级的修复建议,并可代为修复。触发:用户说「检查我的 CLAUDE.md / CLAUDE.md 体检 / 我的 CLAUDE.md 规范吗 / claude-md-doctor / hekouwang-claude-md-doctor-skill / audit CLAUDE.md / lint CLAUDE.md / 看看我的 claude 配置合不合规」。 任何"评估/审查/优化某个项目 CLAUDE.md 质量"的请求都应触发。
openclaw skills install @huiyonghkw/hekouwang-claude-md-doctor-skill会勇禾口王的AI笔记 出品 ·
@huiyonghkwGitHub: https://github.com/huiyonghkw/hekouwang-claude-md-doctor-skill 不聊 AI 会不会取代你,只聊先用 AI 的人怎么取代你。
把"CLAUDE.md 最佳实践"做成一个能跑在任何项目上的检查器:机检定量 + 模型定性, 产出评分卡和可落地的修复建议。核心判据一句话——
CLAUDE.md 是每次会话都被重新加载、要付上下文费的"运行时配置",不是给人读的项目说明书。 一切检查项都从这句推导:值不值得每次会话都为这段内容付一次费?
Claude Code 之父 Boris Cherny 公开说自己的配置"surprisingly vanilla"、几乎不定制; 联合创造者 Cat Wu 自称 "context minimalist"——只告诉模型它需要知道的,剩下让它自己想。 核心立场:模型每代都在变强,你今天费劲搭的脚手架很快白搭;别跟模型较劲做加法。
所以下面这些检查项里凡是"让用户往里加内容"的(禁止清单/Hook/记忆/人格/本地文件), 落地前都先过这一关 —— 加任何一段前先问:这条能不能不写在常驻正文里?
机检层面:#1 篇幅 / #3 可操作 / #4 路由器 / #10 别替模型补这几项是减法核心,权重更高; "加内容"类项(#6/#7/#8)缺失只算小扣分,避免工具一边喊"越短越好"、一边逼用户把文件写长。
这套工具属于 会勇禾口王的AI笔记(定位:AI 实战拆解,硬核·具体·可复制;人设:你办公室里第一个把 AI 用明白的同事)。出体检报告时:
—— 会勇禾口王的AI笔记 · @huiyonghkw,并可附 slogan。命令行 check.py 的报告页脚已内置该署名。check.py 的文本 / JSON 报告 + 评分。任何人本地或 Docker 跑、进 CI,随便用。hekouwang-content-factory 的私有品牌字体与版式,不随本仓库分发。触发"出图 / 报告卡 / 图表 / 可视化"时怎么办:
hekouwang-content-factory(品牌字体在
~/.claude/skills/hekouwang-content-factory/assets/fonts/)。
/doctor 命令的分工(名字像,别混用)Claude Code 内置了一个 /doctor 命令,名字也带 "doctor",但体检对象和本 skill 完全不同——
一个查整套工具的运行环境,一个只查一份文档写得好不好。别把两者当同一个东西。
| 维度 | 内置 /doctor 命令 | 本 skill(claude-md-doctor) |
|---|---|---|
| 体检对象 | 整个 Claude Code 运行环境 / 安装 | 单个项目的 CLAUDE.md 文件本身 |
| 关注点 | 安装健康、未用扩展(skill/MCP/plugin)、常驻上下文膨胀、慢 Hook、版本、权限模式、预批命令、本地记忆去重 | CLAUDE.md 是否「当运行时配置写而非项目说明书」、篇幅、该不该懒加载、评分卡 + 分级修复 |
| 改哪里 | ~/.claude/ 配置层(settings.json、skillOverrides、.claude.json) | 项目里的 CLAUDE.md / 子目录本地 CLAUDE.md 内容 |
| 作用范围 | 全局 · 跨所有项目的工具链 | 就这一个项目的文档 |
| 产物 | 环境体检报告 + 两道确认后改配置 | 评分卡(10 项)+ Top 3 修复建议,可代改 |
唯一交集:/doctor 的 Check 2 / Check 3 会碰 CLAUDE.md——去重本地 vs 入库 CLAUDE.md、
把该懒加载的内容迁到 skill/子目录。但它是从**「上下文成本」这一个角度看,只管「有没有重复、该不该常驻」,
不评文档质量;本 skill 才从「写法规范」**全面打分(可操作性、禁止清单、高危护栏、30 秒三问……)。
/doctor。/doctor 体检环境,若它在 Check 3 提示「CLAUDE.md 太大 / 该懒加载」,
接着用本 skill 深度评一份 + 出 Top 3 + 代重构——/doctor 负责发现「这份文档偏大」,本 skill 负责回答「具体哪几条该删、怎么下沉」。/doctor 替你把 CLAUDE.md 写规范:它只做去重和迁移,不判「这条规则是不是空话」「禁止清单缺不缺」——那是本 skill 的活。python3 <此skill目录>/check.py <项目目录>
--json(便于你解析后二次判断)。CLAUDE.md 通读一遍;不要只把脚本输出原样贴给用户——脚本是线索,你的价值在定性判断 + 具体怎么改。
| # | 检查项 | 合格长什么样 | 不合格信号 |
|---|---|---|---|
| 0 | 无硬编码密钥(安全红线) | 正文不出现 key/token/私钥/口令明文 | 出现 sk-/AKIA/私钥块/password="..." → 直接 FAIL |
| 1 | 篇幅 ≤ 200 行 | 路由器不是图书馆,常驻越短越好 | >200 行;大段历史/营销/教程正文 |
| 2 | 禁止清单(Do NOT) | 有"不要引入 X(因为 Y)"清单 | 只列要用的、不列禁用的 |
| 3 | 规则可操作 | 5 秒内能判定代码合不合规 | "写干净代码/优雅/高质量"这类空话 |
| 4 | 路由器不是图书馆 | 大块下沉 docs/,正文留指针(认 docs/ 文本指针与原生 @import) | 架构图/长表/历史塞在常驻正文 |
| 4b | 指针无死链 | docs/ 与 @import 都指向真实存在的文件 | 指针指向不存在的文件(按图索骥扑空,比没指针更糟) |
| 5 | 高危模块本地 CLAUDE.md | 碰钱/认证/迁移目录各有护栏 | 敏感模块只靠根文件一句话 |
| 6 | Hook 强制层 | 最不能漏的规则挂成 Hook | 关键规则只"写着"靠模型记 |
| 7 | MEMORY.md 回路 | 任务前读、任务后写的跨会话记忆 | 每次会话从零重新认识项目 |
| 8 | 工作风格块(限 3–5 行) | 写了"你是谁/你讨厌什么/协作节奏",且每行都指向一个"不写就会犯的具体错" | 没有人格;或写成性格小作文 |
| 9 | 30 秒三问 | 陌生人读完能答:产品?技术栈?新代码放哪 | 开头答不出这三问 |
| 10 | 别替模型补它已经会的 | 不教通用写法/主流框架用法,只装项目私有事实 | 有"如何使用 X / 使用教程 / step by step"这类随模型升级很快过时的教学段 |
分档:A 优秀 ≥85 · B 良好 ≥70 · C 及格 ≥50 · D 建议重写 <50。 (机检:PASS=1 / WARN=0.5 / FAIL=0,INFO 不计分。按重要度加权——安全红线 #0 与 减法核心项 #1/#3/#4/#10 权重 1.5,标准项 #2/#4b/#5/#9 为 1.0,加内容项 #6/#7/#8 为 0.6。 #0 命中按 FAIL 计且资损级,定性总评里应一票顶到「先改这条」。)
脚本只能判"机器能确定的",以下几项容易误判,必须你读正文定夺:
├──└── 树当图书馆图);.env / .env.* / *.key / *.pem / *secret* 一律不打开(脚本本身也不读)。
需要某个非密钥值时,让用户用 ! grep KEY 文件 自己取。.env/密钥管理器,正文最多留「见环境变量 XXX」;命中即视为已泄露,提醒用户轮换该凭据,
并检查是否已被提交进 git(如是需清历史)。docs/architecture.md、
docs/runtime.md,正文替换成一行指针(Tier 2 按需打开,不预读)。.claude/settings.json 的
Pre/PostToolUse Hook(告警型即可,别默认做有破坏性的自动执行)。check.py 给前后对比分数。# 项目名
## 30 秒速览 # 产品 / 技术栈 / 新代码放哪 + 优化优先级
## 工作风格 # 你是谁、你讨厌什么、协作节奏(限 3–5 行,每行都对应一个"不写就会犯的错",别写性格小作文)
## 跨会话记忆 # 任务前读 MEMORY.md,任务后写回
## 铁律 # 编号、可执行、带后果(含 Do NOT 清单)
## 关键事实表 # 版本 / 环境等不可由代码自查的硬信息(真铁律,留正文)
## 目录结构 # 新代码放哪里(路由地图,可留正文)
## 延伸文档 # Tier 2 指针:docs/...,按需打开不预读
## 规划中功能 # 尚未落地,别假设已存在