手动触发的 FastGPT PR 或本地分支变更梳理技能。仅当用户显式调用 $pr-change-analysis 时使用;用于 reviewer 分析一个 GitHub PR 或当前本地分支相对 upstream/main 的需求变更、影响范围、代码质量与代码风格,不用于自动审查触发。
64
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
面向代码 reviewer,先从真实 diff 还原需求与实现边界,再判断是否有超出需求的改动、过度复杂的整理、测试与模块化风险、以及与相近代码不一致的风格。
git status --short,遇到未提交改动时先说明风险并让用户决定,不要自行 stash、reset 或 checkout 覆盖。gh pr view <pr> 获取 number,title,body,author,headRefName,baseRefName,files,additions,deletions,commits。gh pr checkout <pr> 切到该 PR 分支。git fetch upstream main,默认用 upstream/main...HEAD 做审查基准。baseRefName 不是 main,在报告里明确说明,并根据上下文决定是否同时补充 upstream/<baseRefName>...HEAD 的对比。git branch --show-current。git fetch upstream main。git diff upstream/main...HEAD 和相关统计作为审查基准。main 或 diff 为空:
优先用这些命令建立全局视角:
git status --short
git branch --show-current
git fetch upstream main
git diff --stat upstream/main...HEAD
git diff --name-status upstream/main...HEAD
git log --oneline --decorate upstream/main..HEAD再按文件类型深入:
git diff upstream/main...HEAD -- <path>
git diff --word-diff=color upstream/main...HEAD -- <path>
rg -n "关键函数|关键类型|关键字段" <相关目录>检查需求来源时优先读取:
需要用 reviewer 能快速理解的方式说明:
不要只列文件名。每个关键文件都要说明它承担的行为变化。
重点找这些信号:
结论要区分:
合理扩散:为了实现需求必须改的上下游。可疑越界:看起来和需求无关,需要作者拆分或解释。高风险越界:可能导致回归,应要求拆出或补测试。检查是否:
parseApiInput,共享 schema 应放在 packages/global/openapi 或相应共享层。评价质量时给出具体文件和函数,不要泛泛说“需要优化”。
对比相邻实现,而不是只按个人偏好判断:
t(`ns:key_${value}`)、t(prefix + value)、t(variableKey) 或 t(condition ? 'ns:a' : 'ns:b') 这类动态/表达式 key;有限枚举应拆成显式分支或静态映射,并在最终调用处保留 t('ns:literal_key') 形式。改动后要检查对应语言包 key 是否齐全,避免清理脚本误删或运行时裸显 key。对每个核心改动至少做一次“调用链闭环”:
git show upstream/main:<path> 或 git diff 确认不是误读。如果发现大规模重构,先识别“纯移动/纯重命名/格式化”和“真实行为改动”,避免把噪音当成需求。
最终报告优先用以下结构,按风险高低组织,不要写冗长总结报告:
## 需求变更
- ...
## 关键实现路径
- `path/to/file.ts`: ...
## 影响范围与越界判断
- 合理扩散: ...
- 可疑越界: ...
- 高风险越界: ...
## 代码质量
- [风险等级] `path/to/file.ts`: 问题、原因、建议。
## 代码风格一致性
- ...
## 测试与验证缺口
- ...
## 需要作者确认的问题
- ...问题项必须尽量带文件路径和行号。没有发现问题时也要明确写“未发现明显越界/质量/风格问题”,并列出仍未覆盖的验证盲区。
labring/FastGPT
ca3108c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.