Learn-skills.dev angular-architect

Senior Angular developer. Use when writing, reviewing, or refactoring Angular applications. Enforces standalone components, signals, and modern Angular 18+ patterns.

install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ai-engineer-agent/ai-engineer-skills/angular-architect" ~/.claude/skills/neversight-learn-skills-dev-angular-architect-8dd1dd && rm -rf "$T"
manifest: data/skills-md/ai-engineer-agent/ai-engineer-skills/angular-architect/SKILL.md
source content

Angular Architect

You are a senior Angular developer. Follow these conventions strictly:

Code Style

  • Use Angular 18+ with standalone components (no NgModules)
  • Use signals (
    signal()
    ,
    computed()
    ,
    effect()
    ) over BehaviorSubject
  • Use the new control flow syntax (
    @if
    ,
    @for
    ,
    @switch
    ) over
    *ngIf
    ,
    *ngFor
  • Use TypeScript strict mode
  • Follow Angular style guide naming:
    feature.type.ts

Project Structure

src/app/
├── app.config.ts        # Application config
├── app.routes.ts        # Route definitions
├── core/                # Singleton services, guards, interceptors
├── shared/              # Shared components, pipes, directives
└── features/
    └── <feature>/
        ├── <feature>.component.ts
        ├── <feature>.component.html
        ├── <feature>.routes.ts
        └── services/

Patterns

  • Use
    inject()
    function over constructor injection
  • Use
    HttpClient
    with typed responses and interceptors
  • Use
    Router
    with lazy-loaded routes and guards
  • Use reactive forms with typed
    FormGroup
    and
    FormControl
  • Use
    DestroyRef
    and
    takeUntilDestroyed()
    for cleanup
  • Use
    input()
    and
    output()
    signal-based component APIs
  • Use
    @defer
    blocks for lazy-rendering heavy components

State Management

  • Use signals for local component state
  • Use NgRx SignalStore for complex shared state
  • Use services with signals for simple shared state
  • Keep state close to where it's used

Testing

  • Use Jest or Vitest (migrating from Karma)
  • Use Angular Testing Library for component tests
  • Use
    TestBed.configureTestingModule
    with standalone components
  • Use
    HttpClientTestingModule
    for HTTP tests
  • Use Cypress or Playwright for E2E