本期是 Skills 生态系列第 3 轮,做开发者效率类横向评测。8 月 28 日的上半场拆了 tw93/check(审查纪律)与 browser-testing-with-devtools(测试可视化),本期补上另一半:调试、审查、设计三个环节,全部选自当前生态统治级套件 mattpocock/skills——diagnosing-bugs(498.4K 安装,总榜第 61)、code-review(439.6K,第 73)、codebase-design(506.0K,第 59)。三者此前均未被深拆过。核心发现:这套 Skill 的共同哲学不是教模型技巧,而是把资深工程师的「纪律」编译成一个个带完成判据的检查点——反馈回路必须能变红、假设必须可证伪、双轴结论不许合并排名。本期基于三个 Skill 的仓库原文逐段讲解(数据抓取于 2026-08-30)。
Matt Pocock(Total TypeScript 创始人)在仓库 README 里把他的 Skill 套件锚定在四个常见失败模式上,本期的三个主角恰好占满其中两格:
/tdd 和 /diagnosing-bugs(tdd 已在此前「72万安装tdd」一文拆过,本期不重复)/improve-codebase-architecture(已有专文)和 codebase-design(本期首拆)README 引 Ousterhout《A Philosophy of Software Design》的话给这一格定调:「最好的模块是深的——大量功能藏在简单接口后面」,并引 Kent Beck:「每一天都投资于系统的设计」。这不是情怀引用,而是直接进了 Skill 正文的设计词汇。
榜单位置上(skills.sh 全时段榜,8 月 30 日抓取):这三个 Skill 单看排名在 59–73 位,属于「腰部」,但它们背后的仓库在总榜前 12 名里占了 8 席,安装总量 2.8M+。换句话说,这是被头部光环挡住的执行层:grill 系列负责对齐需求,而本期三件套负责对齐之后把活干对。
| Skill | 功能完整度(25%) | 设计质量(25%) | 实战效果(20%) | 上手难度(15%) | 社区活跃度(15%) | 加权 |
|---|---|---|---|---|---|---|
| diagnosing-bugs | ★★★★★ | ★★★★★ | ★★★★★ | ★★★★ | ★★★★ | 4.7 |
| code-review | ★★★★ | ★★★★★ | ★★★★ | ★★★ | ★★★★ | 4.1 |
| codebase-design(初评) | ★★★★ | ★★★★ | ★★★★ | ★★★★ | ★★★★ | 4.0 |
codebase-design 标注「初评」:本期抓到了它的目录结构(SKILL.md、DEEPENING.md、DESIGN-IT-TWICE.md、agents/ 子目录)与套件文档描述,未取到 SKILL.md 全文,评分按仓库结构与套件交叉印证推断,置信度低于前两个。
这是本期含金量最高的一个。它的 frontmatter 只有寥寥数行,但 description 是触发词设计的范本:
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.
注意它没有写「帮助调试代码的工具」这种能力描述,而是把用户真实会说的话直接写进触发条件——"debug this"、broken、throwing、failing、slow 五个口语词。model-invoked Skill 的触发靠 description 与当前任务的语义匹配,把触发词写成用户口吻,比写成功能说明书命中率高得多。
正文第一个章节不是任何调试步骤,而是安全前置:所有命令输出、抓包工件先脱敏,密钥位置写 <REDACTED>,回路建立在环境变量上而不是展示内容里,抓包文件里的认证头只引用有信号的那几行。把「脱敏」放在 Phase 1 之前,等于宣告:排障过程中模型会大量展示系统内部信息,这是泄露高发区。这一点绝大多数调试类 Skill 根本没意识到。
正文原话毫不掩饰倾斜:
This is the skill. Everything else is mechanical. If you have a tight pass/fail signal for the bug — one that goes red on this bug — you will find the cause... If you don't have one, no amount of staring at code will save you.
接下来是全篇最实用的部分:十种构建反馈回路的手段,按优先级排好序——失败测试 → curl 脚本 → CLI 固件差分 → 无头浏览器 → 回放捕获的 trace → 一次性 harness → 属性/fuzz 循环 → 二分 harness → 新旧版本差分 → 最后手段 HITL bash 脚本。模型最容易犯的错是在前三种都可用时直接跳去读代码,这张有序清单等于把「试什么、按什么顺序试」预编译好了。
然后是三个进阶规则,每个都直击实战痛点:
Phase 1 的完成判据写得像验收标准:你必须能说出一条命令——且已经跑过至少一次——它满足红能力(能抓到这个特定 bug)、确定性、秒级、可无人值守四条。最狠的是这句反拖延条款:
If you catch yourself reading code to build a theory before this command exists, stop — jumping straight to a hypothesis is the exact failure this skill prevents.
Phase 2 要求把复现场景削减到「每个残留元素都是承重的(load-bearing)」——删掉任何一个回路就变绿为止。Phase 3 是反锚定设计:测试任何假设之前先产出 3–5 条排过序的可证伪假设,每条必须带预测格式「如果 X 是原因,那么做 Y 会让 bug 消失/恶化」,写不出预测的假设「是一种 vibe,丢弃或打磨它」。排序结果先给用户过目——用户一句「我们刚改了 #3 的部署」能瞬间重排,这是「廉价检查点、大额时间节省」,且用户不在线就继续、不阻塞。
Phase 4 的工具偏好排序是「一个断点胜过十条日志」,明令禁止「全量打日志再 grep」;每条调试日志必须带唯一前缀如 [DEBUG-a4f2],收尾时一个 grep 全部清除——「不带标签的日志活下来,带标签的死掉」。性能问题单独分岔:先建基线测量再二分,「先测量,后修复」,因为性能回归靠看日志通常是错的。
Phase 5 有个高级设计:回归测试要先写,但只在存在「正确的缝」时——即测试能在真实调用点复现 bug 模式的位置。如果唯一可用的缝太浅(单调用者测试复现不了多调用者链),在那里写回归测试只会带来虚假信心。而「如果正确的缝不存在,这本身就是发现」——是代码库架构在阻止 bug 被锁定,记下来交给下一步。Phase 6 的收尾清单里最有传承意识的一条:把被证实的正确假设写进 commit/PR message,「让下一个调试的人学到」。若复盘答案是架构问题,则在修复落定之后移交给 /improve-codebase-architecture——顺序不能反,因为此时你比开工时信息多得多。
短板也要说:六阶段对小 bug 显得重(开场留了「仅在明确说明理由时跳过阶段」的活口);HITL 回路引用的 scripts/hitl-loop.template.sh 模板依赖套件配套文件,单独摘装会缺件;全文无中文。
同仓库的 code-review(439.6K)回答另一个问题:审查一段 diff 时,「写得规不规范」和「做没做对事」是两回事。它的解法是把两轴拆成两个并行子代理,各自报告、并排呈现:
Both axes run as parallel sub-agents so they don't pollute each other's context... A change can pass one axis and fail the other.
三个值得抄的工程细节:
其一,失败前移。 第一步钉住对比基点后,立刻用 git rev-parse 验证引用可解析、diff 非空——「坏的引用或空 diff 应该在这里失败,而不是在两个并行子代理里」。多代理架构里,前置校验是省 token 的第一道闸。
其二,规范基线的优先级规则。 Standards 轴 = 仓库自带的编码规范 + 一套固定的 Fowler 代码异味基线(《Refactoring》第 3 章的 12 条:Mysterious Name、Duplicated Code、Feature Envy、Data Clumps、Primitive Obsession 等),并用两条规则捆住它:仓库规范永远覆盖基线(仓库认可的写法,基线闭嘴);基线永远是判断题不是违规题(只能说「可能的 Feature Envy」,不能说「违反」);工具已经强制的(linter、类型检查)一律跳过。这三条把「AI 审查满嘴车轱辘话」的老问题按死在了提示词层。
其三,子代理提示词自包含。 因子代理看不到主上下文,异味基线必须全文粘贴进 Standards 子代理的提示词——「子代理没有其他途径拿到它」;两份报告都限 400 词以内。汇总时明令不许合并、不许跨轴排名:「不要选出一个跨轴总冠军——那正是这次分离要阻止的重排」。Spec 轴找不到规格就明说「no spec available」,不硬编。
短板:它强依赖套件的 setup-matt-pocock-skills 配置(issue tracker 文档缺失时会被要求先跑配置),单独安装体验打折;没有严重度分级,输出全靠读者自行排序。
codebase-design 是三者中最抽象的:README 给它的定位是「设计深模块的共享纪律与词汇:小接口后面藏大量行为,落在干净的缝上,可穿过接口测试」。从目录结构看,它比一般 Skill 多了两个专题文件——DEEPENING.md(深挖模块)与 DESIGN-IT-TWICE.md(同一问题设计两套方案再挑),外加一个 agents/ 子目录。「design it twice」正是 Ousterhout 书中的经典练习:强制并行生成两条真正不同的路线,避免第一条思路锚定。我们此前拆解 improve-codebase-architecture 时已观察到它的咬合方式:架构审查 Skill 选中候选后,深挖阶段会调用 codebase-design 的这套纪律与并行子代理。按套件的调用铁律(user-invoked 可调 model-invoked,反之不行),它是典型的被上层 Skill 复用的纪律层——单独装有用,装在套件里才发挥全部威力。等它独立登上热榜或仓库文档进一步公开后值得补一次全文拆。
flowchart TD
A["用户: debug this / 报错 / 变慢"] --> R["Redact 前置脱敏<br/>密钥→REDACTED 凭证走环境变量"]
R --> P1["Phase 1 反馈回路(本体)<br/>十种回路按序尝试并收紧<br/>快/信号锐/确定性"]
P1 --> C1{"一条已跑通的命令<br/>能对准症状变红?"}
C1 -- 否 --> STOP["停下索要环境或工件<br/>禁止无回路空想假设"]
C1 -- 是 --> P2["Phase 2 复现+最小化<br/>删到每个元素都承重"]
P2 --> P3["Phase 3 先出3-5条可证伪假设<br/>排序给用户过目再测"]
P3 --> P4["Phase 4 单变量探针<br/>日志带 DEBUG-xxxx 前缀"]
P4 --> P5["Phase 5 先写回归测试再修<br/>无正确的缝=架构发现"]
P5 --> P6["Phase 6 清理+复盘<br/>正确假设写进 commit<br/>架构病灶移交架构审查"]
# 方式一:Claude Code 官方插件市场(托管更新,推荐)
claude plugins install mattpocock-skills
# 方式二:skills.sh 安装器(文件落盘可自行修改,Codex 等其他 Agent 也适用)
npx skills@latest add mattpocock/skills
# 装完每个仓库跑一次(code-review 依赖它生成的 issue tracker 配置)
# 在会话中执行:/setup-matt-pocock-skills
注意:插件方式与 skills.sh 方式二选一,两者都装会导致每个 Skill 出现两份。
把三个 Skill 放回一张桌子上看,主线异常清晰:它们卖的不是技巧,是纪律的编译产物。diagnosing-bugs 把「先建反馈回路再谈假设」写成带验收标准的闸门;code-review 把「规范与需求分开评、结论不许互相稀释」写成双子代理架构;codebase-design 把 Ousterhout 的模块设计观做成可复用词汇层。共同的技术手法有三个——每个阶段配完成判据(completion criterion)、关键结论先给用户过目的廉价检查点、以及无处不在的反上下文污染工程(子代理隔离、字数上限、日志前缀、禁止跨轴合并)。对想写自己 Skill 的人,本期可带走的一句话是:把你所在领域的「老师傅口头禅」翻译成可验证的完成判据,你的 Skill 就有了骨架。
[!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 等场景全覆盖。
