Lion writing skills
面向开发者的 Claude Code skills 套件 | A developer-focused Claude Code skills suite
npx -y skills add Lion-1209/Lion-Skills --skill lion-writing-skillsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
在 Lion-Skills 仓库创建或修改 skill 时。
SKILL.md
5.8 KB, as published. Nobody here has run it
Lion Writing Skills
概述
Lion-Skills 的"造 skill 流水线":按本仓库规范,把一个重复的工作流沉淀成可复制、经验证的 skill。
核心原则:skill 是给未来 Claude 读的"操作手册"——它的价值不在于你写了什么,而在于未来的 Claude 在触发它时,能照着做出正确的事。
何时使用
- 用户想新增一个 skill("帮我加个 X 的 skill")
- 用户想修改/优化现有 skill
- 用户想检查某个 skill 写得是否符合规范
- 想把对话里反复出现的工作流沉淀成 skill
不该做成 skill 的情况:一次性的、项目特定的约定(放 CLAUDE.md)、能用简单校验自动化的(写成校验脚本而不是文档)。
只是审查/优化现有 skill 时:直接对照下文相关规则做合规判断即可,不必每次重走第 1 步"值不值得做"四问——那是新增 skill 的决策;现有 skill 要不要继续存在,是另一个问题。
核心内容
第 1 步:判断值不值得做
回答四个问题(都"是"才值得做):
- 高频吗?(反复出现,不是一次性的)
- 跨项目吗?(不止一个代码库用得到)
- 有判断空间吗?(需要决策/经验,不是机械操作——机械操作写成脚本)
- 未来 Claude 不读这个 skill,会做错或做差吗?
任何一个答"否",就别做成独立 skill:项目特定的约定放 CLAUDE.md,能机械自动化的写成校验脚本,一次性的直接在对话里处理。
第 2 步:复制模板,填 frontmatter
新 skill 建在 skills/<name>/SKILL.md(同名目录,里面放 SKILL.md,可选再放 evals/ 存验证用例)。复制 template/SKILL.md 过去,填两个字段:
name:全小写、连字符,用 skill 的核心动作或概念命名(如commit-message、error-handling、onboarding-unknown-codebase)。不要下划线或驼峰(commit_message、CommitMessage都错)description:只写"何时触发",第三人称,中文,用三段式——①触发场景("当用户……时使用")+ ②典型信号(把用户实际会说的原话尽量列全)+ ③涉及关键词(中文说法 + 常见英文术语)。这样覆盖面广、不易漏触发。上限 1024 字符
关键:description 绝不能写工作流("先做 A 再做 B")。原因——测试发现 Claude 会偷懒只读 description 跳过正文。把流程留给正文。
第 3 步:写正文
按这个骨架:概述 / 何时使用 / 核心内容 / 常见错误(参考 template/SKILL.md)。
写作约定:
- 解释 why,少用全大写 MUST(讲道理比下命令管用)
- 一个优秀例子 > 多语言版本;例子尽量覆盖该 skill 最核心的 2–3 类场景,而非只示范单类
- 正文 < 500 行;超了拆
references/ - 中文为主,工具名/术语保留英文
第 4 步:轻量验证
前置:先确认目标 SKILL.md 在手(文件路径或正文)。用户只说"帮我验证"却没给内容时,先向用户要;skill 还在草稿态没落盘时,把全文直接贴进 subagent 的 prompt 即可,效果等同落盘。
写 2–3 个真实测试 prompt,用 subagent 带着新 skill 跑,看产出对不对。这一步最容易被跳过,但也最能发现问题,别省。
怎么算"真实" prompt:要像真实用户会说的、带具体细节——好的如"我把组件状态从 useState 换成 useReducer,还修了个内存泄漏,写个 commit message";坏的如"测一下你的能力"(太抽象,既测不出触发、也测不出指引力)。
范式:派一个 general-purpose subagent(让它只读 skill、把产出放进报告,不要改动仓库——除非任务就是要它落地文件),prompt 写「读取 skills/<name>/SKILL.md,然后按其指引处理这个需求:<测试 prompt>。完成后报告:你走了哪些步骤、产出什么、哪里卡壳」。多个 prompt 可以并行派。
通过标准:subagent 的产出 (a) 解决了用户问题,且 (b) 遵循 skill 的设计意图。把该 skill 正文里"该走的流程""该遵循的约定"抽成几条可勾选项来核(如 description 没写工作流、正文解释了 why、例子覆盖核心场景)。跑偏长这样:该走五步的跳过了验证、该三段式的 description 写成了能力清单、该按维度系统的退化成逐条枚举——出现这些就改正文重跑。
把用例固化下来:把这几个 prompt + 预期结果写进 skills/<name>/evals/evals.json(格式:{skill_name, evals: [{id, prompt, expected}]})。evals.json 是验证的"存档"(记录测过什么、预期什么),subagent 实跑是"当下执行"。两者配合时注意时序:prompt 可以先定,但 expected 往往要跑一轮、看到实际产出才写得准——所以实操是「粗定 prompt → 跑 → 用实际产出校准 expected → 固化」,而不是单向的"先写完 evals.json 再跑"。
第 5 步:迭代
输出不对就改正文,重跑。重点改:
- 触发不准 → 改 description(补关键词、加症状)
- 做错了 → 正文讲清 why 或加常见错误
- 啰嗦/跑偏 → 删冗余
- 正文流程漏了关键步骤 → 补步骤(这种问题几乎只能靠验证暴露,是迭代里最高频也最有价值的产出)
常见错误
| 问题 | 修法 |
|---|---|
| description 写了工作流(→ Claude 只读 description 跳过正文) | description 只留触发条件 |
| 正文超 500 行没拆(→ 加载慢、难维护) | 大段参考拆到 references/ |
| 堆 MUST 不讲 why(→ 死板、难泛化) | 解释原因 |
| 一个例子写多语言(→ 平庸、难维护) | 一个优秀例子 |
| name 用下划线/驼峰 | 全小写连字符 |