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.

Ir a la instalación

Datos de origen

Repositorio
glideapps/roto-rooter
Última actividad en el origen
6 de abril de 2026 a las 22:45
Idioma detectado de SKILL.md
inglés
Estrellas
0
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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 ```
Ver en GitHub