angular — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited angular (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
regarding Signals and RxJS interop.
documentation cannot be retrieved via live search.
BehaviorSubject where possible.toSignal function from the @angular/core/rxjs-interop package to track the value of an Observable in thetemplate.
takeUntilDestroyed operator from @angular/core/rxjs-interop for allcomponent-level subscriptions. Do not use the legacy Subject and ngOnDestroy pattern.
async pipe in templates for any raw Observables that are not converted to Signals, preventingmanual subscribe calls in the component class.
switchMap for HTTP requests andconcatMap for ordered operations to avoid race conditions.
inject function for dependency injection instead of constructor injection. This aligns withmodern functional patterns and simplifies component inheritance.
providedIn: 'root' syntax inside the @Injectable decorator to ensuretree-shaking works correctly.
HttpClient directly into components. Abstract all API communication into dedicated data services.ngOnInit lifecycle hook.feature.type.ts for file names.ChangeDetectionStrategy.OnPush for all newly generated components to optimize rendering performance.Bind to properties, Signals, or use pure pipes instead.
@defer block syntax available in modern Angular templates.jest-preset-angular) or Vitest as the test runner.@testing-library/angular for component tests; query by accessible roles and labels, not by CSS selectors orcomponent internals.
@playwright/test); do not use the deprecated Protractor.provideHttpClientTesting and HttpTestingController; never mock HttpClientdirectly.
inject() rather than class-based CanActivate.CanDeactivate guards for forms with unsaved changes to prevent accidental data loss.ResolveFn) only for data that is required before the component can render; for optional or deferreddata, fetch inside the component.
FormGroup, FormControl) for all non-trivial forms. Do not use Template-Driven Forms for formswith complex validation or dynamic fields.
FormControl<string>, FormGroup<{...}>) introduced in Angular 14+; never use untyped formvariants.
class.
HttpInterceptorFn) rather than class-based interceptors.with inject().
they reach services.
ErrorHandler implementation that captures uncaught errors, logs them with context (URL, user ID),and displays a user-friendly fallback UI instead of a blank screen.
catchError without logging them; always re-throw or convert to a typed error signal.bypassSecurityTrustHtml unless the content is generatedexclusively server-side and sanitised there.
DomSanitizer API for URL and style binding only when absolutely necessary and document the reason.CSP-compatible code when nonce is configured.
@angular/localize system for static text extraction and locale-specific builds.i18n attributes or$localize tagged templates.
ngx-translate as a complement to Angular i18n.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.