Claude-skill-registry full-migration-pipeline
Complete Angular migration pipeline that orchestrates all migration skills in sequence. Use when performing end-to-end page migration with analysis, implementation, quality checks, and QA verification.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/full-migration-pipeline" ~/.claude/skills/majiayu000-claude-skill-registry-full-migration-pipeline && rm -rf "$T"
skills/data/full-migration-pipeline/SKILL.mdFull Migration Pipeline
Automated execution of the complete Angular migration workflow, orchestrating all related skills in sequence.
Arguments
- Format:$ARGUMENTS
or--from <source_path> --to <target_path>--page <page_name>
: Legacy project path (e.g.,--from
)/Users/jayden/f2e-networking-jayden/apps/mxsecurity-web/src/app/pages/account
: New project path (e.g.,--to
)libs/mxsecurity/account-page
: GitLab page name (e.g.,--page
,time
) - When using this parameter, source code is automatically fetched from GitLabaccount
Pipeline Workflow
┌─────────────────────────────────────────────────────────────────┐ │ FULL MIGRATION PIPELINE │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Phase 1: Analysis │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 1.1 Execute migrate-page (analysis + document generation)│ │ │ │ 1.2 Execute form-extraction (extract form structure) │ │ │ │ Output: MIGRATION-ANALYSIS.md │ │ │ └─────────────────────────────────────────────────────────┘ │ │ ↓ │ │ Phase 2: Implementation (Manual) │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 2.1 Create Domain Layer (model, api, store, helper) │ │ │ │ 2.2 Create UI Layer (tables, forms) │ │ │ │ 2.3 Create Features Layer (page, dialogs) │ │ │ │ 2.4 Create Shell Layer (routes) │ │ │ │ [Await user confirmation] │ │ │ └─────────────────────────────────────────────────────────┘ │ │ ↓ │ │ Phase 3: Quality Assurance │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 3.1 Execute migration-lint (compliance check + auto-fix) │ │ │ │ 3.2 Execute migration-review (migration completeness) │ │ │ │ 3.3 Execute compare-i18n-keys (translation key compare) │ │ │ │ 3.4 Execute check-barrel-files (check redundant barrels) │ │ │ └─────────────────────────────────────────────────────────┘ │ │ ↓ │ │ Phase 4: QA Verification │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 4.1 Execute generate-qa-test-cases (generate test cases) │ │ │ │ 4.2 Execute verify-legacy-with-qa-testcases (verify old) │ │ │ │ Output: QA-TEST-CASES.md, LEGACY-VERIFICATION-REPORT.md│ │ │ └─────────────────────────────────────────────────────────┘ │ │ ↓ │ │ Phase 5: Final Report │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Output MIGRATION-SUMMARY.md (consolidate all results) │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘
Execution Flow
Phase 1: Analysis
Automated Execution:
-
Determine Source Type
- If
is provided: Use GitLab API to fetch source code--page - If
is provided: Use local files--from
- If
-
Execute Migration Analysis
Execute based on source type: - /migrate-page --from={source} --to={target} - /migrate-page-gitlab --page={page_name} -
Extract Form Structure (Auxiliary Analysis)
- Read form definitions from source code
- List all formControlName and validators
Output:
{target}/domain/src/lib/docs/MIGRATION-ANALYSIS.md
User Prompt:
Phase 1 analysis complete. Proceed to Phase 2 implementation?
Phase 2: Implementation
Implementation Guidelines:
Display pending implementation checklist (based on MIGRATION-ANALYSIS.md):
## Implementation Checklist ### Domain Layer - [ ] Create `{feature}.model.ts` - API types, view models - [ ] Create `{feature}.api.ts` - API service (inline URLs directly, do not use constants) - [ ] Create `{feature}.store.ts` - SignalStore - [ ] Create `{feature}.helper.ts` - Pure functions (if needed) ### Features Layer (Implement First) - [ ] Create Page component - [ ] Create Dialog components (if applicable) - [ ] Verify store injection ### UI Layer (Extract from Features) - [ ] Extract Table components to UI layer - [ ] Extract Form components to UI layer - [ ] Verify input()/output() usage, no store injection ### Shell Layer - [ ] Create routes - [ ] Register in app.routes.ts
Important: Form/Table Extraction to UI Layer
Implementation Order:
- First complete page functionality in Features Layer
- Then extract Form and Table to UI Layer
- Features Layer should only retain orchestration code
Extraction Criteria:
containing<form>
-> Extract to UI<mat-form-field>- Tables -> Prefer
pattern (referencecommon-table
)libs/mxsecurity/shared/ui/src/lib/common-table - Dialogs remain in Features (but forms inside Dialogs can be extracted to UI)
Table Implementation Approach:
- Prefer using
withCommonTableComponent
for column definitionsMxColumnDef[] - Only create standalone table component in UI layer for complex customization requirements
Exceptions (No Extraction Required):
- Extremely simple pages (e.g., only radio group without form validation)
- Components used by a single page without complex form logic
Patterns to Avoid
// DO NOT use TRANSLOCO_SCOPE providers: [{ provide: TRANSLOCO_SCOPE, useValue: { scope: 'xxx' } }] // DO NOT use endpoint constants readonly #ENDPOINTS = { API: '/api/xxx' }; // CORRECT: Inline URLs directly this.#rest.get('/api/xxx');
Chunked Migration Strategy (Reducing Omission Risk)
Principle: Process from large sections to small units, completing each before proceeding
Page Structure Analysis: ┌─────────────────────────────────────┐ │ Page │ │ ┌─────────────────────────────────┐ │ │ │ mat-tab-group │ │ │ │ ┌───────────┬───────────┐ │ │ │ │ │ Tab 1 │ Tab 2 │ │ │ │ │ ├───────────┴───────────┤ │ │ │ │ │ mat-card / section 1 │ │ │ │ │ ├───────────────────────┤ │ │ │ │ │ mat-card / section 2 │ │ │ │ │ └───────────────────────┘ │ │ │ └─────────────────────────────────┘ │ └─────────────────────────────────────┘
Step 1: Segment by mat-tab
- First identify the number of tabs on the page
- Process each tab independently, completing one before proceeding to the next
- Create a checklist corresponding to each tab
Step 2: Segment by
/ mat-cardcontent-wrapper
- Within each tab, identify all cards/sections
- Treat each card as an independent migration unit
- Verify immediately after completing each card
Step 3: Migrate and Verify Incrementally
- Migration order: top to bottom, left to right
- Execute
after completing each segment/migration-lint - Compare with legacy code to confirm no omissions
Example Checklist:
## Chunked Migration Progress ### Tab 1: General Settings - [x] Card 1.1: Basic Info - [x] Card 1.2: Network Config - [ ] Card 1.3: Advanced Options ### Tab 2: Security - [ ] Card 2.1: Authentication - [ ] Card 2.2: Certificates
Generate Library Structure:
nx g @one-ui/one-plugin:library mxsecurity {page-name} all
Await User Confirmation:
After completing the above implementation, enter "done" or "continue" to proceed to Phase 3. For pattern queries, use /migration-patterns <keyword>
Phase 3: Quality Assurance
Automated Execution:
-
Compliance Check + Auto-fix
/migration-lint {target}- Auto-fix: mat-raised-button -> mat-flat-button
- Auto-fix: *ngIf -> @if
- Auto-fix: Validators -> OneValidators
- Generate compliance report
-
Migration Completeness Check
/migration-review --from={source} --to={target}- Compare form controls
- Compare validators
- Compare translation keys
- Compare event bindings
-
Translation Key Comparison (For primary HTML files)
/compare-i18n-keys --from={source}/*.html --to={target}/**/*.html -
Check Redundant Barrel Files
/check-barrel-files {target}
Output:
- Reports for each check (displayed in conversation)
- List of auto-fixed changes
User Prompt:
Phase 3 quality assurance complete. X issues auto-fixed, Y issues require manual intervention. Proceed to Phase 4 QA verification?
Phase 4: QA Verification
Automated Execution:
-
Generate QA Test Cases
/generate-qa-test-cases {target}- Extract test cases from new code
- Generate structured test report
-
Verify Legacy Code
/verify-legacy-with-qa-testcases {source}- Verify legacy code using test cases
- Confirm functional consistency
Output:
{target}/domain/src/lib/docs/QA-TEST-CASES.md{target}/domain/src/lib/docs/LEGACY-VERIFICATION-REPORT.md
Phase 5: Final Report
Auto-generate MIGRATION-SUMMARY.md:
# {Feature Name} Migration Summary Report **Migration Date:** {date} **Source:** {source_path} **Target:** {target_path} ## Migration Status | Phase | Status | Notes | |-------|--------|-------| | Phase 1: Analysis | Complete | | | Phase 2: Implementation | Complete | | | Phase 3: Quality Assurance | Complete | X items auto-fixed | | Phase 4: QA Verification | Complete | | ## Generated Documents - [x] MIGRATION-ANALYSIS.md - [x] QA-TEST-CASES.md - [x] LEGACY-VERIFICATION-REPORT.md - [x] MIGRATION-SUMMARY.md (this document) ## Compliance Report Summary ### Auto-fixed Items {List of auto-fixed items} ### Items Requiring Manual Intervention {List of items requiring manual intervention} ## Migration Completeness | Category | Source | Target | Completeness | |----------|--------|--------|--------------| | Form Controls | X | X | 100% | | Validators | X | X | 100% | | Translation Keys | X | X | 100% | | Event Bindings | X | X | 100% | ## Next Steps 1. [ ] Execute comprehensive testing 2. [ ] Code Review 3. [ ] Merge to main branch
Output Location:
{target}/domain/src/lib/docs/MIGRATION-SUMMARY.md
Usage Examples
Migration from Local Source
/full-migration-pipeline --from=/Users/jayden/f2e-networking-jayden/apps/mxsecurity-web/src/app/pages/account --to=libs/mxsecurity/account-page
Migration from GitLab
/full-migration-pipeline --page=account
Interruption and Resumption
If the workflow is interrupted, continue from a specific phase:
# Execute Phase 3 quality assurance only /migration-lint libs/mxsecurity/account-page # Execute Phase 4 QA verification only /generate-qa-test-cases libs/mxsecurity/account-page /verify-legacy-with-qa-testcases /path/to/legacy
Auxiliary Skills
Available for use at any point during pipeline execution:
| Skill | Purpose |
|---|---|
| Query migration patterns |
| Find replacement icons |
| UI layout guidelines |