Full plugin frontend-system migration
Perform a deliberate new-only migration after confirming that legacy compatibility may be dropped.
When to invoke
- "Convert this internal plugin fully to the new frontend system."
- "Remove core-plugin-api from this plugin."
- "Replace legacy routable extensions with blueprints."
- "Drop the old plugin entry point."
Procedure
- Confirm
newmode, consumer inventory, breaking-change approval, target version, and a green baseline. - Read the pinned upstream procedure.
- Verify route-ref, blueprint, layout, and extension APIs against the target version.
- Inventory every legacy export, consumer import, route binding, page shell, API, and test.
- Migrate route refs and external-route defaults.
- Replace the plugin instance and extensions with
createFrontendPluginand current blueprints. - Move page layout responsibility to the new system and migrate internal routing.
- Remove legacy exports and dependencies only after consumer updates are complete.
- Update tests, README, changeset, and migration notes.
- Run package and consumer-app validation.
Output template
## Full frontend migration result
**Package:** <package>
**Breaking change:** <approved scope>
| Legacy contract | Replacement | Consumer migration | Validation |
| --- | --- | --- | --- |
Quality gate
- New-only mode and breaking-change approval are explicit.
- All consumers and legacy exports are inventoried.
- Current new-system APIs are verified for the target version.
- Route, layout, API, and extension behavior is preserved.
- Legacy dependencies are removed only after consumer migration.
- Package, consumer, documentation, and changeset validation pass.