
让 AI 编码智能体独立写代码时,绝大多数开发者都会遭遇同一个困境:Claude Code、Cursor、Codex 或 Gemini CLI 总是倾向于走“最短路径”。它们会跳过接口规格设计,省略边界测试,无视既有架构约束,最终产出“看似跑得通,但完全无法维护”的脆弱代码。
表面上看这是大模型推理能力不足,本质上是 AI 缺乏资深工程师的工程纪律与质量门禁(Quality Gates,即每个阶段必须强制达标的检查点)。Google Chrome 工程经理 Addy Osmani 联合 Federico Bartoli 与 Joan León 维护的开源项目 agent-skills(GitHub 获 9.49 万星标),将大型科技公司的软件工程规范编码为结构化的 SKILL.md 工作流,迫使智能体在每个开发阶段都按资深工程师的标准施工。
25 个专业技能覆盖六大研发阶段,建立全流程防线
agent-skills 将完整的软件交付流程拆解为六个连续阶段:DEFINE(定义)、PLAN(计划)、BUILD(构建)、VERIFY(验证)、REVIEW(评审)以及 SHIP(发布)。它内置了 25 个标准技能与 4 个专业角色(Agent Persona),从根本上重塑 AI 编码的交互习惯。
在实际开发中,开发者可以通过 9 个标准斜杠命令直接驱动流程。例如 /spec 强制先写规格书再动代码,/plan 将大需求拆解为原子任务,/build 按竖切片逐步实现,/test 遵循测试驱动原则,/review 启动合并前五轴评审,/webperf 则调用性能审计工具。
| 阶段 | 核心问题 | 留下的硬伤 |
|---|---|---|
| 需求定义 (DEFINE) | 提示词模糊,智能体自行脑补业务边界与异常场景 | 交付功能与实际预期脱节,遗漏隐性业务约束 |
| 任务拆解 (PLAN) | 一次性生成数百行庞大代码,缺乏中间检查点 | 出错时难以回滚定位,逻辑死锁,无法增量排查 |
| 代码实现 (BUILD) | 跳过单元测试与边界校验,只覆盖最理想路径 | 出现脆弱实现,遇到异常输入直接崩溃 |
| 结果验证 (VERIFY) | 智能体仅凭生成文本自我宣布“测试已通过” | 缺乏运行时证据支持,代码进入生产环境报错 |
| 合并评审 (REVIEW) | 单次提交变动过大,缺乏安全审计与复杂度控制 | 产生技术负债,埋下注入漏洞与性能衰退隐患 |
| 上线交付 (SHIP) | 缺少发布清单与回滚预案,全量直接部署 | 线上故障难以自愈,缺乏可观测性日志支撑 |
在 DEFINE 阶段,技能 interview-me 会以一问一答的方式持续追问开发者,直到对需求掌握度达到 95% 才会产出 PRD 文档。constraint-driven-development 技能会把系统的质量上限写入 CONSTRAINTS.md,专门用于识别并拦截智能体“关闭检查或跳过断言来伪造测试通过”的偷懒行为。
进入 BUILD 与 VERIFY 阶段后,test-driven-development 技能强力推行红绿重构循环,要求测试金字塔遵循 80% 单元测试、15% 集成测试与 5% 端到端测试的结构。智能体会严格遵守“碧昂丝规则”(Beyonce Rule,即如果你喜欢它就应该为它写测试)。同时,browser-testing-with-devtools 技能通过 Chrome DevTools MCP(模型上下文协议)实时读取运行时的真实 DOM、控制台报错与网络耗时,彻底终结智能体凭空捏造执行结果的现象。
SKILL.md 内部构造:反偷懒借口与渐进式上下文加载
每一个 SKILL.md 并不是冗长的操作说明书,而是具备严格防御机制的执行工作流。其标准结构包含 YAML frontmatter 元数据、使用时机(When to Use)、核心步骤(Core Process)、典型范例、偷懒借口与反驳表(Common Rationalizations)、红线警告(Red Flags)以及退出验证清单(Verification)。
为了防止智能体在复杂任务中绕过规范,agent-skills 在每个技能中内置了“反偷懒辩解库”。当智能体试图以“改动太小不需要写测试”、“这个接口很直观不需要更新文档”或“稍后在下一个任务一起测”为借口交卷时,技能内置的规则会直接驳回该请求,并强制要求其补齐证明。
项目践行了“渐进式披露”(Progressive Disclosure,即按需加载详细信息以节省大模型窗口)理念。主技能文件仅保留核心决策流程,具体的排查清单与参考标准则拆分存放在 references/ 目录下。这种设计既确保了模型在核心步骤上的执行力,又避免了海量静态文本占用上下文窗口。
在工程理念层面,该项目吸收了 Google 内部软件工程经验。从海勒姆定律(Hyrum's Law,即随着接口用户增加,所有可观察行为都会被依赖)、切斯特顿围栏(Chesterton's Fence,即未搞清既有代码存在原因前不可擅自重构),到主干开发与左移测试(Shift Left,即质量与安全检查提前到编码最初期),这些规范被固化为智能体的强制行为底线。
多客户端极速配置与实战避坑指南
agent-skills 提供了跨平台的通用安装方式,同时深度适配了主流 AI 编码环境。使用官方包管理工具可以一键引入完整技能包:
# 适用于任何支持 Skills 规范的智能体环境
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:执行
/plugin marketplace add addyosmani/agent-skills并在宿主中激活/plugin install agent-skills@addy-agent-skills。如果遇到 SSH 权限报错git@github.com: Permission denied,需在终端执行git config --global url."https://github.com/".insteadOf git@github.com:强制走 HTTPS 协议。 - Codex(CLI v0.122+):通过
codex plugin marketplace add addyosmani/agent-skills安装后,可在会话中直接使用@spec-driven-development语法精准调用对应规范。 - Gemini CLI:执行
gemini skills install https://github.com/addyosmani/agent-skills.git --path skills完成同步。 - Cursor:将技能文件置于
.cursor/skills/目录中,简短的全局策略写入.cursor/rules/*.mdc。不要把数十个完整的 SKILL.md 直接粘贴到全局规则文件中,否则会导致提示词膨胀并干扰普通补全。 - OpenCode:将技能目录复制到
.opencode/skills/或全局路径~/.config/opencode/skills/,配合项目本地的AGENTS.md即可生效。
在实际落地过程中,开发者需要规避几个常见陷阱。首先,如果使用 npx skills add --skill 单独安装某一技能,CLI 目前仅会复制 skills/ 目录,不会同步顶层 references/ 目录下的补充清单,导致部分复杂检查项路径失效。针对这种情况,推荐克隆完整仓库或手动拷贝相关依赖文件。
其次,切勿把 agent-skills 仓库根目录下的 CLAUDE.md 或 AGENTS.md 复制到自己的业务项目中,这些文件仅包含该项目本身的贡献者规则。当宿主工具已经支持技能自动检索时,不要在全局规则中重复粘贴 using-agent-skills 元技能,否则会引发多重路由冲突。
项目开发全流程规范流转拓扑:
[想法与需求] ──> /spec (PRD规格书) ──> /plan (拆解原子任务)
│
▼
[代码上线] <── /ship (安全发布) <── /review <── /build (增量TDD切片)
三步最小接入与跨会话状态交付
对于初次接触该体系的团队,不需要在一开始就开启全部 25 个技能。推荐采用“三步最小闭环”起步法,快速建立基本工程约束:
第一步,启用 spec-driven-development。在输入复杂提示词前,要求智能体先生成清晰的规格定义,锁死接口契约与异常预期。
第二步,引入 test-driven-development。要求智能体在编写业务逻辑前必须先写出失败的测试用例,并在测试通过后提供真实的终端输出结果,严禁口头承诺。
第三步,配置 code-review-and-quality。在合并代码前,切换至代码评审员角色(Persona),按照严重级别标签(Nit、Optional、FYI)对改动进行五轴质量审查。
在处理大型跨会话任务时,生成的 SPEC.md、tasks/plan.md 和 tasks/todo.md 是不同会话之间共享事实的唯一媒介。开启全新会话时,智能体必须先读取工作区文件并运行 git status 确认当前基线,绝对不能假设前序会话中未经记录的口头批准。代码一旦发生任何变动,必须无条件重新运行测试套件以验证状态。
规范驱动让代码生成回归软件工程常识
使用 agent-skills 并不是限制大模型的创造力,而是把无序的“发散式补全”转变为可预测的“工程化构建”。现代 AI 编程的核心挑战不是模型能不能写出代码,而是模型写出的代码能否经受住真实生产环境的压力。
给智能体配置 SKILL.md 不是在堆砌繁琐文档,而是在提示词工程层面植入自动化门禁。它让原本追求最快交卷的 AI 智能体,必须按照人类高级工程师沉淀数十年的最佳实践稳步推进,使 vibe coding 真正具备工业级交付能力。
未解决的问题
尽管结构化技能大幅提升了生成质量,但在开启完全自主构建(如 /build auto 的自动化循环)时,大模型在长链路执行中依然存在认知漂移现象。如何让智能体在经历数十次工具调用与上下文压缩后,依然 100% 忠实于最初在 CONSTRAINTS.md 中设定的质量上限,仍依赖于底层大模型长程推理稳定性与更严苛的外部 Harness 机制协同演进。
引用来源
- Addy Osmani, Federico Bartoli, Joan León. agent-skills GitHub Repository. 2026-09-12. https://github.com/addyosmani/agent-skills
- Addy Osmani. Agent Skills Getting Started and Installation Guide. 2026-09-12. https://github.com/addyosmani/agent-skills/blob/main/docs/getting-started.md
- Addy Osmani. Agent Skills vs Superpowers: Faster Shipping Safer Reasoning. 2026-09-10. https://github.com/addyosmani/agent-skills/blob/main/docs/comparison.md
- Vercel Labs. Skills CLI Tool Registry and Ecosystem Specification. 2026-09-08. https://github.com/vercel-labs/skills
- Addy Osmani. Engineering Disciplines for Autonomous Coding Agents. 2026-09-05. https://addyosmani.com/blog/agent-skills-production-engineering/