Aurelia Migration & Reference
Lift v1 code to v2 — the migration is the focal work, but this skill also serves as the post-migration reference for debugging, performance, and ground-truth citations.
When you lift v1 → v2, you replace removed APIs in place, never rewrite-then-drop-in. The three sub-areas the skill unlocks after the lift:
| Concern | Reach for | Anchor |
|---|---|---|
| Removed/renamed v1 API → v2 replacement | reference/v1-removals.md | The lift table |
| AUR0xxx error code or behavior bug | reference/debugging.md | "How Do I…" |
| Slow list, re-render churn, batch DOM | reference/performance.md | .to-view mandate |
| Citing canonical doc / DeepWiki URL | reference/deepwiki-protocol.md | Link format |
The lift step
A v1 → v2 lift is mechanical: eight APIs changed. Run the table in
reference/v1-removals.md once per file. The most common lift mistake is .delegate
— it is removed for ALL events and throws AUR0713 at compile time. See that
file for the full table + one-line fix per row.
v1 contamination guardrail
When lifting legacy code, the FORBIDDEN patterns in reference/v1-removals.md
throw runtime errors or silently break in v2. Never carry these patterns forward.
Prefer rewriting over @aurelia/compat-v1 — the shim is for incremental legacy
increments, not a destination.
Project precedence (overrides anything here)
When migrating in a project whose instructions file declares these rules, they are authoritative and override any generic Aurelia advice elsewhere in the skill package:
.triggerfor all event listeners, never.delegate(removed; throws AUR0713 at compile time).- kebab-case element names only — every old PascalCase or camelCase element name from v1 is invalid in v2; rename at the lift step.
import type/export typefor interfaces — split runtime (DI tokens, classes) from type-only; v1 files commonly merged them..styleproperty binding is v2-only; v1 inlinestyle="...${value}%"produces a 0-value prod-build bug that the dev build hides.
What this skill defers
- Authoring new Aurelia 2 code from scratch (conventions, feature-first layout,
DI patterns, Model/DTO flow) →
aurelia-authoringskill in this package. - Vite 8 / Babel decorator pipeline →
aurelia-toolingskill. - Testing setup →
aurelia-ecosystemskill (see itsreference/testing.md).
"How Do I…" routing
If the question is "what was that v1 thing called in v2?" — start at
reference/v1-removals.md. If the question is "why does my prod build do X but dev
doesn't?" — start at reference/debugging.md. If the question is "my list lags
on scroll" — start at reference/performance.md. If the question is "what's the
canonical URL for this claim?" — start at reference/deepwiki-protocol.md.