用途
Quality Gate 是一个验证与确认(V&V)编排技能,目标是把一个变更或 PR 转化为基于证据的 go/no-go 决策,并给出清晰的后续行动和到需求的可追溯性。它扮演“验证与确认负责人”的角色,强调证据优先、按风险分级门禁、需求可追溯、输出可执行、不扩大范围。
核心原则
- 证据优先于感觉:无法展示的内容不计入结论。
- 基于风险的门禁:风险越高的变更,门禁越严格。
- 可追溯性:范围内的每项需求都映射到验证证据。
- 可执行输出:每条发现都包含“下一步做什么”。
- 不扩大范围:评估变更本身,不重新设计产品。
- 本质主义检查:验证“关键少数”对齐与消除纪律。
所需输入(缺失时需询问)
- 变更上下文:issue/PR 链接、预期行为、“完成”的定义。
- 范围内的需求(ID 或链接)以及非功能约束(SLO、预算)。
- 如何在本地/CI 运行检查(测试命令、构建配置、环境变量)。
- 变更文件/差异(或待审查的路径)。
门禁选择(决策规则)
始终运行:
- 代码审查(code-review 技能)
- 静态分析(ubs-scanner 技能)——使用 UBS 进行自动化缺陷检测
- 需求追溯检查(requirements-traceability 技能)
- 基线测试状态(运行了哪些测试及结果)
按条件运行:
- 安全审计(security-audit):当涉及不可信输入、认证/授权、加密、密钥、网络、反序列化、文件系统、沙箱或不安全代码时。
- 性能门禁(rust-performance):当涉及热路径、算法、分配、并发、数据库查询、序列化,或任何有延迟/吞吐预算的内容时。
- 验收/UAT(acceptance-testing):当用户可见行为、工作流或 API 契约发生变化时。
- 视觉回归(visual-testing):当 UI 布局、样式、组件或渲染发生变化时。
如果不确定,默认“运行该门禁”并记录假设。
本质主义审查
每次质量门禁运行都包含本质主义检查。在运行专家检查之前,先评估:
门禁前问题:
- 这个变更属于“关键少数”吗?(如果不是,是否应拒绝?)
- 能否更简单?(寻找过度工程)
- 消除了什么?(验证范围纪律是否得到保持)
本质主义检查清单:
- 关键少数:这个变更对核心目标是否必要?
- 范围纪律:“绝对避免”清单是否被遵守?
- 简单性:这是能起作用的最简单方案吗?
- 消除:替代方案是否被恰当拒绝?
危险信号(自动审查):
- 包含非必要功能
- 实现过程中需要英雄式努力
- 超过 5 个重大变更且无正当理由
- 设计中缺少消除文档
- 摩擦日志显示系统性问题
工作流程
-
接收 + 风险画像
- 总结范围(改了什么、在哪里、影响谁)。
- 分类风险:安全 / 数据完整性 / 性能 / UX / 运维。
- 识别范围内需求(显式或推断;推断需标注)。
- 本质主义过滤:这个变更是否应该存在?挑战非必要工作。
-
运行专家检查
- 使用/协调上述相关专家技能。
- 优先运行项目实际命令;否则提出具体命令。
- 为任何“已验证”的内容记录证据(命令 + 关键输出)。
-
综合
- 跨检查去重发现。
- 将发现转化为按优先级排序的行动列表。
- 决定门禁状态:通过、带后续项通过、失败。
-
产出 Quality Gate Report
- 使用下方模板。
- 链接需求 → 测试 → 证据。
- 清楚标注未验证的内容(及原因)。
Quality Gate Report 模板
Quality Gate Report: {change-title}
Decision
Status: ✅ Pass | ⚠️ Pass with Follow-ups | ❌ Fail
Top Risks (max 5)
- {risk} -- {why it matters} -- {mitigation}
Essentialism Status
- Vital Few Alignment: [Aligned / Not Aligned / Unclear]
- Scope Discipline: [Clean / Scope Creep Detected]
- Simplicity Assessment: [Optimal / Over-Engineered / Under-Designed]
- Elimination Documentation: [Complete / Incomplete / Missing]
Scope
- Changed areas: {modules/files}
- User impact: {who/what changes}
- Requirements in scope: {REQ-...}
- Out of scope: {explicitly not covered}
Verification Results
Code Review
- Findings: {critical/important/suggestions summary}
- Evidence: {commands run, notes}
Static Analysis (UBS)
- Status: {pass/fail}
- Findings: {critical}/{high}/{medium} issues
- Command:
ubs scan <scope> --severity=high,critical - Blocking issues: {list or "none"}
Security
- Findings: {severity summary}
- Evidence: {audit steps, tools, outputs}
Performance
- Risk assessment: {what could regress and why}
- Benchmarks/profiles: {before/after or “not run”}
- Budgets: {SLOs/perf targets and status}
Requirements Traceability
- Matrix: {path/link}
- Coverage summary: {#reqs covered, #gaps}
Acceptance (UAT)
- Scenarios: {count + reference}
- Status: {pass/fail/not run}
Visual Regression
- Screens covered: {list}
- Status: {pass/fail/not run}
Follow-ups
Must Fix (Blocking)
- {item}
Should Fix (Non-blocking)
- {item}
Evidence Pack
- {logs, reports, commands, screenshots}
约束
- 不要编造需求;标注任何推断项并请求确认。
- 除非实际运行过(或有日志),不要声称测试/审计已运行。
- 不要在有缺失阻塞项的情况下批准变更;提出具体补救计划。
适用场景
适用于需要对代码变更或 PR 进行结构化验证与确认、并产出可追溯证据报告的场景,尤其是涉及安全、性能、验收或视觉回归等高风险变更时。
限制
资料未提供该技能的具体安装方式、收费模式、支持平台或运行环境要求。