Angular Architect Skill
Strategic, checklist-driven guidance for Angular 20+ enterprise applications: architecture, state, performance, micro-frontends, testing, Nx, and signals. Pairs with angular-expert (which carries code-level patterns) — this skill informs higher-level decisions.
Auto-Detection
This skill activates when:
- Designing Angular module, feature, or state architecture
- Setting up Nx monorepo or micro-frontend (module federation) workspaces
- Choosing performance budgets, testing strategy, or signals adoption
- Reviewing existing Angular projects for enterprise readiness
Architect Checklist
- Angular 20+ features used properly (standalone-by-default, signals, native control flow)
- TypeScript strict mode enabled
- OnPush strategy on every component
- Bundle budgets configured
- Test coverage > 85%
- Accessibility AXE-clean and WCAG AA compliant
- Performance budgets met (initial load < 3s, route transitions < 200ms)
Architecture
- Standalone component tree (no NgModules)
- Lazy-loaded routes via
loadComponent / loadChildren
- Provider scoping via
providedIn and route-level providers
- Functional guards and resolvers
- Functional HTTP interceptors via
provideHttpClient(withInterceptors([...]))
- Application config via
ApplicationConfig and provide* functions
- Feature folders with barrel exports for public surfaces
Signals (v20+ default)
- Signal-first component state
input() and output() functions (no @Input / @Output decorators)
computed() for derived state
effect() for side effects (sparingly)
signal.update() / signal.set() only — never mutate
- RxJS interop via
toSignal() / toObservable()
- Pure, predictable state transformations
RxJS Mastery
- Observable composition patterns
- Subject selection (
BehaviorSubject vs ReplaySubject vs Subject)
- Operator chains and operator authoring
- Error handling and recovery (
catchError, retry)
- Memory management (
takeUntilDestroyed, async pipe, completion semantics)
- Multicasting (
shareReplay, share)
- Marble testing
State Management
- NgRx with
createFeature, createActionGroup, functional effects
- Selector optimization and memoization
- Entity adapters for collections
- Router state integration
- Redux DevTools integration
- Store testing strategies
Enterprise Patterns
- Smart / dumb (container / presentational) components
- Facade pattern for feature boundaries
- Repository pattern for data access
- Service layer composition
- Dependency injection scoping
- Custom decorators
- Dynamic components and content projection
Performance Optimization
- OnPush change detection
track expressions in @for loops
- Virtual scrolling for large lists
- Lazy loading and preloading strategies
- Bundle analysis and size budgets
- Tree shaking
- Production AoT build configuration
Micro-frontend Architecture
- Module federation
- Shell architecture
- Remote loading strategies
- Shared dependency management (singleton libraries)
- Cross-app communication patterns
- Independent deployment
- Version compatibility
- Testing across remotes
Testing Strategies
- Unit, component, and service testing via
TestBed
- E2E with Cypress or Playwright
- Marble testing for RxJS streams
- Store testing (NgRx)
- Visual regression
- Performance testing
Nx Monorepo
- Workspace setup and library taxonomy (
feature, ui, data-access, util)
- Module boundary rules (
@nx/enforce-module-boundaries)
affected commands for CI
- Build caching
- CI/CD integration
- Cross-app code sharing
- Dependency graph analysis
Advanced Features
- Custom directives (structural, attribute)
- Dynamic component creation
- Pipe optimization (pure pipes, signals over impure)
- Typed reactive forms
- Animation API
- CDK usage (overlay, drag-drop, scrolling, a11y)
Best Practices
- Angular style guide
- TypeScript strict mode
- No
@HostBinding / @HostListener — use the host object on the decorator
- No
ngClass / ngStyle — use [class.x] / [style.x] bindings
- Native control flow (
@if, @for, @switch) over *ngIf, *ngFor, *ngSwitch
NgOptimizedImage for static images (not inline base64)
- AXE-clean accessibility, WCAG AA minimums (focus, contrast, ARIA)
- ESLint configured
- Prettier formatting
- Conventional commits
- Semantic versioning
- Documentation kept current
- Thorough code reviews
1---2name: angular-architect3description: Expert Angular architect mastering Angular 20+ with enterprise patterns. Specializes in signals, RxJS, NgRx state management, micro-frontend architecture, and performance optimization with focus on building scalable enterprise applications.4allowed-tools: Read Write Edit Bash Glob Grep5metadata:6 category: domain-skills7---89# Angular Architect Skill1011Strategic, checklist-driven guidance for Angular 20+ enterprise applications: architecture, state, performance, micro-frontends, testing, Nx, and signals. Pairs with `angular-expert` (which carries code-level patterns) — this skill informs higher-level decisions.1213---1415## Auto-Detection1617This skill activates when:1819- Designing Angular module, feature, or state architecture20- Setting up Nx monorepo or micro-frontend (module federation) workspaces21- Choosing performance budgets, testing strategy, or signals adoption22- Reviewing existing Angular projects for enterprise readiness2324---2526## Architect Checklist2728- Angular 20+ features used properly (standalone-by-default, signals, native control flow)29- TypeScript strict mode enabled30- OnPush strategy on every component31- Bundle budgets configured32- Test coverage > 85%33- Accessibility AXE-clean and WCAG AA compliant34- Performance budgets met (initial load < 3s, route transitions < 200ms)3536---3738## Architecture3940- Standalone component tree (no NgModules)41- Lazy-loaded routes via `loadComponent` / `loadChildren`42- Provider scoping via `providedIn` and route-level providers43- Functional guards and resolvers44- Functional HTTP interceptors via `provideHttpClient(withInterceptors([...]))`45- Application config via `ApplicationConfig` and `provide*` functions46- Feature folders with barrel exports for public surfaces4748---4950## Signals (v20+ default)5152- Signal-first component state53- `input()` and `output()` functions (no `@Input` / `@Output` decorators)54- `computed()` for derived state55- `effect()` for side effects (sparingly)56- `signal.update()` / `signal.set()` only — never `mutate`57- RxJS interop via `toSignal()` / `toObservable()`58- Pure, predictable state transformations5960---6162## RxJS Mastery6364- Observable composition patterns65- Subject selection (`BehaviorSubject` vs `ReplaySubject` vs `Subject`)66- Operator chains and operator authoring67- Error handling and recovery (`catchError`, `retry`)68- Memory management (`takeUntilDestroyed`, async pipe, completion semantics)69- Multicasting (`shareReplay`, `share`)70- Marble testing7172---7374## State Management7576- NgRx with `createFeature`, `createActionGroup`, functional effects77- Selector optimization and memoization78- Entity adapters for collections79- Router state integration80- Redux DevTools integration81- Store testing strategies8283---8485## Enterprise Patterns8687- Smart / dumb (container / presentational) components88- Facade pattern for feature boundaries89- Repository pattern for data access90- Service layer composition91- Dependency injection scoping92- Custom decorators93- Dynamic components and content projection9495---9697## Performance Optimization9899- OnPush change detection100- `track` expressions in `@for` loops101- Virtual scrolling for large lists102- Lazy loading and preloading strategies103- Bundle analysis and size budgets104- Tree shaking105- Production AoT build configuration106107---108109## Micro-frontend Architecture110111- Module federation112- Shell architecture113- Remote loading strategies114- Shared dependency management (singleton libraries)115- Cross-app communication patterns116- Independent deployment117- Version compatibility118- Testing across remotes119120---121122## Testing Strategies123124- Unit, component, and service testing via `TestBed`125- E2E with Cypress or Playwright126- Marble testing for RxJS streams127- Store testing (NgRx)128- Visual regression129- Performance testing130131---132133## Nx Monorepo134135- Workspace setup and library taxonomy (`feature`, `ui`, `data-access`, `util`)136- Module boundary rules (`@nx/enforce-module-boundaries`)137- `affected` commands for CI138- Build caching139- CI/CD integration140- Cross-app code sharing141- Dependency graph analysis142143---144145## Advanced Features146147- Custom directives (structural, attribute)148- Dynamic component creation149- Pipe optimization (pure pipes, signals over impure)150- Typed reactive forms151- Animation API152- CDK usage (overlay, drag-drop, scrolling, a11y)153154---155156## Best Practices157158- Angular style guide159- TypeScript strict mode160- No `@HostBinding` / `@HostListener` — use the `host` object on the decorator161- No `ngClass` / `ngStyle` — use `[class.x]` / `[style.x]` bindings162- Native control flow (`@if`, `@for`, `@switch`) over `*ngIf`, `*ngFor`, `*ngSwitch`163- `NgOptimizedImage` for static images (not inline base64)164- AXE-clean accessibility, WCAG AA minimums (focus, contrast, ARIA)165- ESLint configured166- Prettier formatting167- Conventional commits168- Semantic versioning169- Documentation kept current170- Thorough code reviews