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 skills/krivoox/agent-stack-template/react-hook-formnpx skills add krivoox/agent-stack-template --skill react-hook-formgit clone --depth 1 https://github.com/krivoox/agent-stack-templateWhat 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.00085 | $0.01549 |
| Opus 5 | $0.00043 | $0.00775 |
| Sonnet 5 | $0.00017 | $0.00310 |
| Haiku 4.5 | $0.00009 | $0.00155 |
Grade A, and why
react-hook-form 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 2d 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 — 128 lines — stays where its author put it; the contents beside it link to each section on GitHub.
React Hook Form Best Practices by Community
Comprehensive performance optimization guide for React Hook Form applications. Contains 45 rules across 8 categories, prioritized by impact to guide form development, automated refactoring, and code generation.
When to Apply
Reference these guidelines when:
- Writing new forms with React Hook Form
- Configuring useForm options (mode, defaultValues, validation)
- Subscribing to form values with watch / useWatch / subscribe
- Integrating controlled UI components (MUI, shadcn, Ant Design)
- Managing dynamic field arrays with useFieldArray
- Handling async submit, server errors, and submit lifecycle state
- Reviewing forms for performance issues
When NOT to Use This Skill
- React 19 Server Actions /
useActionState— use thereact-19skill instead - Deeply nested, fully type-safe forms — TanStack Form may be a better fit for forms with complex nested schemas; this skill assumes you've already chosen RHF
- Single-input or trivial forms — uncontrolled
<form>+FormDatais often simpler than pulling in any library
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Form Configuration | CRITICAL | formcfg- |
| 2 | Field Subscription | CRITICAL | sub- |
| 3 | Controlled Components | HIGH | ctrl- |
| 4 | Validation Patterns | HIGH | valid- |
| 5 | Field Arrays | MEDIUM-HIGH | array- |
| 6 | State Management | MEDIUM | formstate- |
| 7 | Integration Patterns | MEDIUM | integ- |
| 8 | Advanced Patterns | LOW | adv- |
Quick Reference
1. Form Configuration (CRITICAL)
formcfg-validation-mode- Use onSubmit mode for optimal performanceformcfg-revalidate-mode- Consider reValidateMode for expensive validationformcfg-default-values- Always provide defaultValues for form initializationformcfg-async-default-values- Use async defaultValues for server dataformcfg-should-unregister- Enable shouldUnregister for dynamic form memory efficiencyformcfg-useeffect-dependency- Avoid useForm return object in useEffect dependenciesformcfg-disabled-prop- Understand that register's disabled prop clears the value
What ships with it
49 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- AGENTS.md 11 KB
- assets/templates/_template.md 589 B
- README.md 3.6 KB
- references/_sections.md 1.8 KB
- references/adv-devtools-performance.md 1.8 KB
- references/adv-formprovider-memo.md 2.0 KB
- references/adv-testing-wrapper.md 1.8 KB
- references/array-complete-default-objects.md 1.9 KB
- references/array-separate-crud-operations.md 2.0 KB
- references/array-unique-fieldarray-per-name.md 1.7 KB
- references/array-use-field-id-as-key.md 1.7 KB
- references/array-virtualization-formprovider.md 1.8 KB
- references/ctrl-avoid-double-registration.md 1.3 KB
- references/ctrl-controller-field-props.md 1.7 KB
- references/ctrl-local-state-combination.md 2.0 KB
- references/ctrl-single-usecontroller-per-component.md 1.8 KB
- references/ctrl-usecontroller-isolation.md 2.8 KB
- references/formcfg-async-default-values.md 1.8 KB
- references/formcfg-default-values.md 1.7 KB
- references/formcfg-disabled-prop.md 3.3 KB
- references/formcfg-revalidate-mode.md 2.3 KB
- references/formcfg-should-unregister.md 1.8 KB
- references/formcfg-useeffect-dependency.md 1.5 KB
- references/formcfg-validation-mode.md 1.6 KB
- references/formstate-async-submit-lifecycle.md 3.5 KB
- references/formstate-avoid-isvalid-with-onsubmit.md 1.7 KB
- references/formstate-destructure-formstate.md 1.3 KB
- references/formstate-getfieldstate-for-single-field.md 1.6 KB
- references/formstate-subscribe-to-specific-fields.md 1.5 KB
- references/formstate-useformstate-isolation.md 1.8 KB
- references/integ-mui-controller-pattern.md 1.6 KB
- references/integ-shadcn-form-import.md 1.6 KB
- references/integ-shadcn-select-wiring.md 1.9 KB
- references/integ-value-transform.md 1.5 KB
- references/sub-avoid-watch-in-render.md 1.6 KB
- references/sub-deep-subscription.md 2.0 KB
- references/sub-subscribe-outside-react.md 3.2 KB
- references/sub-useformcontext-sparingly.md 1.6 KB
- references/sub-usewatch-default-value.md 1.3 KB
- references/sub-usewatch-over-watch.md 1.9 KB
- references/sub-usewatch-with-getvalues.md 1.5 KB
- references/sub-watch-specific-fields.md 1.8 KB
- references/valid-delay-error.md 1.4 KB
- references/valid-dynamic-schema-factory.md 1.7 KB
- references/valid-error-message-strategy.md 1.8 KB
- references/valid-inline-vs-resolver.md 1.9 KB
- references/valid-native-validation.md 1.7 KB
- references/valid-resolver-caching.md 1.6 KB
- references/valid-server-errors.md 3.6 KB
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.
- 2d ago First seen · 128 lines · 85 tokens per session scan A 95f26f277889
react-hook-form is a skill published in the GitHub repository krivoox/agent-stack-template (31 stars, last pushed 12d ago), licensed MIT. It adds 85 tokens to every session and 1,549 once invoked, about $0.0004 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
nextjs-app-router
Full end-to-end tRPC setup for Next.js App Router. Covers route handler with fetchRequestHandler (GET + POST exports), TRPCProvider with QueryClientProvider, createTRPCOptionsProxy for RSC prefetching, HydrateClient/HydrationBoundary for hydration, useSuspenseQuery for Suspense, and server-side callers.
nextjs-pages-router
Set up tRPC in Next.js Pages Router with createNextApiHandler, createTRPCNext, withTRPC HOC, SSR via ssr option and ssrPrepass, SSG via createServerSideHelpers with getStaticProps, and server-side helpers for getServerSideProps prefetching.
openapi
Generate OpenAPI 3.1 spec from a tRPC router with @trpc/openapi CLI or programmatic API. Generate typed REST client with @hey-api/openapi-ts and configureTRPCHeyApiClient(). Configure transformers (superjson, EJSON) for generated clients. Alpha status.
server-setup
Initialize tRPC with initTRPC.create(), define routers with t.router(), create procedures with .query()/.mutation()/.subscription(), configure context with createContext(), export AppRouter type, merge routers with t.mergeRouters(), lazy-load routers with lazy().
subscriptions
Set up real-time event streams with async generator subscriptions using .subscription(async function() { yield }). SSE via httpSubscriptionLink is recommended over WebSocket. Use tracked(id, data) from @trpc/server for reconnection recovery with lastEventId. WebSocket via wsLink and createWSClient from @trpc/client…
react-query-setup
Set up @trpc/tanstack-react-query with createTRPCContext(), TRPCProvider, useTRPC() hook, queryOptions/mutationOptions factories, query invalidation via queryClient.invalidateQueries with queryFilter, and type inference with inferInput/inferOutput.