本栏 Skills 生态定期观察,第 3 轮,开发者效率横评。今晨考勤簿文末留了句话:下一波的施工题已经出好,整版挂在 HN 首页。本期把那三道题正式开考:逐题从九月存档里点将,按证据阶梯判卷,给空位出规格草案。判卷结果一句话:说不清的失败题,全生态白卷——证据阶梯 E0 到 E5 六层每层都有人站,唯独「只在生产、无法复现、间歇出现」的考题落在层与层的缝隙里;解耦题半卷——重构赛道三条路线管的全是代码内部的楼层,没一件管代码与平台的插座;集成测试题大半卷——官方件管开车,社区仿真器管假机场,「合并后自证」的考场还是空地。
| 考卷(HN 印刷值) | 对应闸口 | 存档最佳应考者(存档分) | 判卷 |
|---|---|---|---|
| The Normalization of Inexplicable Failures(246 分) | 调试 | systematic-debugging(4.10,09-20 期) | 白卷 |
| Don't couple your Go code to GitHub(145 分) | 重构 | simplify(4.80,09-05 期) | 半卷 |
| Fakecloud: Local AWS cloud emulator for integration tests(110 分) | 测试 | webapp-testing(4.7,09-19 期) | 大半卷 |
三道题的分数排序和闸口的拥挤程度恰好倒挂:调试闸是存档里横评次数最多的赛道(09-06 七件、09-16 六件、09-20 证据对账三场),应考者名单最长,交出的却是白卷;测试闸空了十三天,反而因为官方件和一条 HN 新货凑出大半卷。应考人数和卷面分数无关,决定分数的是考题落在谁的操作定义之内。
HN 标题层信号:The Normalization of Inexplicable Failures——「说不清的失败正在被正常化」。翻译成调试闸的考题:一个 bug 只在生产出现、间歇出现、本地复现不出来,谁接?
09-20 期《x64dbg 毕业》给调试赛道立过一座证据阶梯,本期逐层点名应考情况:
E0 方法论层:systematic-debugging,弃考。 superpowers 框架的方法论子件,装机 177.6K(07-08 存档口径),调试赛道无人接近;宿主 obra/superpowers 今日热榜印刷 292,190 星。它的流程纪律是复现、假设、验证、缩小、修复、再验证,并明确禁止反复猜测乱改。09-20 期的判词本期原文转引:当 bug 玄到复现不出来,方法论给不出它承诺的东西——E0 的天花板是「思路不歪」,不是「真相到手」。 考卷一的第一句话就是「复现不出来」,它在第一行就交了白卷——不是它不好,是考题在它边界之外。
E1 自造证据层:tdd,立场性弃考。 mattpocock/skills 53 件套的纪律件,装机 722.0K(skills.sh 08-28 口径),全开发者效率赛道的装机天花板。红绿循环的本质是让证据在写代码时就存在——但对「已经发生、尚未归因」的失败,它没有产线可进。正文至今无人核验(09-17 复核口径),存档分 3.9 ※。
E3 平台日志层:gh-fix-ci,窗口性弃考。 3.9(09-16 口径)。CI 红灯是触发信号最强的场景,但 09-20 期的判词同样适用:「用户报了个复现不了的线上 bug 时,它两眼一抹黑」——E3 的证据有机器背书,只覆盖提交后的窗口。
E4 生产监控层:sentry 系,最接近应考,弃考在门槛。 3.3(09-16 实装口径),仓库入口 getsentry/skills。线上堆栈、错误聚合、影响面——E4 是「过去发生过」的铁证,这正是考卷一要的那类证据。但 09-20 期的判词是「铁证递到门口,三道门挡住一半人」:要装 SDK、要错误攒到量、聚合之后只剩共性——间歇性失败恰好最容易被聚合抹平。铁证递到了门口,独此一份,可惜是事后印刷品,不是蹲守录像。
E5 内存物证层:x64dbg 与 reverify,条件性弃考。 3.6 与 3.4(09-04 黑箱口径)。断点命中时的寄存器与内存字节是调试里最硬的证据——前提是断点能命中。间歇性失败的根本特征就是停不下来,E5 的探针插不进一次不会发生的执行。
网络物证层:pcap 三件,唯一带蹲守能力的流派,缺的还是那一步。 pcap-generator 4.2、pcap-analyzer 3.9、pcap-modifier 2.9(09-24 期印刷值,09-28 合诊转引)。analyzer 是全家族唯一留运行痕迹的件,「生产网真实排障,手上有一份抓包」是它的第一场景。这一派证明了一件事:无法复现的失败,证据只能靠蹲守,不能靠召唤。 但三件没有一个管「什么时候开抓、抓多久、抓到了怎么和部署差分对齐」——蹲守的战术有人在,蹲守的决策没人做。
判卷:六层阶梯,六个「不在我的操作定义里」。这不是哪一件的失职,是层与层之间的缝隙没有工位——E4 有历史铁证但没有采集决策,E5 有最硬探针但没有命中条件,方法论层干脆把这类失败划成界外。白卷,且是本栏存档里第一张有六个证人签字的白卷。
HN 标题层信号:Don't couple your Go code to GitHub——别把代码和某一家平台焊死。构建、发布、issue 联动如果绑死一家 forge,迁移就是大手术。这是重构闸的考题,而重构闸 09-05 期立过三条路线,本期逐路线对读:
顺手修路线:simplify(4.80,09-05 期),出厂四件里唯一在窗口内发生能力增补的件——描述里新加了 altitude(抽象层级)清理维度。altitude 管的是「代码长在了错误的楼层」:该下沉的内联逻辑、该上浮的决策。这个操作定义对考卷二有个精确的错位:楼层在楼内,插座在墙上。平台耦合不是代码放错了层,是代码和外界的接缝制式选错了——simplify 的输入是 the changed code,一次 diff 装得下的它才管;换 forge 这种横切全库的手术,从输入定义上就不归它。
先访谈再动刀路线:improve-codebase-architecture(4.05 ※,09-05 黑箱口径),mattpocock 套件(09-26 末印 269,860 星,近两日活跃榜缺勤)里 grilling 访谈原语的五个消费者之一。它的「动刀前先问透意图、约束、现状」是三条路线里离解耦评估最近的——耦合度本来就是架构访谈的第一话题。半卷的分它拿到了一半:方法论上最近,操作定义上仍然空缺——存档里没有任何一处写明它会输出「与外部平台的耦合清单」,更没有「换一家 forge 的迁移成本评估」。而且它的节奏是季度性的,simplify 适合每天、它适合每个季度的判词(09-05 期原话)反过来说明:没有一件适合「每次接新平台时」这个频次。
规则编译路线:refactoring-ui-skill(3.78,09-01 实测口径,星轨 459 到 537),把《Refactoring UI》编译成规则集的「书改」标本。它对考卷二的价值是反面教材:09-01 期的批评是「规则若不闭环到改完截图自查,就只是许愿」。照进考卷二:将来 whoever 写解耦件,若没有「换一个 forge 跑一遍」的验收闭环,就是许愿的翻版——这一路线把「怎么验」的教训提前备好了。
上游设计件:whiteboard(4.40 纸面分,09-28 晨档),devdotfast/whiteboard,YC W26 批次,HN 09-25 Show HN 254 分,星数两期 1770 到 1903。上午档把它定位成「重构的上游还有一扇门:动手之前把系统想清楚」。对考卷二它是半张卷的正主:耦合在设计画布上是最容易被看见的——外部依赖画在边界上,换平台的成本一眼可估。但画布不管迁移,设计时看见了不等于代码里解得开。
判卷:半卷。重构赛道全部三条路线加上游设计件,操作对象都是代码内部(楼层、书里的规则、画布上的方块);「代码与平台的插座」在每一条路线的操作定义之外。09-05 期说过 altitude 是「当前所有社区重构件都没写的维度」——本期补一句:比 altitude 更没人写的一整面墙,叫边界。
HN 标题层信号:Fakecloud,本地跑的 AWS 云仿真器,专供集成测试,110 分。上午档已记过一笔:可考信息只有一条标题,仓库、协议、支持哪些服务全部不可考,纸面分按「方向对、证据零」给。本期把它放回应考名单对读:
官方侧两张纸:verify 与 webapp-testing。 verify 3.9(09-16 口径),描述写明 by running the app and observing behavior,自己都承认「跑不起来的项目会卡住」——卡住的那一类正是云依赖项目。webapp-testing 4.7(09-19 专文,测试轨道存档高分),「先侦察再动手」的纪律让它成为 E2 层最稳的一件,但 E2 的定义就是本地、单次、眼见为实。官方把验证终点划在「本地起得来的应用」,云依赖从第一天就在划界之外——这不是失误,是出厂件伸不进用户环境的结构性约束(09-20 期原话:E4、E5 的环境在用户手里,官方件只能留给生态)。
tdd(3.9 ※) 的红绿循环在单测层自洽,对「依赖 S3、队列、数据库这一套云件」的集成考场没有发言权。
Fakecloud 补的正是这段断喉:测试最贵的不是断言,是环境;本地仿真器让「合并后跑一遍」不用烧钱起真云。LocalStack 一辈的先例摆在那里,它的新意不在物种、在时点——AI 写码量上来之后,测试基建的缺口被撑大了(上午档判词)。
判卷:大半卷,但注意卷面构成——开车的人有了(webapp-testing),假机场有了(Fakecloud),把两者编排成「合并后自证」流水线的考场还是没有:什么时候起仿真环境、失败时怎么留证、留下的证据交给谁(考卷一的空位),三步之间没有工位。CI 件只管提交后的红灯,本地预演无人管。大半卷是两张好纸钉在一起的,钉书钉还没有人打。
三道题里最该先补的是考卷一——它分数最高(246 分),且证据阶梯证明每一层都管不了它。综合本栏存档里反复验证过的三条设计律(superpowers 的反合理化表、simplify 的让位句、gh-fix-ci 的裸名教训),空位件的骨架可以直接开出:
name: flaky-evidence
description: >
Use when a bug or failure happens only in production, happens
intermittently, or cannot be reproduced locally. Triggers:
intermittent, flaky, heisenbug, cannot reproduce, 只在生产,
复现不了, 时有时无. Do NOT use for failures you can already
reproduce locally (use systematic-debugging instead).
正文四段,每段对应考卷一的一个失分点:
触发词设计有一条现成的教训要避开:gh-fix-ci 裸名上架导致「CI 黄了但措辞不像 fix-ci」时漏触发。所以 description 里放的是症状词(intermittent、复现不了)而非身份词——用户描述病症时,件要能被叫醒。
flowchart TD
EX["HN 三道考卷<br/>09-28 首页印刷"] --> Q1["考卷一<br/>说不清的失败 246分"]
EX --> Q2["考卷二<br/>解耦 145分"]
EX --> Q3["考卷三<br/>集成测试基建 110分"]
Q1 --> A["systematic-debugging<br/>E0 方法论 4.10"]
Q1 --> B["sentry 系<br/>E4 生产物证 3.3"]
Q1 --> C["pcap-analyzer<br/>网络物证 3.9"]
Q1 --> D["x64dbg 与 reverify<br/>E5 内存物证"]
Q2 --> E["simplify<br/>altitude 清账 4.80"]
Q2 --> F["访谈式架构件<br/>先问后动刀 4.05"]
Q2 --> G["whiteboard<br/>上游设计 4.40"]
Q3 --> H["webapp-testing<br/>官方 E2 4.7"]
Q3 --> I["出厂 verify<br/>E2 3.9"]
Q3 --> J["Fakecloud<br/>云仿真 证据零"]
A --> V1["白卷<br/>缝隙在层与层之间"]
E --> V2["半卷<br/>没人管插座"]
H --> V3["大半卷<br/>考场无人编排"]
| 应考者 | 闸口 | 存档分(场次) | 证据层 | 本题应答 |
|---|---|---|---|---|
| simplify | 重构 | 4.80(09-05) | — | 楼层内清账,插座不归 |
| webapp-testing | 测试 | 4.7(09-19) | E2 | 本地行为可验,云依赖外 |
| whiteboard | 重构上游 | 4.40 纸面(09-28) | — | 设计时可见,迁移不管 |
| pcap-generator | 调试 | 4.2(09-24) | 物证制造 | 备课造包,不接考卷 |
| systematic-debugging | 调试 | 4.10(09-20) | E0 | 复现不了即弃考 |
| improve-codebase-architecture ※ | 重构 | 4.05 ※(09-05) | — | 访谈最近,清单未写 |
| tdd | 测试 | 3.9 ※(09-17) | E1 | 证据前置在单测层 |
| verify | 测试 | 3.9(09-16) | E2 | 自认跑不起来会卡住 |
| gh-fix-ci | 调试 | 3.9(09-16) | E3 | 窗口外最聋 |
| pcap-analyzer | 调试 | 3.9(09-24) | 物证读取 | 有蹲守物证,无采集决策 |
| refactoring-ui-skill | 重构 | 3.78(09-01) | — | 验收缺位的反面教材 |
| x64dbg-mcp-server | 调试 | 3.6(09-04) | E5 | 探针插不进不发生的执行 |
| reverify | 调试 | 3.4(09-04) | E5 裁决 | 同上 |
| sentry 系 | 调试 | 3.3(09-16) | E4 | 铁证事后,聚合抹平间歇 |
| pcap-modifier | 调试 | 2.9(09-24) | 物证改造 | 与本题无关 |
| Fakecloud | 测试 | 无分(证据零) | — | 方向票,仓库不可考 |
# 方法论与全家桶(systematic-debugging、writing-plans 随套件)
npx skills add obra/superpowers
# tdd 与访谈式架构件(grilling 原语所在套件)
npx skills add mattpocock/skills
# 生产物证(sentry 系)
npx skills add getsentry/skills
# 官方测试件(example-skills 内)
git clone https://github.com/anthropics/skills.git
# 网络物证三件套
npx skills add pcap-analyzer
# 上游设计画布
git clone https://github.com/devdotfast/whiteboard
# 内存物证(MCP 形态,需 x64dbg 与支持 MCP 的宿主)
# https://github.com/duty1g/x64dbg-mcp-server
simplify 与 verify 是出厂内置,斜杠唤起(/simplify、/verify),无需安装。Fakecloud 无仓库可考,入坑前先去 HN 条目原文找链接(09-28 晨档提醒原文照抄)。空位件 flaky-evidence 尚不存在,骨架在上一节,谁先写谁先认领。
三道考卷判完,账很清楚:效率四闸的闸口上不缺人,缺的是缝隙上的工位——层与层之间的采集决策、代码与平台之间的边界清单、本地与云端之间的编排钉书钉。九月的横评把每座山头都拆过了,本期把山头之间的谷地量了一遍:三张卷子,一张白卷,两张半卷。上一轮断供期的经验(09-26 期起顺延口径)说货架上的新件还会继续缺;这份白卷就是下一次上新时,最该先到货的三张订单。
[!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 等场景全覆盖。
