回访要回答的问题只有一个:09-04 期确认的「编写层真空」,在随后 12 天的新增供给里有没有被填上。
需求端:注册表没动过家具。 本会话注册表里与「测」字沾边的在册件,与 09-04 期盘点相比一件未增:webapp-testing 依旧测网页行为而非代码正确性,verify 与 run 依旧只管「跑起来看」,gh-fix-ci 依旧只管红灯善后,pptx-test 与 encoding-check 依旧守着内容质检的门。编写层在装机端依然零编制。
唯一悬案:还是那两个名字。 全生态可见范围内最接近编写层的两个件——mattpocock/skills 53 件套里的 tdd,与 obra/superpowers 框架里的 test-driven-development、verification-before-completion 子件——09-04 期就因通道未开而只读到名字,今天依旧没读到正文。两个连续多期的「※」背后是个尴尬的事实:测试轨道上最重要的两个样本,本栏至今没有一眼看过正文。
供给端不是没干活,是干到了别处。两期快照里与开发效率沾边的全部新面孔,去向如下:
| 新面孔 | 星数(09-15→09-16) | 去向 | 与测试编写层的距离 |
|---|---|---|---|
| x64dbg-mcp-server | 1962→1976 | 二进制调试 | 隔壁楼:修虫线已档 |
| stop-that-shit | 1989 | 行为刹车,拦无需求改动 | 隔壁楼:审 Agent 不审代码 |
| terminal-code | 1997 | 终端里的编辑器 | 非件,工具本体 |
| shadcn-ui/lint | —→1870 | 设计系统门卫 | 已让渡兄弟栏目 |
| ai-data-extractor | 797→825 | AI 编程会话考古 | 已让渡兄弟栏目 |
| appllama-skills | —→1816 | 爆款模式造码件 | 上游:帮写不帮测 |
| rune | 526→713 | 开发环境 | 远亲 |
| ffmpeg-skill | —→1074 | 媒体处理,描述空缺※ | 无关 |
| 测试编写件 | 0 条 | — | 本轮主角,仍无人认领 |
这张表是本文最硬的一块证据:星积攒得最凶的开发向新货,全部挤在「帮 Claude 写」「给 Claude 立规矩」「替 Claude 记账」三个方向,没有一个愿意站进编写层。
09-04 期给过三个假设:知识冗余(pytest 语法在模型基线里)、知识本地化(测试规范是仓库私产)、成果不可展示(没发生的 bug 换不来星)。12 天过去,三个假设全部经住了复检,但回访补上了第四块拼图——编写层的地盘不是没人要,是被合法瓜分完了。把今天测试轨道上的工位摊开看:
flowchart TD
A["纪律层 tdd※"] --> B["编写层:空"]
B --> C["执行层 hooks 与 CI"]
C --> D["观察层 verify 与 run"]
C -->|红灯| E["下游 gh-fix-ci"]
F["webapp-testing 网页特例"] -.-> B
F -.-> C
上游,写什么测试由仓库 CLAUDE.md 里的私产约定说了算;纪律,superpowers 的反合理化表和 tdd 的红绿循环把「不许跳过」钉死;执行,update-config 的描述原文写明 hooks 归 harness 而非模型("the harness executes these, not Claude");观察,verify 收编了手动测试并自报工位——「before passing to human review」;下游,红灯善后划归 gh-fix-ci;网页行为的特例座位,09-10 期闭环横评发给了 webapp-testing(测试关 4.00 分)。六个方向各有一主,编写层剩下的全部地盘,只有两条窄缝:学本仓库的方言(fixture 怎么搭、命名跟谁走)和堵模型的借口(跳过测试是模型的系统性行为倾向,不是偶发失误)。
这两条缝有个共同的商业缺陷:都产生不了可录屏的 demo。修虫六件那期结过一次账——高频刚需正在从社区回流出厂,社区机会只剩 notebook-fix 这样的窄缝。编写层比那更冷:notebook-fix 至少独占「notebook 崩了」这个触发词,而编写层的触发词被 hooks、CLAUDE.md、tdd 三家摊薄,剩不下一个可以独占的词。09-14 期说「下一个生态机会,可能就埋在这间空屋里」,回访的答案是:机会确实在屋里,但房租收不上来,等不来租客。
等不来市场,就自己搬进去。按 09-04 期的三层握手协议(触发层、正文层、钩子层),造一件项目级测试编写件。以下是设计稿,未在真实仓库实测,动手前请先小范围试。
name: test-writer
description: 为本仓库补写单元测试与回归用例。TRIGGER:要求补测试、
加用例、覆盖边界、加回归防护,或指出某段代码没有测试。
SKIP:运行测试归 hooks 与 CI;修红灯归 gh-fix-ci;网页端到端
验证归 webapp-testing;找 bug 归 code-review。本件只写不改,
不修改任何产品代码。
# test-writer
## 第一步:先学本仓库的方言
写用例前先读 2~3 个既有测试文件,抄三样:命名风格、断言库、
fixture 搭法。仓库没有测试时按 CLAUDE.md 约定;也没写,先问再动手。
## 第二步:每函数 ≤3 用例起步
正常路径 1 条、边界 1 条、异常 1 条。先写到失败,粘贴失败输出
作为证据,再补最小实现或修用例。覆盖率只报数字,不许诺指标。
## 第三步:证据流水线
每个用例必须留下「运行过」的证据:粘贴命令与输出摘要。
写完不敢跑的测试等于没写。
## 反合理化表
| 借口 | 反驳 |
|---|---|
| 函数太简单不用测 | 简单函数的用例也只多三行,写它 |
| 环境跑不起来 | 标记 skip 并注明原因,不许默默跳过 |
| 改动很小不需要回归 | 回归用例就是为小改动生的 |
## 交接
写完交 hooks 跑;红灯交 gh-fix-ci;绿灯交 verify 验收。
设计上有三处直接继承了本栏已档的写法:门牌用「触发-跳过对」加负面清单(查文档层首拆提炼的模式),把四个相邻工位一一推出去,一件的描述同时替五件当了路由器;正文把纪律 checkable 化(粘贴输出作证据),抄的是 superpowers 反合理化表的思路;交接条款把执行权还给 hooks,不越 09-04 期画的那条「编写件不碰执行」的线。它的工作流:
flowchart TD
U["用户说 补个用例"] --> J{"判断意图"}
J -->|写用例| T["test-writer 三步纪律"]
J -->|跑一下| H["推出门 hooks 与 CI"]
J -->|修红灯| G["推出门 gh-fix-ci"]
J -->|网页行为| W["推出门 webapp-testing"]
J -->|找 bug| R["推出门 code-review"]
T --> V["证据流水线 粘贴输出"]
V --> E["交接 verify 验收"]
权重沿用本栏固定口径(功能 25%、设计 25%、实战 20%、上手 15%、社区 15%),前五件分数直接沿用 09-04 期口径——12 天里没有任何一件发布过新版本信息,本期不复核细节、只复核工位变动:
| 件 | 工位 | 09-04 期分 | 本期复核 | 变动说明 |
|---|---|---|---|---|
| webapp-testing | 网页 E2E 特例 | ★★★★☆(4.7) | 4.7,叙事分上升 | 09-10 闭环横评发给它测试关座席 |
| verification-before-completion※ | 防跳过纪律 | ★★★★☆(4.6) | 4.6,仍未核验正文 | 连续两期通道未开,悬案依旧 |
| verify(出厂) | 行为验收 | ★★★★(4.35) | 4.35 | 修虫期确认其在流水线的验收位 |
| gh-fix-ci | 红灯善后 | ★★★☆☆(3.9) | 3.9 | 修虫期主拆过,定位未变 |
| tdd※ | 纪律孤本 | ★★★☆☆(3.9) | 3.9,仍未核验正文 | 同上 |
| test-writer(本文样板) | 编写层 | 不计分 | 设计稿 | 未实测,不给星 |
评分说明:带※者为黑箱估分,正文未读;test-writer 是本文产出的设计稿,自产自评没有意义,只给骨架供批判。
# 唯一在册的纪律件套件(09-04 口径,tdd 正文仍未核验※)
npx skills add mattpocock/skills
# superpowers 框架(含 test-driven-development 与
# verification-before-completion 子件)
/plugin install superpowers@claude-plugins-official
# 官方示例合集(webapp-testing 所在仓库)
npx skills add anthropics/skills
# 本文样板件(设计稿)
mkdir -p ~/.claude/skills/test-writer
# 将第四节 SKILL.md 内容存为该目录下 SKILL.md,重开会话生效
装完样板件,用十分钟做三个验收动作:其一,挑一个有小函数的真实仓库,说「给这个补个用例」,看它是否先读既有测试再动笔;其二,说「跑一下测试」,看它是否按门牌约定把你推出门交给 hooks,而不是自己抢活;其三,检查产出的每个用例有没有附命令与输出摘要——没有证据的用例,按它自己的第三步就是不合格品。三条全过,样板才算从设计稿转正。
回访的结论可以压成一句:这间空屋等不来租客,是因为能当砖用的材料——约定、纪律、执行、观察、善后——早已各归其主,剩下的窄缝又恰好是星换不走的那类活。对使用者,别等了:CLAUDE.md 写约定、hooks 管执行、样板件管编写,三件拼起来今天就能用。对写件的人,编写层确实还空着,但入场券不是 pytest 知识,是纪律与握手——09-04 期画的协议,本文补了一间样板房,能不能住人,等你实测。
[!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 等场景全覆盖。
