Component Scaffold
Create a new React component following project conventions.
Inputs
- Component name (PascalCase, e.g.,
UserCard) - Component type:
page|feature|ui - Props (optional: list of prop names + types)
Steps
Determine the directory
page→src/pages/{ComponentName}/feature→src/features/{feature-area}/components/{ComponentName}/ui→src/components/ui/{ComponentName}/
Create the component file
{dir}/{ComponentName}.tsx- Functional component with TypeScript props interface
- Export as named export (not default)
Create the test file
{dir}/{ComponentName}.test.tsx- Import from Vitest + Testing Library
- At minimum: renders without crashing + snapshot
Create the story file
{dir}/{ComponentName}.stories.tsx- Default story + one variant per significant prop
Create the barrel export
{dir}/index.ts- Re-export the component
Conventions
- All components are functional (no class components)
- Props interfaces are named
{ComponentName}Props - Co-locate everything: component, test, story, styles in one directory
- Use Tailwind for styling (no CSS modules — see archived skill
css-module-setup)
Edge Cases
- Component already exists: Do not overwrite. Ask the user if they want to update or rename.
- Nested feature components: Use the feature area as a parent directory (e.g.,
features/auth/components/LoginForm/)