Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/iloveitaly/llm-ide-rules/react-routergit clone --depth 1 https://github.com/iloveitaly/llm-ide-rulesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/iloveitaly/llm-ide-rules/react-router)<a href="https://agentmods.dev/rules/iloveitaly/llm-ide-rules/react-router"><img src="https://agentmods.dev/badge/rules/iloveitaly/llm-ide-rules/react-router.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00977 |
| Opus 5 | $0.00000 | $0.00489 |
| Sonnet 5 | $0.00000 | $0.00195 |
| Haiku 4.5 | $0.00000 | $0.00098 |
Grade A, and why
react-router scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.
React Router
- You are using the latest version of React Router (v7).
- Always include the suffix
Pagewhen naming the default export of a route. - The primary export in a routes file should specify
loaderDatalikeexport default function RouteNamePage({ loaderData }: Route.ComponentProps).loaderDatais the return value fromclientLoader. - Use
href("/products/:id", { id: "abc123" })to generate a url path for a route managed by the application.- Look at routes.ts to determine what routes and path parameters exist.
- Use
export async function clientLoader(loaderArgs: Route.ClientLoaderArgs)to define aclientLoaderon a route. - Do not define
Route.*types, these are autogenerated and can be imported fromimport type { Route } from "./+types/routeFileName" - If URL parameters or query string values need to be checked before rendering the page, do this in a
clientLoaderand not in auseEffect - Never worry about generating types using
pnpm - Use
<AllMeta />instead of MetaFunction or individual<meta />tags - Use the following pattern to reference query string values (i.e.
?theQueryStringParam=value)
const [searchParams, _setSearchParams] = useSearchParams()
// searchParams contains the value of all query string parameters
const queryStringValue = searchParams.get("theQueryStringParam")
Loading Mock Data
Don't load mock data in the component function with useEffect. Instead, load data in a clientLoader:
// in mock.ts
export async function getServerData(options: any) {
// ...
}
// in web/app/routes/**/*.ts
export async function clientLoader(loaderArgs: Route.ClientLoaderArgs) {
// no error reporting is needed, this will be handled by the `getServerData`
// mock loading functions should return result in a `data` key
const { data } = await getServerData({
/* ... */
});
// the return result here is available in `loaderData`
return data;
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 95 lines · 0 tokens per session scan A 145f51282611
react-router is a cursor rule published in the GitHub repository iloveitaly/llm-ide-rules (13 stars, last pushed 4d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 977 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
react-development
Developing React components in Astro application.
10-imports
Import policy — React Router only, never Remix or react-router-dom. See rules/core/imports.md.
ai-kb
Use shared AI KB rules and context.
agent-development
Python agents are typically in folders named agent-py/ or agent/ and use the sdk-python/ package.
hydration-safety
React hydration mismatch prevention.
read-xlsx
Reading, writing, diffing, and repairing spreadsheets (.xlsx) for AI agents via the xfa MCP server.