Files
breakpilot-compliance/admin-compliance
Sharang Parnerkar fc6a3306d4 refactor(admin): split compliance-scope-types.ts (1738 LOC) into domain modules
compliance-scope-types.ts decomposed into 9 files under
compliance-scope-types/ with a barrel index.ts:

  core-levels.ts            (29) — ComplianceDepthLevel enum
  constants.ts              (83) — label mappings + defaults
  questions.ts              (77) — ComplianceScopeQuestion types
  hard-triggers.ts          (77) — HardTrigger rule types
  documents.ts              (84) — ScopeDocumentType + document definitions
  decisions.ts             (111) — Decision model types
  document-scope-matrix-core.ts (551) — core document scope matrix data
  document-scope-matrix-extended.ts (565) — extended document scope data
  state.ts                  (22) — ComplianceScopeState

Note: the two document-scope-matrix files at 551/565 LOC are data tables
(static configuration arrays). They exceed the 500-line soft cap but are
a legitimate data-table exception — splitting them would fragment the
matrix lookup logic without improving readability.

next build passes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 13:24:07 +02:00
..

admin-compliance

Next.js 15 dashboard for BreakPilot Compliance — SDK module UI, company profile, DSR, DSFA, VVT, TOM, consent, AI Act, training, audit, change requests, etc. Also hosts 96+ API routes that proxy/orchestrate backend services.

Port: 3007 (container: bp-compliance-admin) Stack: Next.js 15 App Router, React 18, TailwindCSS, TypeScript strict.

Architecture (target — Phase 3)

app/
├── <route>/
│   ├── page.tsx              # Server Component (≤200 LOC)
│   ├── _components/          # Colocated UI, each ≤300 LOC
│   ├── _hooks/               # Client hooks
│   └── _server/              # Server actions
├── api/<domain>/route.ts     # Thin handlers → lib/server/<domain>/
lib/
├── <domain>/                 # Pure helpers, zod schemas
└── server/<domain>/          # "server-only" logic
components/                   # App-wide shared UI

See ../AGENTS.typescript.md.

Run locally

cd admin-compliance
npm install
npm run dev          # http://localhost:3007

Tests

npm test                      # Vitest unit + component tests
npx playwright test           # E2E
npx tsc --noEmit              # Type-check
npx next lint

Known debt (Phase 3 targets)

  • app/sdk/company-profile/page.tsx (3017 LOC), tom-generator/controls/loader.ts (2521), lib/sdk/types.ts (2511), app/sdk/loeschfristen/page.tsx (2322), app/sdk/dsb-portal/page.tsx (2068) — all must be split.
  • 0 test files for 182 monolithic pages. Phase 3 adds Playwright smoke + Vitest unit coverage.

Don't touch

  • Backend API paths without updating backend-compliance/ in the same change.
  • lib/sdk/types.ts in large contiguous chunks — it's being domain-split.