What
The apply path has only run against a throwaway container: there is no migration history, no seeded organization, and no bootstrapped platform_admin (control-plane.md, Known gaps; README status). Turn first deployment into a repeatable, documented procedure: versioned migrations, an idempotent seed for the organization, and a bootstrap that mints the first platform_admin without a hand-written row.
Acceptance
task plane:apply against a fresh PostgreSQL produces a plane an enrolled daemon can use, with the steps recorded in packaging notes.
- Re-running is a no-op.
What
The apply path has only run against a throwaway container: there is no migration history, no seeded organization, and no bootstrapped
platform_admin(control-plane.md, Known gaps; README status). Turn first deployment into a repeatable, documented procedure: versioned migrations, an idempotent seed for the organization, and a bootstrap that mints the firstplatform_adminwithout a hand-written row.Acceptance
task plane:applyagainst a fresh PostgreSQL produces a plane an enrolled daemon can use, with the steps recorded in packaging notes.