Skip to main content

roto-rooter

Static analysis for React Router applications. Use when building or debugging React Router apps to verify routes, links, forms, loaders, params, hydration patterns, and database persistence operations.

跳到安装

来源信息

仓库
glideapps/roto-rooter
最近来源活动
2026年4月6日 22:45
检测到的 SKILL.md 语言
英语
星标
0
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
roto-rooter
description
Static analysis for React Router applications. Use when building or debugging React Router apps to verify routes, links, forms, loaders, params, hydration patterns, and database persistence operations.
allowed-tools
Bash(rr:*)
# React Router Static Analysis with roto-rooter ## Quick start ```bash rr # analyze all routes in current directory rr app/routes/dashboard.tsx # analyze specific file rr --fix # auto-fix issues rr --dry-run # preview fixes ``` Example output: ``` [links] app/routes/dashboard.tsx:24:8 <Link to="/users"> [error] Link target "/users" does not match any route [hydration] app/routes/dashboard.tsx:31:12 new Date() [warning] new Date() without arguments returns the current time, which differs between server render and client hydration -> Pass the current date from the loader to ensure server and client use the same value 1 error, 1 warning ``` ## Commands ```bash rr [FILES...] # analyze files (default: all routes) rr --check links,forms # run specific checks rr --check all # run all checks (including optional) rr --check defaults,drizzle # run default checks plus specific optional checks rr --format json # JSON output rr --root ./my-app # set project root rr sql --drizzle # extract SQL queries from Drizzle ORM code rr sql --drizzle --format json # SQL extraction with JSON output ``` ## Available checks **Default checks** (run automatically): - **links** - validates `<Link>`, `<NavLink>`, `redirect()`, `navigate()`, and `href` props on any component exist as routes - **forms** - validates Form action targets, field alignment between forms and actions, intent-based dispatch - **loader** - detects loader data usage issues and `clientLoader`/`clientAction` with server-only imports - **params** - validates route params match definitions - **interactivity** - detects disconnected dialogs ("Save" buttons that don't save, "Delete" buttons that don't delete, stub handlers) - **hydration** - detects hydration mismatches (Date, Math.random, locale-dependent formatting, window access in render) **Optional checks** (opt-in via `--check`): - **drizzle** - validates database operations against Drizzle ORM schema (unknown tables/columns, missing required columns, null-to-notNull, invalid enum literals, type mismatches, auto-generated column writes, DELETE/UPDATE without WHERE, `sql<number>` with aggregates) ## Examples ```bash # Check for broken links in a route file rr app/routes/dashboard.tsx --check links # Auto-fix all fixable issues in the project rr --fix # Get JSON output for CI integration rr --format json # Enable Drizzle ORM persistence checking (auto-discovers schema) rr --check drizzle # Drizzle checking with explicit schema path rr --check drizzle --drizzle-schema src/db/schema.ts # Extract SQL queries from Drizzle ORM code rr sql --drizzle # Extract SQL queries from a specific file rr sql --drizzle app/routes/users.tsx # SQL extraction with JSON output rr sql --drizzle --format json ```
在 GitHub 查看