Agent skill
mock-contract-advisor
生成Mock/Stub契约检查清单,enforcing test_suites.md的Mock策略规则。当TS中Mock策略确定后使用。
Install this agent skill to your Project
npx add-skill https://github.com/tikazyq/agentic-spec-forge/tree/main/AGENTIC_SPEC_FORGE/spec_stage_skill/implementation_planning/mock-contract-advisor
SKILL.md
mock-contract-advisor: Mock/契约设计
描述
基于test_suites.md的Mock/Stub策略,生成契约定义清单和检查规则。避免过度Mock、递归Mock等反模式。
适用场景
- WORKFLOW_STEP_5 Task S5-2: 创建test_suites.md中的Mock策略章节时
- WORKFLOW_STEP_5 Task S5-3: Self-Reflection中审视Mock设计
- L2/L3项目: 需要Complex Mock/契约设计的系统
输入
- test_suites.md(Mock策略章节)
- design/(组件间接口)
- goals_breakdown.md(需要Mock的依赖项)
- 当前级别(L2/L3)
输出
- Mock/契约设计报告(markdown)
- 契约清单(哪些外部服务需要Mock)
- Mock复杂度分析(简单/中等/复杂)
- 检查清单:
- Mock粒度是否合理
- 是否存在递归Mock
- 是否使用全局Mock
- 是否定义了契约验证
- 风险识别和建议
Mock契约格式
标准Mock契约定义:
Mock: [service_name]
Purpose: [为什么需要Mock]
Contract:
Input:
- Parameter: [name]
Type: [type]
Example: [example]
Output:
- Field: [name]
Type: [type]
Example: [example]
Exceptions:
- Error: [error_type]
Condition: [when]
Response: [response]
Complexity: [Simple/Medium/Complex]
Verification: [如何验证Mock被正确调用]
Integration: [集成测试覆盖]
执行策略
第1步: 依赖识别 从design/列举所有外部依赖:
- 外部API(支付/短信/邮件等)
- 数据库(主库/缓存/队列等)
- 第三方服务(认证/分析等)
- 内部服务(其他微服务)
第2步: Mock决策 对每个依赖决定是否Mock:
| 依赖类型 | Mock | 集成测试 | 理由 |
|---|---|---|---|
| 外部API | ✅ | ✅ | 不可控,需Mock |
| 数据库 | ❌ | ✅ | 使用测试库 |
| 缓存 | ✅ | ✅ | 可Mock,也需集成 |
| 内部服务 | ✅ | ✅ | 可Mock,也需集成 |
第3步: 契约定义 为每个Mock定义清晰的契约:
- 输入参数及类型
- 输出数据及格式
- 异常情况及处理
- 验证方式
第4步: 复杂度评估
- Simple: 单一输入/输出,无异常处理
- Medium: 多参数/多返回值,有基本异常
- Complex: 复杂状态机、异步回调、多异常
第5步: 反模式检查
- ❌ 递归Mock: Mock的Mock(应该简化设计)
- ❌ 全局Mock: 全局状态Mock(应该用依赖注入)
- ❌ 过度Mock: Mock过多细节(应该集成测试)
- ❌ 无验证Mock: Mock未被验证调用(应该添加验证)
第6步: L2/L3分级
- L2: 关键依赖Mock + 基础集成测试
- L3: 完整Mock + 全面集成测试 + 异常场景覆盖
第7步: 修复建议
- 简化过度Mock的设计
- 添加缺失的集成测试
- 消除反模式
- 定义清晰的验证机制
价值
- Dev: 清晰的Mock契约定义,减少集成问题
- QA: Mock设计评审,确保测试真实性
- Architecture: 识别不合理的依赖设计
验收标准(L2/L3)
- 每个Mock都有清晰的契约定义
- 无递归Mock(Mock的Mock)
- 无全局Mock
- Mock粒度合理(不Mock过多细节)
- 存在对Mock的验证机制
- 集成测试覆盖关键依赖
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
code-review
执行代码审查流程(提交PR→自查→同行审查→反馈修改→合并),覆盖功能正确性、代码质量、测试完整性、安全合规四大维度。当提交Pull Request、进行结对编程、执行代码走查、需要知识共享时使用。支持L1/L2/L3三级审查深度。
code-quality
执行代码质量门禁检查(测试通过→覆盖率→Lint→GOAL追溯→可提交),验证单元测试覆盖率≥80%、集成测试通过率≥95%、代码规范零错误。当完成代码实现、准备提交代码、需要质量验证、进行提交前自检时使用。确保代码可合并。
tdd-cycle
执行 TDD 红绿重构循环(RED→GREEN→REFACTOR→REPEAT),通过先写失败测试、最小代码实现、保持绿色重构的节奏驱动开发。当启动功能开发、需要测试驱动节奏、进行迭代编码、追求高测试覆盖率时使用。提供检查清单和节奏控制。
refactoring
执行代码重构(识别坏味道→选择手法→小步修改→运行测试),在保持外部行为不变前提下改进内部结构。当TDD进入REFACTOR阶段、发现代码坏味道、需要消除重复代码、优化代码结构时使用。支持提取方法、类、参数对象等重构手法。
arch-options-compare
比较多个架构方案(单体/微服务等),从SOLID原则、成本、复杂度等维度评分,生成对比表和推荐方案。当需要向客户解释架构选择或ADR决策时使用。
dev-tech-view-supplement
根据设计补充Dev视角的技术细节(数据库/API/通信协议),帮助Dev快速进入实施。当L1/L2设计缺乏技术细节、或准备向Dev交付前使用。
Didn't find tool you were looking for?