# Bugbot

> 主动式Bug检测器 - 扫描代码变更和diff，在问题到达生产前发现潜在Bug、竞态条件、空指针问题

- Skill: `chainlesschain/bugbot` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add chainlesschain/bugbot`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chainlesschain/bugbot/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- License: MIT
- Author: chainlesschain (https://skillmd.com/u/chainlesschain)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/chainlesschain/bugbot

---


# BugBot - 主动式Bug检测器

## 描述

在代码到达生产环境之前，主动扫描并发现潜在Bug。支持15+种Bug模式检测，包括空指针访问、未处理的Promise、竞态条件、资源泄漏、SQL注入、XSS等。

## 使用方法

```
/bugbot [--scan|--diff|--watch] [目标路径或git引用]
```

## 运行模式

| 模式    | 说明                       | 典型场景           |
| ------- | -------------------------- | ------------------ |
| --scan  | 扫描指定目录下的所有源文件 | 全量代码审查       |
| --diff  | 分析git diff，仅检查变更行 | 提交前检查、CI集成 |
| --watch | 列出近期修改文件并标记风险 | 日常监控           |

## 检测模式（15+种）

### Critical 级别

- **SQL注入**: 字符串拼接构建SQL查询
- **XSS**: 通过innerHTML注入未经转义内容
- **竞态条件**: 异步代码中的共享可变状态
- **死锁**: 嵌套锁获取

### High 级别

- **空指针/未定义访问**: 未加守卫的链式访问
- **Promise未处理**: Promise缺少catch或未await
- **资源泄漏**: 打开文件/连接后未关闭
- **无限循环**: 循环条件永远为真

### Medium 级别

- **数组越界**: 潜在的索引超出范围
- **类型隐式转换**: == 替代 === 造成意外行为
- **正则灾难性回溯**: 嵌套量词导致指数时间
- **缺少break的switch**: fall-through可能非预期

### Low 级别

- **Off-by-one**: 循环边界错误（< vs <=）
- **return后的不可达代码**: return/throw后的死代码
- **回调缺少错误处理**: 回调函数未处理error参数

## 输出格式

```json
{
  "bugs": [
    {
      "file": "src/main/database.js",
      "line": 42,
      "severity": "critical",
      "pattern": "sql-injection",
      "message": "String concatenation in SQL query",
      "suggestion": "Use parameterized queries instead"
    }
  ],
  "summary": {
    "total": 5,
    "bySeverity": { "critical": 1, "high": 2, "medium": 1, "low": 1 }
  }
}
```

## 示例

扫描整个项目:

```
/bugbot --scan src/main/
```

检查暂存区变更:

```
/bugbot --diff
```

检查最近3次提交:

```
/bugbot --diff HEAD~3
```

查看近期修改文件:

```
/bugbot --watch
```

