Claude-skill-registry frontend-quality
Runs frontend quality checks including TypeScript, ESLint, and tests. Use before commits, PRs, or when the user says "check frontend", "run frontend tests", "lint frontend".
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/frontend-quality" ~/.claude/skills/majiayu000-claude-skill-registry-frontend-quality && rm -rf "$T"
manifest:
skills/data/frontend-quality/SKILL.mdsource content
Frontend Quality Checks
Runs TypeScript type checking, ESLint, and tests for the frontend.
Quick Check
cd front && pnpm type-check && pnpm lint
1. TypeScript Type Check
cd front && pnpm type-check
Checks all TypeScript files without emitting output.
Common Type Errors
Missing null check in page:
// Error: Build fails export default function Page() { const { user } = useUser(); return <Content userId={user.id} />; // user might be undefined! } // Fix: Add null check export default function Page() { const { user } = useUser(); if (!user) return null; // Required! return <Content userId={user.id} />; }
API type mismatch:
# Regenerate types from backend pnpm run generate:api
2. ESLint
Check:
cd front && pnpm lint
Auto-fix:
cd front && pnpm lint:fix
Common Lint Issues
Unused imports: Auto-fixed by
lint:fix
Missing dependencies in useEffect:
// Warning: Missing dependency useEffect(() => { fetchData(userId); }, []); // userId missing // Fix: Add all dependencies useEffect(() => { fetchData(userId); }, [userId]);
3. Tests (Vitest)
All tests:
cd front && pnpm test
Watch mode:
cd front && pnpm test:watch
Specific file:
cd front && pnpm test src/lib/utils.test.ts
4. Build Check
Full production build (catches more errors):
cd front && pnpm build
Common Build Errors
Dynamic import issues:
- Ensure client components have
directive'use client' - Check for server-only code in client components
Environment variables:
for client-sideNEXT_PUBLIC_*- Non-prefixed for server-side only
Pre-commit Checklist
cd front # 1. Type check pnpm type-check # 2. Lint pnpm lint # 3. Run tests pnpm test # 4. (Optional) Full build pnpm build
Configuration Files
| File | Purpose |
|---|---|
| TypeScript configuration |
| ESLint rules |
| Test configuration |
| Next.js configuration |