code-reviewer by charon-fan/agent-playbook
npx skills add https://github.com/charon-fan/agent-playbook --skill code-reviewer一个全面的代码审查技能,用于分析拉取请求和代码变更的质量、安全性、可维护性以及最佳实践。
当您进行以下操作时,此技能将被激活:
获取变更文件
git diff main...HEAD --name-only
git log main...HEAD --oneline
获取差异
git diff main...HEAD
理解项目上下文
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
使用以下结构化格式提供审查反馈:
# 代码审查
## 摘要
变更的简要概述(2-3 句话)。
## 按严重程度分类的问题
### 严重
必须在合并前修复。
- [ ] **问题标题**:描述,包含文件:行号引用
### 高
除非有充分理由,否则应在合并前修复。
- [ ] **问题标题**:描述,包含文件:行号引用
### 中
考虑修复,可以在后续跟进中完成。
- [ ] **问题标题**:描述,包含文件:行号引用
### 低
值得拥有的改进。
- [ ] **问题标题**:描述,包含文件:行号引用
## 积极亮点
本次 PR 中做得好的地方。
## 建议
不需要立即采取行动的可选改进。
## 批准状态
- [ ] 批准
- [ ] 批准但附带建议
- [ ] 请求更改
| 问题 | 模式 | 建议 |
|---|---|---|
| 硬编码密钥 | const API_KEY = "sk-" | 使用环境变量 |
| SQL 注入 | \"SELECT * FROM...\" + user_input | 使用参数化查询 |
| XSS 漏洞 | innerHTML = user_input | 清理或使用 textContent |
| 缺少授权检查 | 没有 @RequireAuth 的新端点 | 添加身份验证中间件 |
| 问题 | 模式 | 建议 |
|---|---|---|
| N+1 查询 | 循环中包含数据库调用 | 使用预加载或批量查询 |
| 不必要的重新渲染 | useEffect 中缺少依赖项 | 修复依赖数组 |
| 内存泄漏 | 未移除的事件监听器 | 在 useEffect 的返回函数中添加清理 |
| 低效循环 | 嵌套循环 O(n²) | 考虑使用哈希映射或不同算法 |
| 问题 | 模式 | 建议 |
|---|---|---|
| 重复代码 | 重复的相似代码块 | 提取为函数 |
| 魔法数字 | if (status === 5) | 使用命名常量 |
| 函数过长 | 函数超过 50 行 | 拆分为更小的函数 |
| 复杂条件 | `a && b |
| 问题 | 模式 | 建议 |
|---|---|---|
| 没有测试 | 新功能没有测试文件 | 添加单元测试 |
| 未测试的边界情况 | 测试仅覆盖正常路径 | 添加边界情况测试 |
| 脆弱的测试 | 测试依赖于实现细节 | 测试行为,而非实现 |
| 缺少断言 | 测试没有进行任何断言 | 添加适当的断言 |
unknown 而非 anyinterface,联合类型使用 typeas 断言useCallback/useMemo(不要过早优化)确认以下事项:
运行审查清单脚本:
python scripts/review_checklist.py <pr-number>
references/checklist.md - 完整的审查清单references/security.md - 安全审查指南references/patterns.md - 常见模式和反模式每周安装数
44
代码库
GitHub 星标数
11
首次出现时间
2026年1月22日
安全审计
安装于
codex37
gemini-cli37
opencode37
cursor36
github-copilot33
amp33
A comprehensive code review skill that analyzes pull requests and code changes for quality, security, maintainability, and best practices.
This skill activates when you:
Get changed files
git diff main...HEAD --name-only
git log main...HEAD --oneline
Get the diff
git diff main...HEAD
Understand project context
Use this structured format for review feedback:
# Code Review
## Summary
Brief overview of the changes (2-3 sentences).
## Issues by Severity
### Critical
Must fix before merge.
- [ ] **Issue Title**: Description with file:line reference
### High
Should fix before merge unless there's a good reason.
- [ ] **Issue Title**: Description with file:line reference
### Medium
Consider fixing, can be done in follow-up.
- [ ] **Issue Title**: Description with file:line reference
### Low
Nice to have improvements.
- [ ] **Issue Title**: Description with file:line reference
## Positive Highlights
What was done well in this PR.
## Suggestions
Optional improvements that don't require immediate action.
## Approval Status
- [ ] Approved
- [ ] Approved with suggestions
- [ ] Request changes
| Issue | Pattern | Recommendation |
|---|---|---|
| Hardcoded secrets | const API_KEY = "sk-" | Use environment variables |
| SQL injection | \"SELECT * FROM...\" + user_input | Use parameterized queries |
| XSS vulnerability | innerHTML = user_input | Sanitize or use textContent |
| Missing auth check | New endpoint without @RequireAuth | Add authentication middleware |
| Issue | Pattern | Recommendation |
|---|---|---|
| N+1 query | Loop with database call | Use eager loading or batch queries |
| Unnecessary re-render | Missing dependencies in useEffect | Fix dependency array |
| Memory leak | Event listener not removed | Add cleanup in useEffect return |
| Inefficient loop | Nested loops O(n²) | Consider hash map or different algorithm |
| Issue | Pattern | Recommendation |
|---|---|---|
| Duplicate code | Similar blocks repeated | Extract to function |
| Magic number | if (status === 5) | Use named constant |
| Long function | Function >50 lines | Split into smaller functions |
| Complex condition | `a && b |
| Issue | Pattern | Recommendation |
|---|---|---|
| No tests | New feature without test file | Add unit tests |
| Untested edge case | Test only covers happy path | Add edge case tests |
| Brittle test | Test relies on implementation details | Test behavior, not implementation |
| Missing assertion | Test doesn't assert anything | Add proper assertions |
unknown instead of any for untyped valuesinterface for public APIs, type for unionsas assertions when possibleuseCallback/useMemo appropriately (not prematurely)Confirm the following:
Run the review checklist script:
python scripts/review_checklist.py <pr-number>
references/checklist.md - Complete review checklistreferences/security.md - Security review guidelinesreferences/patterns.md - Common patterns and anti-patternsWeekly Installs
44
Repository
GitHub Stars
11
First Seen
Jan 22, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex37
gemini-cli37
opencode37
cursor36
github-copilot33
amp33
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
152,900 周安装