What problem does it solve? Angular codebases drift into inconsistent reactivity patterns: subscriptions declared inside methods cause request races, getters recompute on every change detection cycle, and service calls inside computed values silently fail to update. This Skill codifies the signal-first rules so every component, store, service, directive, pipe, guard, and interceptor follows the same conventions. ## Core Features & Use Cases - Signal API conventions: Mandates signal(), computed(), input(), output(), viewChild(), OnPush change detection, and zoneless change detection instead of legacy decorators and getters. - Subscription lifecycle rules: Requires action sources with the Source suffix, subscriptions declared once at setup with switchMap/exhaustMap/concatMap, and termination via takeUntilDestroyed. - Store inheritance guidance: Directs list stores to inherit shared base classes (BaseStoreService, BaseAsyncStoreService) with a built-in message bus. - Use Case: When editing an Angular component that fetches data on a button click, the Skill instructs you to push the action into a refreshSource Subject, declare the subscription once in a field initializer with switchMap, and quench it with takeUntilDestroyed — avoiding response races. ## Quick Start Review this Angular component and rewrite its state, inputs, and subscriptions to follow the signal-based reactivity rules.