AI写代码总出错?Google大神这套方法让AI像资深程序员一样靠谱

25 阅读9分钟

一句话介绍

agent-skills 是一套把资深工程师工作经验"教"给AI的技能集。它把软件开发从需求到上线的完整流程,拆解成19个可复用的技能,让AI助手不再瞎猜,而是按照专业工程师的思路帮你写代码。

作者背景:Addy Osmani,Google Chrome团队工程经理,前端性能优化专家,著有《Learning JavaScript Design Patterns》等书。

为什么你需要这个工具?

现在的AI编程助手有什么问题?

用过Claude Code、Cursor或GitHub Copilot的朋友可能都有这种感觉:

  • AI太急了:刚说完需求就开始写代码,结果写到一半发现理解错了
  • 质量不稳定:有时候写得很好,有时候漏洞百出
  • 缺乏系统性:东改一点西改一点,没有完整的开发流程

agent-skills 怎么解决这些问题?

想象你刚入职一家新公司,如果有个资深工程师手把手教你:

  • "先别急着写代码,先把需求搞清楚"
  • "这个功能要拆成几个小任务,一个一个来"
  • "写完要测试,测试通过再提交"

agent-skills 就是把这套资深工程师的工作流程编码成AI能理解的技能,让AI助手按照专业流程帮你开发。

核心概念:7个命令覆盖完整开发流程

agent-skills 把整个软件开发生命周期分成6个阶段,对应7个斜杠命令:

DEFINE          PLAN           BUILD          VERIFY         REVIEW          SHIP
 ┌──────┐      ┌──────┐      ┌──────┐      ┌──────┐      ┌──────┐      ┌──────┐
 │ Idea │ ───▶│ Spec │───▶  │Code │ ───▶ │ Test │ ───▶ │QA  │ ───▶│  Go  │
 │Refine│      │  PRD │      │ Impl │      │Debug │      │ Gate │      │ Live │
 └──────┘      └──────┘      └──────┘      └──────┘      └──────┘      └──────┘
  /spec          /plan          /build        /test         /review       /ship

7个命令速查表

命令做什么什么时候用
/spec写需求文档开始新项目或新功能前,先明确要做什么
/plan拆解任务有了需求后,把大任务拆成小任务
/build写代码按照计划逐步实现功能
/test测试验证写完代码后,证明它确实能工作
/review代码审查提交前检查代码质量
/code-simplify简化代码代码太复杂时,让它更易读
/ship发布上线一切就绪后,部署到生产环境

核心理念:每个命令都有明确的原则,比如 /spec 对应 "Spec before code"(先写文档再写代码),/test 对应 "Tests are proof"(测试就是证明)。

19个技能详解

除了7个命令,agent-skills 还包含19个具体技能,按开发阶段分类:

定义阶段(Define)- 明确要做什么

1. idea-refine(想法提炼)

解决什么问题:你有个模糊的想法,但不知道怎么落地

使用场景

  • "我想做个 Todo 应用,但具体要有什么功能还没想清楚"
  • "这个需求太笼统,需要拆解一下"

AI会帮你

  • 用发散思维探索各种可能性
  • 用收敛思维筛选最优方案
  • 把模糊想法变成具体可执行的提案

2. spec-driven-development(需求驱动开发)

解决什么问题:写代码前没想清楚,写到一半发现需求理解错了

使用场景

  • 开始新项目前
  • 添加重大功能前
  • 代码重构前

AI会帮你写PRD(产品需求文档),包括:

  • 项目目标
  • 支持的命令和功能
  • 代码结构规划
  • 代码风格规范
  • 测试策略
  • 边界情况处理

规划阶段(Plan)- 拆解怎么做

3. planning-and-task-breakdown(任务拆解)

解决什么问题:大任务不知从何下手,或者任务之间有依赖关系理不清

使用场景

  • 拿到PRD后,需要制定开发计划
  • 大功能需要拆成多个小任务

AI会帮你

  • 把大需求拆成小任务
  • 明确每个任务的验收标准
  • 理清任务之间的依赖关系
  • 安排执行顺序

构建阶段(Build)- 动手实现

4. incremental-implementation(增量实现)

解决什么问题:一次性改太多文件,容易出错且不好回滚

核心原则:"Thin vertical slices"(薄垂直切片)

使用场景

  • 任何涉及多个文件的改动
  • 需要逐步验证的功能开发

AI会帮你

  • 一次只改一个"切片"(一个完整但很小的功能)
  • 实现→测试→验证→提交,循环往复
  • 使用功能标志(feature flags)保护未完成的功能
  • 设置安全默认值
  • 确保随时可以回滚

5. test-driven-development(测试驱动开发)

解决什么问题:写完代码才发现有bug,或者不知道怎么写测试

核心原则:Red-Green-Refactor(红-绿-重构)

使用场景

  • 实现业务逻辑
  • 修复bug
  • 修改现有行为

AI会帮你

  • 先写测试(Red)
  • 再写代码让测试通过(Green)
  • 最后重构优化(Refactor)
  • 遵循测试金字塔(80%单元测试、15%集成测试、5%E2E测试)

6. context-engineering(上下文工程)

解决什么问题:AI输出质量不稳定,有时候好有时候差

核心原则:"Feed agents the right information at the right time" (在正确的时间给AI正确的信息)

使用场景

  • 开始新会话时
  • 切换任务时
  • AI输出质量下降时

AI会帮你

  • 管理规则文件(rules files)
  • 优化上下文打包(context packing)
  • 配置MCP集成

7. frontend-ui-engineering(前端UI工程)

解决什么问题:做前端界面时缺乏系统性思路

使用场景

  • 开发用户界面
  • 修改现有UI

AI会帮你

  • 组件架构设计
  • 设计系统应用
  • 状态管理
  • 响应式设计
  • WCAG 2.1 AA无障碍标准

8. api-and-interface-design(API和接口设计)

解决什么问题:API设计不合理,导致后续维护困难

核心原则:Contract-first design(契约优先设计)

使用场景

  • 设计API
  • 定义模块边界
  • 设计公共接口

AI会帮你

  • 先定义契约,再实现
  • 考虑Hyrum's Law(用户会依赖你的所有可观察行为)
  • 遵循One-Version Rule(同时只维护一个版本)
  • 设计清晰的错误语义
  • 边界验证

验证阶段(Verify)- 证明它能工作

9. browser-testing-with-devtools(浏览器测试)

解决什么问题:前端代码在浏览器里表现异常,但不知道怎么调试

使用场景

  • 开发浏览器中运行的任何功能
  • 调试前端bug

AI会帮你

  • 使用Chrome DevTools MCP获取运行时数据
  • DOM检查
  • 查看控制台日志
  • 分析网络请求
  • 性能分析

10. debugging-and-error-recovery(调试和错误恢复)

解决什么问题:遇到bug不知道从何下手

核心流程:Five-step triage(五步排查法)

使用场景

  • 测试失败
  • 构建中断
  • 行为不符合预期

AI会帮你

  1. 复现问题
  2. 定位问题
  3. 简化问题
  4. 修复问题
  5. 防止再次发生

审查阶段(Review)- 质量把关

11. code-review-and-quality(代码审查和质量)

解决什么问题:代码质量参差不齐,不知道哪里需要改进

核心原则:Five-axis review(五维审查)

使用场景

  • 提交代码前自检
  • 审查他人代码

AI会帮你从五个维度审查

  1. 正确性(Correctness)
  2. 安全性(Security)
  3. 可读性(Readability)
  4. 性能(Performance)
  5. 可维护性(Maintainability)

支持的工具和安装方法

agent-skills 支持市面上主流的AI编程工具:

Claude Code(推荐)

Marketplace安装

/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills

本地开发安装

git clone https://github.com/addyosmani/agent-skills.git
claude --plugin-dir /path/to/agent-skills

Cursor

把 SKILL.md 文件复制到 .cursor/rules/ 目录,或者引用整个 skills/ 目录。

Gemini CLI

gemini skills install https://github.com/addyosmani/agent-skills.git

Windsurf

把技能内容添加到 Windsurf 的规则配置中。

GitHub Copilot

使用 agents/ 目录下的代理定义作为 Copilot 角色,把技能内容放在 .github/copilot-instructions.md 中。

其他工具

所有技能都是纯 Markdown 格式,任何支持系统提示词或指令文件的AI工具都能使用。

实际使用示例

场景1:从零开始一个新项目

步骤1:明确需求(/spec)

用户:/spec
AI:让我们先写PRD。你的项目要解决什么问题?目标用户是谁?核心功能有哪些?

步骤2:拆解任务(/plan)

用户:/plan
AI:基于PRD,我帮你把项目拆成以下任务:
1. 初始化项目结构
2. 实现核心数据模型
3. 实现API接口
4. 实现前端界面
5. 编写测试
6. 部署配置

步骤3:逐步实现(/build)

用户:/build
AI:我们先从任务1开始:初始化项目结构。我会创建...

场景2:修复一个bug

步骤1:测试先行(/test)

用户:/test
AI:先写一个测试来复现这个bug。描述一下bug的表现?

步骤2:调试定位(/debug)

用户:遇到错误了
AI:让我用debug技能帮你排查。首先复现问题...

步骤3:代码审查(/review)

用户:修复完了
AI:用/review检查一下修复质量,确保没有引入新问题。

场景3:优化现有代码

步骤1:简化代码(/code-simplify)

用户:这段代码太复杂了,/code-simplify
AI:让我分析一下... 可以提取这个函数,简化这个逻辑...

步骤2:审查改进(/review)

用户:简化完了
AI:用/review确认简化后的代码仍然正确且更易读。

使用建议

对于新手

  1. 从 /spec 和 /plan 开始

    • 养成先规划后编码的习惯
    • 不要跳过需求分析阶段
  2. 小步快跑

    • 用 /build 时,一次只实现一个小功能
    • 频繁测试,频繁提交
  3. 重视 /test

    • 不要嫌写测试麻烦
    • 测试是质量保证的基础

对于有经验的开发者

  1. 建立团队规范

    • 把 agent-skills 作为团队的开发流程标准
    • 新成员 onboarding 时直接使用
  2. 定制化技能

    • 基于项目特点,调整技能细节
    • 添加团队特有的规则
  3. 持续优化

    • 定期回顾哪些技能效果好,哪些需要改进
    • 根据项目反馈迭代流程

Githhub

github.com/addyosmani/…

总结

agent-skills 的价值在于:把资深工程师的隐性经验,变成AI可执行的显性流程

它不会替代你的思考,但会确保你不遗漏关键步骤:

  • ✅ 写代码前先想清楚需求
  • ✅ 大任务拆成小任务
  • ✅ 写完代码要测试
  • ✅ 提交前要审查
  • ✅ 复杂代码要简化

适合谁用

  • 想提升AI编程助手效果的开发者
  • 希望建立规范开发流程的团队
  • 想学习专业软件开发流程的新手

不适合谁用

  • 只想快速原型,不在乎代码质量
  • 已经有成熟开发流程,不需要额外规范

关注

如果觉得这篇文章对你有帮助,随手点个赞、在看、转发三连吧~如果想第一时间收到推送,也可以给我个星标⭐。谢谢你看我的文章,我们下次再见。