最近几年,AI 写代码的产出速度肉眼可见地变快了。一段需求丢给模型,几秒钟就能吐出几百行,单元测试、文档、重构样样都能做。但用着用着就发现一个怪现象:交付的速度上去了,落到生产环境的质量却没跟着上去。

代码能跑,但不敢合并;看着挺全,但经不起评审;测试覆盖有了,但每次回归都翻车。这是”快”和”烂”并存的真实写照。

今天开始,我想用一个系列文章把 addyosmani/agent-skills 这个开源项目拆开来讲。它做的事情很朴素:把一个高级工程师脑子里的工程纪律(spec → plan → build → test → review → ship),打包成 AI 编码代理能直接执行的”技能”。这个系列一共九篇,今天是开篇。

这个项目的来头

Addy Osmani 是 Google Chrome 的工程总监,长期负责前端工程效能。他把团队里资深工程师沉淀下来的工作流,写成了一套 24 个 Markdown 技能文件,配合 8 个 slash 命令(/spec /plan /build /test /review /code-simplify /webperf /ship),让 Claude Code、Cursor、Gemini CLI、OpenCode 等 70+ 工具能直接调用。

仓库目前已经攒下 27K+ ⭐,MIT 协议,社区在持续合入贡献。它不是某一家的产品,而是一套跨工具的”工程纪律清单”。

我把它克隆下来读了一遍,最大的感受是:作者关心的不是”AI 怎么写代码”,而是”AI 怎么不写烂代码”。这中间差出来的,就是一整套质量门控。

为什么 AI 写代码容易”又快又烂”

如果你用过 AI 写代码,下面的场景大概率眼熟:

  • 改一个字段类型,模型顺手把另外 7 个不相关的函数也改了,因为它觉得”风格不统一”。
  • 写完一段功能说”已经测试过了”,但其实只跑了 happy path,边界条件一个都没覆盖。
  • 接到一个模糊需求,模型直接动手写,写到一半才发现核心 API 选错了。
  • 重构时性能变差了,模型没察觉,因为没跑 benchmark。
  • 上线前没加监控,第一个用户报 bug 时你只能对着日志猜。

这些不是模型的”能力问题”,而是流程问题。模型会顺着概率往下走,而工程纪律要求的是:在每一步停下来确认。当前 prompt 里写了什么,下一步就走什么——没人要求它停下来。

agent-skills 的思路是:把”停下来确认”这件事,写成显式的步骤和门控。每一个技能都自带”反合理化表”和”红色信号”,堵住模型找借口跳过流程的企图。这一点后文我会单独展开讲。

六阶段流水线长什么样

这是整个仓库最核心的一张图,我把它做成 mermaid 放出来:

flowchart LR
    D["DEFINE
想法打磨"] --> P["PLAN
任务拆解"] P --> B["BUILD
增量实现"] B --> V["VERIFY
调试验证"] V --> R["REVIEW
代码评审"] R --> S["SHIP
上线发布"] S -.反馈.-> D

六个阶段首尾相接,对应 8 个 slash 命令:

阶段 命令 一句话原则
定义 /spec 先写规约,再写代码
计划 /plan 拆成原子任务
构建 /build 一次只切一片
验证 /test 测试就是证据
评审 /review 改完再交
上线 /ship 可逆,可观察

其中 /build 还支持一个 auto 模式:在 plan 批准后,一次性把整个任务链跑完,中间不停下来催你”是否继续”。它省掉的是任务间的人工切换成本,没省掉的是任务内部的验证——每个原子任务仍然走 TDD,仍然单独提交。

24 个技能是怎么组织的

技能不是平均铺在六个阶段里,每个阶段的密度不一样。我做了一个分布图:

pie title agent-skills 的 24 个技能按生命周期分布
    "DEFINE 定义" : 5
    "PLAN 计划" : 1
    "BUILD 构建" : 5
    "VERIFY 验证" : 1
    "REVIEW 评审" : 4
    "SHIP 上线" : 4
    "META 元技能" : 4

可以看到,DEFINE 和 BUILD 阶段是技能最密的两个地方。这和工程实践中的认知一致:需求定义不清是大部分返工的源头,而构建阶段的纪律(切片、TDD、API 设计、UI 工程)直接决定代码能不能落地。

24 个技能各自的归属阶段,可以先列在这里,后面几天会一篇篇拆开讲:

  • DEFINE:interview-me、idea-refine、spec-driven-development、source-driven-development、doubt-driven-development
  • PLAN:planning-and-task-breakdown
  • BUILD:incremental-implementation、test-driven-development、frontend-ui-engineering、api-and-interface-design、context-engineering
  • VERIFY:debugging-and-error-recovery
  • REVIEW:code-review-and-quality、code-simplification、security-and-hardening、performance-optimization
  • SHIP:shipping-and-launch、ci-cd-and-automation、observability-and-instrumentation、deprecation-and-migration
  • META:using-agent-skills、documentation-and-adrs、git-workflow-and-versioning、browser-testing-with-devtools

这个系列想讲什么

整个 9 篇的安排是这样的:

  1. 今天这篇 · 8/1:开篇,你正在看。
  2. 8/2 · DEFINE 阶段:把”要什么”想清楚——interview-me / idea-refine / spec-driven-development。
  3. 8/3 · 反合理化机制:Anti-Rationalization 与 Red Flags 怎么堵住 AI 的偷懒借口。
  4. 8/4 · PLAN + BUILD:把大象切成薄片——原子任务、垂直切片、TDD。
  5. 8/5 · VERIFY + REVIEW:调试分诊、五维度评审、代码简化。
  6. 8/6 · SHIP:CI/CD、可观测性、上线清单与回滚。
  7. 8/7 · 多 Agent 安装实战:在 Claude Code / Cursor / Gemini / Codex 里怎么装、踩过哪些坑。
  8. 8/8 · 横评:agent-skills vs Superpowers vs Matt Pocock skills。
  9. 8/9 · 收官:从”能跑”到”可合并”——AI 时代的生产级标准是什么。

节奏上周末两篇轻一点,工作日四篇是深度技术文,再加周五的实操和周六的横评。让你每天的阅读负担别太重。

阅读前的两个约定

第一,agent-skills 不是给”完全不会写代码的人”准备的。它假设你已经会用 Claude Code 或类似的 AI 工具,它解决的是”工具有了,但工程纪律没跟上”的问题。

第二,这套技能不是替代你思考,而是替代你”忘记提醒模型要思考”。每一条规则背后都是有名字的工程实践,你不需要接受它,但应该知道它在防什么。

明天开始我们进 DEFINE 阶段,看看 agent-skills 是怎么让 AI 先问对问题、再动手的。


参考资料