Individual skill
react-19-component-scaffolder
Scaffolds React 19 / React 19.2 code in TypeScript — components, Server Component pages, client islands, form actions with useActionState, context providers, custom hooks, reducers, or document metadata + resource hints. Generates production-grade code that follows React 19 idioms (ref-as-prop, <Context value={...}>, useActionState, inline metadata, useSyncExternalStore) and refuses deprecated React 18 patterns (forwardRef, <Context.Provider>, useFormState, react-dom/test-utils). Trigger even when the user says "create a component", "new page", "add a form", "new hook", or "scaffold X" without explicitly mentioning React 19.
skills/.curated/react-19-component-scaffolder/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- Yes
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
- testing Derived category
- engineering Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 189 bytesSKILL.mdcore · 8,129 bytesassets/templates/client-island.test.tsx.templateasset · 864 bytesassets/templates/client-island.tsx.templateasset · 1,064 bytesassets/templates/context-provider.tsx.templateasset · 1,121 bytesassets/templates/custom-hook.test.ts.templateasset · 921 bytesassets/templates/custom-hook.ts.templateasset · 582 bytesassets/templates/form-action-actions.ts.templateasset · 1,343 bytesassets/templates/form-action-schema.ts.templateasset · 406 bytesassets/templates/form-action.tsx.templateasset · 1,542 bytesassets/templates/function-component.test.tsx.templateasset · 791 bytesassets/templates/function-component.tsx.templateasset · 1,369 bytesassets/templates/head-and-hints.tsx.templateasset · 685 bytesassets/templates/reducer.test.ts.templateasset · 1,008 bytesassets/templates/reducer.ts.templateasset · 800 bytesassets/templates/server-component-page.tsx.templateasset · 2,248 bytesconfig.jsonasset · 1,011 bytesgotchas.mddoc · 311 bytesmetadata.jsonasset · 1,043 bytesreferences/_conform-algorithm.mddoc · 7,074 bytesreferences/conventions.mddoc · 7,672 bytes
Read excerpt
# React 19 Component Scaffolder
Generate React 19/19.2 components, pages, hooks, and supporting files from parameterized templates. Every template enforces the patterns codified in the sibling `react` skill — refs as regular props (never `forwardRef`), Context rendered directly as provider (never `.Provider`), form actions with `useActionState` + `useFormStatus`, inline document metadata, `useSyncExternalStore` for external subscriptions, and YMNNAE-compliant hook bodies.
## When to Apply
- Creating a new React component (Server, Client, or unspecified — defaults to Server)
- Adding a new route/page in a React 19 app
- Building a form that needs progressive enhancement, optimistic UI, or pending state
- Setting up a new Context provider with state + dispatch split
- Writing a custom hook that subscribes to external state or wraps async work
- Modeling complex state with a typed reducer
- Adding document metadata (`<title>`, `<meta>`, `<link>`) or resource hints (`preload`, `preconnect`, `prefetchDNS`)
- The user says "scaffold", "boilerplate", "generate", "new component", "new page", "new hook", or names any of the template types