skills-catalog/ln-721-frontend-restructure/SKILL.md
Scaffolds new React projects or restructures monoliths to component-based architecture. Use when setting up frontend structure.
npx skillsauth add levnikolaevich/claude-code-skills ln-721-frontend-restructureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
Type: L3 Worker Category: 7XX Project Bootstrap
Frontend structure worker with two modes: SCAFFOLD (generate minimal React project from template) or RESTRUCTURE (migrate monolith to component-based architecture).
| Mode | When | Input | Output | |------|------|-------|--------| | SCAFFOLD | CREATE pipeline — no existing frontend | Target stack config from ln-720 | Minimal React + Vite project (~7 files) | | RESTRUCTURE | TRANSFORM pipeline — existing frontend found | Monolithic React source | Component-based architecture |
| Aspect | Description | |--------|-------------| | Input | Target stack config (SCAFFOLD) or monolithic React source (RESTRUCTURE) | | Output | Minimal project (SCAFFOLD) or component-based architecture (RESTRUCTURE) | | Framework | React + TypeScript + Vite |
Scope boundaries:
| Phase | Name | Actions | Output | |-------|------|---------|--------| | S1 | Generate | Create minimal React + Vite + TypeScript project files | ~7 starter files | | S2 | Verify | Check file structure, validate configs | Valid project skeleton |
| Phase | Name | Actions | Output | |-------|------|---------|--------| | 1 | Analyze | Scan source, detect component types, measure complexity | File inventory, complexity metrics | | 2 | Plan | Apply split thresholds, calculate file moves, detect conflicts | Migration plan | | 3 | Execute | Create folders, extract content, update imports | Restructured files | | 4 | Verify | Run build, check imports, validate structure | Build success report |
Create minimal React + Vite + TypeScript project.
| File | Purpose |
|------|---------|
| package.json | Dependencies: react, react-dom, typescript, vite, @vitejs/plugin-react |
| vite.config.ts | Vite config with React plugin, port, proxy settings |
| tsconfig.json | Strict TypeScript config with path aliases |
| index.html | Entry HTML with root div |
| src/main.tsx | React entry point with StrictMode |
| src/App.tsx | Root App component with router placeholder |
| src/index.css | Base styles (reset, variables, layout) |
| Check | Method | Expected | |-------|--------|----------| | All files created | File existence check | 7 files present | | package.json valid | JSON parse | No syntax errors | | tsconfig.json valid | JSON parse | No syntax errors | | No hardcoded values | Content scan | Project name from config, not hardcoded |
Scan current frontend structure and classify components.
| Step | Action | Reference |
|------|--------|-----------|
| 1.1 | Scan all .tsx and .ts files in source | — |
| 1.2 | Measure file complexity (lines, hooks, types) | transformation_rules.md |
| 1.3 | Classify components by category | component_patterns.md |
| 1.4 | Build import dependency graph | import_strategy.md |
Output: Component inventory with classifications and metrics.
Generate migration plan based on analysis.
| Step | Action | Reference |
|------|--------|-----------|
| 2.1 | Apply split thresholds to identify files to restructure | transformation_rules.md |
| 2.2 | Calculate target paths for each file | react_folder_structure.md |
| 2.3 | Identify import updates needed | import_strategy.md |
| 2.4 | Detect potential conflicts (name collisions, circular deps) | — |
Output: Migration plan with Before/After mapping.
Apply transformations in correct order.
| Step | Action | Notes |
|------|--------|-------|
| 3.1 | Create directory structure | All target folders |
| 3.2 | Extract types to types.ts | Types have no dependencies |
| 3.3 | Extract constants to constants.ts | Constants depend only on types |
| 3.4 | Extract hooks to hooks.ts | Hooks depend on types, constants |
| 3.5 | Extract sub-components | Components use all above |
| 3.6 | Create barrel exports (index.ts) | For clean imports |
| 3.7 | Update all import paths | Fix references |
Order is critical: Execute in sequence to avoid broken imports.
Validate restructured project.
| Check | Command | Expected |
|-------|---------|----------|
| TypeScript compilation | npx tsc --noEmit | No errors |
| Build | npm run build | Success |
| No orphan files | Manual check | Source location empty |
| Imports resolve | Build success | No module not found errors |
| Transformation | Before State | After State |
|----------------|--------------|-------------|
| Component Split | Single file >300 lines | Feature folder with co-located files |
| Type Extraction | Inline interfaces | Separate types.ts |
| Constant Extraction | Inline magic values | Separate constants.ts |
| Hook Extraction | Inline useState/useEffect | Separate hooks.ts or shared hooks |
| UI Component Move | Scattered in features | Centralized in components/ui/ |
| Layout Component Move | Mixed with features | Centralized in components/layout/ |
npm run build)SCAFFOLD mode:
RESTRUCTURE mode:
npm run build passes successfully| Risk | Detection | Mitigation |
|------|-----------|------------|
| Build failure after restructure | npm run build fails | Rollback: restore from source, investigate specific error |
| Missing imports | Module not found errors | Scan all imports before/after, update missed paths |
| Circular dependencies | Build warning or runtime error | Analyze dependency graph, break cycles by extracting shared code |
| Lost functionality | Tests fail or UI broken | Run existing tests before/after transformation |
| Name collisions | Duplicate export names | Rename with feature prefix before moving |
| File | Purpose |
|------|---------|
| references/transformation_rules.md | Split thresholds, extraction rules, transformation order |
| references/component_patterns.md | Component classification by category |
| references/import_strategy.md | Import update rules, path aliases, barrel exports |
| references/react_folder_structure.md | Target directory structure template |
Version: 3.0.0 Last Updated: 2026-02-07
testing
Drafts and publishes fact-checked GitHub Discussions announcements. Use for releases, updates, or project news; not for release creation or issue responses.
testing
Prepares and publishes a tagged GitHub release from repository evidence. Use for an explicit release request; not for ordinary commits, packages, or community news.
testing
Validates, commits, pushes, and remotely verifies approved repository changes. Use when publication is requested; not for releases, package publishing, or announcements.
development
Reviews standalone skills and their configured distribution surfaces before publication. Use for skill release readiness; not for product code or implementation-plan review.