SuperAPI AI 工具集

liveview-code-review

编程与开发

查看项目

更新于 10-15 21:39

技能介绍

用途:用于审查 Phoenix LiveView 代码,围绕生命周期模式、assigns 与 streams 的使用、组件写法以及安全性给出发现。触发场景包括审查 LiveView 模块、.heex 模板等。

主要能力与参考主题:生命周期(mount、handle_params、handle_event、handle_async);assigns 与 streams 的选择及 AsyncResult;函数组件与 LiveComponent、slots、attrs;逐事件授权与 phx-value 信任问题。

审查要点:重点检查是否将 socket 复制进异步函数(应先提取值)、每个 handle_event 是否校验授权、assigns 中是否含敏感数据(会在 DOM 中可见)、phx-value 数据是否被校验(用户可修改);生命周期上,订阅是否包裹在 connected?(socket) 中、是否用 handle_params 处理基于 URL 的状态、handle_async 是否处理 :loading 与 :error;数据管理上,大集合(100+ 项)是否使用 streams、渲染后不再需要的数据是否用 temporary_assigns、加载状态是否用 AsyncResult;组件方面,优先函数组件而非 LiveComponent、LiveComponent 在 update/2 中保留 :inner_block、slots 使用正确的 attr 声明、文本输入使用 phx-debounce。

不应标记的合法模式:简单 LiveView 的空 mount 返回 {:ok, socket};小列表使用 assigns(仅 100+ 项才需要 streams);无 update/2 的 LiveComponent(默认 update/2 会赋全部);无 phx-value 的 phx-click(事件可能不需要数据);heex 中的内联函数(简单转换可用)。

上下文相关规则:仅在文本输入或 textarea 且触发服务端事件时才标记缺少 debounce;仅当集合有 100+ 项或分页时才要求 streams;仅当事件修改数据且 mount 中无授权检查时才标记缺少授权检查。

硬性门槛按顺序执行:G1 证据中须有明确待审文件路径,每条发现须指向其中文件;G2 须先加载 review-verification-protocol 并按预报告验证;G3 每条发现须用 [FILE:LINE] 且该行经读取或 grep 确认;G4 须对照“不应标记”清单和上下文规则筛查。发现格式为 [FILE:LINE] ISSUE_TITLE。

限制:资料未提供安装方式、依赖、运行命令、收费与平台信息;具体使用方式(如何调用该技能)暂未提供。