--- name: angular-architecture-standalone-components-adoption description: "Adopt Angular standalone components after an Angular upgrade when the app is stable on Ivy and the goal is architectural modernization rather than a version hop. Use when the project is ready to reduce NgModule usage incrementally or convert bounded feature areas without mixing the change into the upgrade itself." license: MIT metadata: ngautopilot-id: "angular.architecture.standalone-components-adoption" ngautopilot-source: "skills/angular/architecture/standalone-components-adoption/SKILL.md" ngautopilot-version: "0.6.0" --- # Standalone Components Adoption ## Purpose Adopt standalone components in bounded slices after the Angular upgrade is stable. ## When to Use - The app is already on a stable Angular version. - The team wants to reduce `NgModule` usage incrementally. - The change is architectural modernization, not a version upgrade. ## When Not to Use - The app is still in the middle of a major Angular hop. - The goal is to fix a build break during upgrade. - The app is not stable on Ivy. ## Required Inputs - `angular.json` - feature module boundaries - routing setup - shared declarations/modules - test coverage for the target slice ## Procedure 1. Select a bounded feature area. 2. Convert leaf components first. 3. Update routing and imports. 4. Remove obsolete declarations only after the slice is stable. 5. Validate build, tests, and runtime behavior. ## Do - Prefer incremental conversion. - Keep shared module changes small. - Validate lazy routes and bootstrap paths. ## Do Not - Do not convert the whole app in one pass. - Do not mix standalone adoption with upgrade hops. - Do not remove modules that still provide shared declarations. ## Review Checklist - [ ] Slice is bounded. - [ ] Routing still works. - [ ] Tests pass. - [ ] Remaining NgModule debt is documented. ## Expected Output 1. Slice converted to standalone. 2. Remaining module dependencies. 3. Test result. 4. Follow-up list. ## Exit Criteria - Adoption is incremental. - The next slice is clear.