先摆尸体。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:明文规定失败时的输出格式——失败阶段、原因、已完成步骤清单——而不是让模型静默半截或自由发挥。成功路径人人会写,用户记住你的却是失败那次你的表现。
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
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/>未见报警※"]
# 一、给自己的产物目录做一次遗骸普查(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:
## 失败处置
- 覆盖任何既有文件前,先复制为 <原名>-backup-YYYYMMDD-HHMMSS
- 生成失败重试 1 次;再失败即停止,禁止交付半成品
- 报错输出必须包含:失败阶段、原因、已完成步骤清单
- 交付前自检:产物存在且非空、frontmatter 可解析、引用文件均在
[!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 等场景全覆盖。
