关于 goodreview
goodreview 是一项针对未提交 Git 更改开展多专家审查的技能,可指定文件、目录或关注点。它组织不同角色独立检查并汇总结果,不会编辑文件。
主要功能
- 01审查已暂存、未暂存及未跟踪更改
- 02按路径或主题聚焦审查
- 03分配专业审查角色
- 04汇总发现并标注严重程度
- 05报告结果但不编辑文件
适用场景
- 01提交前审查更改
- 02检查特定功能或文件
- 03收集安全、测试和代码质量反馈
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agoodway/ goodskills --skill goodreview安装后在 Claude Code 中输入/goodreview确认已加载。
附带文件README.mdreferences/specialists.md
详细介绍
goodreview
使用通用子 Agent 和 references/specialists.md 中的简报,对未提交的更改进行多专家审查。此技能不使用命名的自定义 Agent。
参数
/goodreview [optional file/area to focus on]
可选参数可以是文件路径、目录、功能区域或简短的审查重点。如果省略,则审查所有未提交的更改(已暂存、未暂存和未跟踪)。
阶段 1:范围
将以下命令作为独立的 Shell 调用运行:
git diff HEAD --stat
git diff --staged --stat
git status --porcelain
git branch --show-current
遇到以下情况时停止并告知用户:
- 当前目录不是 Git 仓库,或 Git 命令失败
- 工作树干净,且未提供重点参数
- 提供的重点路径不存在
否则,确定:
- 已更改的文件,以及它们是否已暂存、未暂存或未跟踪
- 编程语言和框架
- 所属层:后端、前端、数据库、测试、文档、基础设施、配置
- 风险:身份验证、迁移、公共 API、用户可见界面、并发、性能、仅涉及文档
如果提供了重点参数,则检查该路径,除非需要周边上下文。将未跟踪文件纳入范围。
独立的第二意见审查
当所需集成可用时,第二阶段的 Fresh Eyes 和第四阶段的元分析应使用与宿主不同的模型。根据明确的系统或运行时身份确定宿主;不要仅根据已安装的工具或命令推断。每次审查只选择一次第二意见提供方,然后为每个审查阶段使用新的无状态会话。
Codex 宿主:Grok 无头模式
以单轮无头模式运行 Grok CLI,每个审查阶段启动一个新的进程:
grok --cwd [repository root] --permission-mode dontAsk --sandbox strict --tools read_file,list_dir,grep --deny 'MCPTool(*)' --disable-web-search --no-subagents --output-format plain -p "[pass prompt]"
使用参数安全的执行机制,将提示词作为一个参数传入;绝不能让提示词、差异、路径或用户内容成为 Shell 语法。每个提示词都必须自包含:
- Fresh Eyes:通用发现格式、Fresh Eyes 简报、范围信息包和相关 Git 差异
- 元分析:元分析提示词和收集到的专家发现
工具允许列表应允许 Grok 检查实际更改的文件,同时禁止编辑和 Shell 工具。由于 Grok 无法运行 git diff,请在提示词中包含相关差异。禁用 MCP 和 Web 访问,并在 Grok 的严格沙箱以及宿主提供的任何只读沙箱中运行。不要为了让失败的审查阶段运行而放宽这些限制。
不要将安装、更新或认证 Grok 作为 goodreview 的一部分。如果 grok -p 失败、没有返回可用的审查结果,或不可用,则改用通用子 Agent 或独立的宿主审查。不要用 Codex 会话替代,并将其描述为外部 Grok 意见。
Grok 宿主:通过 MCP 使用 Codex
使用最先可用的 Codex 会话工具:
mcp__codex__codexcodex__codexcodex_codex
使用自包含的审查提示词调用该工具。如果工具支持这些选项,请将 sandbox 设为 read-only,将 approval-policy 设为 never。
如果没有可用的 Codex 会话工具,则改用通用子 Agent 或独立的宿主审查。不要用 Grok 替代,并将其描述为外部 Codex 意见。
其他或未知宿主
优先使用可用的 Codex 会话工具,其次使用 grok -p。绝不要选择已知为宿主的提供方。如果两个外部提供方都不可用,则改用通用子 Agent 或独立的宿主审查。
在报告中记录实际使用的提供方。准确标注回退方式;宿主审查在角色上是独立的,但不属于跨模型第二意见。
阶段 2:选择角色并启动
对于代码更改,始终至少包含三个角色。始终添加 Fresh Eyes。
| 更改类型 | 角色 |
|---|---|
| 任意代码 | 代码质量、安全、测试 |
| Elixir/Phoenix | Elixir、安全、测试 |
| 前端 | 前端、UI/a11y、测试 |
| 架构/SQL | 数据库、安全、测试 |
| 仅文档 | 技术写作、准确性 |
| 仅测试 | QA 执行、测试、代码质量 |
| 跨层 | 代码质量、安全、测试、架构 |
如果差异涉及多个层、公有 API、基础设施或数据流,请添加架构。 如果实际需要运行测试、lint 或 CI,请添加 QA 执行。
阅读 references/specialists.md。对于每个选定角色(Fresh Eyes 除外),并行启动一个通用子 Agent。通过 Independent pass 执行 Fresh Eyes。每个通用子 Agent 的提示词按以下顺序包含:
- 共享发现约定
- 该角色的简述
- 范围说明:
Role: [name]
Branch: [branch]
Focus: [optional focus or none]
Changed files:
- [path]
Read the actual files, not only the git diff.
Return findings using the shared finding contract.
不要查找具名自定义 Agent。不要使用 Agent 目录。
如果运行时无法启动子 Agent,请在本会话中按顺序执行各角色简述,并为每份输出标注角色名称。
每位专家必须:
- 阅读已更改的文件,而不只是差异
- 专注于其职责范围
- 引用
file:line(或针对全仓库问题引用相关文件) - 标注严重程度:Critical、High、Medium、Low
- 提出具体修复方案,或注明
No findings
阶段 3:综合
收集专家报告后,综合整理:
- 合并重复发现
- 标出冲突和未解决的分歧
- 识别跨领域问题
- 保留原始角色归属
如果可以启动子 Agent,请使用通用子 Agent;否则在宿主环境中完成此轮整理。
阶段 4:元分析
对合并后的发现进行第二轮独立审查。提示词:
Review this multi-specialist analysis. What patterns do you see differently? What risks were not considered? How would you re-prioritize these findings? Challenge the assumptions. Identify findings that are over-prioritized, under-prioritized, unsupported, or missing.
通过 Independent pass 执行此轮审查。将收集到的专家发现包含在提示词中。
阶段 5:报告
只在聊天中输出报告。不要写入文件。不要创建问题、提交更改或编辑文件。
将专家标注的严重程度映射到报告分类:
- Critical → Critical(必须修复)。任何 Critical 发现都会使提交就绪状态变为 Not ready
- High 或 Medium → Warnings(建议修复)
- Low → Suggestions(可考虑)
=== GOODREVIEW: [Target] ===
Branch: [branch] | Files: [N] changed | Roles: [list]
SPECIALIST FINDINGS
[Role]: [key findings with file:line]
FRESH EYES — [Grok CLI | Codex via MCP | generic subagent | host fallback]
[Independent findings]
SECOND-OPINION META-ANALYSIS — [provider]
[Independent analysis and re-prioritization]
CROSS-SPECIALIST INSIGHTS
[Systemic issues, conflicts, overlapping patterns]
PRIORITIZED ISSUES
Critical (must fix):
- [Issue] - [file:line] - Found by: [Role]
Fix: [specific example]
Warnings (should fix):
- [Issue] - [file:line] - Found by: [Role]
Fix: [specific example]
Suggestions (consider):
- [Issue] - [file:line] - Found by: [Role]
Fix: [specific example]
COMMIT READINESS: Ready | Not ready - N critical issues remain
如果没有发现问题,请明确说明,并列出剩余风险或测试缺口。
试运行角色选择
执行该技能时(而不是编写该技能时),使用以下检查:
- 仅 Elixir 差异 → Elixir、安全、测试、Fresh Eyes
- 仅文档差异 → 技术写作、准确性、Fresh Eyes
规则
- 运行时支持时,使用并行通用子 Agent;否则按顺序执行并标注角色
- 在 Codex 上,通过
grok -p使用 Grok;在 Grok 上,使用 Codex MCP;否则使用非宿主的外部提供方 - 为 Fresh Eyes 和元分析使用新的无状态外部会话,并标明实际使用的提供方
- 每条发现都必须包含
file:line或相关文件引用,以及建议的修复方案 - 每条 git 命令都作为单独的 shell 调用运行
- 不要创建问题、提交更改或编辑文件
- 不要查找具名自定义 Agent
- 应用修复属于之后的用户请求,不属于
/goodreview
$ARGUMENTS