mcpField
P
phoenix-code-review

phoenix-code-review

github.com/existential-birds测试与质量8585 次安装11 周前更新
代码仓库

关于 phoenix-code-review

phoenix-code-review 是用于审查 Phoenix 应用的技能,覆盖控制器、上下文、路由、Plug 和 JSON API,并规定问题报告的证据与核验要求。

主要功能

  1. 01控制器与上下文审查清单
  2. 02路由和 Plug 模式检查
  3. 03JSON API 响应及分页检查
  4. 04基于证据的问题报告要求

适用场景

  1. 01审查 Phoenix 控制器改动
  2. 02检查授权与输入验证处理
  3. 03评估路由和错误处理模式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/existential-birds/beagle --skill phoenix-code-review

安装后在 Claude Code 中输入/phoenix-code-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
contexts.md
controllers.md
plugs.md
routing.md

详细介绍

Phoenix Code Review

快速参考

问题类型参考
有界上下文、Ecto 集成references/contexts.md
Actions、参数、错误处理references/controllers.md
Pipelines、作用域、已验证路由references/routing.md
自定义 plugs、身份验证references/plugs.md

审查清单

控制器
  • 业务逻辑放在上下文中,而不是控制器中
  • 控制器返回正确的 HTTP 状态码
  • Action 子句处理所有预期的模式
  • Fallback 控制器以一致的方式处理错误
上下文
  • 上下文按领域划分,而不是按技术层划分
  • 公共函数的名称清晰且以领域为重点
  • Changeset 验证所有用户输入
  • 控制器中没有 Ecto 查询
路由
  • 使用已验证路由(~p sigil),而不是字符串路径
  • Pipelines 将相关 plugs 分组
  • 资源仅使用所需的 actions
  • Scopes 将相关路由分组
Plugs
  • 通过 plugs 进行身份验证/授权
  • Plugs 可组合且用途单一
  • 在 plugs 中发送响应后调用 Halt
JSON API
  • 正确进行内容协商
  • 错误响应格式一致
  • 列表端点支持分页

有效模式(不要标记)

  • 控制器调用多个上下文 — 用于编排时有效
  • 在上下文中内联 Ecto 查询 — 上下文负责其数据访问
  • 使用 action_fallback — 集中式错误处理模式
  • 每条路由使用多个 pipelines — 这是有意的组合方式
  • 不调用 send 的 Plug.Conn.halt/1 — 可能由 fallback 处理

上下文相关规则

问题仅当以下情况时标记
缺少 changeset 验证字段接受用户输入,且没有验证
控制器过大超过 7 个 actions,或 actions 超过 20 行
缺少授权路由不是公开路由,且 pipeline 中没有 auth plug

检查关卡(按顺序运行;每步都有通过条件)

  1. 有据可查的证据 — 对于每个计划报告的问题,打开源文件,并记录从该次阅读中获得的文件路径 + 行号(不能仅凭记忆或 diff 片段)。通过条件: 每个问题都引用已打开文件中的 path:line。
  2. “已在其他位置处理”检查 — 报告“缺少验证”“缺少身份验证”或“状态码错误”之前,搜索路由器(pipelines/scopes)、控制器(action_fallback、plug)以及相关上下文,检查是否已有处理逻辑。通过条件: 记录其他位置是否已有处理(有 + 位置,或搜索后确认没有)。
  3. 验证协议 — 根据问题类型加载并应用 review-verification-protocol。通过条件: 写出问题之前,满足该技能针对这一类问题的报告前检查要求。
  4. 问题格式 — 每个问题按 [FILE:LINE] ISSUE_TITLE 的格式输出,并附上一行与引用代码相关的理由。通过条件: 每行都符合该格式。

提交问题前

只有在以上检查关卡全部通过后,才能报告问题。完整的防误报步骤请参阅 review-verification-protocol。

评论

支持 Markdown