ADR-006 — Validation, jobs, persistence stay libraries
Validation, jobs, and persistence stay plain libraries — the framework doesn't wrap them.
Context
Frameworks tend to absorb libraries into framework concepts — a "pipe" for validation, a "provider" for a repository. That coupling is the weight this design is trying to avoid.
Decision
Zod, an ORM, the job/cron primitives — call them directly where you need them. The framework doesn't wrap them. Shared infrastructure lives in a normal module (app/_platform/) exposed through its public API.
Consequences
No framework-specific way to validate or query; you use the library's own API and docs. Upgrades and swaps are independent of the framework. Cost: less prescription — teams pick their own conventions for these concerns.