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.4---56# Angular Architect Skill78Strategic, 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.910---1112## Auto-Detection1314This skill activates when:1516- Designing Angular module, feature, or state architecture17- Setting up Nx monorepo or micro-frontend (module federation) workspaces18- Choosing performance budgets, testing strategy, or signals adoption19- Reviewing existing Angular projects for enterprise readiness2021---2223## Architect Checklist2425- Angular 20+ features used properly (standalone-by-default, signals, native control flow)26- TypeScript strict mode enabled27- OnPush strategy on every component28- Bundle budgets configured29- Test coverage > 85%30- Accessibility AXE-clean and WCAG AA compliant31- Performance budgets met (initial load < 3s, route transitions < 200ms)3233---3435## Architecture3637- Standalone component tree (no NgModules)38- Lazy-loaded routes via `loadComponent` / `loadChildren`39- Provider scoping via `providedIn` and route-level providers40- Functional guards and resolvers41- Functional HTTP interceptors via `provideHttpClient(withInterceptors([...]))`42- Application config via `ApplicationConfig` and `provide*` functions43- Feature folders with barrel exports for public surfaces4445---4647## Signals (v20+ default)4849- Signal-first component state50- `input()` and `output()` functions (no `@Input` / `@Output` decorators)51- `computed()` for derived state52- `effect()` for side effects (sparingly)53- `signal.update()` / `signal.set()` only — never `mutate`54- RxJS interop via `toSignal()` / `toObservable()`55- Pure, predictable state transformations5657---5859## RxJS Mastery6061- Observable composition patterns62- Subject selection (`BehaviorSubject` vs `ReplaySubject` vs `Subject`)63- Operator chains and operator authoring64- Error handling and recovery (`catchError`, `retry`)65- Memory management (`takeUntilDestroyed`, async pipe, completion semantics)66- Multicasting (`shareReplay`, `share`)67- Marble testing6869---7071## State Management7273- NgRx with `createFeature`, `createActionGroup`, functional effects74- Selector optimization and memoization75- Entity adapters for collections76- Router state integration77- Redux DevTools integration78- Store testing strategies7980---8182## Enterprise Patterns8384- Smart / dumb (container / presentational) components85- Facade pattern for feature boundaries86- Repository pattern for data access87- Service layer composition88- Dependency injection scoping89- Custom decorators90- Dynamic components and content projection9192---9394## Performance Optimization9596- OnPush change detection97- `track` expressions in `@for` loops98- Virtual scrolling for large lists99- Lazy loading and preloading strategies100- Bundle analysis and size budgets101- Tree shaking102- Production AoT build configuration103104---105106## Micro-frontend Architecture107108- Module federation109- Shell architecture110- Remote loading strategies111- Shared dependency management (singleton libraries)112- Cross-app communication patterns113- Independent deployment114- Version compatibility115- Testing across remotes116117---118119## Testing Strategies120121- Unit, component, and service testing via `TestBed`122- E2E with Cypress or Playwright123- Marble testing for RxJS streams124- Store testing (NgRx)125- Visual regression126- Performance testing127128---129130## Nx Monorepo131132- Workspace setup and library taxonomy (`feature`, `ui`, `data-access`, `util`)133- Module boundary rules (`@nx/enforce-module-boundaries`)134- `affected` commands for CI135- Build caching136- CI/CD integration137- Cross-app code sharing138- Dependency graph analysis139140---141142## Advanced Features143144- Custom directives (structural, attribute)145- Dynamic component creation146- Pipe optimization (pure pipes, signals over impure)147- Typed reactive forms148- Animation API149- CDK usage (overlay, drag-drop, scrolling, a11y)150151---152153## Best Practices154155- Angular style guide156- TypeScript strict mode157- No `@HostBinding` / `@HostListener` — use the `host` object on the decorator158- No `ngClass` / `ngStyle` — use `[class.x]` / `[style.x]` bindings159- Native control flow (`@if`, `@for`, `@switch`) over `*ngIf`, `*ngFor`, `*ngSwitch`160- `NgOptimizedImage` for static images (not inline base64)161- AXE-clean accessibility, WCAG AA minimums (focus, contrast, ARIA)162- ESLint configured163- Prettier formatting164- Conventional commits165- Semantic versioning166- Documentation kept current167- Thorough code reviews