addyosmani/agent-skills:AI 编程代理的生产级工程技能
本文目录
面向 AI 编程代理(AI coding agents)的生产级工程技能。
技能(Skills)把资深工程师构建软件时使用的工作流、质量关卡和最佳实践编码下来。这些技能被打包,使 AI 代理在开发的每个阶段都能一致地遵循它们。
DEFINE PLAN BUILD VERIFY REVIEW SHIP
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ Idea │ ─▶│ Spec │ ─▶│ Code │ ─▶│ Test │ ─▶│ QA │ ─▶│ Go │
│Refine│ │ PRD │ │ Impl │ │Debug │ │ Gate │ │ Live │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘
/spec /plan /build /test /review /ship
命令#
9 个映射到开发生命周期的斜杠命令。每个命令会自动激活正确的技能。
| 你正在做什么 | 命令 | 核心原则 |
|---|---|---|
| 定义要构建什么 | /spec | 先规格,后代码 |
| 规划如何构建 | /plan | 小而原子的任务 |
| 增量构建 | /build | 一次一个切片 |
| 证明它有效 | /test | 测试就是证据 |
| 设定质量标准 | /constraints | 一次决定,处处执行 |
| 合并前审查 | /review | 改善代码健康度 |
| 审计 Web 性能 | /webperf | 先测量,再优化 |
| 简化代码 | /code-simplify | 清晰胜于聪明 |
| 发布到生产 | /ship | 更快更安全 |
在 Claude Code 中,这些会作为插件命令安装。如果某个内置命令名称相同,例如 /review,请使用命名空间形式:/agent-skills:review。
规格存在后,想减少手动步骤?/build 会自动生成计划,并在一次获批的流程中实现每个任务——你批准一次计划,然后它自主运行。它移除的是任务之间的人工切换,而不是验证:每个任务仍然测试驱动、单独提交,并在失败或高风险步骤时暂停。
技能也会根据你正在做的事情自动激活——设计 API 会触发 api-and-interface-design,构建 UI 会触发 frontend-ui-engineering,等等。
快速开始#
最快路径——任何代理,一条命令。开放技能 CLI 可安装到 70 多个代理(Claude Code、Cursor、Codex、Copilot、Cline 等):
npx skills add addyosmani/agent-skills # 安装全部 25 个技能
npx skills add addyosmani/agent-skills --list # 安装前浏览
或者获取单个技能:
npx skills add addyosmani/agent-skills --skill code-review-and-quality # 合并前的五轴审查
npx skills add addyosmani/agent-skills --skill interview-me # 需求质询,一次一个问题
npx skills add addyosmani/agent-skills --skill test-driven-development # 红-绿-重构,强制执行
只安装一个技能?按技能执行 npx 安装只会复制 skills/<name>/,而不会复制仓库级的 references/ 目录。技能仍然可用,但指向补充共享检查清单的路径将不可用。请使用整仓集成、克隆仓库,或把所需的检查清单复制到已安装技能内的 references/ 目录。此可移植性缺口记录在 #361 中。
更喜欢原生集成?在下面选择你的工具。
Claude Code(推荐)#
Marketplace 安装:
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
SSH 错误?Marketplace 通过 SSH 克隆仓库。如果你没有在 GitHub 上设置 SSH 密钥,请添加 SSH 密钥,或在 marketplace-add 步骤中使用完整 HTTPS URL 强制通过 HTTPS 克隆:
/plugin marketplace add https://github.com/addyosmani/agent-skills.git
/plugin install agent-skills@addy-agent-skills
如果 /plugin install 在 Windows 或 macOS 上仍因 git@github.com: Permission denied (publickey) 失败,推荐的解决方法是一次性配置 Git,为子进程克隆把 GitHub SSH URL 重写为 HTTPS:
git config --global url."https://github.com/".insteadOf git@github.com:
本地 / 开发:
git clone https://github.com/addyosmani/agent-skills.git
claude --plugin-dir /path/to/agent-skills
Cursor#
把工作流技能放在 .cursor/skills/ 下(从 agent-skills/skills/ 同步),把简短策略放在 .cursor/rules/*.mdc 中——不要把完整技能粘贴到规则里。这两个目录都位于你的项目中;本仓库不附带 .cursor/ 文件夹。参见 docs/cursor-setup.md。
Antigravity CLI#
安装为原生插件,用于技能和子代理。在受影响的 Antigravity CLI 版本中,旧版命令 TOML 报告为已转换,但其包装命令无法被发现;请直接调用底层的命名空间技能。参见 docs/antigravity-setup.md。
从仓库安装:
agy plugin install https://github.com/addyosmani/agent-skills.git
从本地克隆安装:
git clone https://github.com/addyosmani/agent-skills.git
agy plugin install ./agent-skills
Gemini CLI#
安装为原生技能以自动发现,或添加到 GEMINI.md 以获得持久上下文。参见 docs/gemini-cli-setup.md。
从仓库安装:
gemini skills install https://github.com/addyosmani/agent-skills.git --path skills
从本地克隆安装:
gemini skills install ./agent-skills/skills/
Windsurf#
把技能内容添加到你的 Windsurf 规则配置中。参见 docs/windsurf-setup.md。
OpenCode#
把技能复制到 .opencode/skills/(或 ~/.config/opencode/skills/),添加项目本地的 AGENTS.md,并使用内置技能工具进行代理驱动执行。可选的斜杠命令可以添加到 .opencode/commands/ 下。参见 docs/opencode-setup.md。
GitHub Copilot#
使用 agents/ 中的代理定义作为 Copilot 角色,并使用 .github/copilot-instructions.md 中的技能内容。生命周期斜杠命令(/spec、/plan、/build、/test、/review、/ship)是 Claude Code 命令,不会出现在 Copilot 中;请改为按名称调用技能(/spec-driven-development 等)。参见 docs/copilot-setup.md。
使用独立 copilot CLI?把它安装为插件——参见 docs/copilot-cli-setup.md。
Kiro IDE 与 CLI#
Kiro 的技能位于 .kiro/skills/ 下,可以存储在项目级或全局级。Kiro 也支持 Agents.md。参见 https://kiro.dev/docs/skills/ 的 Kiro 文档。
Codex#
安装为原生 Codex 插件(Codex CLI v0.122+):
codex plugin marketplace add addyosmani/agent-skills
codex plugin add agent-skills@agent-skills
第一条命令注册市场;第二条安装插件。Codex 通过 .codex-plugin/plugin.json 直接读取根 skills/ 目录。安装后,在聊天中使用 @ 调用技能(例如 @spec-driven-development)。有关本地安装和故障排除,参见 docs/codex-setup.md。
Command Code#
使用内置 cmd skills 命令原生安装。Command Code 会克隆仓库、发现每个 SKILL.md,并安装到 .commandcode/skills/:
cmd skills add addyosmani/agent-skills # 选择要安装的技能(项目级)
cmd skills add addyosmani/agent-skills --global # 为所有项目安装(~/.commandcode/skills/)
cmd skills add addyosmani/agent-skills -s spec-driven-development # 安装特定技能
已安装的技能会显示在 TUI 斜杠菜单中,例如 /spec-driven-development。参见 docs/commandcode-setup.md。
其他代理#
技能就是纯 Markdown——它们适用于任何接受系统提示或指令文件的代理。参见 docs/getting-started.md。安装了该包但未在上方列出的宿主见 docs/other-hosts.md。
采用#
已经安装?如何推广这个包取决于你的代码库。采用指南涵盖两条路径:从第一天起为绿地项目使用完整生命周期,或对既有代码库进行增量式、验证优先的推广。
全部 25 个技能#
上面的命令是入口点。该包总共包含 25 个技能——24 个生命周期技能加上 using-agent-skills 元技能。每个技能都是一个结构化工作流,包含步骤、验证关卡和反合理化表格。你也可以直接引用任何技能。
元技能——发现哪个技能适用#
| 技能 | 作用 | 何时使用 |
|---|---|---|
using-agent-skills | 把传入的工作映射到正确的技能工作流,并定义共享操作规则 | 开始会话或决定适用哪个技能时 |
定义——明确要构建什么#
| 技能 | 作用 | 何时使用 |
|---|---|---|
interview-me | 一次一个问题的访谈,挖掘用户真正想要的东西,而不是他们以为自己应该想要的,直到约 95% 置信度 | 需求不明确,或用户调用“interview me”/“grill me”时 |
idea-refine | 结构化发散/收敛思维,把模糊想法变成具体提案 | 有一个需要探索的粗略概念时 |
spec-driven-development | 在写任何代码之前,编写涵盖目标、命令、结构、代码风格、测试和边界的 PRD | 开始新项目、功能或重大变更时 |
constraint-driven-development | 通过访谈确定带有合理默认阈值的质量标准,写入 CONSTRAINTS.md,按成本放置每项检查,并捕捉代理为通过而静默检查或跳过测试 | 没有成文标准,或代理产出的内容超出任何人阅读量时 |
规划——拆解任务#
| 技能 | 作用 | 何时使用 |
|---|---|---|
planning-and-task-breakdown | 把规格拆成小的、可验证的任务,带验收标准和依赖排序 | 有规格且需要可实施单元时 |
构建——编写代码#
| 技能 | 作用 | 何时使用 |
|---|---|---|
incremental-implementation | 薄的垂直切片——实现、测试、验证、提交。功能开关、安全默认值、便于回滚的变更 | 任何涉及多个文件的变更 |
test-driven-development | 红-绿-重构、测试金字塔(80/15/5)、测试规模、DAMP 优于 DRY、Beyonce 规则、浏览器测试 | 实现逻辑、修复 bug 或改变行为时 |
context-engineering | 在正确的时间向代理提供正确的信息——规则文件、上下文打包、MCP 集成 | 开始会话、切换任务或输出质量下降时 |
source-driven-development | 每个框架决策都以官方文档为依据——验证、引用来源、标记未经验证的内容 | 想要任何框架或库的权威、带来源引用的代码时 |
doubt-driven-development | 对每个非平凡决策进行对抗性全新上下文审查——CLAIM → EXTRACT → DOUBT → RECONCILE → STOP,可选经用户授权的跨模型升级 | 风险高(生产、安全、不可逆)、在不熟悉的代码中工作,或现在验证一个自信输出比以后调试更便宜时 |
frontend-ui-engineering | 组件架构、设计系统、状态管理、响应式设计、WCAG 2.1 AA 无障碍 | 构建或修改面向用户的界面时 |
api-and-interface-design | 契约优先设计、Hyrum 定律、单版本规则、错误语义、边界验证 | 设计 API、模块边界或公共接口时 |
验证——证明它有效#
| 技能 | 作用 | 何时使用 |
|---|---|---|
browser-testing-with-devtools | 使用 Chrome DevTools MCP 获取实时运行时数据——DOM 检查、控制台日志、网络跟踪、性能分析 | 构建或调试任何在浏览器中运行的东西时 |
debugging-and-error-recovery | 五步分诊:复现、定位、缩减、修复、防护。停线规则、安全回退 | 测试失败、构建中断或行为异常时 |
审查——合并前的质量关卡#
| 技能 | 作用 | 何时使用 |
|---|---|---|
code-review-and-quality | 五轴审查、变更规模(约 100 行)、严重程度标签(Nit/Optional/FYI)、审查速度规范、拆分策略 | 合并任何变更之前 |
code-simplification | 切斯特顿栅栏、500 行规则,在保持行为完全不变的同时降低复杂度 | 代码能工作,但比应有的更难读或维护时 |
security-and-hardening | OWASP Top 10 防护、认证模式、密钥管理、依赖审计、三层边界系统 | 处理用户输入、认证、数据存储或外部集成时 |
performance-optimization | 测量优先方法——Core Web Vitals 目标、分析工作流、包分析、反模式检测 | 存在性能要求或怀疑有回归时 |
发布——有把握地部署#
| 技能 | 作用 | 何时使用 |
|---|---|---|
git-workflow-and-versioning | 主干开发、原子提交、变更规模(约 100 行)、提交即保存点模式 | 进行任何代码变更时(始终) |
ci-cd-and-automation | 左移、更快更安全、功能开关、质量门禁流水线、失败反馈循环 | 设置或修改构建与部署流水线时 |
deprecation-and-migration | 代码即负债思维、强制与建议弃用、迁移模式、僵尸代码清除 | 移除旧系统、迁移用户或停用功能时 |
documentation-and-adrs | 架构决策记录(ADR)、API 文档、内联文档标准——记录“为什么” | 做架构决策、更改 API 或发布功能时 |
observability-and-instrumentation | 结构化日志、RED 指标、OpenTelemetry 追踪、基于症状的告警——边构建边埋点 | 添加遥测或发布任何在生产中运行的东西时 |
shipping-and-launch | 发布前检查清单、功能开关生命周期、分阶段推出、回滚程序、监控设置 | 准备部署到生产时 |
代理角色#
为定向审查预配置的专家角色:
| 代理 | 角色 | 视角 |
|---|---|---|
code-reviewer | 高级 Staff 工程师 | 五轴代码审查,标准是“Staff 工程师会批准这个吗?” |
test-engineer | QA 专家 | 测试策略、覆盖率分析和 Prove-It 模式 |
security-auditor | 安全工程师 | 漏洞检测、威胁建模、OWASP 评估 |
web-performance-auditor | Web 性能工程师 | Core Web Vitals 审计,含 Quick/Deep 模式与指标诚实规则;通过 /webperf 运行 |
有关决策矩阵、编排规则,以及角色如何与技能和斜杠命令组合,参见 docs/agents.md。
参考检查清单#
技能在需要时引入的快速参考资料:
| 参考 | 涵盖内容 |
|---|---|
definition-of-done.md | 项目范围内每项变更都要达到的长期标准,与每任务验收标准形成对比 |
testing-patterns.md | 测试结构、命名、mock、React/API/E2E 示例、反模式(JavaScript/TypeScript) |
security-checklist.md | 提交前检查、认证、输入验证、头、CORS、OWASP Top 10 |
performance-checklist.md | Core Web Vitals 目标、前端/后端检查清单、测量命令 |
accessibility-checklist.md | 键盘导航、屏幕阅读器、视觉设计、ARIA、测试工具 |
observability-checklist.md | 值班问题、结构化日志、RED/USE 指标、追踪、基于症状的告警、发布前门禁 |
orchestration-patterns.md | 认可的多角色编排模式、反模式以及“角色不调用角色”规则 |
技能如何工作#
每个技能都遵循一致的结构:
┌─────────────────────────────────────────────────┐
│ SKILL.md │
│ │
│ ┌─ Frontmatter ─────────────────────────────┐ │
│ │ name: lowercase-hyphen-name │ │
│ │ description: Guides agents through [task]. │ │
│ │ Use when… │ │
│ └────────────────────────────────────────────┘ │
│ Overview → 这个技能做什么 │
│ When to Use → 触发条件 │
│ Process → 逐步工作流 │
│ Rationalizations → 借口 + 反驳 │
│ Red Flags → 出问题的迹象 │
│ Verification → 证据要求 │
└─────────────────────────────────────────────────┘
关键设计选择:
- 流程,而非散文。 技能是代理遵循的工作流,而不是供其阅读的参考文档。每个技能都有步骤、检查点和退出标准。
- 反合理化。 每个技能都包含一张常见借口表(例如“我稍后补测试”),并附有有据可查的反驳。
- 验证不可协商。 每个技能都以证据要求结束——测试通过、构建输出、运行时数据。“看起来没问题”永远不够。
- 渐进式披露。
SKILL.md是入口点。支持性参考资料仅在需要时加载,从而将 token 使用降到最低。
项目结构#
可移植核心保留在共享目录中。宿主特定路径是原生发现约定,而不是品牌别名;重命名或合并它们会破坏扫描这些确切位置的工具。
| 层 / 消费者 | 仓库路径 | 用途 |
|---|---|---|
| 共享工作流核心 | skills/(25 个技能) | 每个集成使用的可移植 SKILL.md 工作流 |
| 共享审查材料 | agents/(4 个角色)、references/(7 份检查清单) | 专家审查者和由整仓安装携带的包级检查清单 |
| Claude Code 适配器 | .claude/commands/(9 个命令)、.claude-plugin/、hooks/ | 斜杠命令包装器、市场元数据和生命周期钩子 |
| Gemini CLI 适配器 | .gemini/commands/(9 个命令) | Gemini 原生 TOML 命令包装器 |
| Antigravity CLI 适配器 | commands/(9 个命令)、plugin.json | 旧版 TOML 包装器和根插件清单;参见已知的包装器限制 |
| Codex 适配器 | .codex-plugin/、.agents/plugins/ | Codex 插件元数据和市场注册;Codex 直接使用 skills/ |
| GitHub Copilot CLI 适配器 | plugin.json | 根插件元数据;Copilot CLI 按约定发现 skills/,不注册生命周期包装器 |
| 贡献者工具 | scripts/(13 个脚本)、evals/(25 个用例文件)、.github/workflows/ | 验证、路由评估和 CI |
| 文档 | docs/ | 通用指导和各工具设置指南 |
没有签入适配器目录的工具,会把共享的 skills/ 核心安装或复制到自己的原生位置。快速开始部分链接了每个受支持宿主的设置指南。
为什么需要 Agent Skills?#
AI 编程代理默认走最短路径——这通常意味着跳过规格、测试、安全审查以及让软件可靠的实践。Agent Skills 为代理提供结构化工作流,强制执行资深工程师在生产代码中带来的同等纪律。
每个技能都编码了来之不易的工程判断:何时写规格、测试什么、如何审查、何时发布。这些不是通用提示——它们是那种有主见、流程驱动的工作流,把生产质量的工作与原型质量的工作区分开来。
技能融入了 Google 工程文化的最佳实践——包括来自《Software Engineering at Google》和 Google 工程实践指南的概念。你会在 API 设计中发现 Hyrum 定律,在测试中发现 Beyonce 规则和测试金字塔,在代码审查中发现变更规模与审查速度规范,在简化中发现切斯特顿栅栏,在 Git 工作流中发现主干开发,在 CI/CD 中发现左移和功能开关,以及一个专门的弃用技能,把代码视为负债。这些不是抽象原则——它们直接被嵌入代理遵循的逐步工作流中。
与其他方案比较#
想知道这与 Superpowers 或 Matt Pocock 的技能相比如何?参见 docs/comparison.md,以诚实、并排的方式了解三者的不同形态以及何时使用哪一个——其中包括一个受控头对头实验的链接。
贡献#
技能应当具体(可操作步骤,而非模糊建议)、可验证(有明确退出标准和证据要求)、经过实战检验(基于真实工作流)且最小化(只包含指导代理所需的内容)。
格式规范参见 docs/skill-anatomy.md,指南参见 CONTRIBUTING.md,关于如何在不破坏可移植 SKILL.md 前言的情况下应用模型路由、工具限制和其他按代理运行时控制,参见 docs/advanced-per-agent-configuration.md。
团队#
agent-skills 由以下人员构建和维护:
| 姓名 | GitHub | 角色 |
|---|---|---|
| Addy Osmani | @addyosmani | 创建者 |
| Federico Bartoli | @federicobartoli | 协作者 |
| Joan León | @nucliweb | 协作者 |
许可证#
MIT——可在你的项目、团队和工具中使用这些技能。