D25 · M0 is rebuilt from an empty folder, on one timeline
Accepted · 2026-10-05 · zuki · Partly supersedes D2 (M0 as delivered), D12 (the stub clause) and D17 (its starting point) · Partly superseded by D27 (how docs files enter the repository)
Decision: The M0 delivered as mop-fleet-v2-M0.zip is not moved into the repository. M0 is built again from an empty folder, starting with pnpm dlx create-turbo@latest, one step at a time, run by zuki. [Runbook] v2 timeline holds the order of all v2 work across roles: the steps that belong to no single role in full (TL steps), and a row for every Backend and Frontend step pack at the point where it runs.
The delivered M0 and the design canvas are background (level 5 in the order of authority). The Backend and Frontend Engineers may read them while writing new steps, but no file is copied in whole: every file enters through a step zuki runs, with its tests. The 44 checks the delivered M0 had become the acceptance list for the new pgTAP tests, and the plain-Postgres stub never enters the repository.
Node 24 is pinned with .node-version and engines, because Vercel runs Node 24 at most today; the repository moves to Node 26 once Vercel supports it. pnpm 12 is pinned through packageManager. The generated types package is named @opleet/db-types.
Why: The delivered M0 was written and tested by an agent, never on the real Supabase stack (D12), and its first run by zuki was still pending (BE-M0-02). Rebuilding through runbook steps applies the human-first rule from the first command, and one timeline gives a single chronological record across roles.
Consequences: BE-M0-02, BE-M0-03, BE-M0-04, BE-M0-09 and FE-M0-01 are withdrawn; BE-M0-01 stays as the timeline's first step, and withdrawn step IDs are not reused. The Backend and Frontend Engineers rewrite their M0 tabs as the packs the timeline names. The schema doesn't change: V13 in the data model, rules and RLS references stays the target, and docs that call M0 delivered describe that target until the new files exist. M0 takes longer than the planned move; D20 sets no date, so no date moves. The data phase (D17) starts when the timeline's M0 exit check passes.