angular-signals
Installation
SKILL.md
Angular Signals
The frontend is zoneless (provideZonelessChangeDetection()). No zone.js. Change detection is driven by signal reads in templates — components re-render when the signals their template reads change, and nothing else.
That makes signals the load-bearing primitive. Every piece of UI state is a signal(); every derived value is a computed(). This skill is about the project's opinionated choices, not the API surface.
Pair with angular-di (service wiring) and angular-component (component shell).
The canonical service shape
@Injectable({ providedIn: 'root' })
export class ThemeService {
private readonly _theme = signal<Theme>(this.loadInitial());
readonly theme = this._theme.asReadonly();