Claude-skill-registry-data migration-planning
Planning One-UI migrations with superpowers workflow integration. Ensures tool references are included in brainstorming and plan writing.
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/migration-planning" ~/.claude/skills/majiayu000-claude-skill-registry-data-migration-planning && rm -rf "$T"
data/migration-planning/SKILL.mdMigration Planning Skill
Purpose: Integrate superpowers workflow with one-ui-migration tool references to ensure compliant migration plans.
When to Use
- Before starting a migration with
superpowers:brainstorming - When writing migration plans with
superpowers:writing-plans - When you need to plan a feature migration
Tool Reference Requirements
Component-to-Tool Mapping
| If Legacy has... | You MUST reference... |
|---|---|
| Forms | + |
| Tables | + |
| Dialogs | + |
| State management | + |
| Status display | |
| Page layout | + |
| Authentication | |
| Translation | |
| Route configuration | |
Superpowers Integration
During superpowers:brainstorming
superpowers:brainstormingBefore proposing any design, identify which tools are needed:
## Tool Analysis Legacy component uses: - [ ] Forms → Reference `form-builder.md`, `one-validators.md` - [ ] Tables → Reference `common-table.md` - [ ] Dialogs → Reference `ui/dialogs.md` - [ ] State → Reference `signal-store.md`, `loading-states.md` - [ ] MX Components → Reference `mx-components.md` - [ ] Routes → Reference `routing.md` **Required tools for this migration:** 1. `rules/tools/signal-store.md` - Store pattern 2. `rules/tools/form-builder.md` - Form creation 3. ...
During superpowers:writing-plans
superpowers:writing-plansEvery task MUST include a Tool References section:
### Task N: Create {component} **Layer**: domain | features | ui | shell **Files**: libs/mxsecurity/{feature}/{layer}/src/lib/... **Tool References**: - [ ] `rules/tools/signal-store.md` - queryMethod/mutationMethod - [ ] `rules/tools/one-validators.md` - OneValidators **Implementation**: [code here] **Verification Checklist** (from tool files): - [ ] No `Validators` import (use `OneValidators`) - [ ] No `BehaviorSubject` (use `signal()`) - [ ] No `FormBuilder` (use `NonNullableFormBuilder`)
Tool Checklists
signal-store.md Checklist
- Use
for GET requests (notqueryMethod
)rxMethod - Use
for POST/PUT/DELETEmutationMethod - State interface extends
LoadingState - No
orBehaviorSubjectSubject<> - Use
signal for loading stateloading()
form-builder.md Checklist
- Use
(notNonNullableFormBuilder
)FormBuilder - Initialize with default values
- Use
to submitgetRawValue()
one-validators.md Checklist
- Import
fromOneValidators@one-ui/shared/domain - No
fromValidators@angular/forms - Use
,OneValidators.required
, etc.OneValidators.range
common-table.md Checklist
- Import
,CommonTableComponent
,SELECT_COLUMN_KEYEDIT_COLUMN_KEY - Custom columns (
) havenoAutoGenerate: true
functionfilter - Import
when usingMatSortModulemat-sort-header - Text cells use
+gl-ellipsis-textmxAutoTooltip - Toolbar order: Refresh -> Create -> Delete
ui/dialogs.md Checklist
- Pass
when opening dialogviewContainerRef - Cancel button uses
(notmat-dialog-close
)(click)="cancel()" -
only in.close()
callback (not after mutation call)next: - Submit button:
[disabled]="form.invalid || loading()"
mx-components.md Checklist
-
requiresmxButtonIsLoading
inloading()[disabled] - Form errors use
directiveoneUiFormError -
hasmat-tab-group
andmxTabGroupanimationDuration="0ms" - Status display uses
componentmx-status
ui/page-layout.md Checklist
- Use
(notgl-page-content
)mat-card - Content inside
<div class="content-wrapper"> - No padding on page component
transloco.md Checklist
- Use
(not*transloco="let t"
)| translate - Do NOT create new translation keys
- Verify keys exist in Legacy
en.json
auth.md Checklist
- Use
(notsessionStorage
)localStorage - Token key is
mx_token
loading-states.md Checklist
- State interface extends
LoadingState - Use
for initial stateloadingInitialState() - Use
signal in templatesloading() - Loading button:
[mxButtonIsLoading]="loading()" [disabled]="loading()"
routing.md Checklist
- Use
for route pathsROUTES_ALIASES - Use
for breadcrumb resolutioncreateBreadcrumbResolver - Routes use
with dynamic importloadChildren - Shell module exports
functioncreateRoutes()
Task Template
Use this template for each task in the plan:
### Task {N}: {Description} **Layer**: {domain | features | ui | shell} **Files**: - `libs/mxsecurity/{feature}/{layer}/src/lib/{file}.ts` **Tool References**: - `rules/tools/{tool1}.md` - `rules/tools/{tool2}.md` **Implementation**: ```typescript // code
Verification:
- {checklist item from tool file}
- {checklist item from tool file}
--- ## Migration Planning Workflow
-
Analyze Legacy └── Identify components, forms, tables, dialogs, state └── Map to required tools
-
superpowers:brainstorming └── Include Tool Analysis section └── List all required tool references
-
superpowers:writing-plans └── Each task has Tool References └── Each task has Verification Checklist
-
Execute Plan └── Read tool files before implementing └── Follow checklist for each task
-
Validate └── Run one-ui-migration-checker └── All 29 rules pass
--- ## Example: User Management Migration ### Tool Analysis Legacy `user-management` uses: - Table with selection, edit, delete - Create/Edit dialog with form - Enable/disable status - Store for state management **Required tools**: 1. `signal-store.md` - Store pattern 2. `loading-states.md` - Loading state management 3. `common-table.md` - Table component 4. `ui/dialogs.md` - Dialog pattern 5. `form-builder.md` - Form in dialog 6. `one-validators.md` - Form validation 7. `mx-components.md` - MxStatus, mxButtonIsLoading 8. `transloco.md` - Translations 9. `routing.md` - Route configuration ### Task Example ```markdown ### Task 1: Create UserStore **Layer**: domain **Files**: `libs/mxsecurity/user/domain/src/lib/user.store.ts` **Tool References**: - `rules/tools/signal-store.md` **Implementation**: ```typescript export const UserStore = signalStore( withState(initialState), withMethods((store, api = inject(UserApiService)) => ({ loadUsers: queryMethod<void, User[]>({ store, observe: () => api.getAll$(), next: (users) => patchState(store, { users }) }), deleteUser: mutationMethod<string, void>({ store, observe: (id) => api.delete$(id), next: () => store.loadUsers() }) })) );
Verification:
- Uses
for GET (notqueryMethod
)rxMethod - Uses
for DELETEmutationMethod - State extends
LoadingState - No
BehaviorSubject
--- ## Related Skills - `one-ui-migration` - Main migration skill - `superpowers:brainstorming` - Design phase - `superpowers:writing-plans` - Planning phase ## Validation After plan execution, run:
check migration for libs/mxsecurity/{feature}