代码审查助手 review

这是一个用于在代码提交前进行系统性审查的技能。它通过执行Git命令收集变更、读取文件、分析代码质量(包括正确性、性能、安全性和TypeScript类型)、对照项目编码规范检查,并结构化输出审查报告。该技能旨在帮助开发者确保代码质量、遵循最佳实践、发现潜在问题,并促进团队协作。关键词:代码审查,Git变更分析,代码质量检查,TypeScript规范,React最佳实践,性能优化,安全漏洞扫描,自动化代码审计。

前端开发 0 次安装 0 次浏览 更新于 3/4/2026

name: review description: 在提交前审查当前会话中实现的代码变更 allowed-tools: Read, Grep, Glob, Bash(git *)

审查技能

在提交前审查当前会话中实现的代码变更。

说明

  1. 收集变更

    git status
    git diff --stat
    

    从当前工作中识别所有已修改和新增的文件。

  2. 读取变更文件 对于每个已修改或新增的文件,读取完整内容以理解实现。 对于已修改的文件,使用 git diff <文件> 查看具体变更。

  3. 分析变更 审查代码的以下方面:

    • 正确性:逻辑错误、边界情况、潜在缺陷
    • 项目规范:遵循 Terrae 模式(箭头函数、优先使用 type 而非 interface 等)
    • 性能:不必要的重新渲染、内存泄漏、低效算法
    • 安全性:XSS、注入漏洞、暴露的密钥
    • TypeScript:正确的类型标注、避免使用 any、类型安全
    • React 模式:正确的钩子使用、Effect 依赖项、清理函数
  4. 构建审查结构 使用清晰的章节格式化您的审查:

    ## 代码审查:[功能/变更名称]
    
    ### 概述
    对变更功能的简要总结。
    
    ### 代码质量与风格
    - 优点
    - 发现的问题
    
    ### 潜在问题与风险
    缺陷、边界情况或关注点。
    
    ### 性能影响
    任何性能方面的考虑。
    
    ### 改进建议
    具体、可操作的建议。
    
    ### 总结
    总体评估和后续步骤。
    
  5. 保持建设性

    • 认可好的代码,而不仅仅是提出问题
    • 引用问题时提供具体的行号
    • 建议修复方案,而不仅仅是提出问题
    • 区分阻塞性问题和锦上添花的改进
  6. 检查常见问题

    • useEffect 中缺少清理函数
    • 钩子中缺少依赖项
    • 未处理的 Promise 拒绝
    • 缺少错误边界
    • 应定义为常量的硬编码值
    • 缺少 TypeScript 类型
    • 遗留的 console.log 语句
  7. 对照项目规则验证 阅读 .claude/rules/ 目录下的规则文件,并验证代码是否遵循它们:

    • .claude/rules/typescript.md:类型、命名、排序
    • .claude/rules/javascript.md:格式化、箭头函数、显式返回、提前返回
    • .claude/rules/react/component.md:文件结构、组件结构、映射组件模板
    • .claude/rules/react/hooks.md:useEffect 提取、依赖项、记忆化规则
    • .claude/rules/react/props.md:类型提取、排序、默认值、文档
    • .claude/rules/react/patterns.md:组件大小、组合、常见模式
    • .claude/rules/react/rendering.md:条件渲染、内联函数、键、片段
    • .claude/rules/react/performance.md:资源清理、refs 与 state、图层管理、Canvas、DOM
    • .claude/rules/clean-code.md:命名、函数、注释、格式化、错误处理
    • .claude/rules/nextjs.md:App Router 文件夹结构、文件命名
    • .claude/rules/security.md:XSS、CSP、CORS、CSRF、密钥、速率限制

    使用具体的规则和文件位置标记任何违规行为。

  8. 验证页面导航 如果文档页面被添加或修改,请验证 DocsLayout 中的 prevnext 属性是否与 src/app/docs/_components/docs-sidebar.tsx 中定义的侧边栏导航顺序匹配。检查:

    • prev/next 标题与侧边栏项目标题完全一致
    • prev/next 链接指向正确的相邻页面
    • 新页面从其相邻页面链接(包括前一个和后一个)
    • 第一页没有 prev,最后一页没有 next