Motion was written against a base five commits behind main, so the
integration is the interesting part of this commit:
- The migration is renumbered 0014 -> 0015. Main shipped
0014_piggy_conversations, and two migrations sharing an index is a
journal that applies one of them.
- The seed-idempotency gate keeps main's all-tables diff rather than the
motion_templates counter this branch added; the general check subsumes
the specific one.
- Nav gains a Motion group alongside main's new Workspace group, and
Piggy keeps the mark main gave it.
- Stat keeps main's container-scaled figure, which already carries the
min-w-0 this branch added for the same reason.
- Piggy's page labels keep main's refusal wording for the four pages with
no tool of their own, and gain the three Motion routes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The ledger answers which contracted capacity is sold, to whom, at what
margin. It says nothing about the motion — the repeatable practice that
turns a customer conversation into a scoped deployment, and turns that
deployment into something the next one reuses.
Motion is deliberately not a parallel entity tree. DEMAND_STAGES already
is the motion, so Motion binds reusable artefacts to the stages of a
demand deal that already exists: an engagement hangs off one deal,
cascade deleted, one per deal by unique constraint.
Nine closed kinds, each declaring which stages it serves, and a starter
library of twelve templates covering all eight open stages.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>