From shipshitdev-library
Optimizes React Hook Form performance for client-side controlled forms using useForm, useWatch, useController, and useFieldArray with 41 prioritized rules.
npx claudepluginhub shipshitdev/skillsThis skill uses the workspace's default tool permissions.
Comprehensive performance optimization guide for React Hook Form applications. Contains 41 rules across 8 categories, prioritized by impact to guide form development, automated refactoring, and code generation.
AGENTS.mdREADME.mdassets/templates/_template.mdreferences/_sections.mdreferences/adv-devtools-performance.mdreferences/adv-formprovider-memo.mdreferences/adv-testing-wrapper.mdreferences/array-complete-default-objects.mdreferences/array-separate-crud-operations.mdreferences/array-unique-fieldarray-per-name.mdreferences/array-use-field-id-as-key.mdreferences/array-virtualization-formprovider.mdreferences/ctrl-avoid-double-registration.mdreferences/ctrl-controller-field-props.mdreferences/ctrl-local-state-combination.mdreferences/ctrl-single-usecontroller-per-component.mdreferences/ctrl-usecontroller-isolation.mdreferences/formcfg-async-default-values.mdreferences/formcfg-default-values.mdreferences/formcfg-revalidate-mode.mdProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Analyzes competition with Porter's Five Forces, Blue Ocean Strategy, and positioning maps to identify differentiation opportunities and market positioning for startups and pitches.
Comprehensive performance optimization guide for React Hook Form applications. Contains 41 rules across 8 categories, prioritized by impact to guide form development, automated refactoring, and code generation.
Reference these guidelines when:
| 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- |
formcfg-validation-mode - Use onSubmit mode for optimal performanceformcfg-revalidate-mode - Set reValidateMode to onBlur for post-submit performanceformcfg-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 dependenciessub-usewatch-over-watch - Use useWatch instead of watch for isolated re-renderssub-watch-specific-fields - Watch specific fields instead of entire formsub-usewatch-with-getvalues - Combine useWatch with getValues for timing safetysub-deep-subscription - Subscribe deep in component tree where data is neededsub-avoid-watch-in-render - Avoid calling watch() in render for one-time readssub-usewatch-default-value - Provide defaultValue to useWatch for initial rendersub-useformcontext-sparingly - Use useFormContext sparingly for deep nestingctrl-usecontroller-isolation - Use useController for re-render isolationctrl-avoid-double-registration - Avoid double registration with useControllerctrl-controller-field-props - Wire Controller field props correctly for UI librariesctrl-single-usecontroller-per-component - Use single useController per componentctrl-local-state-combination - Combine local state with useController for UI-only statevalid-resolver-caching - Define schema outside component for resolver cachingvalid-dynamic-schema-factory - Use schema factory for dynamic validationvalid-error-message-strategy - Access errors via optional chaining or lodash getvalid-inline-vs-resolver - Prefer resolver over inline validation for complex rulesvalid-delay-error - Use delayError to debounce rapid error displayvalid-native-validation - Consider native validation for simple formsarray-use-field-id-as-key - Use field.id as key in useFieldArray mapsarray-complete-default-objects - Provide complete default objects for field array operationsarray-separate-crud-operations - Separate sequential field array operationsarray-unique-fieldarray-per-name - Use single useFieldArray instance per field namearray-virtualization-formprovider - Use FormProvider for virtualized field arraysformstate-destructure-formstate - Destructure formState properties before renderformstate-useformstate-isolation - Use useFormState for isolated state subscriptionsformstate-getfieldstate-for-single-field - Use getFieldState for single field state accessformstate-subscribe-to-specific-fields - Subscribe to specific field names in useFormStateformstate-avoid-isvalid-with-onsubmit - Avoid isValid with onSubmit mode for button stateinteg-shadcn-form-import - Verify shadcn Form component import sourceinteg-shadcn-select-wiring - Wire shadcn Select with onValueChange instead of spreadinteg-mui-controller-pattern - Use Controller for Material-UI componentsinteg-value-transform - Transform values at Controller level for type coercionadv-formprovider-memo - Wrap FormProvider children with React.memoadv-devtools-performance - Disable DevTools in production and during performance testingadv-testing-wrapper - Create test wrapper with QueryClient and AuthProviderRead individual reference files for detailed explanations and code examples:
references/{prefix}-{slug}.mdzod skillreact-19 skillfrontend-design skillFor the complete guide with all rules expanded: AGENTS.md