用途:这是一个 Remix v2 表单代码审查技能,用于在代码评审中标记违反规范的表单写法。它只负责指出问题,配套的 remix-v2-forms 技能负责讲解正确模式。
主要能力:覆盖四类问题——表单与 fetcher 选择(手动 fetch()、原生 <form>、<Form> 与 useFetcher 误用);pending 状态(useState 加载标志、用 useNavigation 做逐行状态、完全缺失 pending);上传与校验(无界内存上传、缺少 encType、FormData 未校验、镜像乐观状态);多变更路由(意图模式缺失、PUT/DELETE 无渐进增强回退)。
使用方式:按检查清单逐项核对,例如应用内变更应走 <Form> 或 <fetcher.Form> 而非 fetch()/axios;URL 不应变化时用 useFetcher,应变化时用 <Form> + redirect;pending 状态来自 useNavigation() 或 fetcher.state;逐行 pending 用逐行 fetcher.state;乐观 UI 直接读 fetcher.formData/navigation.formData;上传表单设置 encType="multipart/form-data" 并给 unstable_createMemoryUploadHandler 设 maxPartSize;FormData 值入库前校验;同一资源多变更用意图模式;formMethod 与 "POST" 等大写字符串比较。
适用场景:审查 Remix v2 路由模块中的表单、上传、乐观 UI 与多变更路由代码。
限制:需先通过硬性门槛(位置证据、豁免检查、表单方法检查、协议检查)再写结论;GET 表单、无 action 的 <Form>、多个 useFetcher、useSubmit、navigate={false}、unstable_ 前缀等属正确用法不应标记;部分规则需满足上下文条件才可标记。具体参考文件内容与配套技能细节暂未提供。