"Enterprise Angular application architecture and patterns. Design scalable, maintainable Angular apps with modular architecture, state management strategies, lazy loading, micro-frontends, and monorepo patterns."
Resources
1Install
npx skillscat add olino3/forge/angular-architect Install via the SkillsCat registry.
The skill provides guidance on designing and implementing scalable, maintainable enterprise Angular applications using modular architecture, state management, lazy loading, micro‑frontends, and monorepo patterns. It helps developers plan new projects, refactor existing codebases, or evaluate architectural trade‑offs.
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.mdInterface 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 |