# Wo Yao Yan Pai

> 【我要验牌】迭代式代码审查与修复 Agent。触发时机：用户说"验牌"、"我要验牌"、"审查代码"、"code review"、"检查一下"时。

- Skill: `afine907/wo-yao-yan-pai` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add afine907/wo-yao-yan-pai`
- Raw SKILL.md: https://api.skillmd.com/api/skills/afine907/wo-yao-yan-pai/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: afine907 (https://skillmd.com/u/afine907)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/afine907/wo-yao-yan-pai

---


# 验牌 - 迭代式代码审查Agent


## Goal

迭代式代码审查与修复Agent。在编码任务完成后自动触发，执行多轮"code review → report → bug fix"迭代流程

## Trigger

- 用户明确要求"验牌"、"我要验牌"、"审查代码"、"code review"
  - 编码任务完成后用户说"检查一下"、"review一下"
  - 用户提及"小瘪三"、"赌侠"、"擦皮鞋"等关键词

## 流程概述

```
┌─────────────────────────────────────────────────────────┐
│                    验牌流程                              │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   开始 ──► Code Review ──► 生成报告 ──► 判定            │
│                                          │              │
│                              ┌───────────┴───────────┐  │
│                              │                       │  │
│                         有问题                    无问题 │
│                              │                       │  │
│                              ▼                       ▼  │
│                         "小瘪三"                  "赌侠" │
│                              │                       │  │
│                              ▼                       │  │
│                         擦皮鞋                       │  │
│                              │                       │  │
│                              ▼                       │  │
│                        Bug Fix                       │  │
│                              │                       │  │
│                              ▼                       │  │
│                     迭代次数+1                        │  │
│                              │                       │  │
│                              ▼                       ▼  │
│                     达到最大迭代? ────► 结束 ◄────────┘  │
│                                                         │
└─────────────────────────────────────────────────────────┘
```

## 执行步骤

### Step 1: 初始化审查状态

创建审查状态追踪：

```
## 审查状态

- 迭代次数: 0/{max_iterations}
- 当前状态: 待审查
- 历史报告: []
- 修复记录: []
```

默认 `max_iterations = 2`

### Step 2: 启动Code Review SubAgent

调用Agent工具，启动code review：

```
Agent({
  subagent_type: "general-purpose",
  prompt: """
  你是一个专业的代码审查Agent。请对以下代码进行全面审查：

  ## 审查范围

  按以下维度进行检查：

  ### 1. 代码质量 (Code Quality)
  - 代码可读性、命名规范
  - 函数复杂度、代码重复
  - 注释完整性

  ### 2. 潜在Bug (Potential Bugs)
  - 边界条件处理
  - 空值/异常处理
  - 并发安全问题

  ### 3. 性能问题 (Performance)
  - 算法复杂度
  - 内存泄漏风险
  - 不必要的计算

  ### 4. 安全漏洞 (Security)
  - 输入验证
  - 注入风险
  - 敏感数据处理

  ### 5. 最佳实践 (Best Practices)
  - 设计模式使用
  - 错误处理策略
  - 测试覆盖

  ## 输出格式

  请按以下JSON格式输出审查报告：

  ```json
  {
    "summary": "整体评价",
    "score": 0-100,
    "issues": [
      {
        "severity": "critical|high|medium|low",
        "category": "代码质量|潜在Bug|性能|安全|最佳实践",
        "location": "文件:行号",
        "description": "问题描述",
        "suggestion": "修复建议"
      }
    ],
    "passed": true|false
  }
  ```

  ## 审查目标

  [列出需要审查的文件/代码范围]
  """
})
```

### Step 3: 解析审查报告

根据报告结果判定：

| 条件 | 判定 | 状态 |
|------|------|------|
| `issues.length > 0` | 小瘪三 | 需要擦皮鞋 |
| `issues.length === 0` 且 `passed: true` | 赌侠 | 任务完成 |
| 迭代次数 >= max_iterations | 赌侠 | 强制结束 |

### Step 4: 擦皮鞋 (Bug Fix)

当判定为"小瘪三"时，执行擦皮鞋流程：

```
## 🔧 擦皮鞋 - 第 {iteration} 轮修复

判定：小瘪三
发现问题：{issue_count} 个

### 修复计划

[按优先级排列问题修复计划]

### Agent调度

规划多Agent协作修复：
```

调用Agent进行修复：

```
Agent({
  subagent_type: "general-purpose",
  prompt: """
  你是一个Bug修复Agent。请根据以下审查报告修复代码问题：

  ## 审查报告

  [粘贴审查报告]

  ## 修复要求

  1. 按严重程度从高到低修复
  2. 每个修复需说明：
     - 问题原因
     - 修复方案
     - 修改文件
  3. 修复后进行自检

  ## 修复过程

  使用CoT方式逐步分析和修复每个问题。
  """
})
```

### Step 5: 迭代控制

修复完成后：

```
迭代次数: {current + 1}/{max_iterations}

[如果未达到最大迭代次数]
状态: 继续审查
→ 返回 Step 2

[如果已达到最大迭代次数]
状态: 最终验收
→ 执行最终审查
```

### Step 6: 最终验收

```
## 🎰 最终验收

### 迭代历史

| 轮次 | 发现问题 | 修复问题 | 状态 |
|------|----------|----------|------|
| 1    | X        | Y        | 小瘪三 |
| 2    | Z        | W        | 赌侠 |

### 最终判定

[如果所有问题已修复]
🎉 恭喜！判定为【赌侠】
代码质量已达标，审查流程结束。

[如果仍有遗留问题]
⚠️ 达到最大迭代次数
遗留问题需人工介入：
[列出遗留问题]
```

## 输出模板

### 审查报告模板

```markdown
## 📋 Code Review Report - 迭代 {n}

**审查时间**: {timestamp}
**审查范围**: {files}

### 总体评分: {score}/100

### 发现问题 ({count})

#### Critical ({n})
[列表]

#### High ({n})
[列表]

#### Medium ({n})
[列表]

#### Low ({n})
[列表]

### 判定结果

{小瘪三 | 赌侠}
```

### 修复报告模板

```markdown
## 🔧 Bug Fix Report - 迭代 {n}

**修复数量**: {count}

### 修复详情

| 问题 | 文件 | 修复方式 | 状态 |
|------|------|----------|------|
| ... | ... | ... | ✅ |

### 修复后验证

[验证结果]
```

## 快速使用

```
# 启动验牌
验牌

# 指定迭代次数
验牌，迭代3次

# 审查特定文件
验牌 src/utils/helper.ts
```

## 注意事项

1. **迭代限制**: 默认2次，最多5次，避免无限循环
2. **严重性阈值**: 只修复 medium 及以上级别问题
3. **人工介入**: 连续3轮无法修复的问题标记为需人工处理
4. **上下文管理**: 大型代码库分批审查，每次不超过10个文件

