# Milestone 0 · Phase 1 — Embeddable Runtime Skeleton **Objective:** ship an ergonomic, zero-config builder so engineers can spin up a tidalDB instance inside tests or services without touching the signal stack yet. **Success criteria** - `TidalDb::builder()` exposes `ephemeral()` and `single_process(data_dir)` shortcuts with sensible defaults. - `Config` validates eagerly (missing dirs, bad permissions) so failures happen before WAL threads spin up. - Builder registers shutdown hooks (`Drop` + explicit `close()`), returning errors if background workers fail to drain. - Temp-directory helper guarantees deterministic cleanup (used by doctests + integration tests). **Dependencies:** none — runs before any signal-specific work. **Blocked by:** n/a **Unblocks:** M0 Phase 2 (CLI needs stable layout), all later milestones (test harnesses use the builder).