🧪 Skills
AI Code Reviewer
AI 驱动的多语言代码审查工具,自动检测代码质量、潜在漏洞,生成 PR 描述和单元测试用例。
v0.1.0
Description
AI Code Reviewer
AI 驱动的代码审查工具。自动分析代码质量、发现潜在 bug、生成 PR 描述、建议测试用例。支持多种编程语言。
触发词
- 代码审查
- code review
- 代码分析
- PR 描述
- 代码质量检查
- 自动 review
核心功能
1. 代码质量分析
- 代码风格检查: 命名规范、缩进、注释完整性
- 潜在 bug 检测: 空指针、资源泄漏、边界条件
- 性能优化建议: 时间复杂度、内存使用、数据库查询
- 安全漏洞扫描: SQL 注入、XSS、敏感信息泄漏
2. 智能 PR 描述生成
输入:Git diff 或代码变更
↓
AI 分析:
- 变更摘要
- 影响范围
- 测试建议
- 注意事项
↓
输出:完整的 PR 描述 (Markdown)
3. 测试用例生成
- 根据代码逻辑生成单元测试
- 覆盖边界条件和异常场景
- 支持主流测试框架 (Jest, Pytest, JUnit 等)
4. 多语言支持
| 语言 | 支持程度 | 框架 |
|---|---|---|
| JavaScript/TypeScript | ✅ 完整 | ESLint, Jest |
| Python | ✅ 完整 | Pylint, Pytest |
| Java | ✅ 完整 | Checkstyle, JUnit |
| Go | ✅ 完整 | gofmt, go test |
| Rust | ✅ 完整 | clippy, cargo test |
| PHP | ✅ 完整 | PHPCS, PHPUnit |
配置说明
环境变量
# OpenRouter API (已有)
OPENROUTER_API_KEY=sk-or-v1-xxxxx
# GitHub Token (可选,用于自动 PR)
GITHUB_TOKEN=ghp_xxxxx
# 代码审查规则 (可选)
CODE_REVIEW_STRICTNESS=medium # low/medium/high
ENABLE_SECURITY_CHECK=true
ENABLE_PERFORMANCE_CHECK=true
本地配置
在 TOOLS.md 中添加:
### AI Code Reviewer 配置
- 默认审查严格度:medium
- 自动修复建议:是
- 生成测试用例:是
- 支持语言:JS/TS, Python, Java, Go, Rust, PHP
使用示例
基础用法
审查这段代码
指定语言
用 Python 审查这段代码
生成 PR 描述
为这个变更生成 PR 描述
生成测试
为这个函数生成单元测试
完整审查
完整审查:检查代码质量 + 生成 PR 描述 + 生成测试
输出格式
代码审查报告
🔍 AI 代码审查报告
📁 文件:src/utils/validator.js
📊 评分:85/100 (良好)
✅ 优点:
• 函数命名清晰
• 注释完整
• 错误处理得当
⚠️ 需要改进 (3 个):
1. [性能] 第 23 行:循环内重复计算,建议提取到循环外
建议:const limit = items.length; for (let i = 0; i < limit; i++)
2. [安全] 第 45 行:用户输入未验证,存在注入风险
建议:添加 sanitizeInput() 验证
3. [风格] 第 67 行:函数过长 (80 行),建议拆分
建议:拆分为 validateUser() 和 validatePermissions()
🧪 测试建议:
• 添加边界条件测试 (空数组、null、undefined)
• 添加异常输入测试
• 覆盖率目标:80%
📝 自动修复:需要我帮你修复这些问题吗?[是/否/查看建议]
PR 描述
## 🎯 变更摘要
实现了用户权限验证功能,包括角色检查和权限过滤。
## 📝 详细说明
- 新增 `validatePermissions()` 函数
- 优化了循环性能 (减少重复计算)
- 添加了输入验证防止注入攻击
## 🧪 测试
- [x] 单元测试已添加
- [x] 边界条件测试通过
- [ ] 集成测试待完成
## ⚠️ 注意事项
- 需要更新数据库迁移脚本
- 向后兼容,无需手动迁移
## 📋 检查清单
- [x] 代码审查通过
- [x] 测试覆盖率 > 80%
- [x] 文档已更新
测试用例
// 生成的测试用例
describe('validatePermissions', () => {
test('应该允许管理员访问所有资源', () => {
const user = { role: 'admin' };
expect(validatePermissions(user, 'any')).toBe(true);
});
test('应该拒绝未授权用户访问', () => {
const user = { role: 'guest' };
expect(validatePermissions(user, 'admin-only')).toBe(false);
});
test('应该处理空用户对象', () => {
expect(() => validatePermissions(null, 'resource'))
.toThrow('Invalid user object');
});
test('应该处理边界条件:空权限列表', () => {
const user = { role: 'user', permissions: [] };
expect(validatePermissions(user, 'resource')).toBe(false);
});
});
错误处理
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 语言不支持 | 非支持语言 | 提示支持的语言列表 |
| 代码过短 | 无法分析 | 建议提供完整函数/类 |
| API 限流 | 请求过多 | 自动重试 + 排队 |
| 语法错误 | 代码不完整 | 提示具体错误位置 |
定价策略
| 版本 | 价格 | 功能 |
|---|---|---|
| 免费版 | $0 | 每日 5 次审查,基础检查 |
| 专业版 | $24.99/月 | 无限审查,PR 生成,测试生成 |
| 团队版 | $79.99/月 | 团队协作,CI/CD 集成,自定义规则 |
开发优先级
- 技能框架和文档
- 代码解析引擎
- AI 审查规则库
- PR 描述生成器
- 测试用例生成器
- GitHub 集成 (自动 PR)
- CI/CD 集成
- 自定义规则支持
依赖技能
- coding-agent (代码分析)
- github (PR 操作)
更新日志
v0.1.0 (2026-03-14)
- 初始框架创建
- 完成 SKILL.md 和 README.md
- 设计审查规则和输出格式
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!