skills/performance-backend/SKILL.md
Optimize backend .NET performance with caching, response compression, pagination, and database query optimization. Use when: adding memory or distributed caching, output caching, response compression, optimizing EF Core or Cosmos DB queries, or implementing cursor/offset pagination.
npx skillsauth add congiuluc/my-awesome-copilot performance-backendInstall 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.
AsNoTracking() for read-only EF Core queries.Select()Use this checklist when reviewing backend code for performance issues:
| # | Check | Tool / Method |
|---|-------|---------------|
| 1 | All list endpoints have pagination | Code review |
| 2 | Read-only queries use AsNoTracking() | Code review |
| 3 | Only needed columns projected with .Select() | Code review |
| 4 | No N+1 query patterns (use .Include() or batch) | EF Core logging |
| 5 | Response compression enabled (Brotli + Gzip) | curl -H 'Accept-Encoding: br' |
| 6 | Hot data cached with appropriate TTL | Code review |
| 7 | Cache invalidation on write operations | Code review |
| 8 | Async/await used for all I/O (no .Result or .Wait()) | Code review |
| 9 | CancellationToken propagated through call chain | Code review |
| 10 | No unbounded ToListAsync() without Take() | Code review |
| 11 | Database indexes on frequently queried columns | Schema review |
| 12 | Connection pooling configured correctly | Config review |
optionsBuilder.LogTo(Console.WriteLine)dotnet-counters for real-time metrics: dotnet-counters monitordotnet-trace for detailed profiling: dotnet-trace collectBenchmarkDotNet for micro-benchmarks on critical pathstools
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.