skills/skill-dev/skill-dev/SKILL.md
创建、维护、validation-gated 优化 Claude skills 与 subagents 的方法论框架。流程 A 从零创建 (定位/骨架/frontmatter/调研/验证),流程 B 优化现有 (9 维评分/单变量爬山/触顶停/成果卡片)。含领域视角蒸馏 (分维度调研+三重验证)。不蒸人物角色。仅手动 /skill-dev。
npx skillsauth add lazygophers/ccplugin skill-devInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
meta-skill:教如何编写与打磨其他 skill 与 subagent。方法论源自 Anthropic 官方规范 + SkillLens 9 维实证(arXiv 2605.23899)+ SkillOpt validation-gated 优化(arXiv 2605.23904)+ 社区反模式,已完整内化——评分 rubric、爬山门、盲评、成果卡片均自包含,创建线(流程 A)内置分维度并行调研 + 调研审查门 + 三重验证漏斗 + 量化质量门 + 降级表,无需外链其他 skill。完整调研素材见
references/research/01-06.md与references/。本 skill 管功能 / 领域 / 主题视角 skill 与 subagent 的创建(流程 A)到深度优化(流程 B:9 维评分 + validation-gated 爬山 + 可视化成果卡片)全生命周期(人物角色扮演 DNA / 表达语气不在范围——蒸方法论不蒸人物)。
disable-model-invocation: true,仅 /skill-dev 手动调用。它是创作/优化工具,不是背景知识,不要改为自动触发。claude -p "<待测内容>" --output-format stream-json | jq -r 'select(.type=="result" and .subtype=="success") | .result'
端点抖动(400)时重试循环(见记忆 claude-p-endpoint-flaky);3 次仍败 → 人工验 + 小步可回滚提交,标「待端点恢复补跑」。| 输入信号 | 走 | |---|---| | 「帮我做个 X skill / 从零写 skill / 加个 subagent / 配 db agent」 | 流程 A · 创建 | | 「这个 skill 不触发 / 太长 / 改了没生效 / 误触发 / 质量退化 / 做下回归」 | 流程 B · 优化 | | 「该进 SKILL.md 还是拆 reference / 该用 context:fork 吗 / description 怎么写」 | 流程 A 相关 Phase(结构/frontmatter 决策) | | 深度自主评分 + 可视化成果卡片 + 多轮 hill-climbing | 流程 B · 优化(9 维评分 / validation-gated 爬山 / 成果卡片均内置) | | 领域/主题视角蒸馏(需分维度调研 + 三重验证提炼) | 流程 A · 创建(Phase 4 内置调研 swarm + 验证漏斗) | | 人物角色扮演 DNA(表达语气 / 人格模拟) | 🛑 不在本 skill 范围(蒸方法论不蒸人物) |
create 与 optimize 边界模糊时(如「这个 skill 不触发,顺便帮我加个功能」):先 optimize 诊断,再按诊断结论决定是否走 create 补结构。
user-invocable: falsecontext: fork + agent: <type>disable-model-invocation: true(仅手动);背景知识 → user-invocable: false;一般工作流 → 默认。disable-model-invocation。my-skill/
├── SKILL.md # 主指令(≤500 行 / token 意识)
├── references/ # 按需加载细节(只深一层)
└── scripts/ # 可执行脚本(执行而非加载)
references/<domain>.md 拆;>100 行 reference 顶部放目录。head -100 预读致信息不全)。🔴 CHECKPOINT:骨架定型后展示目录结构给用户确认,再进 frontmatter。骨架方向错,后续全返工。
完整 16 字段表 + 调用控制矩阵 + 字符串替换变量见 references/frontmatter-spec.md。 最常用 5 个:
---
name: <lowercase-kebab> # 默认目录名;≤64 字符,禁 anthropic/claude 保留词,禁 XML 标签
description: <做什么 + 何时用> # 🔴 项目底线 < 512 字符;第三人称;key use case 前置
disable-model-invocation: true # 副作用操作必加(仅手动 /name)
allowed-tools: Bash(git *) # 预授权工具(可选,仅免批准不限制工具池)
paths: packages/api/** # monorepo 按包触发(可选)
---
description 铁律(P0 反模式):第三人称(禁「I can」「You can」)· 含 key terms(用户会说的词)· 同时写「做什么」+「何时用」· key use case 前置(🔴 底线 < 512 字符,比官方 1024/1536 截断更严;长列表按「最少 invoke 先丢」裁剪)· 超长触发短语/示例分流 when_to_use(底线 < 128)· 收窄「何时用」边界(太泛会误触发;可发现性 ≠ 触发准确性)。
先调研再动笔——功能 / 领域 / 主题视角 skill 的质量上限由调研质量决定(垃圾进垃圾出,这里拦截比 Phase 5 返工便宜)。目标域全是 Claude 已知常识时可跳 4.1-4.2 直接写。
4.1 分维度并行调研(域知识不足时):把目标域拆成互不重叠的维度(官方规范 / 现有实现模式 / 边界与失败模式 / 反模式 / 工具链),每维度一个独立 subagent 并行调研。接口约定(swarm 靠 agent 现场编排,无实体脚本):每个 agent 必须把结果写入 references/research/0X.md——不落盘等于没做(落盘即真值);每条标来源 + 可信度(一手 > 二手 > 推测);区分「文档写的」vs「社区说的」vs「我推断的」;发现矛盾保留不和稀泥。skill 须自包含:调研文件落 skill 目录内,复制整个目录即可独立用。环境不支持并行 → 见流程 A 降级表。
4.2 🔴 调研审查门(CHECKPOINT):所有维度落盘后暂停,展示调研质量摘要(每维度来源数 / 关键发现 / 矛盾点 / 信息不足维度)给用户。质量 OK 才进合成;某维度不足 → 补调研再继续。此门拦截垃圾输入,成本远低于 Phase 5 返工。
4.3 三重验证漏斗(决定什么进 skill body):对每条候选规则/主张过三关——① 跨域复现(≥2 个不同场景/任务成立)② 生成预测力(能据此推断新问题的正确做法)③ 独特性排除常识(不是所有称职的 Claude 默认就会的)。三重通过 → 核心内容;仅 1-2 重 → 降为次要提示/边注;0 重 → 丢弃(Claude 已知,写了只烧 token)。这是「只加 Claude 不知道的」的可执行版。
4.4 模板 + 映射表装配:骨架(Phase 2)为模板,用 section→来源映射表把调研 + 验证结果逐段填入(frontmatter / 工作流 checklist / 失败模式 / 反例黑名单 / 调研来源)。目标 skill 默认正向表述,仅必要场景反例配正例——目标 skill 主体写「做什么」,仅在不可正化的硬护栏处留反例,且每条反例必配正例(matt 范式 Negation 铁律:说目标行为,让被禁行为永不被言及)。渐进披露:SKILL.md 像目录指向按需细节;复杂工作流给可复制 checklist(Claude 逐项打勾);质量关键操作加 feedback loop(validate → fix → repeat),批量/破坏性操作用 plan-validate-execute(产 plan → 脚本验证 → 执行 → verify)。每段问「这段值得它的 token 成本吗?」
✅ 完成判据(checkable + exhaustive,防抢跑):□ 每个候选规则都过了三重验证漏斗(非「产出规则清单」)□ 每个调研维度都落盘 references/research/(非「做了调研」)。
🔴 CHECKPOINT:SKILL.md 初稿完成后展示给用户审阅,确认内容方向再进 Phase 5。
claude -p "列出所有可用 skill 并说明何时触发" ...(同硬规 5 命令)。/grilling red-team。需要 9 维诊断 + validation-gated 深度优化 → 转流程 B。
| 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|
| 环境不支持并行 subagent(Phase 4.1 挂起死等) | 调研降级串行:做完一维落盘一维,禁挂起等后台通知 | 单 agent 分轮跑,每轮一维立即落盘 |
| 上下文窗口不足(累积超窗跑不完) | 分 Phase 续跑:每 Phase 落盘 references/research/,新会话读文件恢复(调研文件即断点) | 分段会话跑 Phase 1-3 / 4 / 5-6,每段开头先读已落盘文件 |
| 搜索/WebSearch 工具不可用 | 换环境可用等价工具(fetch / 已装信息获取 skill) | 引导用户提供一手素材,转本地素材模式 |
| 信息源匮乏(<10 条可用来源) | Phase 4.2 就降期望,核心规则减量 | 加大诚实边界篇幅,标注推测成分 |
| 单维 agent 超时无有价值结果 | 不等待继续推进,Phase 4.4 标「该维信息不足」 | 诚实边界说明该维薄弱,不强行生成 |
<目录树:SKILL.md / references/ / scripts/ >
基于 SkillLens utility-grounded 评估 + SkillOpt validation-gated text-space 优化。完整维度表 / loop 细节见
references/dimensions.md·references/workflow.md。
🔴 优化硬规(叠加顶部硬规):validation-gated 二层 gate(第一层 gross:9 维 Δ>0;第二层人审:分数 fine-grained 不可信,破坏性/触发词变更必须用户确认,禁「我觉得更好」直落)· 单变量轮(每轮只改 1 维度或 1 相关簇)· ratchet(只留有改进的提交,退步 git revert HEAD 自动回滚,git 分支隔离)· 膨胀护栏(改后 SKILL.md > 原 ×1.5 → 拒绝提交,先精简再评,防「加废话凑分」膨胀)· 触顶停(连续 2 轮 Δ<2 → break)。🛑 已知限制(方法固有,非缺工具):text-space 优化的 validation gate 依赖真实 skill harness 触发 + 独立 judge swarm,环境不足时退化 dry_run;dry_run > 30% 即评估失效警告,分数不可信须人审——这是文本空间优化的天花板本身,无外部 skill 能绕过,只能靠 full_test 比例 + 人审兜底。
.claude/skills/*/SKILL.md + .claude/agents/*.md。grep -nE "(在 Claude Code|Claude Code skill|Cursor only|Codex 中|~/\.claude/skills/[a-z]|/plugin install\b)" <target>
命中 → P0 先修 runtime drift:钉死单一平台的措辞(「在 Claude Code 里」「Claude Code skill」)替换为中立表述,badge/安装路径改「Agent Skills Standard + 多 runtime」三层中立结构。例外:frontmatter 触发词、生态内部 skill 名引用、明确标注 runtime-specific 的章节、commit message 不算红灯。🔴 CHECKPOINT:诊断表展示给用户,确认方向 + 优先级后再设计编辑。方向错后续全返工。
| 操作 | 适用 | 例子 | |------|------|------| | add | dim3 失败分支缺 / dim4 检查点缺 / dim9 反例缺 | 补 if-then 三段式 fallback 表 | | delete | dim7 冗余 / AI 腔废话 / 时间敏感信息 | 删「说白了/换句话说/综上」 | | replace | dim1 description 太泛 / dim5 软化措辞 / dim2 步骤模糊 | 「建议/可以考虑」→ 具体参数 |
单变量约束:一轮只动一维度(或一相关簇),多维同改归因失效。正向化编辑:目标 skill 默认正向表述,仅必要场景反例配正例——把「不要做 Y」黑名单改写成目标行为,必要时残留反例必配正例(matt 范式 Negation)。编辑粒度:优先最小可验证改动(HL-1:4 行 🔴 CHECKPOINT 撬动 dim4 +3),避免整段重写——除非 Phase 2.5 触发。
仅当 dim8 实测 ≤ 4/10,或 ≥3 维同时 ≤ 4,单点修补不够时整段重写。必须用户确认,且重写版仍走 Phase 3 gate。
dry_run;> 30% → ⚠️ 评估失效警告。✅ 完成判据(checkable + exhaustive):□ 每个 held-out prompt 都有 before/after 结论(非「跑了测试」)□ dry_run 比例已记录。
optimize/<skill>-YYYYMMDD)。git revert HEAD 建反向 commit,禁 reset --hard 丢工作树),记失败尝试到 references/optimization-log.md(note 写原因:归因不明 / Δ<0 / 触发变差)。templates/result-card.html,填 skill 名 / before-after-Δ 分 / 9 维雷达 / 爬山轮次 / 改进摘要 / 日期,浏览器打开或截图。模板自带 3 风格(swiss/terminal/newspaper,URL hash 切换),无需外部脚本。| dim | 维度 | 方向 | 理想值 | before | after | Δ | 完成准则底线达标? | |-----|------|------|--------|--------|-------|----|------------------| | 1 | Frontmatter 质量 | ↑ | name+desc+触发词<512 | | | | □ | | 2 | 工作流清晰度 | ↑ | 步骤+IO+Done when | | | | □ | | 3 | 失败模式编码 | ↑ | 三段式 if-then | | | | □ | | 4 | 检查点设计 | ↑ | 🔴/🛑 视觉标记 | | | | □ | | 5 | 可执行具体性 | ↑ | 无软措辞 | | | | □ | | 6 | 资源整合度 | ↑ | 路径可达+深一层 | | | | □ | | 7 | 整体架构 | ↑ | 无 AI 腔 | | | | □ | | 8 | 实测表现 | ↑ | ≥2 test prompt | | | | □ | | 9 | 反例护栏 | ↓ | 正向为主+反例配正例 | | | | □ | | 总 | | | | <b> | <a> | <+n> | |
subagent frontmatter / body 设计点(错误处理约定 / 工具继承例外 / hook 条件验证 / fork vs named)+ 常驻vs按需 / 显式vs隐式触发 / runtime 中立取舍,详见 references/subagent-authoring.md。优化 agent.md 时诊断维度适配:
| 维度 | skill 适配 | subagent 适配 |
|------|-----------|--------------|
| dim1 frontmatter | name/description/when_to_use/disable-model-invocation | name/description/tools/model(body=system prompt,禁依赖继承的 CC prompt) |
| dim3 失败模式 | 正文 if-then | body 须要求工具失败显式标注 [工具失败:原因],否则主对话把错误摘要当有效数据消费 |
| dim4 检查点 | 🔴 视觉标记 | subagent 无用户交互,检查点上移到委派 prompt |
| dim7 架构 | progressive disclosure | tools 字段最小化 + 嵌套 ≤ 5 层 |
| 实测 | test prompt 对比 | 委派真实任务,验返回摘要是否含错误混入 |
subagent 工具继承例外(即使列了也不给):AskUserQuestion / EnterPlanMode / ExitPlanMode / ScheduleWakeup / WaitForMcpServers。Explore/Plan 跳过 CLAUDE.md——规则必须到达则委派 prompt 重述。
| # | 铁律 | 理由 |
|---|------|------|
| 1 | SKILL.md ≤500 行(token proxy 非精确值) | CJK/表格/代码块 token 密度高,500 行中文可能 8000+ token;整 session 常驻 |
| 2 | description 第三人称 + key use case 前置 + 做什么+何时用 + 收窄边界防误触发 | 发现入口,🔴 底线 < 512 字符(官方 1024/1536 截断);超长分流 when_to_use(< 128) |
| 3 | 引用只深一层 | 嵌套致 head 预读信息不全 |
| 4 | eval 先于文档 | 解决真实问题而非臆想 |
| 5 | 主体正向表述,仅必要硬护栏留反例配正例 | matt 范式 Negation:说目标行为让被禁行为永不被言及;反例成章抓遗漏失败模式 |
| 6 | 一致术语 + 正斜杠路径 + 无 voodoo 常量 | 跨平台 + 可维护 |
| 7 | token 生命周期意识 | auto-compaction 保留最近 invoke 前 5000 token、合计 25000 token 跨 skill 共享,多 skill session 旧 skill 会被丢——无错误信息,最难 debug 的零可见度故障 |
高频故障内联;创建侧完整 22 条见 references/anti-patterns.md。
| 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|
| skill 写完不触发 | description 太泛/缺 key terms → 加用户会说的词 + 收窄边界 | 跑可发现性质检看是否被列出;未列出查 name/description 含保留词或超 512 截断 |
| 改了 SKILL.md 没生效 | 已 invoke session 常驻旧版 → 开新 session 或重新 invoke | 确认改的是被加载路径(非 references 副本);disable-model-invocation 需 /name 重新触发 |
| 多 skill session 本 skill 行为丢失 | 25000 token 跨 skill 共享、旧 invoke 被 compaction 丢 → 精简 SKILL.md、细节拆 references | 缩到 ≤500 行仍丢 → 关键指令上移顶部 5000 token 保留窗 |
| reference 读不全 | 嵌套引用致 head -100 截断 → 拍平只深一层 | >100 行 reference 顶部加目录 |
| validation gate Δ<0 | 回滚,查是否多变量同改 | 降单变量重试;仍负 → 标 known limitation |
| judge 分歧大 | 加第 3 judge 或换 full_test 实测 | 标「评估不可信」,人审 |
| dry_run > 30% | 补 full_test(spawn 真实子 agent 跑 test prompt) | 评估失效,仅出建议不改盘 |
| 触发词变更致下游 break | 回滚触发词,body 内补关键词 | 新建 skill 而非原地改(破坏性变更) |
| 结构/触发正确但输出跑偏 | 缺失败模式编码 → 补 dim3 if-then 三段式 + 检查残留黑名单转正向 | 跑 /grilling red-team 找遗漏失败模式 |
| runtime 红灯命中 | P0 先修 runtime drift(钉死措辞→中立表述) | badge/安装路径改「Agent Skills Standard + 多 runtime」三层中立 |
默认正向表述:本节写「正确做法」,不写「不要做 Y」清单。仅下列不可正化的硬护栏保留反例,每条必配正例(matt 范式 Negation)。创建侧 P0-P3 共 22 条见 references/anti-patterns.md。
优化正确做法(默认正向,照此即对):
[工具失败:原因](防主对话消费错误摘要)。下列框架明确拒绝,写出来是为了让 agent 知道为何不能这么写——并非黑名单清单,每条已转成上面正向做法,这里只留原因:
| 被拒框架 | 拒绝原因 | 正例 | |---|---|---| | 「同 context 自评自改」 | 乐观偏差,写者无法客观判分 | spawn 独立子 agent 评分 | | 「凭 test 跑得好就打高分」 | 无 prompt 的 dim8 是凭空打分 | 先备 2-3 prompt 再评分 | | 「一轮改多维度」 | 归因失效,无法判断哪维起作用 | 每轮 1 维度或 1 相关簇 | | 「凭『必须』代替视觉标记」 | LLM 扫标记优先于语义 | 🔴 / 🛑 视觉标记 | | 「两列 fallback(症状/解法)」 | 缺兜底路径,无第三层 | 三段式(触发/一线/兜底) | | 「硬凑 MAX_ROUNDS」 | over-engineering | Δ<2 连续 2 轮即停 | | 「裸『不要做 Y』黑名单清单」 | Negation 反效应:命名被禁行为让它更可用 | 主体正向,残留反例必配正例 |
产物发布前逐项查;创建侧完整 5 组见 references/validation-checklist.md。优化侧:9 维评分完成(行号引用)· runtime 红灯扫描跑过 · 相关簇短板识别 · 🔴 诊断表用户确认 · held-out test(should/should-not/edge)· 独立子 agent 盲评(≥2 judge 或 1 full_test)· dry_run < 30% · Δ>0 严格提升 · 通过 gate 才应用 + git 分支隔离 · 触发词变更标注破坏性 · 汇总报告。
| 文件 | 维度 | 主源 |
|------|------|------|
| frontmatter-spec.md | frontmatter 16 字段全表 + 项目底线 | code.claude.com/docs/zh-CN/skills(官方一手) |
| dimensions.md | 9 维 rubric 全表 + HL-1~4 + 相关簇 | darwin-skill 本地 + SkillLens |
| workflow.md | SkillOpt validation-gated loop + git ratchet + judge 独立性 | SkillOpt (arXiv 2605.23904) + darwin |
| subagent-authoring.md / anti-patterns.md / validation-checklist.md | subagent 设计 / 22 反模式 / 发布前 checklist | 官方 + 社区 + darwin dim9 |
| skill-quality-checklist.md | skill 质量根德 (predictability / 信息分层 / 何时 split / pruning / leading words / 6 failure modes) | ask-matt /writing-great-skills 同源 |
| research/01-06.md | 官方规范 / 学术 / 社区 / 跨平台 / 反模式 / 工具链 | platform.claude.com / anthropics/skills / 等 |
| optimizer-sources.md | 3 论文 + darwin 引用 + 实证数据 | arXiv / GitHub(2026-06-26 curl 核实) |
信息源黑名单(永远排除):知乎、微信公众号、百度百科。
tools
UI/UX 与布局设计——做界面布局/结构/导航/组件/交互的设计决策。触发:做UI/UX/布局/排版/导航/组件/交互/栅格/响应式/图表选型/字体配对。按媒介路由 HTML/Web、原生 App(iOS/Android/桌面)、CLI、TUI。需后端动态系统不适用;配色/主题/色板走姊妹 skill design-color。
tools
主题与配色设计——做颜色搭配/调色板/主题/品牌色阶/暗模式的设计决策。触发:选配色/调色/主题/色板/品牌色/暗模式/对比度/色盲/UI风格。按媒介路由 HTML/Web(CSS变量)、原生App(平台token)、CLI(ANSI)、TUI(真彩/256/16降级)。保证可访问性(对比度/色盲安全)。需后端动态系统不适用;UI/UX 布局/组件/交互走姊妹 skill design-uiux。
tools
跨任意组件(plugin/skill/agent/command)的验证驱动优化循环纪律 skill。当用户要优化某个已有组件却无明确方向、或要防止改了反而更差(自评乐观偏差 / 多维同改归因失效 / 为凑分加废话膨胀)、或要把一套通用「评分→单变量改→改后验证严格更好才留否则回滚→触顶停」的纪律套到任意组件上时使用。管优化过程本身的纪律(validation gate / ratchet / 独立验证 / 触顶停),不评单组件深度(交 skill-dev),不查插件接线(交 plugin-dev)。仅手动 /optimize-any 触发。
data-ai
两层规则记忆 (基于 .skein/spec)。planning 时 recall 召回相关规则、task finish 后 sediment 沉淀学习 + prune 自动精简过期/重复/断链规则。core 常驻硬规 + recall 按需召回, 经判定门自动写盘 (不逐次问用户)。产出 .skein/spec 下 core/recall 规则文件 + index。另支持空仓 bootstrap 播种规则基线、记忆大面积失效 (大重构/换栈) 时 reconstruct 可逆归档后按项目类型分型重建、maintain 手动体检 (超预算/stale/断链/重复/废弃, --apply 自动修复)、auto-fix (Stop hook 写 .pending-fix 标记 → main 派 skein-specer bg 跑 maintain --apply 全自动修, 断链只报告)。