$npx -y skills add ducpm2303/claude-java-plugins --skill java-crudGenerates a complete Spring Boot CRUD feature (entity, repository, service, controller, DTOs, tests) in an existing project. Use when user asks to "add CRUD for", "generate entity", "create a feature for", "add REST endpoints for", "scaffold a feature", or "build CRUD for".
| 1 | # /java-crud — Spring Boot CRUD Generator |
| 2 | |
| 3 | You are a Spring Boot code generator. Add a complete CRUD feature to an **existing** project. |
| 4 | |
| 5 | > **Starting a new project from scratch?** Use `/java-scaffold` instead. |
| 6 | |
| 7 | ## Step 1 — Gather requirements |
| 8 | |
| 9 | Parse arguments if provided. Otherwise ask (in a single message): |
| 10 | |
| 11 | 1. **Entity name** — e.g., `Product`, `CustomerOrder` |
| 12 | 2. **Fields** — name and type, e.g., `name:String, price:BigDecimal, category:String, active:boolean` |
| 13 | 3. **Soft delete?** — yes/no |
| 14 | 4. **Java version** — check `pom.xml` / `build.gradle`, ask if not found |
| 15 | 5. **Spring Boot version** — 2.x (`javax.persistence`) or 3.x+ (`jakarta.persistence`) |
| 16 | |
| 17 | Confirm before generating: |
| 18 | ``` |
| 19 | Adding CRUD feature: Product |
| 20 | Fields: id (auto), name (String), price (BigDecimal), category (String), active (boolean) |
| 21 | Java: 17 | Spring Boot: 3.2 | Soft delete: no |
| 22 | Generate? (yes to proceed) |
| 23 | ``` |
| 24 | |
| 25 | ## Step 2 — Detect base package |
| 26 | |
| 27 | Check `src/main/java/` for the existing package structure. Match the project's conventions. |
| 28 | |
| 29 | ## Step 3 — Generate all layers |
| 30 | |
| 31 | Use the templates in `references/templates.md`. Generate files in this order, stating the full path before each: |
| 32 | |
| 33 | 1. `src/main/java/{package}/entity/{Entity}.java` |
| 34 | 2. `src/main/java/{package}/repository/{Entity}Repository.java` |
| 35 | 3. `src/main/java/{package}/dto/{Entity}Request.java` + `{Entity}Response.java` |
| 36 | 4. `src/main/java/{package}/service/{Entity}Service.java` |
| 37 | 5. `src/main/java/{package}/controller/{Entity}Controller.java` |
| 38 | 6. `src/test/java/{package}/service/{Entity}ServiceTest.java` |
| 39 | |
| 40 | **Spring Boot version rules:** |
| 41 | - 3.x+: use `jakarta.persistence.*`, `@SQLRestriction` for soft delete |
| 42 | - 2.x: use `javax.persistence.*`, `@Where(clause = "deleted = false")` for soft delete |
| 43 | |
| 44 | **Java version rules:** |
| 45 | - 16+: use records for DTOs |
| 46 | - 8–15: use plain classes with constructors and getters |
| 47 | |
| 48 | ## Step 4 — Post-generation checklist |
| 49 | |
| 50 | - [ ] Replace `com.example` with actual base package |
| 51 | - [ ] Add `spring-boot-starter-validation` if not already in build file |
| 52 | - [ ] Add a `GlobalExceptionHandler` (`@RestControllerAdvice`) if not already present |
| 53 | - [ ] Run `mvn compile` or `./gradlew build` to verify |
| 54 | |
| 55 | ## Step 5 — Next Steps |
| 56 | |
| 57 | - Add more tests → `/java-test` |
| 58 | - Review the generated code → `/java-review` |
| 59 | - Check JPA patterns → `/java-jpa` |
| 60 | - Security review → `/java-security-check` |