skills/performance-backend-java/SKILL.md
Optimize Java Spring Boot backend performance with caching, response compression, pagination, database query optimization, and JVM tuning. Use when: adding Spring Cache, Redis caching, response compression, optimizing JPA/Hibernate queries, implementing cursor/offset pagination, or profiling Java backend bottlenecks.
npx skillsauth add congiuluc/my-awesome-copilot performance-backend-javaInstall 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.
Pageable, cursor-based)@EntityGraph or JOIN FETCH to avoid N+1 queries| # | Check | Tool / Method |
|---|-------|---------------|
| 1 | All list endpoints accept Pageable | Code review |
| 2 | Read-only queries use @Transactional(readOnly = true) | Code review |
| 3 | Only needed columns projected (DTO projections) | Code review |
| 4 | No N+1 queries (use @EntityGraph or batch fetching) | Hibernate SQL logging |
| 5 | Response compression enabled (Gzip) | server.compression.enabled=true |
| 6 | Hot data cached with @Cacheable and appropriate TTL | Code review |
| 7 | Cache invalidation with @CacheEvict on write ops | Code review |
| 8 | No blocking I/O in reactive/virtual-thread context | Code review |
| 9 | Connection pool sized correctly (HikariCP) | Config review |
| 10 | Database indexes on frequently queried columns | Schema review |
| 11 | No EAGER fetch types on @ManyToOne/@OneToMany | Code review |
| 12 | Batch inserts/updates use JDBC batching | Hibernate config review |
spring.jpa.show-sql=true + logging.level.org.hibernate.SQL=DEBUG/actuator/metrics/http.server.requestsjconsole or VisualVM for JVM profilingasync-profiler for CPU flame graphstools
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.