Skill

one-ui-migration

Migrating Angular 16 to 20 with DDD architecture and SignalStore patterns. Use when converting components, structuring features, or following One-UI migration standards.

From one-ui-migration
Install
1
Run in your terminal
$
npx claudepluginhub michael0520/milo-claudekit --plugin one-ui-migration
Tool Access

This skill is limited to using the following tools:

ReadBashEditWriteGlobGrep
Supporting Assets
View in Repository
rules/guides/create-dialog.md
rules/guides/create-page.md
rules/guides/create-table.md
rules/index.md
rules/reference/angular-20-syntax.md
rules/reference/api-types.md
rules/reference/checklist.md
rules/reference/ddd-architecture.md
rules/reference/migration-checklist.md
rules/reference/migration-context.md
rules/reference/migration-workflow.md
rules/reference/pitfalls.md
rules/reference/pitfalls/angular-syntax.md
rules/reference/pitfalls/ddd-violations.md
rules/reference/pitfalls/forms-services.md
rules/reference/pitfalls/index.md
rules/reference/pitfalls/translation-layout.md
rules/reference/shared-stores.md
rules/reference/state-management.md
rules/tools/auth.md
Skill Content

One-UI Migration Skill

Core Principle: MIGRATE, DON'T INNOVATE — 100% behavior parity with Legacy

Task Router

What tool do I need?

I need to...Check this
Add form validationrules/tools/one-validators.md
Create a formrules/tools/form-builder.md
Use shared helpersrules/tools/shared-helpers.md
Manage state (Store)rules/tools/signal-store.md
Handle loading statesrules/tools/loading-states.md
Create a tablerules/tools/common-table.md
Simplify table columnsrules/tools/tables/auto-generate.md
Create a dialogrules/tools/ui/dialogs.md
Use MX componentsrules/tools/mx-components.md
Page structurerules/tools/ui/page-layout.md
Configure routesrules/tools/routing.md
Translate textrules/tools/transloco.md
Handle authenticationrules/tools/auth.md

What do I need to build?

I need to...Check this guide
Create a complete pagerules/guides/create-page.md
Create a dialogrules/guides/create-dialog.md
Create a tablerules/guides/create-table.md

Reference

I need to...Check this
DDD layer rulesrules/reference/ddd-architecture.md
Common migration mistakesrules/reference/pitfalls.md
Angular 20 syntax transformsrules/reference/angular-20-syntax.md
Pre-PR checklistrules/reference/checklist.md

Quick Reference

Essential Transforms

Angular 16Angular 20
*ngIf="x"@if (x) { }
*ngFor="let i of items"@for (i of items; track i.id) { }
constructor(private x)inject()
@Input()input() / input.required()
@Output()output()
BehaviorSubjectsignal()
get x()computed()
ValidatorsOneValidators

DDD 4-Layer Quick Decision

HTTP/Business logic?  → domain/
Injects Store?        → features/
Pure I/O?             → ui/
Route definitions?    → shell/

Critical Migration Rules (NEW)

Form Validation Error Display:

✅ Basic validators (required, maxLength, range) → Use oneUiFormError directive
❌ Pattern validators → MUST use @if/@else with custom messages
❌ Custom validators → MUST use @if/@else with custom messages

DDD Violations to Avoid (see rules/reference/pitfalls.md):

❌ Violation 0: Page form template in features/ (MOST COMMON!)
❌ Violation 1: UI component injecting Store
❌ Violation 2: Dialog in ui/ layer
❌ Violation 3: Business logic in features/
❌ Violation 4: UI form making HTTP calls

Forbidden Patterns

❌ Add features not in Legacy
❌ "Improve" Legacy behavior
❌ Create new API endpoints
❌ Use `any` type
❌ Use BehaviorSubject
❌ Use constructor injection
❌ Use mat-raised-button (use mat-flat-button)
❌ Use text icons (use svgIcon="icon:xxx")
❌ Add padding to page components
❌ Create new translation keys

Activation Triggers

  • "migrate this component"
  • "convert to standalone"
  • "how should I structure this"
  • "where should this go"
  • "what's the pattern for"
  • "check migration rules"

Rules Directory Structure

rules/
├── index.md
├── tools/
│   ├── one-validators.md
│   ├── form-builder.md
│   ├── signal-store.md
│   ├── loading-states.md
│   ├── common-table.md
│   ├── mx-components.md
│   ├── routing.md
│   ├── transloco.md
│   ├── auth.md
│   ├── shared-helpers.md
│   ├── forms/
│   │   ├── validators.md
│   │   ├── error-handling.md
│   │   └── patterns.md
│   ├── tables/
│   │   ├── basics.md
│   │   ├── columns.md
│   │   ├── advanced.md
│   │   └── auto-generate.md
│   └── ui/
│       ├── page-layout.md
│       ├── forms.md
│       ├── buttons.md
│       ├── components.md
│       └── dialogs.md
├── guides/
│   ├── create-page.md
│   ├── create-dialog.md
│   └── create-table.md
└── reference/
    ├── ddd-architecture.md
    ├── angular-20-syntax.md
    ├── api-types.md
    ├── checklist.md
    ├── migration-checklist.md
    ├── migration-context.md
    ├── migration-workflow.md
    ├── shared-stores.md
    ├── state-management.md
    ├── pitfalls.md
    └── pitfalls/
        ├── index.md
        ├── angular-syntax.md
        ├── ddd-violations.md
        ├── forms-services.md
        └── translation-layout.md

Migration Planning

For complex migrations, use migration-planning skill:

/one-ui-migration:plan {feature-name}

This integrates superpowers:brainstorming and superpowers:writing-plans with tool reference checklists.

See: skills/migration-planning/SKILL.md


Post-Migration Validation

Use one-ui-migration-checker agent:

"check migration for libs/mxsecurity/{feature}"
Similar Skills
cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

138.5k
Stats
Parent Repo Stars0
Parent Repo Forks0
Last CommitJan 28, 2026