
Addy Osmani 在 GitHub 开源了一套名为 Agent Skills 的工程技能包,专为 AI coding agent 设计。项目上线即获得 82,000+ star,日均增长 588,覆盖 Claude Code、Cursor、Codex、Copilot 等 70 多种 agent 工具。
Addy Osmani 是 Google Chrome 团队的前工程负责人,也是 Web 领域知名的《Learning JavaScript Design Patterns》和 Image Optimization 作者。这个项目把他在 Google 积累的工程实践编码成 AI agent 可执行的结构化工作流。
核心设计:把工程判断变成 agent 可执行的流程
大多数 AI coding agent 默认走最短路径:跳过规格说明、跳过测试、跳过安全审查,直接生成代码。Agent Skills 的目标是通过结构化工作流强制 agent 遵循高级工程师的判断标准。
整套技能包包含 24 个 skill,覆盖软件开发的六个阶段:
DEFINE → PLAN → BUILD → VERIFY → REVIEW → SHIP
规格定义 任务拆解 编码实现 测试验证 代码审查 部署上线每个阶段对应一个或多个 skill,每个 skill 有明确的触发条件、分步工作流、验证标准和退出条件。agent 在执行时必须完成每一步的验证才能推进到下一阶段。
六个阶段的具体内容
DEFINE:先写规格,再写代码
三个 skill 负责需求定义:
- interview-me:逐个提问澄清需求,直到达到约 95% 的置信度,而非一次性抛出一堆问题
- idea-refine:通过发散-收敛思维,把模糊想法变成可执行提案
- spec-driven-development:在任何代码之前写出包含六个核心部分的规格文档
spec-driven-development 的工作流有四个门控阶段(Specify → Plan → Tasks → Implement),每个阶段都需要人工审核才能推进。agent 会先列出所有假设让用户确认:
假设列表:
1. 这是一个 Web 应用(不是原生移动端)
2. 认证使用 session cookie(不是 JWT)
3. 数据库是 PostgreSQL
4. 仅面向现代浏览器
→ 如果有误请立即纠正规格文档涵盖六个核心部分:目标、构建命令、项目结构、代码风格、测试策略、边界约束。其中"边界约束"采用三级体系:
- 必须做:提交前运行测试、遵循命名规范、验证输入
- 需询问:数据库 schema 变更、添加依赖、修改 CI 配置
- 禁止做:提交密钥、编辑 vendor 目录、未经批准删除失败的测试
PLAN:拆解任务
planning-and-task-breakdown 把规格分解为小型、可验证的任务单元,每个任务有验收标准和依赖排序。任务拆解遵循依赖图映射和垂直切片原则,确保每个任务可以独立实现和验证。
BUILD:编码实现的七个技能
这个阶段包含最密集的七个 skill:
- incremental-implementation:薄垂直切片——实现、测试、验证、提交。支持 feature flag、安全默认值、回滚友好
- test-driven-development:严格的 Red-Green-Refactor 循环,测试金字塔(80% 单元 / 15% 集成 / 5% E2E),Beyonce Rule(如果你删掉一段代码没有测试失败,那它就不应该存在)
- context-engineering:在正确的时间给 agent 喂正确的信息——规则文件、上下文打包、MCP 集成
- source-driven-development:每个框架决策都基于官方文档验证、引用来源、标注未验证内容
- doubt-driven-development:对抗式审查流程——CLAIM → EXTRACT → DOUBT → RECONCILE → STOP。在高风险场景(生产环境、安全、不可逆操作)中对每个重要决策进行对抗性验证
- frontend-ui-engineering:组件架构、设计系统、状态管理、响应式设计、WCAG 2.1 AA 可访问性
- api-and-interface-design:契约优先设计,Hyrum's Law(当 API 有足够多的用户时,所有可观察行为都会被某人依赖),One-Version Rule,错误语义
VERIFY:证明它有效
- browser-testing-with-devtools:通过 Chrome DevTools MCP 获取运行时数据——DOM 检查、控制台日志、网络追踪、性能分析
- debugging-and-error-recovery:五步分类法——复现、定位、缩减、修复、防护。Stop-the-line 规则:发现严重问题立即停止所有其他工作
REVIEW:合并前的质量门
四个 skill 构成代码审查体系:
- code-review-and-quality:五轴审查——正确性、可读性、架构、安全性、性能。每个变更控制在约 100 行以内
- code-simplification:Chesterton's Fence 原则(不要拆除你不知道用途的栅栏),Rule of 500,在保持行为完全一致的前提下降低复杂度
- security-and-hardening:OWASP Top 10 防护、认证模式、密钥管理、依赖审计、三层边界系统
- performance-optimization:测量优先——Core Web Vitals 目标、分析工作流、包体分析、反模式检测
SHIP:部署上线
六个 skill 覆盖发布全流程:
- git-workflow-and-versioning:trunk-based 开发、原子提交、commit-as-save-point 模式
- ci-cd-and-automation:Shift Left、Faster is Safer、feature flag、质量门管道
- deprecation-and-migration:code-as-liability 思维、强制弃用与建议弃用、僵尸代码清除
- documentation-and-adrs:架构决策记录(ADR)、API 文档、记录"为什么"而非"是什么"
- observability-and-instrumentation:结构化日志、RED 指标、OpenTelemetry 追踪、基于症状的告警
- shipping-and-launch:发布前检查清单、feature flag 生命周期、分阶段发布、回滚流程
反合理化机制:每个 skill 都有借口反驳表
Agent Skills 最独特的设计是 anti-rationalization table。每个 skill 都包含一张"常见借口及其反驳"的表格。这些借口是 AI agent 在实际使用中最常产生的跳过步骤的理由:
| agent 常见的借口 | 设计者的反驳 |
|---|---|
| "我稍后再加测试" | 没有 TDD,你无法证明代码有效。"看起来对"不等于"做对了" |
| "这个变更不需要审查" | 每个变更都必须审查。不审查的代码就是技术债 |
| "直接发布吧,有问题再回滚" | 回滚的代价十倍于发布前检查。Faster is Safer 指的是小步快跑,不是跳过验证 |
| "性能问题以后再优化" | 测量优先。不测量就无法优化,也无法知道是否真的有问题 |
这些反驳写进了 skill 流程的硬约束。agent 在执行 skill 时必须确认每一项没有被跳过。
验证是非协商条件
每个 skill 的最后一步都是验证要求——测试通过、构建输出、运行时数据。"看起来对"永远不够。
以 test-driven-development 为例,工作流的每个循环都以测试状态作为门控:
RED → 写一个失败的测试
GREEN → 写最少的代码让它通过
REFACTOR → 清理实现
重复 → 所有测试仍然通过在 RED 阶段,如果测试立即通过了,说明测试没有验证任何东西——agent 必须重新审视。完成循环后,agent 必须运行项目的完整测试套件(不是单个测试),确认全绿才算完成。
多平台支持与安装方式
Agent Skills 支持主流 AI 编程工具,通过统一的 skills CLI 安装:
# 安装全部 24 个技能
npx skills add addyosmani/agent-skills
# 浏览后选择安装
npx skills add addyosmani/agent-skills --list
# 安装单个技能
npx skills add addyosmani/agent-skills --skill code-review-and-quality原生集成支持 Claude Code(插件市场安装)、Cursor(.cursor/skills/ 目录)、Codex(CLI v0.122+ 原生插件)、Gemini CLI、Windsurf、Copilot、Antigravity CLI 等。技能采用纯 Markdown 格式,任何接受系统提示词的 agent 都可以使用。
每个 skill 的 SKILL.md 遵循统一结构:frontmatter(名称和描述)、概述、触发条件、分步流程、反合理化表、红旗信号、验证要求。这种渐进式披露设计让 agent 只在需要时加载相关参考材料,控制 token 消耗。
与同类项目的对比
Agent Skills 在 README 中提供了与 obra/superpowers 和 mattpocock/skills 的对比文档。三者方向不同:
- Agent Skills(addyosmani):覆盖完整 SDLC,强调工程流程门控和验证标准,源自 Google 工程文化
- Superpowers(obra):侧重技能发现和组合机制,更灵活但约束较弱
- Skills(mattpocock):实战导向,直接来自作者的 .agents 目录,更轻量
三者并不互斥。Agent Skills 适合需要严格工程纪律的团队场景,Superpowers 适合需要灵活技能编排的项目,Matt Pocock 的 Skills 适合快速上手和个人使用。
项目结构与许可
agent-skills/
├── skills/ # 24 个技能模块
├── agents/ # 4 个专家 persona(代码审查、测试、安全、性能)
├── references/ # 7 个补充检查清单
├── hooks/ # 会话生命周期钩子
├── .claude/commands/ # 8 个 Claude Code slash 命令
├── .gemini/commands/ # 8 个 Gemini CLI slash 命令
└── docs/ # 各工具安装指南项目采用 MIT 许可证,可以在任何项目中自由使用。Addy Osmani 和协作者 Federico Bartoli、Joan León 负责维护。
GitHub 仓库地址:addyosmani/agent-skills