skills/shared/verification-loop/SKILL.md
将 B3 阶段组织为结构化验证循环,编排构建、测试、性能、统一审计、规范五个验证维度,支持增量重验、检查点保存和综合门禁评判。
npx skillsauth add leikegeek/coding-exoskeleton verification-loopInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本 Skill 是 B3(验证与统一审计)阶段的编排层,不替换现有的 testing skill、performance-analysis skill、audit-context-intake skill 和 audit-reviewer agent,而是按结构化流程调用它们,统一收集结果,管理迭代循环,直到所有维度通过或达到最大迭代次数。
每轮验证依次执行以下 5 个维度,每个维度产出三种状态之一:
| 维度 | 编号 | 检查内容 | 通过标准 | 调用的组件 |
|------|------|---------|---------|-----------|
| 构建验证 | V1 | 项目构建或类型检查通过、无阻断性错误 | 项目画像中的构建命令返回 0;无构建命令时先询问用户 | 直接执行项目构建命令 |
| 测试验证 | V2 | 项目测试通过,且单元测试由独立审视代理确认覆盖需求与生产逻辑 | 全部测试 PASS;覆盖率不低于项目基线或标注未配置;unit-test-reviewer 无 Critical | testing skill + unit-test-reviewer agent |
| 性能验证 | V3 | 无当前 family-common/profile 规则定义的 Critical 性能问题 | 无 Critical 级性能问题 | performance-analysis skill + 当前 family-common/profile 性能 skill/rules |
| 统一审计 | V4 | 基于 AuditContext 执行统一代码审计,审计维度和报告格式由 audit-reviewer 定义 | audit-reviewer 无未解决 Critical | audit-context-intake skill + audit-reviewer agent |
| 规范验证 | V5 | 项目 lint/格式/架构/命名等规范通过 | 无 ERROR 级违规 | 项目规范工具 + shared rules + 当前 family-common rules + 匹配 techStack 的 profile rules |
状态定义:
| 状态 | 含义 | 后续动作 | |------|------|---------| | ✅ 通过 | 该维度检查全部达标 | 无需重验 | | ⚠️ 有警告 | 存在非阻断性问题(Warning / Info 级别) | 记录后可继续,需在报告中说明 | | ❌ 未通过 | 存在阻断性问题(Critical / Error 级别) | 必须修复后重新验证该维度 |
docs/delivery/.state/SV-xxxxx-verification.json按 V1 → V2 → V3 → V4 → V5 顺序依次执行。如果是重验轮次,只执行状态为 ❌ 的维度,已通过的维度跳过。
AGENTS.md 读取;未配置时根据技术栈推断或询问用户)testing skillAGENTS.md 读取;未配置时根据技术栈推断或询问用户)agents/unit-test-reviewer.md 的角色约束执行单元测试审视:
testing skill 核心原则unit-test-reviewer 结论为通过 → ✅unit-test-reviewer 仅返回 Warning → ⚠️,记录覆盖率数据和审视警告unit-test-reviewer 返回 Critical → ❌,记录失败用例和审视问题performance-analysis skillaudit-context-intake skill,归一化本地流程产物:
docs/delivery/SV-xxxxx-changelist.mdgit diff main...HEADdocs/design/SV-xxxxx-tech-design.mdAGENTS.md 中的技术栈、架构模式和当前激活规则auditMode = local-flow 的 AuditContextaudit-reviewer agent 执行统一代码审计;具体维度、Git 规范检查、注释/删除代码检查、评分和报告格式以 agents/audit-reviewer.md 为准test 分支向功能分支合并代码 → ❌AGENTS.md 读取;未配置时根据技术栈推断或询问用户)rules/shared/* + 当前 family-common 规则 + 当前 techStack 对应的 profile 规则;禁止把其它技术栈规则纳入本项目判定所有维度执行完毕后,汇总结果:
情况 A — 全部通过:所有维度状态为 ✅ 或 ⚠️ → 进入第四步(综合评判)
情况 B — 存在失败维度:
修复流程:
coding skill 的编码规范)| 综合结果 | 条件 | 后续动作 | |----------|------|---------| | PASS | 所有维度 ✅ 或 ⚠️(Warning / Question 已在报告中记录,且无未解决 Critical) | 可进入 B4 交付文档齐套检查 | | FAIL | 任何维度 ❌ 且已达最大迭代次数 | 阻断,需人工介入 | | BLOCKED | 依赖条件不满足(如构建环境异常、Subagent 结果未汇总) | 阻断,需排除障碍后重试 |
安全审计已并入 V4 统一审计:V4 由
audit-reviewer一次性覆盖统一代码审计维度,不再在 V1-V5 之后额外串联security-reviewer。若存在未闭环 Critical,V4 必须判定为 ❌,不得进入 B4。
FAIL 时的处理:
验证循环结束后(无论 PASS 还是 FAIL),产出以下内容:
docs/delivery/.state/SV-xxxxx-verification.json):保存 V1-V5 当前状态、迭代轮次、失败摘要、修复动作、日志引用和下一轮重验计划,供 Agent 断点续验使用。该文件不是正式交付文档,不进入 B4 交付展示。docs/delivery/SV-xxxxx-review-report.md):整合统一审计结论、注释/删除代码检查、严重问题、改进建议、疑问与确认、Git 规范检查、评分、V1-V5 最终验证摘要、Critical 闭环状态和交付判定,作为人类阅读的质量结论文档。docs/delivery/SV-xxxxx-tech-ref.md):从变更记录和审查结果中提炼。正式交付文档必须保持摘要化:不复制完整命令输出、完整 diff 或完整测试日志;只记录结论、阻断问题、修复动作、剩余风险和必要的日志引用。机器状态文件保存结构化字段,不写叙述性长文。
当综合结果为 PASS 时,进入 B4 前必须确认以下三类正式交付文档全部存在且需求编号一致:
| 交付物 | 路径 | 最低要求 |
|--------|------|---------|
| 变更清单 | docs/delivery/SV-xxxxx-changelist.md | 已与 git diff main...HEAD 对账,无遗漏文件 |
| 技术参考文档 | docs/delivery/SV-xxxxx-tech-ref.md | 面向测试人员,包含接口、核心功能、数据流、配置和注意事项 |
| 代码评审报告 | docs/delivery/SV-xxxxx-review-report.md | 包含 V4 统一审计结论、注释/删除代码检查、Git 规范检查、评分、V1-V5 验证摘要、Critical 闭环状态和交付判定 |
任一正式交付文档缺失或不满足最低要求时,综合结果不得视为可交付;必须补齐后重新执行对应维度或交付物检查。docs/delivery/.state/SV-xxxxx-verification.json 只作为机器状态使用,可用于排障和续验,但不作为交付物齐套条件展示给用户。
每完成一个维度的验证或每完成一轮迭代,更新机器状态文件:
为控制 token 和文档体积,状态文件只记录结构化摘要信息,不粘贴大段原始日志。构建、测试、lint 等命令的完整输出应保留在终端、CI 或日志文件中,状态文件只写失败摘要、关键错误、修复动作和日志引用路径。
{
"requirementId": "SV-xxxxx",
"techDesign": "docs/design/SV-xxxxx-tech-design.md",
"branch": "feature/SV-xxxxx-xxx",
"baseBranch": "main",
"status": "running",
"currentIteration": 1,
"maxIterations": 3,
"dimensions": {
"V1_BUILD": {
"status": "pending",
"lastRunAt": null,
"passedIteration": null,
"summary": "",
"logRef": ""
},
"V2_TEST": {
"status": "pending",
"lastRunAt": null,
"passedIteration": null,
"summary": "",
"failedItems": [],
"logRef": ""
},
"V3_PERFORMANCE": {
"status": "pending",
"lastRunAt": null,
"passedIteration": null,
"summary": "",
"criticalItems": [],
"warningItems": [],
"logRef": ""
},
"V4_ALIGNMENT": {
"status": "pending",
"lastRunAt": null,
"passedIteration": null,
"summary": "",
"criticalItems": [],
"warningItems": [],
"logRef": ""
},
"V5_STANDARD": {
"status": "pending",
"lastRunAt": null,
"passedIteration": null,
"summary": "",
"criticalItems": [],
"warningItems": [],
"logRef": ""
}
},
"rerunPlan": [],
"fixHistory": [],
"finalSummaryWrittenTo": "docs/delivery/SV-xxxxx-review-report.md"
}
验证循环支持中途中断后恢复:
verification-loop(编排层)
│
├── V1 构建验证 ──→ 直接执行构建命令
├── V2 测试验证 ──→ testing skill + unit-test-reviewer agent
├── V3 性能验证 ──→ performance-analysis skill
├── V4 统一审计 ──→ audit-context-intake skill + audit-reviewer agent
└── V5 规范验证 ──→ shared rules + 当前 family-common/profile rules + lint 工具
review-report.md 供人类阅读以下配置从 AGENTS.md 读取,若未配置则使用默认值:
| 配置项 | 默认值 | 说明 |
|--------|--------|------|
| maxIterations | 3 | 最大迭代轮次,超过后标记 FAIL 需人工介入 |
| buildCommand | 按 techStack 推断或询问用户 | 构建/类型检查命令 |
| testCommand | 按 techStack 推断或询问用户 | 测试命令 |
| lintCommand | 按 techStack 推断或询问用户 | 规范检查命令 |
| coverageBaseline | 项目现有覆盖率 | 覆盖率基线,低于此值标记 ⚠️ |
development
将本地 /code 流程产物、Git 可获取变更或 GitLab Merge Request 链接归一化为统一 AuditContext,供 audit-reviewer 执行业务、质量、安全一体化审计。
tools
在 Vue 3 项目中新增或改造弹窗、表单、导入流程、编辑回填、保存提交和关闭刷新链路时使用。强调独立 Dialog、本地表单状态和封装组件优先。
development
在 Vue 3 + TypeScript 项目中新增或修改 SFC、组合式逻辑、Element Plus/Sh* 包装组件、表格和页面组件时使用。强调 Composition API、组件契约和最小改动。
development
在 Vue 3 项目中接入 swagger/codegen 生成 API、核对生成目录、临时补充接口或替换页面内请求时使用。强调不手改生成物和契约收敛。