core-principles
1
总安装量
1
周安装量
#42111
全站排名
安装命令
npx skills add https://github.com/madappgang/claude-code --skill core-principles
Agent 安装分布
cursor
1
claude-code
1
antigravity
1
gemini-cli
1
Skill 文档
Core Principles for React 19 SPA Development
Production-ready best practices for building modern React applications with TypeScript, Vite, and TanStack ecosystem.
Stack Overview
- React 19 with React Compiler (auto-memoization)
- TypeScript (strict mode)
- Vite (bundler)
- Biome (formatting + linting)
- TanStack Query (server state)
- TanStack Router (file-based routing)
- Vitest (testing with jsdom)
- Apidog MCP (API spec source of truth)
Project Structure
/src
/app/ # App shell, providers, global styles
/routes/ # TanStack Router file-based routes
/components/ # Reusable, pure UI components (no data-fetch)
/features/ # Feature folders (UI + hooks local to a feature)
/api/ # Generated API types & client (from OpenAPI)
/lib/ # Utilities (zod schemas, date, formatting, etc.)
/test/ # Test utilities
Key Principles:
- One responsibility per file
- UI components don’t fetch server data
- Put queries/mutations in feature hooks
- Co-locate tests next to files
Agent Execution Rules
Always do this when you add or modify code:
-
API Spec: Fetch latest via Apidog MCP and regenerate
/src/apitypes if changed -
Data Access: Wire only through feature hooks that wrap TanStack Query. Never fetch inside UI components.
-
New Routes:
- Create file under
/src/routes/**(file-based routing) - If needs data at navigation, add loader that prefetches with Query
- Create file under
-
Server Mutations:
- Use React 19 Actions OR TanStack Query
useMutation(choose one per feature) - Use optimistic UI via
useOptimistic(Actions) or Query’s optimistic updates - Invalidate/selectively update cache on success
- Use React 19 Actions OR TanStack Query
-
Compiler-Friendly:
- Keep code pure (pure components, minimal effects)
- If compiler flags something, fix it or add
"use no memo"temporarily
-
Tests:
- Add Vitest tests for new logic
- Component tests use RTL
- Stub network with msw
-
Before Committing:
- Run
biome check --write - Ensure Vite build passes
- Run
“Done” Checklist per PR
- Route file added/updated; loader prefetch (if needed) present
- Query keys are stable (
as const),staleTime/gcTimetuned - Component remains pure; no unnecessary effects; compiler ⨠visible
- API calls typed from
/src/api; inputs/outputs validated at boundaries - Tests cover new logic; Vitest jsdom setup passes
-
biome check --writeclean; Vite build ok
Authoritative Sources
-
React 19 & Compiler:
- React v19 overview
- React Compiler: overview + installation + verification
<form action>/ Actions API;useOptimistic;use- CRA deprecation & guidance
-
Vite:
- Getting started; env & modes; TypeScript targets
-
TypeScript:
moduleResolution: "bundler"(for bundlers like Vite)
-
Biome:
- Formatter/Linter configuration & CLI usage
-
TanStack Query:
- Caching & important defaults; v5 migration notes; devtools/persisting cache
-
TanStack Router:
- Install with Vite plugin; file-based routing; search params; devtools
-
Vitest:
- Getting started & config (jsdom)
-
Apidog + MCP:
- Apidog docs (import/export, OpenAPI); MCP server usage
Final Notes
- Favor compile-friendly React patterns
- Let the compiler and Query/Router handle perf and data orchestration
- Treat Apidog’s OpenAPI (via MCP) as the single source of truth for network shapes
- Keep this doc as your “contract”âdon’t add heavy frameworks or configs beyond what’s here unless explicitly requested
Related Skills
- tooling-setup – Vite, TypeScript, Biome configuration
- react-patterns – React 19 specific patterns (compiler, actions, forms)
- tanstack-router – Routing patterns
- tanstack-query – Server state management with Query v5
- router-query-integration – Integrating Router with Query
- api-integration – Apidog + MCP patterns
- performance-security – Performance, accessibility, security