# Skill: Data > **Atelier source:** `domains/data/` (first-principles + schema-design, > migrations, indexing) > **Core principles:** C1 Correctness, C4 Locality, C6 Composability > **BA.A mapping:** web API, worker, scheduled job > **Consumer:** read this before authoring a service with a database. ## First Principles (citizen-developer-relevant subset) - **Schema reflects the domain, not the application.** Tables model real-world entities, not ORM classes. - **Constraints are in the schema.** NOT NULL, UNIQUE, FK — the database enforces integrity, not the application. - **Migration has an `up` and a `down`.** Every migration is reversible. - **Types are domain-accurate.** UUID for IDs, TIMESTAMPTZ for timestamps, DECIMAL for money — not string/integer/everything. - **No `SELECT *`; no N+1.** Explicit columns; eager-load relations. ## Agent-Checklist Triggers (§ Data) - Schema reflects the domain (not the application) - Constraints are in the schema (NOT NULL, UNIQUE, FK) - Migration has an `up` and a `down` - Types are domain-accurate (UUID, TIMESTAMPTZ, DECIMAL for money) - No `SELECT *`; no N+1 ## How Nova Uses This Nova deploys your infrastructure (RDS, DynamoDB) but does not author your schema. The data skill ensures the schema you bring meets production-grade standards. The submission-readiness gate checks that your contract declares the infrastructure; the data skill checks that the application running on that infrastructure uses the database correctly.