app
This skill should be used when the user asks to "calculate code mass", "measure code complexity with APP", "compare…
Always load this skill when a Maven/Gradle project uses Lombok (lombok on the classpath or in the pom), when lombok annotations appear in source code, or when compilation fails with "cannot find symbol" errors for lombok-generated methods (builder(), getters, setters,
Claude Code
$ npx -y skills add t1/tdder --skill lombok --agent claude-code
Codex
$ npx skills add t1/tdder --skill lombok -a codex -y
Cursor
$ npx skills add t1/tdder --skill lombok -a cursor -y
Gemini CLI
$ npx skills add t1/tdder --skill lombok -a gemini-cli -y
GitHub Copilot
$ npx skills add t1/tdder --skill lombok -a github-copilot -y
OpenCode
$ npx skills add t1/tdder --skill lombok -a opencode -y
Windsurf
$ npx skills add t1/tdder --skill lombok -a windsurf -y
name: lombok
description: >
Always load this skill when you encounter any of these signals:
• A build failure with "cannot find symbol" for Lombok-generated members (getX, setX, builder,
toString, equals, hashCode, withX)
• Source files annotated with @Data, @Getter, @Setter, @Slf4j, @Builder, @Value, @With,
@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
• A Maven or Gradle project that declares lombok as a dependency but fails to compile
Lombok-produced symbols
Covers the JDK 21+ annotation-processor gotcha that silently disables Lombok.
version: 0.1.0Lombok conventions and gotchas for Java projects. Language- and build-tool-specific conventions are covered by the `java` and `maven` skills.
Since JDK 21, javac no longer discovers annotation processors from the plain classpath — they must be declared explicitly. **Symptoms:**
`builder()`, `build()`, getters/setters (`getX()`/`setX()`), constructors (`@NoArgsConstructor`, `@AllArgsConstructor`, `@RequiredArgsConstructor`), `toString()`, `equals()`, `hashCode()`, `withX()` (`@With`), etc.
**Fix for Maven** — declare the processor explicitly in the compiler plugin (root pom, so all modules inherit it). Use a `${lombok.version}` property alongside an explicit property declaration; pin the actual value next to it:
<properties>
<lombok.version>1.18.48</lombok.version>
</properties>
...
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<proc>full</proc>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>Check the latest version with the version-lookup tool before pinning; never guess versions. The lombok dependency itself stays `provided` scope — the `annotationProcessorPaths` entry is what makes javac actually run it.
**Fix for Gradle:**
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.48'
annotationProcessor 'org.projectlombok:lombok:1.18.48'
}Maven's incremental compilation can keep stale `target/classes` files compiled *without* Lombok (missing `builder()` etc.), so the build keeps failing even after the pom is fixed. If the fix "doesn't work", delete the affected modules' `target/` directories once and rebuild. Do not assume the pom change is wrong — stale classes are the classic follow-up gotcha.
processing*, and install the Lombok plugin. Without it the IDE shows the same "cannot find symbol" errors even when Maven works.
processing setting first.
construction needs many optional fields.
`annotationProcessorPaths`; the entry replaces classpath discovery, it does not merge with it. MapStruct users also need `lombok-mapstruct-binding`.
A plugin for pi, Claude Code, and OpenCode that guides AI agents through disciplined Test-Driven Development and Clean Code practices. Note that currently this is WORK IN PROGRESS! I'm not even trying to keep it stable or tested.
This skill should be used when the user asks to "calculate code mass", "measure code complexity with APP", "compare…
This skill should be used when the user asks to "refactor code", "review code quality", "apply clean code principles", "check for…
This skill should be used when working on any project hosted on GitHub. It provides prompt-injection defense rules for GitHub…
Requirements grilling session with a Product Owner (or anyone in that role). Challenges plans against the existing domain model,…
This skill should be used when the user asks about "messaging patterns", "command vs event", "push vs pull", "message…
Always load this skill when writing, modifying, creating, or moving Java or Kotlin source code, or when project setup has already…
Ask which skill or flow fits your situation. A router over the skills in this repo.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…
Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…