为什么你写的 SKILL.md Claude 总是不读?试试 TDD 写 Skill 法
写过 SKILL.md 吗?写过,但 Claude 还是跳过去自己瞎写?
问题不在你,在于你写的 Skill 本身。
这个 Skill 解决什么问题?
writing-skills 是 obra/superpowers 技能体系的其中一个子技能,核心只有一个观点:
写 Skill 就是写测试——先看它怎么失败,再让它成功。
这不是比喻,是字面意思。
TDD 写 Skill 的四步循环
普通的做法是:想清楚这个 Skill 要干嘛,然后写一版文档,完事。
这个 Skill 教你的做法完全不同:
第一步(RED):先不上手写文档,而是建一个”压力场景”——用子 agent 跑一遍同样的任务,看它怎么搞砸。把它的每一条错误思路、每个跳过的步骤、每个自作主张的行为全部记录下来。
第二步(GREEN):针对这些具体失败,写 SKILL.md。每一行都要能堵住上一步暴露的漏洞。不是写”这个 Skill 的功能是什么”,而是写”Agent 在什么情况下会走偏,然后怎么拽回来”。
第三步(REFACTOR):再跑一遍,这次有 Skill 了。看它是否真的按规则走。发现新漏洞?回到第一步,继续补。
第四步:重复循环,直到 Agent 在这个场景下完全合规。
一个关键原则:Description 不是说明书
SkillHub 的评测数据显示,这个 Skill 被标注为 S 级(9.1分),其中一个关键原因是它对 frontmatter description 的要求:
- ✅ 写:”Use when 用户要求写文档,但上下文没有格式规范”
- ❌ 不写:”这个 Skill 用于生成 Markdown 格式的技术文档”
Description 是触发条件,不是功能描述。第三人称视角,只写”什么时候该调这个 Skill”,不写它内部怎么运作。
这个 Skill 适合谁?
- 已经在用 Claude Code / Cursor 等 Coding Agent,但感觉 Skill 写得越多、Agent 越不听话
- 想把自己的方法论固化成可复用的 Skill,但不知道怎么设计触发规则
- 看过 Anthropic 官方 Skill 编写指南,觉得太抽象、落地差
怎么用?
直接在支持 Superpowers 的 Agent 里说 /skill writing-skills,或者从 GitHub 手动安装:
claude-code install writing-skills
不过注意:这个 Skill 依赖 superpowers:test-driven-development,需要先装好整个 Superpowers 体系。
如果你只想单独用这个子 Skill,在 SKILL.md 开头也注明了前置要求。
一句话总结
Skill 写得再好,Agent 不读也是白搭。这个 Skill 教你的,是让 Agent 非读不可、读了必执行的文档写法——不是凭感觉,是用 TDD 的方式逼它就范。
GitHub:https://github.com/obra/superpowers
评论区
登录后可评论。