Build standalone Angular components with Signals inputs, OnPush change detection, Control Flow, and Smart/Dumb patterns. Use when building standalone Angular components, implementing @if/@for control flow, applying OnPush change detection, or implementing Signals in Angular components. (triggers: **/*.component.ts, **/*.component.html, angular component, standalone, input signal, output, @if, @for, ChangeDetectionStrategy, OnPush, Input, Output)
94
92%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
standalone: true. Import all deps in imports array. No NgModule. (Angular 20+: standalone default.)host: { } on @Component (e.g., '[class.active]': 'isActive()') — never use @HostBinding/@HostListener.Emulated. Use None carefully.ChangeDetectionStrategy.OnPush. No exceptions.input.required<T>() or input<T>() not @Input(). Access as functions: {{ userId() }}. Use booleanAttribute/numberAttribute transforms.output<T>() (v17.3+) not @Output() EventEmitter. Two-way binding: model().signal() local, computed() derived, effect() side effects only.toSignal() (auto-unsubscribes), takeUntilDestroyed(), or DestroyRef. Never subscribe() without cleanup.@if (condition), @for (item of items; track item.id), @switch, @empty { } instead of *ngIf/*ngFor (new control flow syntax, Angular 17+).{{ calculate() }} re-evaluates every cycle → computed() instead.async pipe or toSignal. Never subscribe() without cleanup.19a1140
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.