Completed the builder extraction through Phase 4: Protocol now has a reusable routine-builder surface contract, stronger routine ownership rules, and the groundwork for future coach workflows without forking the builder.
ProductCoachingBuilderInfrastructureTesting
Shipped
Finished the routine builder migration through Phase 4, turning the builder into a Training-hosted surface with reusable package contracts.
Added a route-neutral RoutineBuilderSurface so future app surfaces can use the same builder without creating a second implementation.
Moved shared authoring and builder UI pieces into dedicated packages while keeping Training responsible for runtime behavior like routing, drafts, local storage, analytics, feedback, validation, exercise library access, band equipment, import/export, and saving.
Locked in clearer routine ownership semantics for personal routines, preset-derived routines, and coach-assigned routines.
Added browser-level builder safety coverage so create, edit, draft, import/export, locked routine, duplicate-to-edit, band, variable-week, and mobile builder flows are protected.
Documented the coach bridge direction around explicit consent, private-by-default coach-assigned routines, and projection-only data sharing.
Why
The fastest path to future coach value is not a separate builder. It is one builder with clean host contracts.
Coaches will eventually need to create templates and assign routines, but Training should remain the first production host until the bridge and permissions are safe.
With no active users yet, this was the right time to pay down coupling before the builder becomes harder to move.
The work keeps the athlete app stable while setting up a cleaner path for future coach-facing workflows.
Next
Keep the coach UI deferred until the adapter, entitlement, and consent flows are ready.
Use the new surface contract when a future coach app needs routine-template authoring.
Continue tightening the bridge around explicit athlete consent, assignment lineage, and safe coach-visible projections.