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.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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.When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
@empty { }
Never use @HostBinding
Signal inputs
inputs and emit events via outputs
Additional task-grounded exact anchors: @if (condition); @for (item of items; track item.id); booleanAttribute; model(); Smart (Container); toSignal()
9f695e8
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.