darwin-skill/SKILL.md
Darwin Skill (达尔文.skill): autonomous skill optimizer inspired by Karpathy's autoresearch. Evaluates SKILL.md files using an 8-dimension rubric (structure + effectiveness), runs hill-climbing with git version control, validates improvements through test prompts, and generates visual result cards. Use when user mentions "优化skill", "skill评分", "自动优化", "auto optimize", "skill质量检查", "达尔文", "darwin", "帮我改改skill", "skill怎么样", "提升skill质量", "skill review", "skill打分".
npx skillsauth add hhu3637kr/skills darwin-skillInstall 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.
借鉴 Karpathy autoresearch 的自主实验循环,对 skills 进行持续优化。 核心理念:评估 → 改进 → 实测验证 → 人类确认 → 保留或回滚 → 生成成果卡片 GitHub: https://github.com/alchaincyf/darwin-skill
autoresearch 的精髓:
与纯结构审查的区别:不只看 SKILL.md 写得规不规范,更看改完后实际跑出来的效果是否更好。
| # | 维度 | 权重 | 评分标准 | |---|------|------|---------| | 1 | Frontmatter质量 | 8 | name规范、description包含做什么+何时用+触发词、≤1024字符 | | 2 | 工作流清晰度 | 15 | 步骤明确可执行、有序号、每步有明确输入/输出 | | 3 | 边界条件覆盖 | 10 | 处理异常情况、有fallback路径、错误恢复 | | 4 | 检查点设计 | 7 | 关键决策前有用户确认、防止自主失控 | | 5 | 指令具体性 | 15 | 不模糊、有具体参数/格式/示例、可直接执行 | | 6 | 资源整合度 | 5 | references/scripts/assets引用正确、路径可达 |
| # | 维度 | 权重 | 评分标准 | |---|------|------|---------| | 7 | 整体架构 | 15 | 结构层次清晰、不冗余不遗漏、与花叔生态一致 | | 8 | 实测表现 | 25 | 用测试prompt跑一遍,输出质量是否符合skill宣称的能力 |
这是与纯结构评分最大的区别。评分方式:
如果无法跑子agent(时间/资源限制),可以退化为「干跑验证」:读完skill后模拟一个典型prompt的执行思路,判断流程是否合理。但要在results.tsv中标注 dry_run。
1. 确认优化范围:
- 全部skills → 扫描 .claude/skills/*/SKILL.md
- 指定skills → 用户指定列表
2. 创建 git 分支:auto-optimize/YYYYMMDD-HHMM
3. 初始化 results.tsv(如不存在)
4. 读取现有 results.tsv 了解历史优化记录
在评估之前,为每个skill设计测试prompt。这步很关键——没有测试prompt,「实测表现」维度就打不了分。
for each skill:
1. 读取 SKILL.md,理解它做什么
2. 设计2-3个测试prompt,覆盖:
- 最典型的使用场景(happy path)
- 一个稍复杂或有歧义的场景
3. 保存到 skill目录/test-prompts.json:
[
{"id": 1, "prompt": "用户会说的话", "expected": "期望输出的简短描述"},
{"id": 2, "prompt": "...", "expected": "..."}
]
展示所有测试prompt给用户,确认后再进入评估。测试prompt的质量决定了优化方向是否正确。
for each skill in 优化范围:
# 结构评分(主agent可以做)
1. 读取 SKILL.md 全文
2. 按维度1-7逐项打分(附简短理由)
# 效果评分(用子agent做,独立于主agent)
3. 对每个测试prompt,spawn子agent:
- with_skill: 带着SKILL.md执行测试prompt
- baseline: 不带skill执行同一prompt
4. 对比两组输出,打维度8的分
# 汇总
5. 计算加权总分
6. 记录到 results.tsv
如果子agent不可用(超时、环境限制),维度8用干跑验证打分,标注 dry_run。不要因为跑不了测试就跳过这个维度——哪怕是模拟推演也比完全不看效果好。
基线评估完成后,展示评分卡:
┌──────────────────────────┬───────┬──────────────┬──────────────┐
│ Skill │ Score │ 结构短板 │ 效果短板 │
├──────────────────────────┼───────┼──────────────┼──────────────┤
│ huashu-proofreading │ 78 │ 边界条件 │ 测试prompt2 │
│ huashu-slides │ 72 │ 指令具体性 │ baseline持平 │
├──────────────────────────┼───────┼──────────────┼──────────────┤
│ 平均 │ 75 │ │ │
└──────────────────────────┴───────┴──────────────┴──────────────┘
暂停等用户确认,再进入优化循环。
用户确认后,按基线分数从低到高排序,先优化最弱的。
for each skill:
round = 0
while round < MAX_ROUNDS (默认3):
round += 1
# Step 1: 诊断
找出得分最低的维度(结构或效果都算)
# Step 2: 提出改进方案
针对最低维度,生成1个具体改进方案:
- 改什么(具体段落/行)
- 为什么改(对应rubric哪条)
- 预期提升多少分
# Step 3: 执行改进
编辑 SKILL.md
git add + commit(message: "optimize {skill}: {改进摘要}")
# Step 4: 重新评估
- 结构维度:主agent重新打分
- 效果维度:spawn独立子agent重跑测试prompt(关键!不能自己评自己)
# Step 5: 决策
if 新总分 > 旧总分:
status = "keep",更新旧总分
else:
status = "revert"
git revert HEAD(创建新commit回滚,不用reset --hard)
记录失败尝试到 results.tsv
break # 该skill到瓶颈,跳到下一个
# Step 6: 日志
results.tsv 追加行
# === 每个skill优化完后的人类检查点 ===
展示该skill的改动摘要:
- git diff(改前 vs 改后)
- 分数变化(哪些维度提升/下降)
- 测试prompt输出对比(如果跑过的话)
等用户确认 OK 再继续下一个skill。
如果用户说"不好",回滚到该skill的优化前版本。
当 hill-climbing 连续2个skill都在 round 1 就 break(涨不动)时,提议一次「探索性重写」:
1. 选一个瓶颈skill
2. git stash 保存当前最优版本
3. 从头重写SKILL.md(不是微调,是重新组织结构和表达方式)
4. 重新评估
5. if 重写版 > stash版: 采用重写版
else: git stash pop 恢复
这解决了 hill-climbing 的局部最优问题——有时候需要「先拆后建」才能突破瓶颈。 必须征得用户同意后才执行。
## 优化报告
### 总览
- 优化skills数:N
- 总实验次数:M
- 保留改进:X(Y%)
- 回滚次数:Z
- 实测验证:A次完整测试 / B次干跑
### 分数变化
┌──────────────────────────┬────────┬────────┬────────┐
│ Skill │ Before │ After │ Δ │
├──────────────────────────┼────────┼────────┼────────┤
│ huashu-proofreading │ 78 │ 87 │ +9 │
│ huashu-slides │ 72 │ 83 │ +11 │
├──────────────────────────┼────────┼────────┼────────┤
│ 平均 │ 75 │ 85 │ +10 │
└──────────────────────────┴────────┴────────┴────────┘
### 主要改进
1. [skill-A] 补充了边界条件处理,测试输出质量提升明显
2. [skill-B] 重组了workflow结构,baseline对比优势增大
timestamp commit skill old_score new_score status dimension note eval_mode
2026-03-31T10:00 baseline huashu-proofreading - 78 baseline - 初始评估 full_test
2026-03-31T10:05 a1b2c3d huashu-proofreading 78 84 keep 边界条件 补充fallback full_test
2026-03-31T10:10 b2c3d4e huashu-proofreading 84 82 revert 指令具体性 过度细化 dry_run
新增 eval_mode 列:full_test(跑了子agent测试)或 dry_run(模拟推演)。
文件位置:.claude/skills/darwin-skill/results.tsv
按优先级排序,每轮只做最高优先级的一个:
用户:"优化所有skills"
→ Phase 0-3 完整流程
→ 建议:先基线评估,选择分数最低的5-10个重点优化
用户:"优化 huashu-slides 这个skill"
→ 只对指定skill执行 Phase 0.5-2
用户:"评估所有skills的质量"
→ 只执行 Phase 0.5-1(设计测试prompt + 基线评估),不进入优化循环
用户:"看看skill优化历史"
→ 读取并展示 results.tsv
"You write the goals and constraints in program.md; let an agent generate and test code deltas indefinitely; keep only what measurably improves the objective." — Karpathy, autoresearch
本skill的对应关系:
区别:增加了人在回路(autoresearch是全自主的,skill优化需要人的判断力),以及双重评估机制(结构+效果),因为skill的「好坏」比loss数值更微妙。
每个skill优化完成后(或全量汇总后),自动生成视觉成果卡片,截图保存为PNG。
模板位置:templates/result-card.html
3种风格,每次随机选择一种:
| 风格 | CSS类 | URL hash | 视觉特点 |
|------|--------|----------|---------|
| Warm Swiss | .theme-swiss | #swiss | 暖白底+赤陶橙,Inter字体,干净网格 |
| Dark Terminal | .theme-terminal | #terminal | 近黑底+荧光绿,等宽字体,扫描线 |
| Newspaper | .theme-newspaper | #newspaper | 暖白纸+深红,衬线字体,双栏编辑风 |
1. 复制 templates/result-card.html 到临时工作文件
2. 用 sed/编辑工具 替换占位数据:
- data-field="skill-name" → 实际skill名
- data-field="score-before/after/delta" → 实际分数
- 8个维度的 dim-bar-before/after width → 实际百分比
- data-field="improvement-1/2/3" → 实际改进摘要
- data-field="date" → 当前日期
3. 随机选择风格:hash 设为 swiss/terminal/newspaper 之一
4. 用 Playwright 截图:
npx playwright screenshot "file:///path/to/card.html#[theme]" \
output.png --viewport-size=960,1280 --wait-for-timeout=2000
5. 提示用户查看成果卡片 PNG
tools
张一鸣(字节跳动/TikTok创始人)的思维框架与表达方式。基于6个维度(著作、深度访谈、 表达DNA、他者视角、决策记录、时间线)的调研,涵盖32个访谈片段、12个重大决策案例, 提炼5个核心心智模型、7条决策启发式和完整的表达DNA。 用途:作为思维顾问,用张一鸣的视角分析产品、组织、全球化、人才和个人成长问题。 当用户提到「用张一鸣的视角」「张一鸣会怎么看」「一鸣的思路」「zhang yiming perspective」时使用。 即使用户只是说「帮我用张一鸣的角度想想」「如果是字节会怎么做」「切换到张一鸣」也应触发。 即使用户说「字节怎么看」「头条的逻辑」「一鸣怎么选择」「一鸣」也应触发。
documentation
$10K/hr级X/Twitter运营导师。基于Nicolas Cole、Dickie Bush、Sahil Bloom、Justin Welsh、 Dan Koe、Alex Hormozi六位顶级创作者的方法论 + X开源算法深度分析 + AI/科技赛道专精策略, 提炼6个核心心智模型、10条决策启发式、完整的选题-写作-增长操作手册。 通用方法论为底座,AI/科技赛道为专精。 当用户提到「X运营」「推特」「Twitter」「怎么写推文」「怎么涨粉」「X策略」「推特选题」「tweet」「thread」「X算法」时使用。 即使用户只是说「这条推文怎么写」「帮我想个X内容」「推特增长」「发推」「write a tweet」「X account」「grow on X」也应触发。
tools
唐纳德·特朗普(Donald Trump)的思维框架与行为逻辑。基于著作、长访谈、辩论、 心理分析、前幕僚回忆录、重大决策记录共6个维度的深度调研(320KB+原始资料), 提炼6个核心心智模型、8条决策启发式和完整的表达DNA。 用途:(1)思维顾问——用特朗普视角分析谈判、权力、传播问题; (2)行为预判——解读他的公开行为背后的逻辑,预判下一步动作; (3)角色扮演——模拟特朗普在特定场景下的决策和表达。 当用户提到「用懂王视角」「特朗普会怎么看」「懂王逻辑」「trump perspective」 「懂王会怎么做」「从特朗普角度分析」「预测特朗普」时触发。
tools
塔勒布(Nassim Nicholas Taleb)的思维框架与表达方式。基于40+个来源的深度调研, 提炼6个核心心智模型、9条决策启发式和完整的表达DNA。 用途:作为思维顾问,用塔勒布的视角分析问题、审视决策、质疑主流叙事。 当用户提到「用塔勒布的视角」「塔勒布会怎么看」「塔勒布模式」「反脆弱视角」「taleb perspective」时使用。 即使用户只是说「会不会黑天鹅」「这个有尾部风险吗」「skin in the game」「有没有反脆弱的方法」「杠铃策略怎么用」也可触发。 不要在用户只是做一般风险评估或问「靠不靠谱」时触发——只在涉及极端风险、反脆弱、预防原则等塔勒布核心概念时激活。