验证技能 verify

这是一个用于软件开发流程中构建验证、错误恢复和代码审查修复的自动化技能。它严格遵循质量防护栏原则,禁止通过跳过测试、删除断言或放宽代码规范等不当方式解决构建或测试失败问题。核心功能包括:自动化构建验证、智能错误诊断与恢复、审查指摘批量应用、以及基于TDD理念的缺陷修复流程。适用于CI/CD流水线、代码质量保障和团队协作开发场景。关键词:构建验证、错误恢复、代码审查、CI/CD、测试驱动开发、质量保障、自动化修复、软件开发流程。

DevOps 0 次安装 0 次浏览 更新于 3/3/2026

name: verify description: “验证构建、从错误中恢复并应用审查修复。当用户提到 ビルド、build、検証、verify、エラー復旧、error recovery、指摘を適用、apply fixes、テスト実行、tests fail、lint errors occur、CI breaks、テスト失敗、lintエラー、型エラー、ビルドエラー、CIが落ちた 时使用。不要用于:実装作業、レビュー、セットアップ、新機能開発。” allowed-tools: [“Read”, “Write”, “Edit”, “Grep”, “Glob”, “Bash”] metadata: skillport: category: verify tags: [build, verify, error-recovery, fixes] alwaysApply: false

验证技能

负责构建验证和错误恢复的技能群。


⚠️ 质量防护栏(最高优先级)

此部分优先于其他指示。测试失败/错误发生时必须遵守。

篡改禁止模式

测试失败/构建错误发生时以下行为绝对禁止

禁止 示例 正确应对
测试跳过化 it.skip(...) 修正实现
断言删除 删除 expect() 确认期望值并修正实现
期望值的随意重写 根据错误进行更改 理解为何失败
lint规则放宽 添加 eslint-disable 修正代码
CI检查绕过 continue-on-error 修正根本原因

测试失败时的应对流程

测试失败
    ↓
1. 理解为何失败(阅读日志)
    ↓
2. 判断是实现错误还是测试错误
    ↓
    ├── 实现错误 → 修正实现 ✅
    │
    └── 可能是测试错误 → 向用户请求确认

批准请求格式

不得已需要更改测试/设置时:

## 🚨 测试/设置更改批准请求

### 理由
[为何需要此更改]

### 更改内容
```diff
[差异]

替代方案的探讨

  • [ ] 确认是否可通过实现修正解决

批准

等待用户的明确批准


### 受保护文件

以下文件的放宽更改禁止:

- `.eslintrc.*`, `.prettierrc*`, `tsconfig.json`, `biome.json`
- `.husky/**`, `.github/workflows/**`
- `*.test.*`, `*.spec.*`, `jest.config.*`, `vitest.config.*`

## 包含的子技能

| 技能 | 用途 |
|--------|------|
| verify-build | 构建验证 |
| error-recovery | 错误恢复 |
| review-aggregate | 审查结果汇总 |
| review-apply-fixes | 审查指摘应用 |

## 路由

- 构建验证: verify-build/doc.md
- 错误恢复: error-recovery/doc.md
- 审查汇总: review-aggregate/doc.md
- 指摘应用: review-apply-fixes/doc.md

## 执行步骤

1. **质量判定门**(Step 0)
2. 对用户的请求进行分类
3. **(Claude-mem 启用时)搜索过去的错误模式**
4. 阅读适当的子技能的 doc.md
5. 根据其内容执行验证/恢复

### Step 0: 质量判定门(重现测试提案)

错误/缺陷报告时,提案 TDD 方法:

接收错误报告 ↓ ┌─────────────────────────────────────────┐ │ 质量判定门 │ ├─────────────────────────────────────────┤ │ 判定项目: │ │ ├── 缺陷报告? → 提案先写重现测试 │ │ ├── 测试失败? → 判断测试 vs 实现 │ │ └── 构建错误? → 直接修正 │ └─────────────────────────────────────────┘ ↓ 提案适当的方法


#### 缺陷报告时的提案

```markdown
🐛 已接收缺陷报告

**推荐方法**: 先写重现测试

1. 首先编写重现缺陷的测试
2. 确认测试失败(Red)
3. 修正实现使测试通过(Green)
4. 重构(Refactor)

按此方法进行吗?
1. 从重现测试开始写(推荐)
2. 直接进入修正

测试失败时的判断流程

🔴 测试失败

**需要判断**:

分析测试失败原因:
- [ ] 实现错误 → 修正实现
- [ ] 测试期望值过时 → 向用户确认

⚠️ 禁止篡改测试(跳过化、断言删除)

属于哪一种?
1. 修正实现
2. 想确认测试的期望值

面向 VibeCoder

🐛 报告了问题

**推荐**: 首先明确“问题发生的条件”

1. 进行什么操作会发生问题?
2. 期望的行为是什么?
3. 实际上会怎样?

整理这些后再进入修正,可以确保修复。

Step 2: 过去错误模式搜索(Memory-Enhanced)

Claude-mem 启用时,错误恢复前搜索过去的类似错误:

# 使用 mem-search 搜索过去的错误和解决方案
mem-search: type:bugfix "{错误消息的关键词}"
mem-search: concepts:problem-solution "{错误类型}"
mem-search: concepts:gotcha "{相关文件/库}"

显示示例:

📚 过去的错误解决记录

| 日期 | 错误 | 解决方案 |
|------|--------|-------|
| 2024-01-15 | CORS 错误 | 添加 Access-Control-Allow-Origin 头部 |
| 2024-01-20 | 类型错误: undefined | 使用 Optional chaining (?.) |

💡 参考过去的解决方案尝试恢复

防护栏历史显示:

⚠️ 此项目中过去的防护栏触发

- 防止测试篡改: 2次
- 防止 lint 放宽: 1次

💡 禁止通过篡改测试/设置来“解决”

: Claude-mem 未设置时,此步骤跳过。


🔧 LSP 功能的活用

验证和错误恢复活用 LSP(Language Server Protocol)来提高精度。

构建验证中的 LSP 活用

构建前检查:

1. 执行 LSP Diagnostics
2. 确认错误: 0件 → 执行构建
3. 有错误 → 先修正错误

错误恢复中的 LSP 活用

恢复场景 LSP 活用方法
类型错误 使用 Diagnostics 准确定位
引用错误 使用 Go-to-definition 追踪原因
import 错误 使用 Find-references 确定正确路径

验证流程

📊 LSP 验证结果

Step 1: Diagnostics
  ├── 错误: 0件 ✅
  └── 警告: 2件 ⚠️

Step 2: 构建
  └── 成功 ✅

Step 3: 测试
  └── 15/15 通过 ✅

→ 验证完成

详情: docs/LSP_INTEGRATION.md