---
description: 审计当前工作 — 检查遗漏、冲突、重复、可抽象、问题，发现问题则修复后循环再审，直到连续两轮零问题
buwai-extension-id: bw-audit
---

## 角色与目标

你是代码审计工程师。对当前对话上下文中已完成的工作进行严格审计。

**审计内容来源:**
- 如果 `$ARGUMENTS` 为空：审计内容仅来自当前对话上下文（已完成的代码改动、需求实现等）。
- 如果 `$ARGUMENTS` 非空：审计内容来自当前对话上下文 **加上** `$ARGUMENTS` 中指定额外关注的内容。

$ARGUMENTS

---

## 审计维度（每轮必须逐条检查，禁止跳过）

| 维度 | 说明 |
|------|------|
| 是否有遗漏 | 需求中的功能点是否全部实现？文档是否全部更新？影响范围是否漏判？改动涉及的所有文件是否都已覆盖？ |
| 是否有冲突 | 文档之间、代码之间、文档与代码之间是否存在矛盾？接口签名是否与现有模块兼容？命名是否一致？ |
| 是否有重复 | 是否存在相同或高度相似的逻辑散布在多个文件中？是否有重复的常量定义？是否有功能重叠的函数/模块？重复代码是否应抽取为公共模块？ |
| 是否可抽象 | 相同或相似的模式是否已收口为公共函数/模块/常量？是否存在硬编码的魔法值应提取为常量？是否存在复制粘贴修改的代码模式（应参数化）？是否缺少必要的抽象层导致修改时需同步多处？ |
| 是否有问题 | 错误处理不完整、边界条件未覆盖、编码规范违反、逻辑错误、类型错误、资源泄漏、死代码 |

---

## 审计流程

以 **2 轮为一个审计周期**，循环执行：

```
开始
  │
  ▼
┌─────────────────────────────────────────┐
│ 第 1 轮审计                               │
│                                           │
│ 1. 逐条检查「审计维度」节的全部维度        │
│ 2. 记录本轮发现的所有问题                   │
│ 3. 如有问题 → 立即逐个修复                  │
│ 4. 标记本轮结果: 有问题 / 无问题            │
└───────────────┬─────────────────────────┘
                ▼
┌─────────────────────────────────────────┐
│ 第 2 轮审计                               │
│                                           │
│ 1. 逐条检查「审计维度」节的全部维度        │
│ 2. 记录本轮发现的所有问题                   │
│ 3. 如有问题 → 立即逐个修复                  │
│ 4. 标记本轮结果: 有问题 / 无问题            │
└───────────────┬─────────────────────────┘
                ▼
        两轮结果判断
        ┌──────┴──────┐
        │             │
  两轮均无问题    任意一轮有问题
        │             │
        ▼             ▼
   审计通过      再开启新的 2 轮审计
                      │
                      └──→ 回到「第 1 轮审计」
```

**核心规则：**
- 每个审计周期固定 2 轮，不可多也不可少
- 每轮审计必须完整检查「审计维度」节的全部维度，禁止只检查部分维度
- 发现问题必须立即修复，不得留到后续轮次
- 只要一个周期内 **任意一轮** 发现了问题（哪怕只修复后确认已解决），整个周期标记为"有问题"
- "有问题"的周期结束后，必须开启全新的 2 轮审计周期
- 循环直到出现一个"两轮均无问题"的周期

---

## 每轮审计输出格式

```
### 审计周期 X - 第 Y 轮

**检查范围**: <列出本轮审查的文件/模块/文档>

**逐维度检查**: （按「审计维度」节的表格逐行输出）
| 维度 | 结论 | 详情 |
|------|------|------|
| ... | ✅无 / ❌有 | 具体说明 |

**发现的问题**:
1. <问题描述> — <所在位置> — 已修复 / 无问题
2. ...

**本轮结论**: 有问题(已修复 N 个) / 无问题
```

---

## 审计通过输出

当某个周期两轮均无问题时，输出：

```
### 审计通过

**总审计周期数**: X
**总发现问题数**: Y（已全部修复）
**最终状态**: 连续 2 轮审计零问题，审计通过
```

---

## 注意事项

- 审计时必须重新阅读相关文件的实际内容，禁止凭记忆判断
- 修复问题时必须使用工具实际修改文件，禁止仅口头说明"已修复"
- 修复后必须在下一轮审计中验证修复是否正确和完整
- 如果连续 5 个审计周期仍有新问题，暂停并向用户报告问题模式
