.claude/skills/check-conventions/SKILL.md
Audit the codebase for project-specific convention violations. Use when the user runs /check-conventions or asks to validate that the code follows project conventions.
npx skillsauth add mark-lengyel-attrecto/movies-app-react check-conventionsInstall 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.
Scan results are pre-populated below. Review each category, then report findings.
All navigation must import from @/i18n/navigation, not next/link or next/navigation.
Allowed exceptions from next/navigation: useSearchParams, notFound, and redirect in src/app/[locale]/page.tsx only (the root redirect).
Scan results:
!grep -rn "from 'next/link'\|from \"next/link\"" src/ --include="*.tsx" --include="*.ts" 2>/dev/null || echo "(none)"
!grep -rn "from 'next/navigation'\|from \"next/navigation\"" src/ --include="*.tsx" --include="*.ts" 2>/dev/null || echo "(none)"
Theme-aware colors must use semantic tokens — never raw gray-* classes. Violating this breaks dark mode.
Valid tokens: bg-base, bg-surface, bg-elevated, bg-subtle, text-foreground, text-secondary, text-muted, border-ui, border-input, bg-error-surface, text-error.
Scan results:
!grep -rn "bg-gray-\|text-gray-\|border-gray-" src/ --include="*.tsx" --include="*.ts" 2>/dev/null || echo "(none)"
Pages in src/app/[locale]/ must be thin shells. TanStack Query hooks, Zustand hooks, and data-fetching logic belong in features/ only.
Scan results:
!grep -rn "useQuery\|useMutation\|useInfiniteQuery\|useUIStore\|useWatchlistStore" src/app/ --include="*.tsx" 2>/dev/null || echo "(none)"
fill without sizesEvery <Image fill must also have a sizes prop — omitting it causes a console warning and poor LCP.
Scan results:
!grep -rn "fill" src/ --include="*.tsx" 2>/dev/null || echo "(none)"
For each category above:
For category 4 (fill/sizes), grep for all fill occurrences in Image components and check whether sizes is also present in the same component — they may be on different lines, so read the surrounding context if needed.
development
Sync AI documentation (CLAUDE.md, AGENTS.md, memory files) with recent code changes. Use when the user runs /sync-ai-docs, has just finished writing code manually, has completed a notable feature or refactor, or asks to update/sync the project AI docs.
tools
Add a new page to the app following project conventions. Use when the user runs /new-page or asks to create a new route or page.
development
Detect unused files, exports, and dependencies with knip. Use when the user runs /find-dead-code or asks to find dead code, unused exports, or unused dependencies.
development
Validate that all translation keys used in source code exist in both en.json and hu.json. Use when the user runs /check-i18n or wants to audit translation completeness.