Files
breakpilot-lehrer/AGENTS.typescript.md
Benjamin Admin 5abdfa202e chore: install refactoring guardrails (Phase 0) [guardrail-change]
- 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>
2026-04-23 12:25:36 +02:00

1.4 KiB

AGENTS.typescript.md — Next.js Konventionen

Architektur

  • app/.../page.tsx: Minimale Seiten-Komposition (≤250 LOC)
  • app/.../actions.ts: Server Actions
  • app/.../queries.ts: Data Loading
  • app/.../_components/: View-Teile (Colocation)
  • app/.../_hooks/: Seiten-spezifische Hooks (Colocation)
  • types/ oder types/*.ts: Domain-spezifische Types
  • schemas/: Zod/Validierungs-Schemas
  • lib/: Shared Utilities

Regeln

  1. page.tsx duenn halten (≤250 LOC)
  2. Grosse Seiten frueh in Sections/Components splitten
  3. KEINE einzelne types.ts als Catch-All
  4. types.ts UND types/ Shadowing vermeiden (eines waehlen!)
  5. Server/Client Module-Grenzen explizit halten
  6. Pure Helpers und schmale Props bevorzugen
  7. 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 build ist PFLICHT — tsc allein reicht nicht.