核心审查智能体

文档审查员 AI 智能体

保持您的文档与代码同步

过时的文档比没有文档更糟糕——它会主动误导开发者。 文档审查员能捕获代码变更导致文档失效的情况。

文档审查员能捕获什么

无声的 Bug——会欺骗人的文档

过时的文档

描述旧行为的文档——最危险的文档类型

过时的 README旧的 API 示例已废弃的参数仍被记录

缺失的 API 文档

没有适当文档的公共函数和端点

未文档化的导出缺失的参数描述无返回类型文档

误导性注释

注释说的和代码做的不一致——比没有注释更糟糕

过时的 TODO错误的解释复制粘贴的注释

OpenAPI/Swagger 偏移

API 文档与实际端点不匹配——集成失败的首要原因

错误的响应模式缺失的端点过时的认证文档

组件文档同步

Storybook 和组件文档未反映 props 变更

缺失的属性错误的默认值过时的示例

类型定义不匹配

TypeDoc/JSDoc 类型与实际接口和签名不符

可选标记为必需错误的泛型缺失的联合类型

覆盖的文档类型

文档和代码可能脱节的每个地方

JSDoc / TSDoc

函数和方法文档

README 文件

项目和包概览

内联注释

代码解释和 TODO

API 文档

端点描述和示例

类型定义

接口和类型注释

Changelog 条目

版本历史准确性

独特指标

文档债务评分

就像技术债务一样,文档债务会悄无声息地累积。 我们为您的代码库提供文档健康评分—— 一个数字显示您的文档与实际情况的偏离程度。

追踪文档的时效性
识别代码变更但文档未更新的文件
确定优先修复的内容

文档健康度

73/100

README.md

上次更新 45 天前,代码已更改 12 次

src/api/

3 个端点未文档化

CHANGELOG.md

缺失 v2.3.0、v2.3.1 的条目

src/utils/

8 个导出函数没有 JSDoc

本月趋势-5 分
框架感知

深度框架理解

不只是通用的文档检查——我们理解您框架的文档模式

Next.js / React

  • 组件 prop 文档
  • Hook 使用示例
  • 路由处理器描述
  • 中间件文档

NestJS / Express

  • Swagger 装饰器同步
  • DTO 文档
  • 控制器方法文档
  • 模块描述

FastAPI / Django

  • Pydantic 模型文档字符串
  • 端点描述
  • 响应模式
  • 查询参数文档

GraphQL

  • 模式描述
  • 解析器文档
  • 类型定义
  • Mutation/Query 文档
AI 建议

对于函数 processPayment(amount, currency, options)

/**
 * 处理支付交易
 * @param amount - 以分为单位的金额(整数)
 * @param currency - ISO 4217 货币代码
 * @param options - 处理选项
 * @param options.idempotencyKey - 唯一键
 * @param options.metadata - 自定义键值对
 * @returns Promise<PaymentResult>
 * @throws PaymentError 如果被拒绝
 */
AI 驱动

不只是检测——还能生成

当我们发现缺失或过时的文档时,我们不只是报告—— 我们生成修复方案。AI 分析您的 函数签名、返回类型和使用模式,提供准确的文档建议。

自动生成 JSDoc

根据函数签名和类型创建文档

更新现有文档

修补过时文档以匹配当前代码

捕获文档偏移

需要更新的文档真实案例

过时的参数文档

过时的
/**
 * 通过 ID 获取用户
 * @param id - 用户 ID
 * @param includeDeleted - 包括软删除的用户
 */
async function getUser(id: string, options?: GetUserOptions) {
  // includeDeleted 3 个月前移到了 options 对象
  // 但 JSDoc 仍显示旧签名
}

JSDoc 显示带位置参数的旧签名

已更新
/**
 * 通过 ID 获取用户
 * @param id - 用户 ID
 * @param options - 查询选项
 * @param options.includeDeleted - 包括软删除的用户
 * @param options.fields - 要选择的字段
 */
async function getUser(id: string, options?: GetUserOptions) {
  // 文档与实际签名匹配
}

已更新以匹配当前的 options 对象模式

误导性注释

过时的
// 指数退避重试 3 次
async function fetchWithRetry(url: string) {
  const MAX_RETRIES = 5  // 从 3 改为 5
  const response = await fetch(url)
  // 实际上不再实现重试逻辑
  return response
}

注释描述的重试逻辑并不存在

已更新
// 简单的 fetch 包装器,无重试逻辑
// 如需重试,使用 @/lib/http 中的 fetchWithRetry
async function simpleFetch(url: string) {
  const response = await fetch(url)
  return response
}

注释反映实际行为

README 偏移

过时的
## 安装
```bash
npm install
npm run setup  # 此脚本已被删除
```

## 环境变量
- `DATABASE_URL` - PostgreSQL 连接
- `REDIS_URL` - Redis 连接  # 我们已改用内存缓存

README 引用了已删除的脚本和旧的 Redis 配置

已更新
## 安装
```bash
npm install
```

## 环境变量
- `DATABASE_URL` - PostgreSQL 连接字符串
- `CACHE_TTL` - 缓存持续时间(秒)(默认:3600)

文档反映当前的设置流程

语义分析

文档审查员如何工作

文档审查员不只是检查文档是否存在——它验证文档是否与代码的实际行为一致。 当您更改函数签名时,它会标记相关的 JSDoc。

语义匹配

比较文档所说的与代码所做的

变更检测

注意到代码变更使附近文档失效的情况

更新建议

提供修复文档的具体文本

分析流程

1

比较代码和文档

检查文档是否与实际实现匹配

2

检测变更

识别代码变更使现有文档失效的情况

3

标记不匹配

报告可能误导开发者的文档

4

建议更新

提供具体文本以更新文档

为什么文档准确性很重要

糟糕的文档比没有文档代价更高

更快的调试

准确的文档意味着开发者不会浪费时间走错路

更好的入职

新开发者可以信任他们读到的内容,而不是靠猜测

API 信任

用户可以依赖您的 API 文档,无需反复试错

每次代码变更都是文档偏移的机会。
文档审查员每次都能捕获它。

文档债务无处不在

这些问题每天都在悄悄发生——直到现在

65%

的 README 文件在 6 个月内过时

40%

的 JSDoc 注释与函数签名不匹配

3.2小时

因错误文档而浪费的平均调试时间

80%

的 API 文档至少缺少一个必填字段

保持文档和代码
同步

让文档审查员在偏移误导开发者之前捕获它。 免费试用 14 天,无需信用卡。

JSDoc 验证
README 同步
注释准确性