CtrlK
BlogDocsLog inGet started
Tessl Logo

angular-directives-pipes

Compose HostDirectives and Pure Pipes in Angular. Use when creating attribute directives with HostDirectives or writing pure pipes in Angular. (triggers: **/*.directive.ts, **/*.pipe.ts, hostDirectives, PipeTransform, pure)

84

Quality

80%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/angular/angular-directives-pipes/SKILL.md
SKILL.md
Quality
Evals
Security

Directives & Pipes

Priority: P2 (MEDIUM)

Principles

  • Composition: Use hostDirectives: [TooltipDirective] on @Component or @Directive decorators to compose behaviors without inheritance. Expose inputs/outputs via hostDirectives: [{ directive: TooltipDirective, inputs: ['text'] }].
  • Pure Pipes: Decorate with @Pipe({ name: 'truncate', standalone: true, pure: true }). Implement PipeTransform with transform(value: string, limit = 50) method. Pipes must pure: true (default) to cache results by input reference — Angular only re-runs them when reference changes. ** not set pure: false** unless handling Observables/Arrays that mutate.
  • Directive Logic: Encapsulate reusable DOM manipulation or behavioral logic in standalone: true Directives (e.g., selector: '[appHighlight]'). Inject ElementRef/Renderer2 for DOM access.

Guidelines

  • Signal Inputs: Directives and Pipes support signal inputs.
  • Standalone: All Pipes and Directives must standalone. ** not declare in NgModule**; import directly in component imports array. Use ng generate directive to scaffold.

Anti-Patterns

  • No @HostBinding/@HostListener: Use host: {} object in @Directive decorator — not with @HostBinding or @HostListener (e.g., '(mouseenter)': 'show()', '[attr.aria-label]': 'text()') — these decorators deprecated patterns.
  • No impure pipes for static transforms: Keep pure: true (default); use async pipe for Observables.
  • No structural directives for conditionals: Use native @if/@for/@switch block syntax.

References

  • Composition
Repository
HoangNguyen0403/agent-skills-standard
Last updated
Created

Is this your skill?

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.