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.

Zur Installation springen

Quellinformationen

Repository
glideapps/roto-rooter
Letzte Quellaktivität
6. April 2026 um 22:45
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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 ```
Auf GitHub ansehen