This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build Commands:
./mvnw clean spring-javaformat:apply compile # Compile application
./mvnw spring-javaformat:apply test # Run all tests
./mvnw spring-javaformat:apply verify # Run all tests including integration tests- Package:
am.ik.maven.compression- Main package
- Brotli compression of static resources (using brotli4j)
- Gzip compression of static resources (using java.util.zip)
- Configurable file extensions (default: js, css, svg)
- Configurable resource directories (default: static)
- Configurable Brotli quality (default: 11)
- Skip execution support
- Independent Brotli/Gzip enable/disable
- Java 17+
- No external dependencies except for brotli4j (compression) and testing libraries
- Use builder pattern if the number of arguments is more than two
- Write javadoc and comments in English
- Spring Java Format enforced via Maven plugin
- All code must pass formatting validation before commit
- Use Java 17 compatible features (avoid Java 21+ specific APIs)
- Use modern Java technics as much as possible like Java Records, Pattern Matching, Text Block etc ...
- Be sure to avoid circular references between classes and packages.
- Specify when this library should be used
- The explanations are written from the perspective of the API user, with plenty of code examples to make usage easy to understand.
- No need for excessive advertising
- There is no need to use emojis or flashy expressions, just write simply and honestly.
- JUnit 5 with AssertJ
- All tests must pass before completing tasks
- Code examples in the README must be tested to ensure they work.
- Ensure all code is formatted using
./mvnw spring-javaformat:apply - Run full test suite with
./mvnw test - For every task, notify that the task is complete and ready for review by the following command:
osascript -e 'display notification "<Message Body>" with title "<Message Title>"’