<!-- title: 零字节遗骸：Skill防呆写作七式 -->

# 零字节遗骸：Skill 防呆写作七式——成功路径人人会写，失败路径无人认领

## 概述

## 一、三具遗骸：本栏目 48 小时的失败化石

先摆尸体。2026-09-07 对 `output/2026-09-06` 与 `output/2026-09-07` 两目录 skills-ecosystem 栏逐件 `wc -c` 清点（口径：仅本栏目；本文所在班次 r8 尚未写入，不计入），结果如下：

| 日期 | 遗骸 | 体积 | 类型 |
|---|---|---|---|
| 09-06 | skills-ecosystem-0728 / r2-0637 / r2-1240 / r3-0732 / r3-1407 / r5-0910 / r6-0243 / r7-1033，共 8 件 | 0 字节 | 无字碑 |
| 09-06 | skills-ecosystem-r4-0823 | 138 字节 | 遗言件（429 限流） |
| 09-07 | skills-ecosystem-r6-0301、r7-0217 | 0 字节 | 无字碑 |
| 09-07 | skills-ecosystem-r5-0054 | 202 字节 | 遗言件（1301 审查拦截） |

两日共 29 个已出生班次，12 具遗骸，淘汰率约 41%。更扎眼的是时序：**本文的前三个班次全军覆没**——r5 留下 202 字节遗言，r6、r7 是两块零字节无字碑。清点时本文槽位同样是一个零字节文件，写作即是在与同一组失败模式赛跑。

产线上游并非没有防备。拆自家产线一期审计过这条线的活代码：watchdog 看门狗、master 调度循环、task_runner 单任务 CI 全部在册，Published 计数照日累加（09-03 为 175、09-04 为 221、09-05 为 165）。但 12 具遗骸证明：**检测口径没有覆盖「文件非空」这一条**※——看门狗盯的是「有没有产出」，不盯「产出是不是尸体」。检测器的粒度错配，是比没有检测器更常见的失败源。

市场端同病。描述可以不写：本期快照里 `anthropics/fermats-last-theorem`（843 星）与 `elayadesign/ai-design-skills`（1939 星）均为无描述条目，照样上榜——路由层裸奔有豁免证，触发词批改课早已裁定。但失败预案不写的件，不会死在路由里，会死在运行时的第一次事故里。**SKILL.md 的作者们为成功路径挥霍笔墨，为失败路径一字不置**——这是比「描述写不好」更普遍、也更少被讨论的写作欠账。

## 二、评测对比表

标本全部来自已逐行核验的存档，五维加权分照印存档值、本期不复议（惯例同文件树一期）；「防呆评级」为本期新增口径，依据存档可引的防呆句式数量与覆盖阶段评定，凡属推断标注※。

| 标本 | 存档加权分 | 存档可见防呆句式 | 覆盖阶段 | 防呆评级 |
|---|:---:|---|:---:|:---:|
| baoyu-infographic | 4.4（图表期） | 数据 verbatim、备份改名、重试一次、合并提问 | 事中+恢复 | ★★★★★ |
| skill-creator（官方母文） | 4.60（09-01 存档） | 契约字段钉死、自带 quick_validate | 事中+事后 | ★★★★★ |
| chart-craft-plus | 4.6（图表期） | 语义化配色查表、图例必备、清单置换 | 事前 | ★★★★ |
| text-logic-diagram | 4.0（图表期） | 中文字宽公式、viewBox 定死 | 事前 | ★★★★ |
| chart-craft | 3.8（图表期） | 不用 Canvas/JS、三问上限、默认选项 | 事前+事中 | ★★★★ |
| mermaid-generator | 3.8（图表期） | 3-7 法则、15 节点拆分阈值 | 事前 | ★★★★ |
| webapp-testing | 未印分（浏览器期） | 唯一会说不、唯一管收尾 | 事后 | ★★★★ |
| pptx-test | 3.43（PPT 下半场） | 只验不造的专职姿态 | 事后 | ★★★ |
| 本产线 watchdog 一族 | — | 看门狗在册、零字节未报警※ | 名义事后 | ☆ |

> 脚注：防呆评级只数「写进文本、可被引用的预防句」，不估功能；金句密度最高的 baoyu-infographic 四条军规全在防同一件事——模型的好心。

## 三、防呆写作七式

### 式一：公式防呆——把事故翻译成算术

text-logic-diagram 的这条是全生态我最愿意逐字抄的句子：「中文字符宽度约为英文 2 倍，节点宽度按 14px × 字数 × 0.7 估算」。它针对的失败模式人人见过——SVG 里中文溢出边框——但绝大多数作者只写「注意文字不要溢出」，等于没写。mermaid-generator 同法：「每个 subgraph 3-7 个节点」「节点数 > 15 就拆成主流程 + 子流程」。**可执行的不是警告，是数字**：把已知事故翻译成一个公式或一个阈值，模型才有东西可查。写作检验法很简单——你那条预防句里若没有一个数字，它大概率防不了任何事。

### 式二：路线禁入——由事故倒推技术选型

chart-craft 的骨架句：「用 HTML + CSS 布局，不用 Canvas 和 JS。确保截图时清晰锐利，打印友好」。前半句是选型，后半句是为什么——它把「让模型手算像素坐标必然翻车」这个已知事故，写成了一句技术禁令。禁令式写作的最小有效单位就是这两截：「不用 X」加「因为 Y」。只禁不给理由，模型在边界场景会自作聪明绕回去；只给理由不禁止，等于把决策权留给了概率。

### 式三：原文钉死——最贵的事故是好心的二次创作

baoyu-infographic 的全场独有军规：「Preserve all source data verbatim—no summarization or rephrasing」——信息图的第一事故是数据被模型好心改写，它明文禁止。官方母文同法：grading.json 的字段名钉死为 `text / passed / evidence`，原文特意说「the viewer depends on these exact field names」。两句防的是同一类灾：**模型把「优化」的本能用在不该优化的地方**。数据要 verbatim，契约要逐字——凡下游有依赖的字段，都要在文本里给它一副镣铐。

### 式四：交互预算——提问也会翻车

chart-craft 收集内容环节的纪律：「一次不超过 3 个问题」「给默认选项供选择」；baoyu-infographic 更狠：「Do NOT split into separate AskUserQuestion calls」，版式/画幅/语言一次问完，另配 12 组推荐组合降低选择成本。失败模式很具体：问题拆散了问，用户在第四问时已经失去耐心；不给默认项，用户在空输入框前流失。**提问是 Skill 的人机接口，接口也要防呆**——问题数设上限，每问带默认，能合并的绝不拆分。

### 式五：自带裁判——验证先于信任

母文 19 文件树里唯一留下执行痕迹的是 quick_validate.py——`__pycache__` 躺着 CPython 3.13 与 3.9 两代编译产物，这个教人写 Skill 的件，自己的体检脚本真在两代解释器下跑过。webapp-testing 是另一个方向的同义词：浏览器四层里唯一会说不、唯一管收尾的一层。写作落点是那一行命令的差距：**你发布的每个 Skill 都该配一个一键自检**——SKILL.md 存在、frontmatter 可解析、引用的文件都在。有裁判的件，失败在出厂前死；没裁判的件，失败在用户面前死。

### 式六：覆盖先备份——回滚真空里的唯一后悔药

baoyu-infographic 的备份军规：「任何要覆盖的文件先改名 `*-backup-YYYYMMDD-HHMMSS`」，外加「失败自动重试一次」的有界重试。回滚真空一期量过：全链路所有件都朝前走，把系统撤回已知好状态的回滚件生态里一件都没有。在那样的世界里，**你写进 SKILL.md 的那一行改名规则，就是用户唯一的后悔药**。可逆性不写进文本，就等于宣布每次覆盖都是最终裁决。

### 式七：失败留痕——给失败规定遗言的格式

本期 12 具遗骸的正反教材已摆完：无字碑什么都没留下，只有文件名证明它存在过；平台的遗言件反而自带编号与行动建议。写作迁移两条。给产线：检测器要盯「产物的大小」而不只是「产物的有无」，`find -size 0` 应当进看门狗※。给 SKILL.md：明文规定失败时的输出格式——失败阶段、原因、已完成步骤清单——而不是让模型静默半截或自由发挥。**成功路径人人会写，用户记住你的却是失败那次你的表现**。

## 四、七式全景与遗骸路径

```mermaid
flowchart TD
    ROOT["SKILL.md 防呆写作七式"]
    ROOT --> E1
    ROOT --> E2
    ROOT --> E3
    ROOT --> E4
    ROOT --> E5
    ROOT --> E6
    ROOT --> E7
    subgraph S1["事前预防"]
        E1["式一 公式防呆"]
        E2["式二 路线禁入"]
    end
    subgraph S2["事中约束"]
        E3["式三 原文钉死"]
        E4["式四 交互预算"]
    end
    subgraph S3["事后检测"]
        E5["式五 自带裁判"]
    end
    subgraph S4["恢复善后"]
        E6["式六 覆盖先备份"]
        E7["式七 失败留痕"]
    end
```

```mermaid
flowchart LR
    M["master 调度循环"] --> T["task_runner 建档<br/>轮次加时间戳"]
    T --> G["正文生成请求"]
    G --> OK["全文落盘<br/>17 班合格"]
    G --> R["429 限流<br/>遗言件 138 字节"]
    G --> S["1301 审查拦截<br/>遗言件 202 字节"]
    G --> Z["进程早夭<br/>零字节 10 班"]
    OK --> PUB["进入同步发布"]
    Z --> W["watchdog 在册<br/>未见报警※"]
```

## 五、可复制的三段防呆

```bash
# 一、给自己的产物目录做一次遗骸普查（0 字节无字碑）
find . -type f -size 0 -name "*.md"

# 二、顺带体检体积异常的断简（小于 1KB 的文章都可疑）
find ./output -type f -size -1k -name "*.md"

# 三、取得官方母文的 quick_validate.py 体检脚本
git clone --depth 1 https://github.com/anthropics/skills
# scripts/quick_validate.py，用法见仓库内 skill-creator 目录
```

第四段最短也最值钱，直接粘进你自己的 SKILL.md：

```markdown
## 失败处置
- 覆盖任何既有文件前，先复制为 <原名>-backup-YYYYMMDD-HHMMSS
- 生成失败重试 1 次；再失败即停止，禁止交付半成品
- 报错输出必须包含：失败阶段、原因、已完成步骤清单
- 交付前自检：产物存在且非空、frontmatter 可解析、引用文件均在
```

## 推荐排行榜

- **最值得抄的一式**：式一 公式防呆——成本一个数字，消灭一整类事故；全生态性价比最高的一行字。
- **最反直觉的一式**：式六 覆盖先备份——生态级回滚件为零的前提下，你写的那行改名规则就是用户唯一的后悔药。
- **最易被忽略的一式**：式七 失败留痕——人人描述成功，没人给失败规定格式；平台的 1302 遗言（编号+类别+建议）是现成的范文。
- **防呆密度冠军**：baoyu-infographic（4.4）——四条军规全在防「模型的好心」，verbatim 一条值得刻进每个数据处理件的扉页。
- **本期反面教材**：本产线自己的看门狗——检测器盯「有产出」不盯「产出非空」，12 具遗骸就是它的盲区清单※。
- **本期方法论遗产**：失败不是反例，是数据集。生态观察的下半场，是普查遗骸——榜单告诉你谁在涨，遗骸告诉你大家死在哪。

## 参考来源

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
