SAMA 2.0 — Voorstel voor de volgende evolutie Hier is een uitgewerkte, concrete versie van SAMA 2.0. Ik houd de kern intact (want die is sterk), maar maak het completer, toekomstbestendiger en nog beter geschikt voor agentic coding in 2026+. Kern blijft hetzelfde (de vier letters) S — Sorted: Alphabetical + dependency direction (lager nummer importeert nooit hoger). A — Architecture: Numerieke lagen met duidelijke contracten. M — Modeled: Types + sibling tests. A — Atomic: Bestanden klein houden (~700 regels) + split per domein. Wat verandert / wordt toegevoegd in 2.0 Ik voeg twee nieuwe letters toe → SAMA wordt SAMAX (of je houdt SAMA en maakt de extra’s optioneel). Nieuwe letter: X — eXtensible & Vertical Doel: Combineer de kracht van horizontale lagen (duidelijke dependency flow) met verticale slices (alles van één feature dicht bij elkaar). Regel: Optionele feature-prefix bovenop de laag: c32_user_auth.ts of feat_payment_c32_processor.ts. Voordeel voor agents: Een agent die aan “user authentication” werkt, ziet alle relevante bestanden gegroepeerd via zoekopdracht feat_user_*. Nieuwe letter: D — Documented (de vijfde discipline) Regel: Elke module én elke feature-map heeft een README.md of .agent.md met: One-sentence responsibility Key types & contracts Acceptance criteria / invariants “Where to put new code” instructies Dit wordt de levende specificatie voor de agent. Uitgebreide Layer Mapping (Architecture 2.0) Laag Naam Verantwoordelijkheid Voorbeelden Mag importeren van c11 Entry / Composition Root App bootstrap, wiring main.ts, server.ts Alles c13 Data / Persistence DB, repositories, queries c13_user_repo.ts c31 c14 I/O Adapters HTTP, queues, external APIs c14_auth_controller.ts c21, c31, c32 c21 Handlers / Presenters Request/response orchestration c21_login_handler.ts c32, c31 c31 Models & Types Domain models, DTOs, Value Objects, Zod schemas c31_user.ts - (puur) c32 Business Logic / Use Cases Pure functions, domain rules c32_user_auth.ts c31 c40 Application Services Orchestratie van meerdere use cases (nieuw!) c40_user_service.ts c32, c31 c51 UI / Presentation Components, pages, server components c51_user_profile.tsx c31, c32 c60 Infrastructure / External Third-party clients, config, logging c60_stripe_client.ts - c70 Cross-cutting Auth middleware, logging, monitoring, tracing c70_logger.ts alles (voorzichtig) Atomic-regel verfijnd: Max ~600-700 regels of max 1 feature per bestand (zelfs als het kleiner is). Tooling & Automatisering (kritisch voor gold standard) SAMA 2.0 moet dit hebben: Officiële sama CLI sama check → voert alle verificaties uit sama new c32_user_auth → maakt bestand + template + .agent.md sama split → helpt bij Atomic splits sama verify-repo Pre-commit hooks + GitHub Action LSP / Editor integration (VS Code, Cursor, Windsurf) Claude / Cursor skill met automatische checks Extra verbeteringen Monorepo support: Package-prefixen (pkg_auth_c32_...) Graduele adoptie: SAMA Light (alleen Sorted + Atomic) → Full SAMAX Frontend + Backend harmonisatie (vooral Next.js App Router) Deprecation policy: Duidelijke manier om oude lagen/bestanden af te bouwen Performance & Security gates in Atomic-check (bijv. flag grote N+1 queries) Voorbeeld folder structuur (SAMA 2.0) src/ ├── c11_app.ts ├── features/ │ └── user/ │ ├── feat_user_c13_repo.ts │ ├── feat_user_c31_types.ts │ ├── feat_user_c32_auth.ts │ ├── feat_user_c32_profile.ts │ ├── feat_user_c40_service.ts │ └── feat_user.agent.md ├── c60_stripe.ts └── c70_auth_middleware.ts Samenvatting: Waarom dit de gold standard wordt Behoudt mechanische verifieerbaarheid (grep + CLI) Wordt hybride (horizontaal + verticaal) Voegt documentatie als first-class citizen toe Wordt echt toolbaar en adopteerbaar Schaalt van solo-agent project tot middelgroot team Dit is geen over-engineering — het lost precies de pijnpunten op die ontstaan als projecten groter worden dan 20-30k regels met agents. Wil je dat ik een volledige officiële spec uitwerk (zoals de originele tdd.md pagina), inclusief verificatie commando’s en templates? Of focus op één deel (bijv. de CLI spec of een concrete Next.js template)?