git-pr-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited git-pr-review (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
bensz-collect-bugs 规范记录到 ~/.bensz-skills/bugs/,不要直接修改用户本地已安装的 skill 源码;若有 workaround,先记 bug,再继续完成任务。gh 上传新增 bug 到 huangwb8/bensz-bugs;不要 pull / clone 整个仓库。面向“帮助用户决策如何处理某个 GitHub PR”的只读评审技能。
gh pr checkout、不要运行 PR 分支脚本、不要安装 PR 引入的依赖、不要触发可疑 CI/CD。.bensz-api/skills/git-pr-review/;若用户另有指定,才使用用户指定目录。github_repo(必需)owner/repo,例如 https://github.com/owner/repoissues/、pull/、tree/ 这类子页面 URLgithub_pr(必需)#123、123 或 pr-123extra_instructions(可选)review_count(可选)build_parallel_review_plan.py 时,把它映射为 --n <review_count>workspace_dir(可选).bensz-api/skills/git-pr-review/report_dir(可选)优先使用确定性脚本创建本次评审目录与建议输出文件名:
python3 git-pr-review/scripts/prepare_review_job.py \
--repo "https://github.com/owner/repo" \
--pr "https://github.com/owner/repo/pull/123"脚本会:
.bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/)manifest.jsonraw/README.mdnotes/user_context.mdnotes/community_good_pr.mdevidence/key_findings.mdevidence/missing_items.md从这一步开始,所有抓取到的原始材料、分析笔记、临时摘要、命令输出都写入该工作区。
优先选择不会修改仓库状态的方式读取 PR:
.patch / .diffgh pr view、gh pr diff、gh api 这类只读命令建议至少保存下列材料到工作区:
raw/pr_meta.*:标题、作者、状态、标签、基线分支、merge 状态、CI 状态raw/pr_diff.*:完整 diff 或 patchraw/pr_comments.*:review comments / discussion(如有)raw/linked_issues.*:关联 issue / discussion / docs(如有)notes/user_context.md:用户给的补充信息notes/community_good_pr.md:关于“好 PR”的社区标准摘记与链接notes/license_review.md:license / 合规审查笔记(如本次 PR 相关)evidence/missing_items.md:缺失材料、原因与影响如果某项拿不到,要在工作区里记录“未获取原因”以及它对结论的影响,而不是静默跳过。
目标:
parallel-vibe 在多个独立 workspace 中做 N 次彼此独立的 PR 审查N=5RESULT.mdRESULT.md 聚合为一份统一摘要,再用于最终报告推荐顺序:
python3 git-pr-review/scripts/build_parallel_review_plan.py \
--manifest .bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/manifest.json \
--n 5这里的 --n 是 helper script 参数;如果用户说“做 7 次独立评审”,等价于 review_count=7,最终在脚本层落成 --n 7。
该脚本会在本次 run 目录下生成:
parallel_review/input_snapshot/:供每个 thread 复制的审查输入快照parallel_review/parallel_plan.json:parallel-vibe 的计划文件parallel_review/parallel_review_job.json:后续运行与聚合所需路径、已解析好的 parallel-vibe 脚本路径、固定的 project_id 与 recommended_command重要说明:
parallel_review/parallel_review_job.json 里的 recommended_command,避免手动拼路径或 project_idraw/、notes/、evidence/ 有变化,必须重新运行 build_parallel_review_plan.py,让输入快照和 project_id 一起刷新然后运行:
# 更推荐直接复制 `parallel_review_job.json` 里的 `recommended_command`
python3 ../parallel-vibe/scripts/parallel_vibe.py \
--plan-file .bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/parallel_review/parallel_plan.json \
--src-dir .bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/parallel_review/input_snapshot \
--out-dir .bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/parallel_review/parallel_runs \
--project-id <parallel_review_job.json.project_id>并行独立评审完成后,聚合结果:
python3 git-pr-review/scripts/aggregate_parallel_reviews.py \
--job-file .bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/parallel_review/parallel_review_job.json如果 parallel-vibe 还没跑完、某个 thread 缺少 RESULT.md,或聚合输入不完整,聚合脚本应明确报错并停止,而不是静默生成误导性摘要。
聚合脚本会生成:
parallel_review/independent_review_summary.mdparallel_review/independent_review_summary.json要求:
RESULT.md 必须至少包含 recommendation / risk / evidence gaps至少回答清楚:
如果 PR 描述模糊,必须从 diff、关联 issue、评论线程中补足上下文。
必须显式判断该 PR 是否存在恶意或高风险特征,并给出风险等级: Low / Medium / High / Critical
重点检查:
只要怀疑恶意,就要把建议提升为:
不要 merge建议人工安全复核 / 维护者升级处理这是强制步骤之一。即使用户没有主动提到 license,只要 PR 涉及下列内容,就必须显式检查:
LICENSE / NOTICE / copyright header至少回答清楚:
LICENSE、NOTICE、README、第三方声明文档对于 license 不明确、明显冲突、或可能触发 GPL/AGPL/SSPL 等传播义务的情况:
Request changes、Do not merge 或至少 Escalate security review / 合规复核参考:references/license-checklist.md
这里的默认做法不是每次执行都实时联网。
本 skill 已经把“什么是好 PR”的基础标准沉淀到:
references/good-pr-standards.md并且在初始化工作区时,会自动把该参考摘要写入:
notes/community_good_pr.md默认执行时:
notes/community_good_pr.md 里的内置标准只有在以下情况才需要再联网补充:
即使需要补充联网,也应把新增来源继续沉淀到本次 run 的 notes/community_good_pr.md,而不是只在脑中使用。
不是机械照抄“最佳实践”,而是要回答:
将最终结论写成 Markdown,默认放在项目根目录,文件名格式:
Git-PR-Review_{repo_slug}_{pr_slug}_{timestamp}.md
例如:
Git-PR-Review_openai_openai-python_pr-2451_20260324153022.md
报告必须包含以下章节:
## 结论摘要## 独立评审综合结果## PR 在解决什么问题## 方案分析## 恶意/安全风险审查## License / 合规审查## 与“好 PR”社区标准的对照## 关键证据## 证据不足与待确认点## 建议的处理方式完整模板不要直接内嵌在 SKILL.md,而是统一引用:
references/report-template.md写最终报告时,必须综合:
raw/、notes/、evidence/)parallel_review/independent_review_summary.mdparallel_review/parallel_runs/.bensz-api/skills/parallel-vibe/<project_id>/@main/summary.md在交付前运行校验脚本,确认:
python3 git-pr-review/scripts/validate_review_artifacts.py \
--manifest .bensz-api/skills/git-pr-review/{yyyy-mm-dd-hh-mm}/manifest.json \
--report /abs/path/to/Git-PR-Review_<...>.md.bensz-api/skills/git-pr-review/ 之外(除最终 Markdown 报告)references/report-template.md:最终报告模板references/security-checklist.md:恶意/高风险 PR 审查清单references/license-checklist.md:license / 合规审查清单references/community-research-playbook.md:如何搜索“好 PR”社区标准references/parallel-review-result-template.md:独立评审 thread 的 RESULT.md 结构references/parallel-vibe-integration.md:parallel-vibe 集成方式与关键产物~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.