Hotdry.

Article

从 .claude 目录走出的实战技能:mattpocock/skills 工程师工作流解析

深入解析 mattpocock/skills 项目中的实战工程师技能集,涵盖诊断调试、TDD 循环、代码审查等可复用的 AI 辅助工作流,提供可落地的参数配置与实施要点。

2026-04-28ai-systems

在 AI 辅助编程工具日益普及的今天,如何让 Claude Code、Codex 等代理工具真正成为可靠的工程伙伴,而不是制造技术债务的「 vibe coding 」机器?Matt Pocock 在其开源项目 mattpocock/skills 中给出了一种系统化的答案 —— 将数十年软件工程经验封装为可组合的技能集,让每一次人机协作都建立在扎实的工程基础之上。

问题的本质:AI 代理的四大失效模式

Matt Pocock 在项目的 README 中开篇明义地指出了 AI 编程代理最常见的四类失效场景。这些问题并非模型能力不足,而是人机协作流程中的结构性缺陷。第一类失效是「代理没有做我想做的事」—— 需求对齐出现偏差,AI 产出与开发者预期大相径庭。第二类是「代理过于冗长」—— 沟通成本居高不下,token 消耗严重。第三类是「代码根本跑不起来」—— 缺乏有效的反馈循环,代理在黑暗中摸索。第四类最致命的是「我们造了一座泥球」—— 代码复杂度失控,系统快速腐化。

针对这四类问题,mattpocock/skills 并没有试图用更强大的提示词去「贿赂」模型,而是将工程 fundamentals 重新引入 AI 工作流。每一个技能都是一个经过实践检验的工程实践的精简实现,可以与任意模型配合使用。这种设计理念贯穿了整个技能库 —— 小而精、易于适配、可自由组合。

核心工程技能详解

diagnose:结构化诊断循环

诊断技能是整个库中最具工程厚度的部分。它将传统调试过程封装为一个 disciplined diagnosis loop,包含六个严格有序的阶段:复现(reproduce)、最小化(minimise)、假设(hypothesise)、instrument(插桩)、修复(fix)、回归测试(regression-test)。这个六步循环并非临时起意的试错,而是一种可重复的、系统化的故障分析方法。

在实际使用中,当开发者触发 diagnose 技能时,代理会首先要求提供可复现的 bug 场景。一旦复现成功,接下来不是立即修改代码,而是尝试将问题最小化 —— 剥离无关因素,找到触发 bug 的最小代码片段。这种方法与传统的「调试一小时,修复一分钟」形成鲜明对比,它将调试工作本身变成了一种可积累、可传授的工程能力。插桩阶段则要求在关键位置添加日志或断点,验证假设的准确性。只有在所有这些准备完成后,才进入实际的代码修复,随后立即执行回归测试确保修复没有引入新问题。

tdd:垂直分片的红绿重构

测试驱动开发技能是 mattpocock/skills 中最直接对应工程实践的模块。它不仅仅是要求「先写测试再写代码」,而是强制执行一种垂直分片(vertical slice)的开发节奏。每次迭代都围绕一个完整的功能切片展开:从失败的测试开始,到通过测试结束,再进行必要的重构。

这个技能特别强调了红绿重构循环的严格执行。在红色阶段,测试描述的是期望的行为而非实现细节;在绿色阶段,代码只需让测试通过,不追求完美;重构阶段才允许清理代码结构。对于 AI 代理而言,这种约束尤为重要 —— 它防止了代理为了「展示能力」而过度设计,也避免了由于缺乏反馈导致的盲目实现。技能文档中还包含了关于什么是好测试、什么是坏测试的详细指导,帮助代理理解测试粒度和覆盖范围的边界。

grill-with-docs:需求对齐与共享语言

这是项目中最受欢迎的两个技能之一,另一个是面向非代码场景的 grill-me。grill-with-docs 的核心思想来源于《领域驱动设计》中的「通用语言」概念 —— 开发团队与领域专家使用同一种精确的语言来描述问题和解决方案。

当开发者启动 grill-with-docs 时,代理会进行一场「拷问式」的对话,挑战开发者的计划中的每一个假设。这不是简单的需求确认,而是要挖掘出决策树中的每个分支、每个边界情况、每个隐含假设。同时,这个技能还会帮助维护项目的 CONTEXT.md 文档 —— 一个记录了项目专用术语和共享语言的 living document。例如,原本冗长的描述「当课程中某个章节内的课时被标记为 ' 正式发布 '(即获得文件系统中的位置)」会被压缩为「materialization cascade 问题」。这种压缩不仅减少了 token 消耗,更重要的是让代码中的变量名、函数名、文件名都使用统一的领域语言,大幅提升代码可读性和代理的理解效率。

improve-codebase-architecture:持续设计投入

面对「我们造了一座泥球」这一最棘手的失效模式,mattpocock/skills 提供了 improve-codebase-architecture 技能。这个技能的设计理念呼应了 Kent Beck 的名言:「每天都要投入到系统设计中。」它不是一次性的大规模重构,而是建议每隔几天就对代码库进行一次局部优化。

技能会分析代码库中模块的深度机会(deepening opportunities),参考 CONTEXT.md 中的领域语言和 docs/adr/ 中的架构决策记录(ADR),找出那些接口臃肿但内涵丰富的「浅层模块」,然后提出具体的拆解或合并建议。这种持续的小步改进避免了大规模重构带来的风险,也让代码库的演进变成了一个可预测、可控的过程。对于 AI 代理而言,这个技能提供了一种「设计意识」,让它在编写新代码时就开始考虑长期的架构健康。

zoom-out:系统级视角

与 improve-codebase-architecture 相辅相成的是 zoom-out 技能。当开发者进入一段不熟悉的代码时,往往只见树木不见森林。zoom-out 强制代理从整个系统的角度来解释当前代码的上下文 —— 这个模块在整个应用架构中处于什么位置?它的输入输出是什么?它与其他模块的关系如何?

这种系统级解释对于代码审查和知识传递尤其有价值。当代理能够将单个文件的改动放在更大的上下文中理解时,它对潜在影响的判断会更加准确,也更容易发现那些跨越模块边界的副作用。

生产力与安全保障技能

在工程技能之外,mattpocock/skills 还包含了一系列提升日常工作效率的工具类技能。caveman 技能提供了一种极简沟通模式,通过剔除冗余填充词而保留完整的技术准确性,可将 token 消耗降低约 75%。对于需要控制成本的场景或长对话上下文管理,这个技能非常实用。

安全相关的技能则聚焦于 Git 操作的风险控制。git-guardrails-claude-code 技能会在执行危险命令之前进行拦截,包括 push、reset --hard、clean 等不可逆操作。这道护栏在团队协作场景中尤为重要,它为 AI 代理的操作增加了一个安全缓冲层,防止一时冲动导致的代码丢失。

实施路径与配置要点

要将 mattpocock/skills 集成到日常工作流中,项目提供了极为简洁的安装方式:运行 npx skills@latest add mattpocock/skills 命令,然后选择需要安装的技能和目标编码代理。整个过程不超过三十秒。

但技能的真正价值在于持续的使用和迭代。Matt Pocock 建议对每个技能进行适应性修改 —— 这些技能不是金科玉律,而是可组合、可扩展的起点。例如,diagnose 技能中的插桩策略可以根据不同的技术栈进行调整;tdd 技能的测试框架选择可以随项目语言而变化。技能的真正力量来自于团队将其内化为日常习惯的过程,而不仅仅是将它们添加到本地技能目录中。

资料来源:本文核心信息来自 mattpocock/skills 项目 README(https://github.com/mattpocock/skills/blob/main/README.md)。

ai-systems