angular-architect
skill:angular-architect — Enterprise Angular Architecture & Patterns
Version: 1.0.0
Purpose
Design and implement scalable enterprise Angular application architectures. This skill guides decisions on module organization, state management strategy, component hierarchy, lazy loading, micro-frontend boundaries, monorepo structure (Nx/Turborepo), and standalone component migration. Use when starting new Angular projects, refactoring existing architectures, or evaluating architectural trade-offs.
File Structure
skills/angular-architect/
├── SKILL.md (this file)
└── examples.md
Interface References
- Context: Loaded via ContextProvider Interface
- Memory: Accessed via MemoryStore Interface
- Shared Patterns: Shared Loading Patterns
- Schemas: Validated against context_metadata.schema.json and memory_entry.schema.json
Mandatory Workflow
IMPORTANT: Execute ALL steps in order. Do not skip any step.
Step 1: Initial Analysis
- Gather inputs: project type, team size, expected scale, existing codebase (if any)
- Detect Angular version (standalone components vs NgModules)
- Determine monorepo usage (Nx, Turborepo, Angular CLI workspaces)
- Identify current state management (NgRx, NGXS, Akita, Elf, signals-based, service-based)
- Identify UI component library (Angular Material, PrimeNG, Taiga UI, custom)
- Determine project name for memory lookup
Step 2: Load Memory
Follow Standard Memory Loading with
skill="angular-architect"anddomain="angular".
Load per-project memory files if they exist:
project_overview.md— Framework stack, Angular version, key dependenciesarchitecture_decisions.md— ADRs and rationale for past choicesmodule_map.md— Module/library boundaries and dependency graphpatterns_catalog.md— Established patterns in this project
Step 3: Load Context
Follow Standard Context Loading for the
angulardomain. Stay within the file budget declared in frontmatter.
Always Load:
contextProvider.getConditionalContext("angular", "common_issues")— Universal Angular problems
Load Based on Detection:
- Standalone migration →
contextProvider.getConditionalContext("angular", "component_patterns") - State management →
contextProvider.getConditionalContext("angular", "ngrx_patterns") - Service architecture →
contextProvider.getConditionalContext("angular", "service_patterns") - Performance concerns →
contextProvider.getConditionalContext("angular", "performance_patterns") - TypeScript architecture →
contextProvider.getConditionalContext("angular", "typescript_patterns")
Step 4: Architectural Assessment
Evaluate the project across these architectural dimensions:
-
Module Organization
- Feature modules vs domain modules vs shared modules
- Standalone components migration path (Angular 15+)
- Library boundaries in monorepo setups
- Circular dependency detection and resolution
-
State Management Strategy
- Global state (NgRx/NGXS/Akita/Elf) vs local component state
- Signal-based reactive state (Angular 16+)
- Server state vs client state separation
- State hydration for SSR/SSG
-
Component Architecture
- Smart (container) vs presentational (dumb) component separation
- Component communication patterns (Input/Output, services, state)
- Component granularity and reusability
- Dynamic component loading patterns
-
Routing & Lazy Loading
- Route-based code splitting
- Preloading strategies (PreloadAllModules, custom)
- Guard architecture (functional guards in Angular 15+)
- Resolver patterns and data prefetching
-
Dependency Injection Architecture
- Provider scope hierarchy (root, module, component)
- Multi-provider patterns
- Injection token design
- Abstract service patterns for testability
-
Scalability Patterns
- Micro-frontend boundaries (Module Federation, Native Federation)
- Monorepo library architecture (Nx buildable/publishable libs)
- Shared component libraries
- API layer abstraction
-
Build & Deploy Architecture
- Build optimization (budgets, tree-shaking, chunk strategy)
- Environment configuration
- CI/CD pipeline considerations
- SSR/SSG with Angular Universal or Analog
Step 5: Generate Architectural Recommendations
Produce actionable recommendations including:
- Architecture diagrams (described in text/mermaid)
- Module/library dependency graph
- Migration path for incremental adoption
- Decision records (ADRs) for key choices
- Risk assessment for proposed changes
Step 6: Generate Output
- Save output to
/claudedocs/angular-architect_{project}_{YYYY-MM-DD}.md - Follow naming conventions in
../OUTPUT_CONVENTIONS.md
Step 7: Update Memory
Follow Standard Memory Update for
skill="angular-architect". Store any newly learned patterns, conventions, or project insights.
Update per-project memory:
- project_overview.md: Angular version, dependencies, team size, scale
- architecture_decisions.md: ADRs from this session's recommendations
- module_map.md: Updated module/library boundaries
- patterns_catalog.md: New patterns introduced or validated
Compliance Checklist
Before completing, verify:
- All mandatory workflow steps executed in order
- Standard Memory Loading pattern followed (Step 2)
- Standard Context Loading pattern followed (Step 3)
- All 7 architectural dimensions assessed (Step 4)
- Recommendations include migration path (Step 5)
- Output saved with standard naming convention
- Standard Memory Update pattern followed (Step 7)
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2026-02-12 | Initial release — enterprise Angular architecture patterns |