- scripts/check-loc.sh: LOC budget checker (500 LOC hard cap) - .claude/rules/architecture.md: split triggers, patterns per language - .claude/rules/loc-exceptions.txt: documented escape hatches - AGENTS.python.md: FastAPI conventions (routes thin, service layer) - AGENTS.go.md: Go/Gin conventions (handler ≤40 LOC) - AGENTS.typescript.md: Next.js conventions (page.tsx ≤250 LOC, colocation) - CLAUDE.md extended with guardrail section + commit markers 273 files currently exceed 500 LOC — to be addressed phase by phase. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.4 KiB
1.4 KiB
AGENTS.typescript.md — Next.js Konventionen
Architektur
app/.../page.tsx: Minimale Seiten-Komposition (≤250 LOC)app/.../actions.ts: Server Actionsapp/.../queries.ts: Data Loadingapp/.../_components/: View-Teile (Colocation)app/.../_hooks/: Seiten-spezifische Hooks (Colocation)types/odertypes/*.ts: Domain-spezifische Typesschemas/: Zod/Validierungs-Schemaslib/: Shared Utilities
Regeln
- page.tsx duenn halten (≤250 LOC)
- Grosse Seiten frueh in Sections/Components splitten
- KEINE einzelne types.ts als Catch-All
- types.ts UND types/ Shadowing vermeiden (eines waehlen!)
- Server/Client Module-Grenzen explizit halten
- Pure Helpers und schmale Props bevorzugen
- API-Client Types getrennt von handgeschriebenen Domain Types
Colocation Pattern (bevorzugt)
app/(admin)/ai/rag/
page.tsx ← duenn, komponiert nur
_components/
SearchPanel.tsx
ResultsTable.tsx
FilterBar.tsx
_hooks/
useRagSearch.ts
actions.ts ← Server Actions
queries.ts ← Data Fetching
Split-Trigger
- page.tsx ueberschreitet 250-350 LOC
- types.ts ueberschreitet 200-300 LOC
- Form-Logik, Server Actions und Rendering in einer Datei
- Mehrere unabhaengig testbare Sections vorhanden
- Imports werden broechig
Verifikation
npx tsc --noEmit
npm run lint
npm run build
npm run buildist PFLICHT —tscallein reicht nicht.