[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70M1BGVQJM2GTMM4DB2G77Y":3,"skill-same:01M70M1BGVQJM2GTMM4DB2G77Y":231},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":29,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":62,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M70M1BGVQJM2GTMM4DB2G77Y","darwin-skill",null,"Darwin Skill 2.0 (达尔文.skill 2.0): autonomous skill optimizer, v2.0 integrates Microsoft Research SkillLens (arXiv 2605.23899) 9-dim rubric + SkillOpt (arXiv 2605.23904) validation-gated design + human-in-the-loop checkpoints. Evaluates SKILL.md files using a 9-dimension rubric (structure + effectiveness + meta-skill blacklists), runs hill-climbing with git version control, spawns independent judge agents for blind evaluation, validates improvements through test prompts with auto-break on diminishing returns, and generates visual result cards. Use when user mentions \"优化skill\", \"skill评分\", \"自动优化\", \"auto optimize\", \"skill质量检查\", \"达尔文\", \"darwin\", \"帮我改改skill\", \"skill怎么样\", \"提升skill质量\", \"skill review\", \"skill打分\".","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"darwin","darwin skill","Evaluation","break","result","human","optimize","structure","review","optimizer","when","loop","auto","autonomous","files","design","Meta","meta-skill","SkillOpt","skill 2","2026-11-10 10:12:30",false,"---\nname: darwin-skill\ndescription: \"Darwin Skill 2.0 (达尔文.skill 2.0): autonomous skill optimizer, v2.0 integrates Microsoft Research SkillLens (arXiv 2605.23899) 9-dim rubric + SkillOpt (arXiv 2605.23904) validation-gated design + human-in-the-loop checkpoints. Evaluates SKILL.md files using a 9-dimension rubric (structure + effectiveness + meta-skill blacklists), runs hill-climbing with git version control, spawns independent judge agents for blind evaluation, validates improvements through test prompts with auto-break on diminishing returns, and generates visual result cards. Use when user mentions \\\"优化skill\\\", \\\"skill评分\\\", \\\"自动优化\\\", \\\"auto optimize\\\", \\\"skill质量检查\\\", \\\"达尔文\\\", \\\"darwin\\\", \\\"帮我改改skill\\\", \\\"skill怎么样\\\", \\\"提升skill质量\\\", \\\"skill review\\\", \\\"skill打分\\\".\"\n---\n\n# Darwin Skill 2.0\n\n> **v2.0 · 2026-05-28** — 吸收 Microsoft Research SkillLens（arXiv 2605.23899）的 9 维评分药方 + SkillOpt（arXiv 2605.23904）的 validation-gated 验证机制 + human in the loop 三层守关。\n>\n> 借鉴 Karpathy autoresearch 的自主实验循环，对 skills 进行持续优化。\n> 核心理念：**评估 → 改进 → 实测验证 → 人类确认 → 保留或回滚 → 生成成果卡片**\n> GitHub: https:\u002F\u002Fgithub.com\u002Falchaincyf\u002Fdarwin-skill\n\n---\n\n## 设计哲学\n\nautoresearch 的精髓：\n1. **单一可编辑资产** — 每次只改一个 SKILL.md\n2. **双重评估** — 结构评分（静态分析）+ 效果验证（跑测试看输出）\n3. **棘轮机制** — 只保留改进，自动回滚退步\n4. **独立评分** — 评分用子agent，避免「自己改自己评」的偏差\n5. **人在回路** — 每个skill优化完后暂停，用户确认再继续\n\n与纯结构审查的区别：不只看 SKILL.md 写得规不规范，更看改完后**实际跑出来的效果是否更好**。\n\n---\n\n## 评估 Rubric（9维度，总分100）\n\n> **设计依据**：基于 SkillLens 论文（arXiv 2605.23899）实证发现——LLM-as-judge 评估 skill 质量准确率仅 46.4%（接近随机），加入 meta-skill 三维度后提升到 73.8%。本 rubric 强化 dim3 \u002F dim5 评分标准，新增 dim9「反例与黑名单」，权重平衡到 100。**目的：让评分对真实质量更敏感，减少 LLM judge 的乐观偏差。**\n\n### 结构维度（59分）— 静态分析\n\n| # | 维度 | 权重 | 评分标准 |\n|---|------|------|---------|\n| 1 | **Frontmatter质量** | 7 | name规范、description包含做什么+何时用+触发词、≤1024字符、**禁结尾加\"灵活应用\u002F根据情况判断\"等空话尾巴** |\n| 2 | **工作流清晰度** | 12 | 步骤明确可执行、有序号、每步有明确输入\u002F输出 |\n| 3 | **失败模式编码** | 12 | **必须显式编码失败模式**（写出\"如果 X 失败 → Y\"的明确分支）；有fallback路径、错误恢复；**只写正向流程而不写失败分支扣 ≥3 分**（SkillLens meta-skill 维度） |\n| 4 | **检查点设计** | 6 | 关键决策前有用户确认、防止自主失控；**检查点必须显性标记（🔴\u002FSTOP\u002FCHECKPOINT），仅靠\"如果...建议...\"措辞不算** |\n| 5 | **可执行具体性** | 17 | 不模糊、有具体参数\u002F格式\u002F示例、可直接执行；**禁止\"建议\u002F可以考虑\u002F根据情况\u002F灵活把握\u002F视情况而定\"等软化措辞**——出现 ≥3 处扣 ≥3 分（SkillLens actionable specificity 维度） |\n| 6 | **资源整合度** | 4 | references\u002Fscripts\u002Fassets引用正确、路径可达 |\n\n### 效果维度（35分）— 需要实测\n\n| # | 维度 | 权重 | 评分标准 |\n|---|------|------|---------|\n| 7 | **整体架构** | 12 | 结构层次清晰、不冗余不遗漏、与花叔生态一致；**冗余\u002FAI腔废话段落（说白了\u002F换句话说\u002F首先其次综上等花叔禁用词）出现一处扣 1 分** |\n| 8 | **实测表现** | 23 | 用测试prompt跑一遍，输出质量是否符合skill宣称的能力 |\n\n### Meta-skill 维度（6分）— 反例与黑名单\n\n| # | 维度 | 权重 | 评分标准 |\n|---|------|------|---------|\n| 9 | **反例与黑名单** | 6 | **skill 必须有\"不要做什么\"的反例清单**；只写\"应该做 X\"没有\"不要做 Y\"扣 ≥3 分；红灯\u002F危险动作\u002F反模式应单独章节列出（SkillLens risk-action blacklist 维度） |\n\n### 评分规则\n- 维度1-7、9：每个维度打 1-10 分，乘以权重得到该维度得分\n- 维度8（实测表现）：跑2-3个测试prompt，按输出质量打1-10分\n- **总分 = Σ(维度分 × 权重) \u002F 10**，满分100\n- 改进后总分必须 **严格高于** 改进前才保留\n\n### Rubric 的实证基础\n\nrubric 设计依据来自 **SkillLens 论文（arXiv 2605.23899）** + **本机 controlled study**：\n\n- SkillLens 发现 LLM-as-judge 准确率仅 46.4%（接近随机），加入 meta-skill 三维度后升到 73.8%\n- 本机对 huashu-research 做 4 类 degradation → 5 个独立 judge 盲测一致 V1>V2，Δ 均值 +46.5（5\u002F5 high confidence）\n\n**结论**：rubric 能识别 gross degradation，但 fine-grained quality difference 仍不可信，**重要决策必须人审**。\n\n→ 详细论文证据 + 5 judges 完整数据 + HL 实战案例数字见 [references\u002Fskilllens-evidence.md](references\u002Fskilllens-evidence.md)\n\n### 关于「实测表现」维度\n\n这是与纯结构评分最大的区别。评分方式：\n\n1. 为每个skill设计2-3个**典型用户prompt**（不是边缘case，是最常见的使用场景）\n2. 用子agent执行：一个带skill跑，一个不带skill跑（baseline）\n3. 对比输出质量，从以下角度打分：\n   - 输出是否完成了用户意图？\n   - 相比不带skill的baseline，质量提升明显吗？\n   - 有没有skill引入的负面影响（过度冗余、跑偏、格式奇怪）？\n\n若子 agent 不可用（超时\u002F资源限制），退化为「干跑验证」：读完 skill 后模拟一个典型 prompt 的执行思路，判断流程是否合理；必须在 results.tsv 标注 `dry_run`。**dry_run 比例 > 30% → 评估失效警告**（来自本机 controlled study：dim8 实测维度权重 23%，无 full_test 验证时分数不可信）。\n\n---\n\n## Runtime 适配性审查（gate 项，独立于 9 维度评分）\n\nskill 应当能在 Claude Code \u002F Codex \u002F Cursor \u002F OpenClaw \u002F Hermes \u002F Gemini CLI \u002F OpenCode 等 50+ skills-compatible runtime 通用——否则其他 agent 解析时会被「在 Claude Code 里」「Claude Code skill」等措辞误判为「不是给我用的」直接拒装（实例：nuwa-skill 因此被 Marvis agent 拒绝）。\n\n### Phase 1 基线评估时强制跑一次红灯扫描\n\n```bash\ngrep -nE \"(在 Claude Code|Claude Code skill|Claude Code 用户|Cursor only|Codex 中|^\\[!\\[Claude Code|~\u002F\\.claude\u002Fskills\u002F[a-z]|\u002Fplugin install\\b)\" SKILL.md README.md 2>\u002Fdev\u002Fnull\n```\n\n输出非空 = 红灯命中 → 强制把 Phase 2 第一轮定为 P0「runtime drift 修复」（写入 results.tsv 的 note 列 `runtime_warn=N`）。\n\n### 例外（允许的「Claude Code 痕迹」）\n\nfrontmatter 触发词、花叔生态内部 skill 名引用、明确标注 runtime-specific 章节、commit message——这些正当出现，不算红灯。\n\n→ 红灯\u002F绿灯完整对照表 + 例外清单详细规则 + Phase 1\u002F2\u002F3 各阶段审查时机见 [references\u002Fruntime-neutrality.md](references\u002Fruntime-neutrality.md)\n\n---\n\n## 自主优化循环\n\n### Phase 0: 初始化\n\n```\n1. 确认优化范围：\n   - 全部skills → 扫描 .claude\u002Fskills\u002F*\u002FSKILL.md\n   - 指定skills → 用户指定列表\n2. 创建 git 分支：auto-optimize\u002FYYYYMMDD-HHMM\n3. 初始化 results.tsv（如不存在）\n4. 读取现有 results.tsv 了解历史优化记录\n```\n\n### Phase 0.5: 测试Prompt设计\n\n在评估之前，为每个skill设计测试prompt。这步很关键——没有测试prompt，「实测表现」维度就打不了分。\n\n```\nfor each skill:\n  1. 读取 SKILL.md，理解它做什么\n  2. 设计2-3个测试prompt，覆盖：\n     - 最典型的使用场景（happy path）\n     - 一个稍复杂或有歧义的场景\n  3. 保存到 skill目录\u002Ftest-prompts.json：\n     [\n       {\"id\": 1, \"prompt\": \"用户会说的话\", \"expected\": \"期望输出的简短描述\"},\n       {\"id\": 2, \"prompt\": \"...\", \"expected\": \"...\"}\n     ]\n```\n\n展示所有测试prompt给用户，**确认后再进入评估**。测试prompt的质量决定了优化方向是否正确。\n\n### Phase 1: 基线评估（Baseline）\n\n```\nfor each skill in 优化范围:\n\n  # 结构评分（主agent可以做）\n  1. 读取 SKILL.md 全文\n  2. 按维度1-7逐项打分（附简短理由）\n\n  # 效果评分（用子agent做，独立于主agent）\n  3. 对每个测试prompt，spawn子agent：\n     - with_skill: 带着SKILL.md执行测试prompt\n     - baseline: 不带skill执行同一prompt\n  4. 对比两组输出，打维度8的分\n\n  # 汇总\n  5. 计算加权总分\n  6. 记录到 results.tsv\n```\n\n**如果子agent不可用**（超时、环境限制），维度8用干跑验证打分，标注 `dry_run`。不要因为跑不了测试就跳过这个维度——哪怕是模拟推演也比完全不看效果好。\n\n基线评估完成后，展示评分卡：\n\n```\n┌──────────────────────────┬───────┬──────────────┬──────────────┐\n│ Skill                    │ Score │ 结构短板      │ 效果短板      │\n├──────────────────────────┼───────┼──────────────┼──────────────┤\n│ huashu-proofreading      │ 78    │ 边界条件      │ 测试prompt2  │\n│ huashu-slides            │ 72    │ 指令具体性    │ baseline持平  │\n├──────────────────────────┼───────┼──────────────┼──────────────┤\n│ 平均                     │ 75    │              │              │\n└──────────────────────────┴───────┴──────────────┴──────────────┘\n```\n\n**🔴 CHECKPOINT · 🛑 STOP：暂停等用户确认，再进入优化循环。**\n\n### Phase 2: 优化循环\n\n用户确认后，按基线分数从低到高排序，先优化最弱的。\n\n```\nfor each skill:\n  round = 0\n  while round \u003C MAX_ROUNDS (默认3):\n    round += 1\n\n    # Step 1: 诊断\n    找出得分最低的维度（结构或效果都算）\n    # HL-3 警告：dim2\u002Fdim3\u002Fdim4 是相关簇，修一个时另两个常跟着涨\n    # → 不要因为 dim3 最低就单独修，要看整簇短板再决定是否同步改\n\n    # Step 2: 提出改进方案\n    针对最低维度，生成1个具体改进方案：\n      - 改什么（具体段落\u002F行）\n      - 为什么改（对应rubric哪条）\n      - 预期提升多少分\n\n    # Step 3: 执行改进\n    编辑 SKILL.md\n    git add + commit（message: \"optimize {skill}: {改进摘要}\"）\n\n    # Step 4: 重新评估\n    - 结构维度：主agent重新打分\n    - 效果维度：spawn独立子agent重跑测试prompt（关键！不能自己评自己）\n\n    # Step 5: 决策\n    if 新总分 > 旧总分:\n      status = \"keep\"，更新旧总分\n      # HL-4 见好就收：连续2轮 Δ \u003C 2 分 → break 进 Phase 3\n      if last_delta \u003C 2.0 and this_delta \u003C 2.0:\n        print(\"触顶信号：连续2轮边际收益 \u003C 2 分，停止优化避免过度调整\")\n        break\n    else:\n      status = \"revert\"\n      git revert HEAD（创建新commit回滚，不用reset --hard）\n      记录失败尝试到 results.tsv\n      break  # 该skill到瓶颈，跳到下一个\n\n    # Step 6: 日志\n    results.tsv 追加行\n\n  # === 🔴 CHECKPOINT · 每个 skill 优化完后强制人审 ===\n  展示该skill的改动摘要：\n    - git diff（改前 vs 改后）\n    - 分数变化（哪些维度提升\u002F下降）\n    - 测试prompt输出对比（如果跑过的话）\n  等用户确认 OK 再继续下一个skill。\n  如果用户说\"不好\"，回滚到该skill的优化前版本。\n```\n\n### Phase 2.5: 探索性重写（按需触发）\n\n当 hill-climbing 连续2个skill都在 round 1 就 break（涨不动）时，提议一次「探索性重写」：\n\n```\n1. 选一个瓶颈skill\n2. git stash 保存当前最优版本\n3. 从头重写SKILL.md（不是微调，是重新组织结构和表达方式）\n4. 重新评估\n5. if 重写版 > stash版: 采用重写版\n   else: git stash pop 恢复\n```\n\n这解决了 hill-climbing 的局部最优问题——有时候需要「先拆后建」才能突破瓶颈。\n**🔴 CHECKPOINT · 🛑 STOP：必须征得用户同意后才执行。**\n\n### Phase 3: 汇总报告\n\n```\n## 优化报告\n\n### 总览\n- 优化skills数：N\n- 总实验次数：M\n- 保留改进：X（Y%）\n- 回滚次数：Z\n- 实测验证：A次完整测试 \u002F B次干跑\n\n### 分数变化\n┌──────────────────────────┬────────┬────────┬────────┐\n│ Skill                    │ Before │ After  │ Δ      │\n├──────────────────────────┼────────┼────────┼────────┤\n│ huashu-proofreading      │ 78     │ 87     │ +9     │\n│ huashu-slides            │ 72     │ 83     │ +11    │\n├──────────────────────────┼────────┼────────┼────────┤\n│ 平均                     │ 75     │ 85     │ +10    │\n└──────────────────────────┴────────┴────────┴────────┘\n\n### 主要改进\n1. [skill-A] 补充了边界条件处理，测试输出质量提升明显\n2. [skill-B] 重组了workflow结构，baseline对比优势增大\n```\n\n---\n\n## results.tsv 格式\n\n```tsv\ntimestamp\tcommit\tskill\told_score\tnew_score\tstatus\tdimension\tnote\teval_mode\n2026-03-31T10:00\tbaseline\thuashu-proofreading\t-\t78\tbaseline\t-\t初始评估\tfull_test\n2026-03-31T10:05\ta1b2c3d\thuashu-proofreading\t78\t84\tkeep\t边界条件\t补充fallback\tfull_test\n2026-03-31T10:10\tb2c3d4e\thuashu-proofreading\t84\t82\trevert\t指令具体性\t过度细化\tdry_run\n```\n\n新增 `eval_mode` 列：`full_test`（跑了子agent测试）或 `dry_run`（模拟推演）。\n文件位置：`.claude\u002Fskills\u002Fdarwin-skill\u002Fresults.tsv`\n\n---\n\n## 实战 high-leverage 操作（精髓速查）\n\n4 条经实战验证（huashu-gpt-image +10.85 \u002F huashu-weread-advisor +14.9 \u002F claude-design +16.5）。详细案例数据见 [references\u002Fskilllens-evidence.md](references\u002Fskilllens-evidence.md) 的「HL 实战案例」节。\n\n- **HL-1（dim4）显性视觉标记是杠杆**：加 🔴 CHECKPOINT \u002F 🛑 STOP，靠「必须」措辞不行——LLM 解析时扫描视觉标记。4 行改动撬动 dim4 +3 分\n- **HL-2（dim3）if-then 三段式 fallback 表**：把「症状\u002F解法」两列升级为「触发条件 \u002F 一线修复 \u002F 仍失败兜底」三段式。SkillLens failure-mechanism encoding 维度的落地\n- **HL-3（Phase 2 诊断）维度相关簇警告**：dim2\u002F3\u002F4 是相关簇——修 dim3 时 dim2 常跟着涨。「找最低维度」时同时看相关簇短板再决定是否同步改\n- **HL-4（Phase 2 退出）触顶自动 break**：连续 2 轮 Δ \u003C 2 分 → break 进 Phase 3。+0.15 是停手信号不是继续信号；硬凑 MAX_ROUNDS=3 引入 over-engineering\n\n---\n\n## 优化策略库\n\n按优先级排序，每轮只做最高优先级的一个：\n\n### P0: Runtime 适配性问题（gate 项命中 → 必须先修）\n- README\u002FSKILL.md 出现红灯措辞（如「在 Claude Code 里」「Claude Code skill」）→ 替换为 runtime-neutral 措辞\n- Badge 钉死单一 runtime → 改为 `Agent Skills Standard` + `skills.sh` + `Multi-Runtime` 三个中立 badge\n- 安装章节只给一种 runtime 的路径 → 改为「一行命令（auto-detect）+ 手动路径表 + 作为参考资料」三层结构\n- 工作流硬编码 runtime-specific 工具且无 fallback → 给出通用替代方案或标注「仅在某 runtime 可用」\n- 例外：skill 名明确标注单 runtime（如 `xxx-codex`）的，可跳过本项\n\n### P0: 效果问题（实测发现的）\n- 测试输出偏离用户意图 → 检查skill是否有误导性指令\n- 带skill比不带还差 → skill可能过度约束，考虑精简\n- 输出格式不符合预期 → 补充明确的输出模板\n\n### P1: 结构性问题\n- Frontmatter缺少触发词 → 补充中英文触发词\n- 缺少Phase\u002FStep结构 → 重组为线性流程\n- 缺少用户确认检查点 → 在关键决策处插入\n\n### P2: 具体性问题\n- 步骤模糊（\"处理图片\"）→ 改为具体操作和参数\n- 缺少输入\u002F输出规格 → 补充格式、路径、示例\n- 缺少异常处理 → 补充 \"如果X失败，则Y\"\n\n### P3: 可读性问题\n- 段落过长 → 拆分+用表格\n- 重复描述 → 合并去重\n- 缺少速查 → 添加TL;DR或决策树\n\n---\n\n## 异常与边界条件\n\n流程假设环境理想，但实操常遇异常。以下预定义 fallback，保证优化过程不会「一跑就卡住」。\n\n| 场景 | 触发条件 | 处理动作 |\n|---|---|---|\n| 不在 git 仓库 | `git rev-parse` 失败 | 询问用户：执行 `git init` 或回退到文件备份；用户选后者则 `cp SKILL.md SKILL.md.bak.YYYYMMDD-HHMM` 代替 revert |\n| results.tsv 缺失 | 文件不存在 | 新建并写表头行（9列：含 eval_mode） |\n| results.tsv 损坏 | 列数不匹配 \u002F 非TSV | 备份为 `.bak.YYYYMMDD-HHMM` 后重建，告知用户 |\n| 分支已存在 | `git checkout -b` 失败 | 分支名末尾加 `-2` \u002F `-3`；第3次失败则切回现有分支并询问继续还是新起 |\n| `git revert` 失败 | 冲突 \u002F 工作树脏 | 先 `git stash`，重试；仍失败则从上一个 commit 的 SKILL.md 读出覆盖当前文件手动恢复 |\n| MAX_ROUNDS 触顶（默认3） | 已跑3轮仍有短板 | 不强制 break，展示当前最弱维度问用户「继续加1轮 \u002F 进入Phase 2.5 \u002F 收工」 |\n| 优化后超 150% 体积 | 新文件 > 原 × 1.5 | 拒绝提交，回到改进步骤精简（删冗余\u002F合并重复），再评 |\n| test-prompts.json 已存在 | 文件已在 skill 目录 | 默认复用并展示，问用户「复用 \u002F 重写 \u002F 追加」三选一 |\n| SKILL.md 找不到 | 目录存在但无 SKILL.md | 该 skill 终止，results.tsv 记 `status=error`，继续下一个 |\n| 分数计算规则 | 浮点精度漂移 | 总分保留 1 位小数，改进需严格 > 旧分（不靠四舍五入） |\n\n**原则**：异常先告知用户，再按规则处理；绝不静默跳过或静默失败。\n\n---\n\n## darwin 操作反例黑名单（dim9 应用：darwin 自己优化时不要做的事）\n\n来自本机 results.tsv 早期 40 次 0 revert 的教训 + Judge G\u002FH 自指评估暴露的反模式。每条都是**真实踩过的坑**。\n\n| # | 反模式 | 为什么不要做 | 替代做法 |\n|---|---|---|---|\n| 1 | **同 context 自评自改** | 改完后立刻在同一 Claude session 打分，会有「我刚改的肯定更好」乐观偏差（SkillLens 实证 LLM-as-judge 准确率仅 46.4%）| 必须 spawn **独立子 agent** 评分，且至少 2 个 judge 共识才信 |\n| 2 | **`git reset --hard` 当回滚** | 会丢工作树未提交改动；CI 历史断裂 | 用 `git revert HEAD` 创建反向 commit，保留可追溯链 |\n| 3 | **为凑分增冗余** | 触顶后继续硬改往往是「加废话\u002F加段落让 LLM 觉得更详细」，实际质量不变 | 触顶信号（连续 2 轮 Δ\u003C2 分）→ break 进 Phase 3，**见好就收** |\n| 4 | **跳过 test-prompts 直接评分** | 没有 test-prompts 的 dim8 是凭空打分，权重 23% 等于编造 | Phase 0.5 强制设计 2-3 prompts；若用户不给，默认编 3 个并展示确认 |\n| 5 | **轮内改多个维度** | 多变量同时变，分数升降无法归因到具体改动 | 每轮 1 个维度；相关簇（dim2\u002F3\u002F4）改其一时观察另两个是否跟涨 |\n| 6 | **dry_run 比例 > 30%** | dim8 实测维度形同虚设，分数虚高（早期 40 次记录 67% dry_run，0 revert） | 强制至少 1 个真实 full_test；dry_run 多的优化在 results.tsv 显式打 ⚠️ |\n| 7 | **静默跳过异常** | 遇到 git\u002Ftsv 异常时静默继续，破坏 ratchet 完整性 | 异常表 10 条 fallback 必须先告知用户再处理 |\n| 8 | **忽视维度相关性单独优化** | dim2\u002F3\u002F4 是相关簇，单独优化 dim2 时常发现已被前轮 dim3 修复推到顶 | 找最低维度时同时看相关簇短板，决定是否同步改 |\n\n**触发场景**：每轮 Phase 2 改动前对照本表一次。任一反模式命中 → 改方案重写。\n\n---\n\n## 约束规则\n\n1. **不改变skill的核心功能和用途** — 只优化\"怎么写\"和\"怎么执行\"，不改\"做什么\"\n2. **不引入新依赖** — 不添加skill原本没有的scripts或references文件\n3. **每轮只改一个维度** — 避免多个变更导致无法归因\n4. **保持文件大小合理** — 优化后SKILL.md不应超过原始大小的150%\n5. **尊重花叔风格** — 中文为主、简洁为上\n6. **可回滚** — 所有改动在git分支上，用git revert而非reset --hard\n7. **评分独立性** — 效果维度必须用子agent或至少干跑验证，不能在同一上下文里「改完直接评」\n8. **Runtime 中立性** — skill 必须能在 Claude Code、Codex、Cursor、OpenClaw、Hermes 等任何 skills-compatible runtime 中正常运行。除非 skill 名明确绑定单一 runtime（如 `xxx-codex`、`huashu-slides-codex`），任何「在 Claude Code 里」「Claude Code skill」「单一 badge 钉死」「安装命令只给 `.claude\u002Fskills\u002F` 一种路径」都视为 gate 不通过，须在 P0 优先修复（详见「Runtime 适配性审查」章节）\n\n---\n\n## 使用方式\n\n### 全量优化（推荐首次使用）\n```\n用户：\"优化所有skills\"\n→ Phase 0-3 完整流程\n→ 默认：先基线评估，按分数升序优先优化最低 5-10 个\n```\n\n### 单个优化\n```\n用户：\"优化 huashu-slides 这个skill\"\n→ 只对指定skill执行 Phase 0.5-2\n```\n\n### 仅评估不改\n```\n用户：\"评估所有skills的质量\"\n→ 只执行 Phase 0.5-1（设计测试prompt + 基线评估），不进入优化循环\n```\n\n### 查看历史\n```\n用户：\"看看skill优化历史\"\n→ 读取并展示 results.tsv\n```\n\n---\n\n## 设计灵感\n\n> \"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.\"\n> — Karpathy, autoresearch\n\n本skill的对应关系：\n- **program.md** → 本文件（评估rubric和约束规则）\n- **train.py** → 每个SKILL.md\n- **val_bpb** → 9维加权总分（含实测表现 + meta-skill 反例黑名单）\n- **git ratchet** → 只保留有改进的commit\n- **test set** → 每个skill的test-prompts.json\n\n区别：增加了人在回路（autoresearch是全自主的，skill优化需要人的判断力），以及双重评估机制（结构+效果），因为skill的「好坏」比loss数值更微妙。\n\n---\n\n## 成果卡片生成（Result Card）\n\n每个skill优化完成后（或全量汇总后），自动生成视觉成果卡片，截图保存为PNG。\n\n### 卡片模板\n\n模板位置：`templates\u002Fresult-card.html`\n\n3种风格，每次随机选择一种：\n\n| 风格 | CSS类 | URL hash | 视觉特点 |\n|------|--------|----------|---------|\n| Warm Swiss | `.theme-swiss` | `#swiss` | 暖白底+赤陶橙，Inter字体，干净网格 |\n| Dark Terminal | `.theme-terminal` | `#terminal` | 近黑底+荧光绿，等宽字体，扫描线 |\n| Newspaper | `.theme-newspaper` | `#newspaper` | 暖白纸+深红，衬线字体，双栏编辑风 |\n\n### 生成流程\n\n```\n1. 复制 templates\u002Fresult-card.html 到临时工作文件\n2. 用 sed\u002F编辑工具 替换占位数据：\n   - data-field=\"skill-name\" → 实际skill名\n   - data-field=\"score-before\u002Fafter\u002Fdelta\" → 实际分数\n   - 9个维度的 dim-bar-before\u002Fafter width → 实际百分比（若模板仍是旧 8 维布局，加一行 dim9 反例黑名单条目）\n   - data-field=\"improvement-1\u002F2\u002F3\" → 实际改进摘要\n   - data-field=\"date\" → 当前日期\n3. 随机选择风格：hash 设为 swiss\u002Fterminal\u002Fnewspaper 之一\n4. 用 scripts\u002Fscreenshot.mjs 截图（2x 高清，只截 .card 元素，自动 open 图片）：\n   node .claude\u002Fskills\u002Fdarwin-skill\u002Fscripts\u002Fscreenshot.mjs \\\n     \u002Fabs\u002Fpath\u002Fto\u002Fcard.html \u002Fabs\u002Fpath\u002Fto\u002Foutput.png\n   # 回退方案（脚本失败时）：\n   npx playwright screenshot \"file:\u002F\u002F\u002Fpath\u002Fto\u002Fcard.html#[theme]\" \\\n     output.png --viewport-size=960,1280 --wait-for-timeout=2000\n5. 提示用户查看成果卡片 PNG\n\n### 资源文件速查\n\n| 路径 | 用途 |\n|---|---|\n| `templates\u002Fresult-card.html` | 3风格主模板（swiss\u002Fterminal\u002Fnewspaper，hash切换） |\n| `templates\u002Fresult-card-dark.html` \u002F `-white.html` | 单一风格替代模板（需要锁定风格时用） |\n| `scripts\u002Fscreenshot.mjs` | 2x 高清截图，只截 .card，自动 open |\n| `results.tsv` | 历次优化日志（9列含 eval_mode） |\n| `{skill目录}\u002Ftest-prompts.json` | 每个 skill 的测试 prompt 集（用于维度8实测） |\n\n### 何时生成\n\n- **单skill卡片**：每个skill优化完成后，展示该skill的分数变化\n- **总览卡片**：全部优化完成后（Phase 3），展示全局战绩\n\n### 品牌元素\n\n- 顶部：Darwin.skill 品牌标识 + 日期\n- 底部：「Train your Skills like you train your models」+ github.com\u002Falchaincyf\u002Fdarwin-skill\n","# Darwin Skill 2.0\n\n> **v2.0 · 2026-05-28** — 吸收 Microsoft Research SkillLens（arXiv 2605.23899）的 9 维评分药方 + SkillOpt（arXiv 2605.23904）的 validation-gated 验证机制 + human in the loop 三层守关。\n>\n> 借鉴 Karpathy autoresearch 的自主实验循环，对 skills 进行持续优化。\n> 核心理念：**评估 → 改进 → 实测验证 → 人类确认 → 保留或回滚 → 生成成果卡片**\n> GitHub: https:\u002F\u002Fgithub.com\u002Falchaincyf\u002Fdarwin-skill\n\n---\n\n## 设计哲学\n\nautoresearch 的精髓：\n1. **单一可编辑资产** — 每次只改一个 SKILL.md\n2. **双重评估** — 结构评分（静态分析）+ 效果验证（跑测试看输出）\n3. **棘轮机制** — 只保留改进，自动回滚退步\n4. **独立评分** — 评分用子agent，避免「自己改自己评」的偏差\n5. **人在回路** — 每个skill优化完后暂停，用户确认再继续\n\n与纯结构审查的区别：不只看 SKILL.md 写得规不规范，更看改完后**实际跑出来的效果是否更好**。\n\n---\n\n## 评估 Rubric（9维度，总分100）\n\n> **设计依据**：基于 SkillLens 论文（arXiv 2605.23899）实证发现——LLM-as-judge 评估 skill 质量准确率仅 46.4%（接近随机），加入 meta-skill 三维度后提升到 73.8%。本 rubric 强化 dim3 \u002F dim5 评分标准，新增 dim9「反例与黑名单」，权重平衡到 100。**目的：让评分对真实质量更敏感，减少 LLM judge 的乐观偏差。**\n\n### 结构维度（59分）— 静态分析\n\n| # | 维度 | 权重 | 评分标准 |\n|---|------|------|---------|\n| 1 | **Frontmatter质量** | 7 | name规范、description包含做什么+何时用+触发词、≤1024字符、**禁结尾加\"灵活应用\u002F根据情况判断\"等空话尾巴** |\n| 2 | **工作流清晰度** | 12 | 步骤明确可执行、有序号、每步有明确输入\u002F输出 |\n| 3 | **失败模式编码** | 12 | **必须显式编码失败模式**（写出\"如果 X 失败 → Y\"的明确分支）；有fallback路径、错误恢复；**只写正向流程而不写失败分支扣 ≥3 分**（SkillLens meta-skill 维度） |\n| 4 | **检查点设计** | 6 | 关键决策前有用户确认、防止自主失控；**检查点必须显性标记（🔴\u002FSTOP\u002FCHECKPOINT），仅靠\"如果...建议...\"措辞不算** |\n| 5 | **可执行具体性** | 17 | 不模糊、有具体参数\u002F格式\u002F示例、可直接执行；**禁止\"建议\u002F可以考虑\u002F根据情况\u002F灵活把握\u002F视情况而定\"等软化措辞**——出现 ≥3 处扣 ≥3 分（SkillLens actionable specificity 维度） |\n| 6 | **资源整合度** | 4 | references\u002Fscripts\u002Fassets引用正确、路径可达 |\n\n### 效果维度（35分）— 需要实测\n\n| # | 维度 | 权重 | 评分标准 |\n|---|------|------|---------|\n| 7 | **整体架构** | 12 | 结构层次清晰、不冗余不遗漏、与花叔生态一致；**冗余\u002FAI腔废话段落（说白了\u002F换句话说\u002F首先其次综上等花叔禁用词）出现一处扣 1 分** |\n| 8 | **实测表现** | 23 | 用测试prompt跑一遍，输出质量是否符合skill宣称的能力 |\n\n### Meta-skill 维度（6分）— 反例与黑名单\n\n| # | 维度 | 权重 | 评分标准 |\n|---|------|------|---------|\n| 9 | **反例与黑名单** | 6 | **skill 必须有\"不要做什么\"的反例清单**；只写\"应该做 X\"没有\"不要做 Y\"扣 ≥3 分；红灯\u002F危险动作\u002F反模式应单独章节列出（SkillLens risk-action blacklist 维度） |\n\n### 评分规则\n- 维度1-7、9：每个维度打 1-10 分，乘以权重得到该维度得分\n- 维度8（实测表现）：跑2-3个测试prompt，按输出质量打1-10分\n- **总分 = Σ(维度分 × 权重) \u002F 10**，满分100\n- 改进后总分必须 **严格高于** 改进前才保留\n\n### Rubric 的实证基础\n\nrubric 设计依据来自 **SkillLens 论文（arXiv 2605.23899）** + **本机 controlled study**：\n\n- SkillLens 发现 LLM-as-judge 准确率仅 46.4%（接近随机），加入 meta-skill 三维度后升到 73.8%\n- 本机对 huashu-research 做 4 类 degradation → 5 个独立 judge 盲测一致 V1>V2，Δ 均值 +46.5（5\u002F5 high confidence）\n\n**结论**：rubric 能识别 gross degradation，但 fine-grained quality difference 仍不可信，**重要决策必须人审**。\n\n→ 详细论文证据 + 5 judges 完整数据 + HL 实战案例数字见 [references\u002Fskilllens-evidence.md](references\u002Fskilllens-evidence.md)\n\n### 关于「实测表现」维度\n\n这是与纯结构评分最大的区别。评分方式：\n\n1. 为每个skill设计2-3个**典型用户prompt**（不是边缘case，是最常见的使用场景）\n2. 用子agent执行：一个带skill跑，一个不带skill跑（baseline）\n3. 对比输出质量，从以下角度打分：\n   - 输出是否完成了用户意图？\n   - 相比不带skill的baseline，质量提升明显吗？\n   - 有没有skill引入的负面影响（过度冗余、跑偏、格式奇怪）？\n\n若子 agent 不可用（超时\u002F资源限制），退化为「干跑验证」：读完 skill 后模拟一个典型 prompt 的执行思路，判断流程是否合理；必须在 results.tsv 标注 `dry_run`。**dry_run 比例 > 30% → 评估失效警告**（来自本机 controlled study：dim8 实测维度权重 23%，无 full_test 验证时分数不可信）。\n\n---\n\n## Runtime 适配性审查（gate 项，独立于 9 维度评分）\n\nskill 应当能在 Claude Code \u002F Codex \u002F Cursor \u002F OpenClaw \u002F Hermes \u002F Gemini CLI \u002F OpenCode 等 50+ skills-compatible runtime 通用——否则其他 agent 解析时会被「在 Claude Code 里」「Claude Code skill」等措辞误判为「不是给我用的」直接拒装（实例：nuwa-skill 因此被 Marvis agent 拒绝）。\n\n### Phase 1 基线评估时强制跑一次红灯扫描\n\n```bash\ngrep -nE \"(在 Claude Code|Claude Code skill|Claude Code 用户|Cursor only|Codex 中|^\\[!\\[Claude Code|~\u002F\\.claude\u002Fskills\u002F[a-z]|\u002Fplugin install\\b)\" SKILL.md README.md 2>\u002Fdev\u002Fnull\n```\n\n输出非空 = 红灯命中 → 强制把 Phase 2 第一轮定为 P0「runtime drift 修复」（写入 results.tsv 的 note 列 `runtime_warn=N`）。\n\n### 例外（允许的「Claude Code 痕迹」）\n\nfrontmatter 触发词、花叔生态内部 skill 名引用、明确标注 runtime-specific 章节、commit message——这些正当出现，不算红灯。\n\n→ 红灯\u002F绿灯完整对照表 + 例外清单详细规则 + Phase 1\u002F2\u002F3 各阶段审查时机见 [references\u002Fruntime-neutrality.md](references\u002Fruntime-neutrality.md)\n\n---\n\n## 自主优化循环\n\n### Phase 0: 初始化\n\n```\n1. 确认优化范围：\n   - 全部skills → 扫描 .claude\u002Fskills\u002F*\u002FSKILL.md\n   - 指定skills → 用户指定列表\n2. 创建 git 分支：auto-optimize\u002FYYYYMMDD-HHMM\n3. 初始化 results.tsv（如不存在）\n4. 读取现有 results.tsv 了解历史优化记录\n```\n\n### Phase 0.5: 测试Prompt设计\n\n在评估之前，为每个skill设计测试prompt。这步很关键——没有测试prompt，「实测表现」维度就打不了分。\n\n```\nfor each skill:\n  1. 读取 SKILL.md，理解它做什么\n  2. 设计2-3个测试prompt，覆盖：\n     - 最典型的使用场景（happy path）\n     - 一个稍复杂或有歧义的场景\n  3. 保存到 skill目录\u002Ftest-prompts.json：\n     [\n       {\"id\": 1, \"prompt\": \"用户会说的话\", \"expected\": \"期望输出的简短描述\"},\n       {\"id\": 2, \"prompt\": \"...\", \"expected\": \"...\"}\n     ]\n```\n\n展示所有测试prompt给用户，**确认后再进入评估**。测试prompt的质量决定了优化方向是否正确。\n\n### Phase 1: 基线评估（Baseline）\n\n```\nfor each skill in 优化范围:\n\n  # 结构评分（主agent可以做）\n  1. 读取 SKILL.md 全文\n  2. 按维度1-7逐项打分（附简短理由）\n\n  # 效果评分（用子agent做，独立于主agent）\n  3. 对每个测试prompt，spawn子agent：\n     - with_skill: 带着SKILL.md执行测试prompt\n     - baseline: 不带skill执行同一prompt\n  4. 对比两组输出，打维度8的分\n\n  # 汇总\n  5. 计算加权总分\n  6. 记录到 results.tsv\n```\n\n**如果子agent不可用**（超时、环境限制），维度8用干跑验证打分，标注 `dry_run`。不要因为跑不了测试就跳过这个维度——哪怕是模拟推演也比完全不看效果好。\n\n基线评估完成后，展示评分卡：\n\n```\n┌──────────────────────────┬───────┬──────────────┬──────────────┐\n│ Skill                    │ Score │ 结构短板      │ 效果短板      │\n├──────────────────────────┼───────┼──────────────┼──────────────┤\n│ huashu-proofreading      │ 78    │ 边界条件      │ 测试prompt2  │\n│ huashu-slides            │ 72    │ 指令具体性    │ baseline持平  │\n├──────────────────────────┼───────┼──────────────┼──────────────┤\n│ 平均                     │ 75    │              │              │\n└──────────────────────────┴───────┴──────────────┴──────────────┘\n```\n\n**🔴 CHECKPOINT · 🛑 STOP：暂停等用户确认，再进入优化循环。**\n\n### Phase 2: 优化循环\n\n用户确认后，按基线分数从低到高排序，先优化最弱的。\n\n```\nfor each skill:\n  round = 0\n  while round \u003C MAX_ROUNDS (默认3):\n    round += 1\n\n    # Step 1: 诊断\n    找出得分最低的维度（结构或效果都算）\n    # HL-3 警告：dim2\u002Fdim3\u002Fdim4 是相关簇，修一个时另两个常跟着涨\n    # → 不要因为 dim3 最低就单独修，要看整簇短板再决定是否同步改\n\n    # Step 2: 提出改进方案\n    针对最低维度，生成1个具体改进方案：\n      - 改什么（具体段落\u002F行）\n      - 为什么改（对应rubric哪条）\n      - 预期提升多少分\n\n    # Step 3: 执行改进\n    编辑 SKILL.md\n    git add + commit（message: \"optimize {skill}: {改进摘要}\"）\n\n    # Step 4: 重新评估\n    - 结构维度：主agent重新打分\n    - 效果维度：spawn独立子agent重跑测试prompt（关键！不能自己评自己）\n\n    # Step 5: 决策\n    if 新总分 > 旧总分:\n      status = \"keep\"，更新旧总分\n      # HL-4 见好就收：连续2轮 Δ \u003C 2 分 → break 进 Phase 3\n      if last_delta \u003C 2.0 and this_delta \u003C 2.0:\n        print(\"触顶信号：连续2轮边际收益 \u003C 2 分，停止优化避免过度调整\")\n        break\n    else:\n      status = \"revert\"\n      git revert HEAD（创建新commit回滚，不用reset --hard）\n      记录失败尝试到 results.tsv\n      break  # 该skill到瓶颈，跳到下一个\n\n    # Step 6: 日志\n    results.tsv 追加行\n\n  # === 🔴 CHECKPOINT · 每个 skill 优化完后强制人审 ===\n  展示该skill的改动摘要：\n    - git diff（改前 vs 改后）\n    - 分数变化（哪些维度提升\u002F下降）\n    - 测试prompt输出对比（如果跑过的话）\n  等用户确认 OK 再继续下一个skill。\n  如果用户说\"不好\"，回滚到该skill的优化前版本。\n```\n\n### Phase 2.5: 探索性重写（按需触发）\n\n当 hill-climbing 连续2个skill都在 round 1 就 break（涨不动）时，提议一次「探索性重写」：\n\n```\n1. 选一个瓶颈skill\n2. git stash 保存当前最优版本\n3. 从头重写SKILL.md（不是微调，是重新组织结构和表达方式）\n4. 重新评估\n5. if 重写版 > stash版: 采用重写版\n   else: git stash pop 恢复\n```\n\n这解决了 hill-climbing 的局部最优问题——有时候需要「先拆后建」才能突破瓶颈。\n**🔴 CHECKPOINT · 🛑 STOP：必须征得用户同意后才执行。**\n\n### Phase 3: 汇总报告\n\n```\n## 优化报告\n\n### 总览\n- 优化skills数：N\n- 总实验次数：M\n- 保留改进：X（Y%）\n- 回滚次数：Z\n- 实测验证：A次完整测试 \u002F B次干跑\n\n### 分数变化\n┌──────────────────────────┬────────┬────────┬────────┐\n│ Skill                    │ Before │ After  │ Δ      │\n├──────────────────────────┼────────┼────────┼────────┤\n│ huashu-proofreading      │ 78     │ 87     │ +9     │\n│ huashu-slides            │ 72     │ 83     │ +11    │\n├──────────────────────────┼────────┼────────┼────────┤\n│ 平均                     │ 75     │ 85     │ +10    │\n└──────────────────────────┴────────┴────────┴────────┘\n\n### 主要改进\n1. [skill-A] 补充了边界条件处理，测试输出质量提升明显\n2. [skill-B] 重组了workflow结构，baseline对比优势增大\n```\n\n---\n\n## results.tsv 格式\n\n```tsv\ntimestamp\tcommit\tskill\told_score\tnew_score\tstatus\tdimension\tnote\teval_mode\n2026-03-31T10:00\tbaseline\thuashu-proofreading\t-\t78\tbaseline\t-\t初始评估\tfull_test\n2026-03-31T10:05\ta1b2c3d\thuashu-proofreading\t78\t84\tkeep\t边界条件\t补充fallback\tfull_test\n2026-03-31T10:10\tb2c3d4e\thuashu-proofreading\t84\t82\trevert\t指令具体性\t过度细化\tdry_run\n```\n\n新增 `eval_mode` 列：`full_test`（跑了子agent测试）或 `dry_run`（模拟推演）。\n文件位置：`.claude\u002Fskills\u002Fdarwin-skill\u002Fresults.tsv`\n\n---\n\n## 实战 high-leverage 操作（精髓速查）\n\n4 条经实战验证（huashu-gpt-image +10.85 \u002F huashu-weread-advisor +14.9 \u002F claude-design +16.5）。详细案例数据见 [references\u002Fskilllens-evidence.md](references\u002Fskilllens-evidence.md) 的「HL 实战案例」节。\n\n- **HL-1（dim4）显性视觉标记是杠杆**：加 🔴 CHECKPOINT \u002F 🛑 STOP，靠「必须」措辞不行——LLM 解析时扫描视觉标记。4 行改动撬动 dim4 +3 分\n- **HL-2（dim3）if-then 三段式 fallback 表**：把「症状\u002F解法」两列升级为「触发条件 \u002F 一线修复 \u002F 仍失败兜底」三段式。SkillLens failure-mechanism encoding 维度的落地\n- **HL-3（Phase 2 诊断）维度相关簇警告**：dim2\u002F3\u002F4 是相关簇——修 dim3 时 dim2 常跟着涨。「找最低维度」时同时看相关簇短板再决定是否同步改\n- **HL-4（Phase 2 退出）触顶自动 break**：连续 2 轮 Δ \u003C 2 分 → break 进 Phase 3。+0.15 是停手信号不是继续信号；硬凑 MAX_ROUNDS=3 引入 over-engineering\n\n---\n\n## 优化策略库\n\n按优先级排序，每轮只做最高优先级的一个：\n\n### P0: Runtime 适配性问题（gate 项命中 → 必须先修）\n- README\u002FSKILL.md 出现红灯措辞（如「在 Claude Code 里」「Claude Code skill」）→ 替换为 runtime-neutral 措辞\n- Badge 钉死单一 runtime → 改为 `Agent Skills Standard` + `skills.sh` + `Multi-Runtime` 三个中立 badge\n- 安装章节只给一种 runtime 的路径 → 改为「一行命令（auto-detect）+ 手动路径表 + 作为参考资料」三层结构\n- 工作流硬编码 runtime-specific 工具且无 fallback → 给出通用替代方案或标注「仅在某 runtime 可用」\n- 例外：skill 名明确标注单 runtime（如 `xxx-codex`）的，可跳过本项\n\n### P0: 效果问题（实测发现的）\n- 测试输出偏离用户意图 → 检查skill是否有误导性指令\n- 带skill比不带还差 → skill可能过度约束，考虑精简\n- 输出格式不符合预期 → 补充明确的输出模板\n\n### P1: 结构性问题\n- Frontmatter缺少触发词 → 补充中英文触发词\n- 缺少Phase\u002FStep结构 → 重组为线性流程\n- 缺少用户确认检查点 → 在关键决策处插入\n\n### P2: 具体性问题\n- 步骤模糊（\"处理图片\"）→ 改为具体操作和参数\n- 缺少输入\u002F输出规格 → 补充格式、路径、示例\n- 缺少异常处理 → 补充 \"如果X失败，则Y\"\n\n### P3: 可读性问题\n- 段落过长 → 拆分+用表格\n- 重复描述 → 合并去重\n- 缺少速查 → 添加TL;DR或决策树\n\n---\n\n## 异常与边界条件\n\n流程假设环境理想，但实操常遇异常。以下预定义 fallback，保证优化过程不会「一跑就卡住」。\n\n| 场景 | 触发条件 | 处理动作 |\n|---|---|---|\n| 不在 git 仓库 | `git rev-parse` 失败 | 询问用户：执行 `git init` 或回退到文件备份；用户选后者则 `cp SKILL.md SKILL.md.bak.YYYYMMDD-HHMM` 代替 revert |\n| results.tsv 缺失 | 文件不存在 | 新建并写表头行（9列：含 eval_mode） |\n| results.tsv 损坏 | 列数不匹配 \u002F 非TSV | 备份为 `.bak.YYYYMMDD-HHMM` 后重建，告知用户 |\n| 分支已存在 | `git checkout -b` 失败 | 分支名末尾加 `-2` \u002F `-3`；第3次失败则切回现有分支并询问继续还是新起 |\n| `git revert` 失败 | 冲突 \u002F 工作树脏 | 先 `git stash`，重试；仍失败则从上一个 commit 的 SKILL.md 读出覆盖当前文件手动恢复 |\n| MAX_ROUNDS 触顶（默认3） | 已跑3轮仍有短板 | 不强制 break，展示当前最弱维度问用户「继续加1轮 \u002F 进入Phase 2.5 \u002F 收工」 |\n| 优化后超 150% 体积 | 新文件 > 原 × 1.5 | 拒绝提交，回到改进步骤精简（删冗余\u002F合并重复），再评 |\n| test-prompts.json 已存在 | 文件已在 skill 目录 | 默认复用并展示，问用户「复用 \u002F 重写 \u002F 追加」三选一 |\n| SKILL.md 找不到 | 目录存在但无 SKILL.md | 该 skill 终止，results.tsv 记 `status=error`，继续下一个 |\n| 分数计算规则 | 浮点精度漂移 | 总分保留 1 位小数，改进需严格 > 旧分（不靠四舍五入） |\n\n**原则**：异常先告知用户，再按规则处理；绝不静默跳过或静默失败。\n\n---\n\n## darwin 操作反例黑名单（dim9 应用：darwin 自己优化时不要做的事）\n\n来自本机 results.tsv 早期 40 次 0 revert 的教训 + Judge G\u002FH 自指评估暴露的反模式。每条都是**真实踩过的坑**。\n\n| # | 反模式 | 为什么不要做 | 替代做法 |\n|---|---|---|---|\n| 1 | **同 context 自评自改** | 改完后立刻在同一 Claude session 打分，会有「我刚改的肯定更好」乐观偏差（SkillLens 实证 LLM-as-judge 准确率仅 46.4%）| 必须 spawn **独立子 agent** 评分，且至少 2 个 judge 共识才信 |\n| 2 | **`git reset --hard` 当回滚** | 会丢工作树未提交改动；CI 历史断裂 | 用 `git revert HEAD` 创建反向 commit，保留可追溯链 |\n| 3 | **为凑分增冗余** | 触顶后继续硬改往往是「加废话\u002F加段落让 LLM 觉得更详细」，实际质量不变 | 触顶信号（连续 2 轮 Δ\u003C2 分）→ break 进 Phase 3，**见好就收** |\n| 4 | **跳过 test-prompts 直接评分** | 没有 test-prompts 的 dim8 是凭空打分，权重 23% 等于编造 | Phase 0.5 强制设计 2-3 prompts；若用户不给，默认编 3 个并展示确认 |\n| 5 | **轮内改多个维度** | 多变量同时变，分数升降无法归因到具体改动 | 每轮 1 个维度；相关簇（dim2\u002F3\u002F4）改其一时观察另两个是否跟涨 |\n| 6 | **dry_run 比例 > 30%** | dim8 实测维度形同虚设，分数虚高（早期 40 次记录 67% dry_run，0 revert） | 强制至少 1 个真实 full_test；dry_run 多的优化在 results.tsv 显式打 ⚠️ |\n| 7 | **静默跳过异常** | 遇到 git\u002Ftsv 异常时静默继续，破坏 ratchet 完整性 | 异常表 10 条 fallback 必须先告知用户再处理 |\n| 8 | **忽视维度相关性单独优化** | dim2\u002F3\u002F4 是相关簇，单独优化 dim2 时常发现已被前轮 dim3 修复推到顶 | 找最低维度时同时看相关簇短板，决定是否同步改 |\n\n**触发场景**：每轮 Phase 2 改动前对照本表一次。任一反模式命中 → 改方案重写。\n\n---\n\n## 约束规则\n\n1. **不改变skill的核心功能和用途** — 只优化\"怎么写\"和\"怎么执行\"，不改\"做什么\"\n2. **不引入新依赖** — 不添加skill原本没有的scripts或references文件\n3. **每轮只改一个维度** — 避免多个变更导致无法归因\n4. **保持文件大小合理** — 优化后SKILL.md不应超过原始大小的150%\n5. **尊重花叔风格** — 中文为主、简洁为上\n6. **可回滚** — 所有改动在git分支上，用git revert而非reset --hard\n7. **评分独立性** — 效果维度必须用子agent或至少干跑验证，不能在同一上下文里「改完直接评」\n8. **Runtime 中立性** — skill 必须能在 Claude Code、Codex、Cursor、OpenClaw、Hermes 等任何 skills-compatible runtime 中正常运行。除非 skill 名明确绑定单一 runtime（如 `xxx-codex`、`huashu-slides-codex`），任何「在 Claude Code 里」「Claude Code skill」「单一 badge 钉死」「安装命令只给 `.claude\u002Fskills\u002F` 一种路径」都视为 gate 不通过，须在 P0 优先修复（详见「Runtime 适配性审查」章节）\n\n---\n\n## 使用方式\n\n### 全量优化（推荐首次使用）\n```\n用户：\"优化所有skills\"\n→ Phase 0-3 完整流程\n→ 默认：先基线评估，按分数升序优先优化最低 5-10 个\n```\n\n### 单个优化\n```\n用户：\"优化 huashu-slides 这个skill\"\n→ 只对指定skill执行 Phase 0.5-2\n```\n\n### 仅评估不改\n```\n用户：\"评估所有skills的质量\"\n→ 只执行 Phase 0.5-1（设计测试prompt + 基线评估），不进入优化循环\n```\n\n### 查看历史\n```\n用户：\"看看skill优化历史\"\n→ 读取并展示 results.tsv\n```\n\n---\n\n## 设计灵感\n\n> \"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.\"\n> — Karpathy, autoresearch\n\n本skill的对应关系：\n- **program.md** → 本文件（评估rubric和约束规则）\n- **train.py** → 每个SKILL.md\n- **val_bpb** → 9维加权总分（含实测表现 + meta-skill 反例黑名单）\n- **git ratchet** → 只保留有改进的commit\n- **test set** → 每个skill的test-prompts.json\n\n区别：增加了人在回路（autoresearch是全自主的，skill优化需要人的判断力），以及双重评估机制（结构+效果），因为skill的「好坏」比loss数值更微妙。\n\n---\n\n## 成果卡片生成（Result Card）\n\n每个skill优化完成后（或全量汇总后），自动生成视觉成果卡片，截图保存为PNG。\n\n### 卡片模板\n\n模板位置：`templates\u002Fresult-card.html`\n\n3种风格，每次随机选择一种：\n\n| 风格 | CSS类 | URL hash | 视觉特点 |\n|------|--------|----------|---------|\n| Warm Swiss | `.theme-swiss` | `#swiss` | 暖白底+赤陶橙，Inter字体，干净网格 |\n| Dark Terminal | `.theme-terminal` | `#terminal` | 近黑底+荧光绿，等宽字体，扫描线 |\n| Newspaper | `.theme-newspaper` | `#newspaper` | 暖白纸+深红，衬线字体，双栏编辑风 |\n\n### 生成流程\n\n```\n1. 复制 templates\u002Fresult-card.html 到临时工作文件\n2. 用 sed\u002F编辑工具 替换占位数据：\n   - data-field=\"skill-name\" → 实际skill名\n   - data-field=\"score-before\u002Fafter\u002Fdelta\" → 实际分数\n   - 9个维度的 dim-bar-before\u002Fafter width → 实际百分比（若模板仍是旧 8 维布局，加一行 dim9 反例黑名单条目）\n   - data-field=\"improvement-1\u002F2\u002F3\" → 实际改进摘要\n   - data-field=\"date\" → 当前日期\n3. 随机选择风格：hash 设为 swiss\u002Fterminal\u002Fnewspaper 之一\n4. 用 scripts\u002Fscreenshot.mjs 截图（2x 高清，只截 .card 元素，自动 open 图片）：\n   node .claude\u002Fskills\u002Fdarwin-skill\u002Fscripts\u002Fscreenshot.mjs \\\n     \u002Fabs\u002Fpath\u002Fto\u002Fcard.html \u002Fabs\u002Fpath\u002Fto\u002Foutput.png\n   # 回退方案（脚本失败时）：\n   npx playwright screenshot \"file:\u002F\u002F\u002Fpath\u002Fto\u002Fcard.html#[theme]\" \\\n     output.png --viewport-size=960,1280 --wait-for-timeout=2000\n5. 提示用户查看成果卡片 PNG\n\n### 资源文件速查\n\n| 路径 | 用途 |\n|---|---|\n| `templates\u002Fresult-card.html` | 3风格主模板（swiss\u002Fterminal\u002Fnewspaper，hash切换） |\n| `templates\u002Fresult-card-dark.html` \u002F `-white.html` | 单一风格替代模板（需要锁定风格时用） |\n| `scripts\u002Fscreenshot.mjs` | 2x 高清截图，只截 .card，自动 open |\n| `results.tsv` | 历次优化日志（9列含 eval_mode） |\n| `{skill目录}\u002Ftest-prompts.json` | 每个 skill 的测试 prompt 集（用于维度8实测） |\n\n### 何时生成\n\n- **单skill卡片**：每个skill优化完成后，展示该skill的分数变化\n- **总览卡片**：全部优化完成后（Phase 3），展示全局战绩\n\n### 品牌元素\n\n- 顶部：Darwin.skill 品牌标识 + 日期\n- 底部：「Train your Skills like you train your models」+ github.com\u002Falchaincyf\u002Fdarwin-skill\n",{"name":5,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fdarwin-skill",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill darwin-skill",{"tool":71,"command":72},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill darwin-skill",{"tool":74,"command":75},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill darwin-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002FSKILL.md",true,[79,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,179,183,187,191,195,199,203,209,212,216,220,224,227],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"assets\u002Faso-hero.png","ASSET","资产文件",55953,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Faso-hero.png",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"assets\u002Fbanner-check.png",35875,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fbanner-check.png",{"path":90,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":91,"sourceHtmlUrl":92},"assets\u002Fbanner-en-check.png",32420,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fbanner-en-check.png",{"path":94,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":95,"sourceHtmlUrl":96},"assets\u002Fbanner-en.svg",6346,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fbanner-en.svg",{"path":98,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":99,"sourceHtmlUrl":100},"assets\u002Fbanner.svg",5434,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fbanner.svg",{"path":102,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":103,"sourceHtmlUrl":104},"assets\u002Fchart-loop-en.html",7041,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-loop-en.html",{"path":106,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":107,"sourceHtmlUrl":108},"assets\u002Fchart-loop-en.png",23150,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-loop-en.png",{"path":110,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":111,"sourceHtmlUrl":112},"assets\u002Fchart-loop.html",8794,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-loop.html",{"path":114,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":115,"sourceHtmlUrl":116},"assets\u002Fchart-loop.png",25201,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-loop.png",{"path":118,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":119,"sourceHtmlUrl":120},"assets\u002Fchart-phases-en.html",4434,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-phases-en.html",{"path":122,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":123,"sourceHtmlUrl":124},"assets\u002Fchart-phases-en.png",29951,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-phases-en.png",{"path":126,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":127,"sourceHtmlUrl":128},"assets\u002Fchart-phases.html",4444,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-phases.html",{"path":130,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":131,"sourceHtmlUrl":132},"assets\u002Fchart-phases.png",31299,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-phases.png",{"path":134,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":135,"sourceHtmlUrl":136},"assets\u002Fchart-ratchet-en.html",7479,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-ratchet-en.html",{"path":138,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":139,"sourceHtmlUrl":140},"assets\u002Fchart-ratchet-en.png",22201,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-ratchet-en.png",{"path":142,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":143,"sourceHtmlUrl":144},"assets\u002Fchart-ratchet.html",7599,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-ratchet.html",{"path":146,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":147,"sourceHtmlUrl":148},"assets\u002Fchart-ratchet.png",22730,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-ratchet.png",{"path":150,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":151,"sourceHtmlUrl":152},"assets\u002Fchart-rubric-en.html",7902,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-rubric-en.html",{"path":154,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":155,"sourceHtmlUrl":156},"assets\u002Fchart-rubric-en.png",51211,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-rubric-en.png",{"path":158,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":159,"sourceHtmlUrl":160},"assets\u002Fchart-rubric.html",7865,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-rubric.html",{"path":162,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":163,"sourceHtmlUrl":164},"assets\u002Fchart-rubric.png",49229,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fchart-rubric.png",{"path":166,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":167,"sourceHtmlUrl":168},"assets\u002Fhero.gif",2914686,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fhero.gif",{"path":170,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":171,"sourceHtmlUrl":172},"assets\u002Fresult-card-example.png",878511,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fassets\u002Fresult-card-example.png",{"path":174,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":177,"sourceHtmlUrl":178},"docs\u002Findex.html","REFERENCE","参考文档",30396,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fdocs\u002Findex.html",{"path":180,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":181,"sourceHtmlUrl":182},"package-lock.json",1710,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fpackage-lock.json",{"path":184,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":185,"sourceHtmlUrl":186},"package.json",364,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fpackage.json",{"path":188,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":189,"sourceHtmlUrl":190},"README_EN.md",11068,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002FREADME_EN.md",{"path":192,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":193,"sourceHtmlUrl":194},"README.md",10513,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002FREADME.md",{"path":196,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":197,"sourceHtmlUrl":198},"references\u002Fruntime-neutrality.md",4023,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Freferences\u002Fruntime-neutrality.md",{"path":200,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":201,"sourceHtmlUrl":202},"references\u002Fskilllens-evidence.md",6673,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Freferences\u002Fskilllens-evidence.md",{"path":204,"resourceType":205,"resourceTypeDesc":206,"sizeBytes":207,"sourceHtmlUrl":208},"scripts\u002Fscreenshot.mjs","SCRIPT","脚本",2332,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fscripts\u002Fscreenshot.mjs",{"path":210,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":177,"sourceHtmlUrl":211},"showcase.html","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Fshowcase.html",{"path":213,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":214,"sourceHtmlUrl":215},"templates\u002Fresult-card-dark.html",17861,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Ftemplates\u002Fresult-card-dark.html",{"path":217,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":218,"sourceHtmlUrl":219},"templates\u002Fresult-card-white.html",11282,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Ftemplates\u002Fresult-card-white.html",{"path":221,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":222,"sourceHtmlUrl":223},"templates\u002Fresult-card.html",15834,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Ftemplates\u002Fresult-card.html",{"path":225,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":171,"sourceHtmlUrl":226},"templates\u002Fresult-card.png","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Ftemplates\u002Fresult-card.png",{"path":228,"resourceType":175,"resourceTypeDesc":176,"sizeBytes":229,"sourceHtmlUrl":230},"test-prompts.json",1213,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fdarwin-skill\u002Ftest-prompts.json",[232,249,281,306,327,346],{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":241,"publishedAt":50},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[238],{"categoryNo":239,"categoryName":240,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",[242,243,244,245,246,247,248],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":250,"name":251,"nameZh":6,"description":252,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":253,"categories":254,"keywords":261,"publishedAt":50},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[255,256],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":257,"categoryName":258,"taxonomyType":259,"taxonomyTypeDesc":260},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[251,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","code","unknown","generated",{"skillNo":282,"name":283,"nameZh":6,"description":284,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":285,"categories":286,"keywords":291,"publishedAt":50},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[287,288],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":289,"categoryName":290,"taxonomyType":259,"taxonomyTypeDesc":260},"01JBSEEDCAT000000000000036","内容创作者",[283,292,293,294,295,296,297,298,270,299,300,301,40,302,42,303,304,305],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","use","types","Video","创作",{"skillNo":307,"name":308,"nameZh":6,"description":309,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":310,"categories":311,"keywords":313,"publishedAt":50},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[312],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[314,315,283,316,317,304,318,319,320,321,322,323,324,36,268,325,40,302,262,326],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","idempotent","long",{"skillNo":328,"name":329,"nameZh":6,"description":330,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":331,"categories":332,"keywords":337,"publishedAt":50},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[333,334,335,336],{"categoryNo":239,"categoryName":240,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":257,"categoryName":258,"taxonomyType":259,"taxonomyTypeDesc":260},{"categoryNo":289,"categoryName":290,"taxonomyType":259,"taxonomyTypeDesc":260},[338,247,339,340,341,342,278,40,302,343,44,344,345],"writing skills","how","teach","write skill","write","claude code skills","how to","trigger",{"skillNo":347,"name":348,"nameZh":6,"description":349,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":350,"categories":351,"keywords":354,"publishedAt":50},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[352,353],{"categoryNo":239,"categoryName":240,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":289,"categoryName":290,"taxonomyType":259,"taxonomyTypeDesc":260},[355,247,356,266,357,44,40,339,342,302,344],"Rules","writing rules","project rules"]