# Plugin Full Frontend System Migration

> Fully migrate a Backstage frontend plugin to the new frontend system and remove legacy support. Use when performing internal or intentionally breaking migrations from createPlugin to createFrontendPlugin, new route refs, blueprints, PageLayout, and legacy dependency removal.

- Skill: `paulasilvatech/plugin-full-frontend-system-migration` (Agent Skill)
- Install (CLI): `npx skillmds@latest add paulasilvatech/plugin-full-frontend-system-migration`
- Raw SKILL.md: https://api.skillmd.com/api/skills/paulasilvatech/plugin-full-frontend-system-migration/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- License: Apache-2.0
- Author: paulasilvatech (https://skillmd.com/u/paulasilvatech)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/paulasilvatech/plugin-full-frontend-system-migration

---


<!-- Generated from harness/github-copilot/plugins/backstage-expert/skills/plugin-full-frontend-system-migration/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->

# 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

1. Confirm `new` mode, consumer inventory, breaking-change approval, target version, and a green
   baseline.
2. Read [the pinned upstream procedure](references/upstream/SKILL.md).
3. Verify route-ref, blueprint, layout, and extension APIs against the target version.
4. Inventory every legacy export, consumer import, route binding, page shell, API, and test.
5. Migrate route refs and external-route defaults.
6. Replace the plugin instance and extensions with `createFrontendPlugin` and current blueprints.
7. Move page layout responsibility to the new system and migrate internal routing.
8. Remove legacy exports and dependencies only after consumer updates are complete.
9. Update tests, README, changeset, and migration notes.
10. Run package and consumer-app validation.

## Output template

```markdown
## 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.

