Hotdry.

Article

Agent Skills 生产级工程模式:从提示词模板到可验证工具链

解析 addyosmani/agent-skills 的 SKILL.md 标准格式、TDD 测试金字塔与 DDD 对抗性审查机制,提供 Claude Code 插件安装与 /build auto 工作流的可落地实践。

2026-06-12ai-systems

AI 编码代理的默认行为是走最短路径 —— 跳过规格说明、绕过测试、忽视安全审查。这种 "捷径问题" 在原型阶段尚可容忍,但一旦进入生产环境,累积的技术债务将迅速失控。addyosmani/agent-skills 是一个社区驱动的开源技能库,它将资深工程师的工作流程编码为结构化模板,使 AI 代理能够在开发的每个阶段遵循一致的质量标准。

与厂商主导的生态集成方案不同,agent-skills 专注于生产级工程实践本身。它不提供特定平台的 API 封装,而是定义了一套可复用的技能模板系统,涵盖从需求澄清到生产部署的完整生命周期。

六阶段工作流与 SKILL.md 标准格式

agent-skills 将软件开发生命周期划分为六个阶段:DEFINE(定义)、PLAN(规划)、BUILD(构建)、VERIFY(验证)、REVIEW(审查)、SHIP(交付)。每个阶段对应特定的技能集合,通过 7 个斜杠命令(/spec/plan/build/test/review/code-simplify/ship)激活。

技能模板采用统一的 Markdown 格式(SKILL.md),包含七个标准部分:

  • Frontmatter:技能名称和描述,定义触发条件
  • Overview:技能的核心目标与价值主张
  • When to Use:明确的适用场景与排除条件
  • Process:步骤化的工作流程,包含检查点和退出标准
  • Rationalizations:常见借口与反驳对照表,防止代理跳过关键步骤
  • Red Flags:警示信号,识别执行偏差
  • Verification:证据要求,确保 "看起来正确" 不等于 "完成"

这种 "流程而非散文"(Process, not prose)的设计理念,将传统的最佳实践文档转化为可执行的代理指令。每个技能不是供阅读的参考资料,而是代理必须遵循的工作流,包含明确的步骤、检查点和退出标准。

测试驱动开发:Red-Green-Refactor 与测试金字塔

test-driven-development 技能是构建阶段的核心支柱。它严格执行 TDD 的三步循环:RED(编写失败的测试)、GREEN(编写最小实现使测试通过)、REFACTOR(重构代码同时保持测试通过)。

该技能引入了 Google 工程文化中的测试金字塔模型:单元测试占 80%,集成测试占 15%,端到端测试占 5%。这种分布确保测试套件既快速又可靠 —— 小型测试(单进程、无 I/O)应在毫秒级完成,而大型测试(多机器、外部服务)仅限于关键路径。

关键实践模式包括:

Prove-It Pattern(证明模式):修复 Bug 时,首先编写能复现 Bug 的测试,确认测试失败后再实施修复,最后验证测试通过。这确保每个 Bug 修复都有对应的回归防护。

Beyonce Rule:如果你喜欢这段代码,就应该给它写测试。基础设施变更、重构和迁移不负责捕获 Bug—— 你的测试才是。

DAMP Over DRY:测试代码中,描述性和有意义的短语(Descriptive And Meaningful Phrases)优于不重复自己(Don't Repeat Yourself)。每个测试应该独立可读,像规格说明一样讲述完整的故事,而非依赖共享的辅助函数。

测试状态而非交互:断言操作的结果状态,而非验证内部方法调用序列。基于状态的测试在重构时更稳定,而基于交互的测试即使行为未变也会因实现调整而失败。

怀疑驱动开发:对抗性审查与跨模型验证

doubt-driven-development 技能解决的是代理在长时间会话中累积的上下文偏见问题。当代理对某个非平凡决策(涉及分支逻辑、跨模块边界、类型系统无法验证的属性)产生信心时,这种信心往往与正确性相关性很低。

该技能采用五步流程:CLAIM(明确声明决策及其重要性)、EXTRACT(提取最小可审查单元)、DOUBT(调用新鲜上下文的对抗性审查者)、RECONCILE(分类审查结果)、STOP(满足停止条件)。

核心机制是对抗性提示:审查者被明确要求 "找出问题" 而非 "评估质量"。提示词明确指示:"假设作者过于自信,寻找未陈述的假设、未处理的边界情况、隐藏耦合、合同违反方式、可能破坏的现有约定、意外输入下的失败模式。"

对于高风险的交互式会话,技能要求提供跨模型审查选项。通过 Gemini CLI 或 Codex CLI 等外部工具,使用不同架构的模型进行第二轮审查,以捕获单模型可能共享的盲点。所有外部 CLI 调用必须通过只读沙箱执行,防止提示注入攻击。

停止条件包括:下一轮仅返回琐碎或已考虑的问题、完成 3 个循环、或用户明确指示 "发布"。如果在 3 个循环后审查者仍提出实质性问题,则表明工件可能尚未就绪,应升级至用户决策而非继续循环。

可落地实践:Claude Code 插件与 /build auto

agent-skills 提供多平台支持,其中 Claude Code 的集成最为完整。安装方式如下:

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

对于 SSH 配置受限的环境,可使用 HTTPS 强制克隆:

/plugin marketplace add https://github.com/addyosmani/agent-skills.git
/plugin install agent-skills@addy-agent-skills

安装后,7 个斜杠命令映射到开发工作流。/build auto 是一个高级模式:在规格已存在的前提下,它生成完整计划并自主执行所有任务 —— 用户只需一次性批准计划,代理将按顺序完成实现、测试验证和独立提交,仅在失败或高风险步骤暂停。

技能还支持自动触发:设计 API 时自动激活 api-and-interface-design,构建 UI 时自动激活 frontend-ui-engineering。这种上下文感知的能力调度,减少了手动技能选择的心智负担。

局限与适配建议

agent-skills 的设计假设存在两个关键约束。首先,技能模板需要与具体项目上下文结合才能生效 —— 单纯复制 SKILL.md 到仓库不会自动执行任何验证,必须配合支持技能解析的代理运行时(如 Claude Code、Cursor 的规则系统)。

其次,跨模型审查依赖外部 CLI 工具的可用性和版本兼容性。Gemini CLI 和 Codex CLI 的安装路径、认证方式和沙箱行为在不同环境中差异显著,生产部署前需验证 which gemini 和工具版本,并通过 stdin 管道(而非命令行参数)传递包含特殊字符的审查提示,避免 shell 注入风险。

对于团队采用,建议从 test-driven-developmentcode-review-and-quality 两个技能开始,建立测试先行和变更审查的基线实践,再逐步引入 doubt-driven-development 处理高风险决策。技能的价值不在于模板本身,而在于将隐性的工程纪律转化为显性的、可验证的代理行为约束。

资料来源

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com