全面的 Elixir/Phoenix 代码审查,支持可选的并行代理
Elixir 代码审查是一项面向实际任务的技能,主要用于参数: 并行 : 如果代理支持子代理, 请在每个技术领域派出一个专门的子代理( 其它情况下, 由相同的输出顺序运行);Path: T。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
--parallel:若 agent 支持子 agent,则为每个技术领域分发一个专用子 agent(否则审查将顺序执行,输出结果完全相同)在输出中撰写 Issues 前,必须按顺序完成以下全部校验(允许作用域为空;禁止虚构发现)。
.ex/.exs/.heex 文件路径(来自步骤 1 或用户指定路径)。通过条件:打印出该文件列表,或输出 “No Elixir files in scope” —— 此时立即终止,不报告任何 Issues。.credo.exs)。通过条件:不得对项目格式化器/检查器已在该行通过的风格问题进行报告。FILE:LINE 处的原始文件(含完整上下文,而非仅 diff 片段)。通过条件:Issue 描述必须与该位置实际可观察到的代码一致。git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '.ex$|.exs$|.heex$'
CRITICAL:在标记任何风格问题前,必须先运行项目检查器。
# 检查格式化
mix format --check-formatted
# 若存在则检查 Credo
if [ -f ".credo.exs" ] || grep -q ":credo" mix.exs 2>/dev/null; then
mix credo --strict
fi
# 若已配置则检查 Dialyzer
if grep -q ":dialyxir" mix.exs 2>/dev/null; then
mix dialyzer --format short
fi
规则:
# 检测 Phoenix grep -r "use Phoenix|Phoenix.Router|Phoenix.Controller" --include="*.ex" -l | head -3 # 检测 LiveView grep -r "use Phoenix.LiveView|Phoenix.LiveComponent|~H" --include="*.ex" -l | head -3 # 检测 Oban grep -r "use Oban.Worker|Oban.insert" --include="*.ex" -l | head -3 # 检查测试文件变更 git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '_test.exs$'
加载 review-verification-protocol 技能,并在整个审查过程中持续参考其检查清单。
根据适用性加载下方各项技能(需通读其 SKILL.md 并应用其中规则)。
始终加载:
按检测结果条件加载:
| 条件 | 技能 |
|---|---|
| 检测到 Phoenix | phoenix-code-review |
| 检测到 LiveView | liveview-code-review |
| 请求性能聚焦审查 | elixir-performance-review |
| 请求安全聚焦审查 | elixir-security-review |
| 测试文件发生变更 | exunit-code-review |
若 agent 支持子 agent(且设置了 --parallel),则并行分发一个子 agent 至每个技术领域;否则按顺序执行。两种方式生成的输出完全一致。
顺序执行(默认):
并行执行(当子 agent 可用且设置了 --parallel):
在最终确定 Issues 前,必须满足 硬性校验门 中第 2–4 项。在报告任一问题前,请确认:
你必须在**单次审查中**报告所有类别(风格、逻辑、类型、测试、安全、性能)下的全部问题。禁止将问题保留至后续轮次。
提交发现前,请自问:
若任一问题答案为“是”:请**立即在本次审查中包含这些预判的下游问题**,以便作者一次性解决全部事项。
对既有代码的修复,应按其真实严重性标注等级,不受代码修改量影响。
但对 diff 前完全不存在的净新增代码 的请求,必须归类为 Informational:
此类属于供作者未来考虑的改进建议,而非审查阻塞项。
若本次为修复后的复审(re-review):
## Review Summary [1–2 句对整体发现的概述] ## Issues ### Critical (Blocking) 1. [FILE:LINE] ISSUE_TITLE - Issue: 问题描述(具体错在哪里) - Why: 为何重要(缺陷、类型安全性、安全风险等) - Fix: 具体推荐修复方案 ### Major (Should Fix) 2. [FILE:LINE] ISSUE_TITLE - Issue: ... - Why: ... - Fix: ... ### Minor (Nice to Have) N. [FILE:LINE] ISSUE_TITLE - Issue: ... - Why: ... - Fix: ... ### Informational (For Awareness) N. [FILE:LINE] SUGGESTION_TITLE - Suggestion: ... - Rationale: ... ## Good Patterns - [FILE:LINE] 模式描述(请保留此项) ## Verdict Ready: Yes | No | With fixes 1-N (仅限 Critical/Major;Minor 项可接受) Rationale: [1–2 句说明]
修复应用后,需运行与步骤 2 相同的检查,随后运行测试:
mix format --check-formatted
if [ -f ".credo.exs" ] || grep -q ":credo" mix.exs 2>/dev/null; then
mix credo --strict
fi
if grep -q ":dialyxir" mix.exs 2>/dev/null; then
mix dialyzer --format short
fi
mix test
所有调用的检查项均须通过,方可批准。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章