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 skills add filipebraida/adonisjs-starter-kit --skill inertiagit clone --depth 1 https://github.com/filipebraida/adonisjs-starter-kitWrote 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/skills/filipebraida/adonisjs-starter-kit/inertia)<a href="https://agentmods.dev/skills/filipebraida/adonisjs-starter-kit/inertia"><img src="https://agentmods.dev/badge/skills/filipebraida/adonisjs-starter-kit/inertia/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/filipebraida/adonisjs-starter-kit/inertia"><img src="https://agentmods.dev/badge/skills/filipebraida/adonisjs-starter-kit/inertia.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.1 | $0.00122 | $0.01810 |
| Opus 5 | $0.00061 | $0.00905 |
| Sonnet 5 | $0.00024 | $0.00362 |
| Haiku 4.5 | $0.00012 | $0.00181 |
Grade A, and why
inertia 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 9d 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 — 138 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Inertia
Inertia is the bridge between AdonisJS routes and React pages: controllers call inertia.render('<name>', { props }), the client resolves that name to a .tsx file inside a module's ui/pages/. Shared props flow globally through an Inertia middleware. Forms use @inertiajs/react's useForm; URLs come from Tuyau's urlFor('route.name', params?) for type safety. Modals are Inertia responses too — a controller helper renders one page over another. Every provider (theme, i18n, tooltip, Tuyau, modal stack) is wired at the root client entry.
Rules
- Page location:
app/<mod>/ui/pages/<subpath>/<page>.tsx. Controllers reference the page by the path minus.tsxand everything before<mod>/:inertia.render('users/index')→app/users/ui/pages/index.tsx,inertia.render('users/create')→app/users/ui/pages/create.tsx. First segment = module. - Shell import: every page imports its layout shell explicitly ([[layout-shells]]). No runtime chooser.
- Client entry mounts the global provider tree — theme, i18n, tooltip, Tuyau, modal stack. Don't reorder without reason; theme + i18n need to be outermost so shells see them.
- Shared props: added by the Inertia middleware via
ctx.inertia.always(...). Available on the frontend via a typedusePageProps<{...}>()hook. Per-request data (page-specific) goes in the controller'sinertia.render(...)call, not in the middleware. - Form: default is
useForm(initial)from@inertiajs/react+ a plain<form onSubmit>. Callpost(urlFor('route.name'), { onSuccess, onFinish, preserveScroll }). A local<Form>wrapper is provided that adds aFormErrorsContextso nested fields can pull errors from context — use it when the form is deep enough that field components want the errors without prop-drilling. - URLs: never hardcode. Use
urlFor('route.name', { param: value })from Tuyau. Route names come fromrouter.get(...).as('route.name')in the module'sroutes.ts. - Modals: controllers return the modal helper (
modal(inertia, 'page', props, { route: 'backdrop.route' })). The modal page wraps content in the modal component and receives acloserender prop. - Navigation between pages:
router.visit(url);router.reload({ only: ['propName'], async: true })for partial reloads;router.get/post/put/delete(url, data, options)for programmatic form submits. - Types: server-generated data types come from an ace codegen; the client alias makes them available across pages. Don't duplicate the type in the page —
import typefrom the codegen path.
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.
- 9d ago First seen · 138 lines · 122 tokens per session scan A 143571c75973
inertia is a skill published in the GitHub repository filipebraida/adonisjs-starter-kit (96 stars, last pushed 1mo ago), licensed MIT. It adds 122 tokens to every session and 1,810 once invoked, about $0.0006 per session on Opus 5. 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 skills, from other repositories
coss-particles
Index of all COSS UI particle examples. Use when implementing UI features to find copy-paste-ready component patterns built on coss primitives. Each particle has a description and a JSON URL for easy installation.
coss
Helps implement coss UI components correctly. Use when building UIs with coss primitives and patterns (buttons, dialogs, selects, forms, menus, tabs, segmented controls, inputs, toasts, etc.), migrating from shadcn/Radix to coss/Base UI, composing trigger-based overlays, or troubleshooting coss component behavior.…
ui-beats
Use this skill when users want to add, customize, or troubleshoot UI Beats components in React/Next.js projects. It covers component selection, shadcn registry installation from uibeats.com, the UI Beats MCP server, motion and reduced-motion handling, and integration patterns for animated sections.
frontend-engineer
!cat skills/shared/protocols/ux-protocol.md 2>/dev/null || true !cat skills/shared/protocols/input-validation.md 2>/dev/null || true !cat skills/shared/protocols/tool-efficiency.md 2>/dev/null || true !cat .production-grade.yaml 2>/dev/null || echo "No config — using defaults" !cat .forgewright/codebase-context.md…
migrate-radix-to-base
Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects.
copilotkit-upgrade
Use when migrating a CopilotKit v1 application to v2 -- updating package imports, replacing deprecated hooks and components, switching from GraphQL runtime to AG-UI protocol runtime, and resolving breaking API changes.