.claude/skills/system-pr_review/SKILL.md
当用户传入一个 review 的 pr 链接时候,触发该 skill,对 pr 进行代码审查。
npx skillsauth add labring/fastgpt pr-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
用户传入一个 review 的 pr 链接
全面审查 Pull Request 的代码质量、安全性、性能和架构设计,提供专业的改进建议
# 审查当前分支的 PR
gh pr view
# 审查指定 PR
gh pr view 6324
# 查看变更内容
gh pr diff 6324
# 查看并审查 PR
gh pr view <number> && gh pr diff <number>
# 添加审查评论
gh pr review <number> --comment -b "我的审查意见"
# 批准 PR
gh pr review <number> --approve
# 请求修改
gh pr review <number> --request-changes
# 检出 PR 分支到本地
gh pr checkout <number>
# 运行测试
pnpm test
# 运行 lint
pnpm lint
# 类型检查
pnpm tsc --noEmit
# 启动开发服务器验证
pnpm dev
# PR 信息查看
gh pr view --json title,body,author,state,files,additions,deletions
# PR diff 查看
gh pr diff
gh pr diff <number> > /tmp/pr.diff # 保存到文件
# PR commits 查看
gh pr view --json commits --jq '.commits[].messageHeadline'
# PR checks 状态
gh pr checks
# PR 评论
gh pr comment <number> --body "评论内容"
# PR 审查提交
gh pr review <number> --approve
gh pr review <number> --request-changes
gh pr review <number> --comment -b "评论内容"
# PR 操作
gh pr merge <number> --squash # Squash merge
gh pr close <number> # 关闭 PR
自动执行以下步骤:
# 1. 获取 PR 基本信息
gh pr view --json title,body,author,state,headRefName,baseRefName,additions,deletions,files
# 2. 获取 PR 变更 diff
gh pr diff
# 3. 获取 PR 的 commit 历史
gh pr view --json commits
# 4. 检查 CI/CD 状态
gh pr checks
按照以下三个维度进行系统性审查:
通用的代码质量标准,适用于所有项目:
📖 详细指南: code-quality-standards.md
FastGPT 项目特定的代码规范和约定:
快速识别和修复常见问题模式:
📖 详细清单: common-issues-checklist.md
PR 审查输出分为两个部分:
在审查过程中,需要为每个问题记录:
packages/service/core/workflow/dispatch.tsL142-L150GitHub CLI 的 gh pr review 命令不支持直接提交行级评论,需要使用 GitHub API。
# 1. 获取仓库信息
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
# 2. 准备 review 数据(包含行级评论)
cat > /tmp/review-data.json << 'EOF'
{
"body": "## 📊 代码审查总结\n\n详细的审查意见请查看下方的行级评论。",
"event": "COMMENT",
"comments": [
{
"path": "packages/service/core/workflow/dispatch.ts",
"line": 142,
"body": "🔴 **严重问题**: 这里缺少错误处理,如果 runtimeNode 为 null 会导致运行时错误。\n\n**建议**:\n```typescript\nif (!runtimeNode) {\n throw new Error(`Runtime node not found: ${nodeId}`);\n}\n```"
},
{
"path": "packages/service/core/workflow/dispatch.ts",
"line": 150,
"body": "🟡 **性能优化**: 建议将此正则表达式编译提取到函数外部,避免每次调用都重新编译。\n\n**建议**:\n```typescript\nconst NODE_ID_PATTERN = /^node_([a-f0-9]+)$/; // 在模块顶部定义\n```"
}
]
}
EOF
# 3. 使用 GitHub API 提交 review
gh api repos/$REPO/pulls/<number>/reviews \
--method POST \
--input /tmp/review-data.json
# PR Review: {PR Title}
## 📊 变更概览
- **PR 编号**: #{number}
- **作者**: @author
- **分支**: {baseRefName} ← {headRefName}
- **变更统计**: +{additions} -{deletions} 行
- **涉及文件**: {files.length} 个文件
## ✅ 优点
{列出做得好的地方}
## ⚠️ 问题汇总
### 🔴 严重问题 ({count} 个,必须修复)
{简要列出每个严重问题,并在下方添加行级评论}
### 🟡 建议改进 ({count} 个)
{简要列出每个建议}
### 🟢 可选优化 ({count} 个)
{简要列出优化建议}
## 🧪 测试建议
{建议的测试方法}
## 💬 总体评价
- **代码质量**: ⭐⭐⭐⭐☆ (4/5)
- **安全性**: ⭐⭐⭐⭐⭐ (5/5)
- **性能**: ⭐⭐⭐⭐☆ (4/5)
- **可维护性**: ⭐⭐⭐⭐☆ (4/5)
## 🚀 审查结论
{建议: 通过/需修改/拒绝}
---
## 📍 详细代码评论
已在以下位置添加了具体的行级评论:
{列出所有添加了行级评论的位置}
通过 GitHub CLI 提交整体审查报告到评论区。
| 场景 | 命令 |
|------|------|
| 批准 PR | gh pr review <number> --approve |
| 请求修改 | gh pr review <number> --request-changes |
| 一般评论 | gh pr review <number> --comment |
| 从文件提交 | gh pr review <number> --body-file /tmp/review.md |
| 添加普通评论 | gh pr comment <number> --body "内容" |
| 撤销审查 | gh pr review <number> --dismiss |
testing
当用户需要编写一个单元测试时,触发该 skill,编写单元测试。
testing
Expert prompt engineering skill that transforms Claude into "Alpha-Prompt" - a master prompt engineer who collaboratively crafts high-quality prompts through flexible dialogue. Activates when user asks to "optimize prompt", "improve system instruction", "enhance AI instruction", or mentions prompt engineering tasks.
development
FastGPT API 开发规范。重点强调使用 zod schema 定义入参和出参,在 API 文档中声明路由信息,编写对应的 OpenAPI 文档,以及在 API 路由中使用 schema.parse 进行验证。
documentation
将 FastGPT 文档从中文翻译为面向北美用户的英文。当用户提到翻译文档、i18n、国际化、translate docs、新增/修改了中文文档需要同步英文版时,使用此 skill。也适用于用户要求检查文档翻译缺失、批量翻译、或对比中英文文档差异的场景。