con un clic
ruby-best-practices
Ruby 代码审查规则。当审查 .rb 文件时套用。检查安全性(eval/命令注入/反序列化)、异常处理、元编程规范、代码块使用惯例。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Ruby 代码审查规则。当审查 .rb 文件时套用。检查安全性(eval/命令注入/反序列化)、异常处理、元编程规范、代码块使用惯例。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Angular 代码审查规则。当审查 Angular 项目的 .ts 文件(组件/服务/Directive)时套用。检查 DI、RxJS 订阅管理、Signals、Change Detection、模板安全([innerHTML] XSS)。
跨语言通用代码质量规则。当没有匹配的语言特定 skill 时作为 fallback 使用。适用于函数复杂度、命名规范、死代码、魔法数字。
Go 代码审查规则。当审查 .go 文件时套用。检查错误处理、goroutine 生命周期、接口设计、命名惯例、defer 使用。
Java 代码审查规则。当审查 .java 文件时套用。检查异常处理、资源管理(try-with-resources)、Optional 使用、Stream API、安全漏洞。
Python 代码审查规则。当审查 .py 文件时套用。检查类型注解、异常处理、命名规范、函数复杂度、安全漏洞(eval/exec/pickle/yaml.load/os.system)。
React/Next.js 代码审查规则。当审查 JSX/TSX 文件(React 项目)时套用。检查组件设计、Hooks 使用、状态管理、性能、安全(XSS)。
| name | ruby_best_practices |
| description | Ruby 代码审查规则。当审查 .rb 文件时套用。检查安全性(eval/命令注入/反序列化)、异常处理、元编程规范、代码块使用惯例。 |
| category | style |
| reviewer_type | style |
| languages | ["ruby"] |
.rb 文件(非测试文件)test/, spec/, *_test.rb, *_spec.rb)→ 测试 DSL 的模式不同;测试中可以 rescue 任意异常before_action、metaprogramming)method_missing 和 instance_eval 是 DSL 的正常模式eval(user_input) — 用户输入作为 Ruby 代码执行 → errorinstance_eval(user_input) / class_eval(user_input) → errorsend(user_input) 方法名来自用户输入且未白名单 → error`command #{user_input}` 反引号拼接用户输入 → errorsystem("cmd #{user_input}") → errorexec("cmd #{user_input}") → error%x(cmd #{user_input}) — 等同反引号 → errorOpen3.capture / popen 参数来自用户 → errorYAML.load(user_data) → error(应用 safe_load 或指定 permitted_classes)Marshal.load(user_data) → errorrescue Exception — 必须 rescue StandardError 子类ensure 块中禁止 return 或 raisemethod_missing 必须同步覆写 respond_to_missing?define_method 替代 method_missinginstance_eval / class_eval 需注释说明原因Module#prepend 优于 reopen classProc.new / lambdaeach 返回 receiver、map 返回新数组find(非 select.first)、any?(非 select.any?)snake_case;谓词 ? 结尾;危险方法 ! 结尾True Positive: 代码会引入安全漏洞或运行时异常。Confidence > 0.7。
False Positive:
constantize、try、send 是框架正常用法method_missing 在 DSL gem 中是有意设计rescue Exception 在顶层错误处理器或测试中可能是有意的eval 在 IRB/控制台代码或 build 脚本中YAML.load 加载可信配置文件(但应建议换成 safe_load)