skills/performance-frontend-angular/SKILL.md
Optimize Angular 19 frontend performance with lazy loading, OnPush change detection, trackBy functions, bundle optimization, image optimization, and Core Web Vitals. Use when: reducing bundle size, lazy loading routes, optimizing change detection, virtualizing long lists, or improving Core Web Vitals in Angular applications.
npx skillsauth add congiuluc/my-awesome-copilot performance-frontend-angularInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
OnPush strategytrackBy functions to @for loops / *ngFor@angular/cdk/scrollingNgOptimizedImageOnPush change detectiontrackBy to every @for / *ngFor loopNgOptimizedImage for all <img> tagsVirtualScrollViewport| # | Check | Tool / Method |
|---|-------|---------------|
| 1 | Bundle size < 200 KB gzipped (initial load) | ng build --stats-json + webpack-bundle-analyzer |
| 2 | All routes use loadComponent lazy loading | Code review |
| 3 | All components use ChangeDetectionStrategy.OnPush | Code review |
| 4 | Every @for / *ngFor has a trackBy function | Code review |
| 5 | Images use NgOptimizedImage with width/height | Code review |
| 6 | Above-the-fold images have priority attribute | Code review |
| 7 | Lists > 100 items use cdk-virtual-scroll-viewport | Code review |
| 8 | No unnecessary subscriptions (use takeUntilDestroyed) | Code review |
| 9 | Signals used instead of getters in templates | Code review |
| 10 | LCP < 2.5s, CLS < 0.1, INP < 200ms | Lighthouse / Web Vitals |
| 11 | Third-party scripts loaded async/deferred | HTML review |
| 12 | Fonts use font-display: swap | CSS review |
npx lighthouse http://localhost:4200 --viewng build --stats-json then npx webpack-bundle-analyzer dist/stats.jsontools
Build VS Code extensions with TypeScript. Covers extension anatomy, activation events, commands, tree views, webview panels, language features, testing, and publishing. Use when: creating a new VS Code extension, adding commands/views/providers, building webview UIs, implementing language server features, testing extensions, or packaging for the marketplace.
development
Track implementations, features, bugs, and releases in a versioning document. Use when: adding a commit, completing a feature, fixing a bug, or preparing a release. Automatically updates CHANGELOG.md following Keep a Changelog format and Semantic Versioning.
development
Write frontend tests using Vitest and React Testing Library. Use when: testing React components, hooks, user interactions, form submissions, accessibility assertions, or mocking API services.
development
Write Angular frontend tests using Jasmine, Karma, and Angular TestBed. Use when: testing Angular components, services, pipes, directives, user interactions, form submissions, accessibility assertions, or mocking HTTP services.