From 2eb1e357b2ff9ae289a1291962abea8e74355deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Tue, 17 Mar 2026 19:26:41 +0100 Subject: [PATCH] Initial work with plugins --- .claude-plugin/marketplace.json | 202 ++++++++++++++++++++++++++++++++ .cursor-plugin/plugin.json | 29 +++++ pom.xml | 5 +- 3 files changed, 234 insertions(+), 2 deletions(-) create mode 100644 .claude-plugin/marketplace.json create mode 100644 .cursor-plugin/plugin.json diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 00000000..a06b8bb0 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,202 @@ +{ + "name": "cursor-rules-java", + "owner": { + "name": "Juan Antonio Breña Moral", + "email": "bren@juanantonio.info" + }, + "metadata": { + "description": "Curated collection of System prompts & Skills for moden SDLC that help software engineers and pipelines in their daily work for Java Enterprise development.", + "homepage": "https://jabrena.github.io/cursor-rules-java/", + "repository": "https://github.com/jabrena/cursor-rules-java", + "version": "0.13.0", + "license": "Apache-2.0" + }, + "plugins": [ + { + "name": "014-agile-user-story", + "source": "./skills/014-agile-user-story", + "description": "Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files.", + "version": "0.13.0" + }, + { + "name": "020-architecture-functional-requirements-cli", + "source": "./skills/020-architecture-functional-requirements-cli", + "description": "Create ADRs for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions.", + "version": "0.13.0" + }, + { + "name": "021-architecture-functional-requirements-rest", + "source": "./skills/021-architecture-functional-requirements-rest", + "description": "Create ADRs for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions.", + "version": "0.13.0" + }, + { + "name": "030-architecture-non-functional-requirements", + "source": "./skills/030-architecture-non-functional-requirements", + "description": "Create ADRs for Non-Functional Requirements using the ISO/IEC 25010:2023 quality model. Use when documenting quality attributes, NFR decisions, security/performance/scalability architecture, or designing systems with measurable quality criteria.", + "version": "0.13.0" + }, + { + "name": "040-planning-enhance-ai-plan-mode", + "source": "./skills/040-planning-enhance-ai-plan-mode", + "description": "Java Design Plan Creation for Cursor Plan Mode. Use when creating a plan, designing an implementation, structuring a development plan, or using plan mode for outside-in TDD, feature implementation, or refactoring work.", + "version": "0.13.0" + }, + { + "name": "110-java-maven-best-practices", + "source": "./skills/110-java-maven-best-practices", + "description": "Review, improve, or troubleshoot Maven pom.xml — dependency management with BOMs, plugin configuration, version centralization, multi-module project structure, build profiles.", + "version": "0.13.0" + }, + { + "name": "111-java-maven-dependencies", + "source": "./skills/111-java-maven-dependencies", + "description": "Add Maven dependencies for improved code quality — nullness annotations (JSpecify), static analysis (Error Prone + NullAway), functional programming (VAVR), or architecture testing (ArchUnit).", + "version": "0.13.0" + }, + { + "name": "112-java-maven-plugins", + "source": "./skills/112-java-maven-plugins", + "description": "Add or configure Maven plugins — enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd, OWASP, Spotless, JMH — through a consultative, modular step-by-step approach.", + "version": "0.13.0" + }, + { + "name": "113-java-maven-documentation", + "source": "./skills/113-java-maven-documentation", + "description": "Create DEVELOPER.md for Maven projects — combining a fixed base template with dynamic sections from pom.xml, including Plugin Goals Reference, Maven Profiles table, and Submodules table.", + "version": "0.13.0" + }, + { + "name": "121-java-object-oriented-design", + "source": "./skills/121-java-object-oriented-design", + "description": "Review, improve, or refactor Java code for OOP quality — SOLID, DRY, YAGNI, class/interface design, code smells (God Class, Feature Envy, Data Clumps), exception handling.", + "version": "0.13.0" + }, + { + "name": "122-java-type-design", + "source": "./skills/122-java-type-design", + "description": "Review or refactor Java code for type design quality — type hierarchies, naming conventions, value objects, generic type parameters, fluent interfaces, precision-appropriate numeric types.", + "version": "0.13.0" + }, + { + "name": "123-java-exception-handling", + "source": "./skills/123-java-exception-handling", + "description": "Apply Java exception handling best practices — specific exception types, try-with-resources, exception chaining, fail-fast validation, @throws documentation, logging policy, API boundary translation.", + "version": "0.13.0" + }, + { + "name": "124-java-secure-coding", + "source": "./skills/124-java-secure-coding", + "description": "Apply Java secure coding best practices — input validation, injection defence, least privilege, strong crypto, secure exception handling, secrets management, avoiding unsafe deserialization.", + "version": "0.13.0" + }, + { + "name": "125-java-concurrency", + "source": "./skills/125-java-concurrency", + "description": "Apply Java concurrency best practices — thread safety, ExecutorService, Producer-Consumer patterns, CompletableFuture, immutability, virtual threads, structured concurrency, scoped values.", + "version": "0.13.0" + }, + { + "name": "128-java-generics", + "source": "./skills/128-java-generics", + "description": "Review or refactor Java code for generics quality — avoiding raw types, PECS principle, bounded type parameters, diamond operator, type erasure, Records/sealed types integration.", + "version": "0.13.0" + }, + { + "name": "131-java-testing-unit-testing", + "source": "./skills/131-java-testing-unit-testing", + "description": "Review, improve, or write Java unit tests — JUnit 5, AssertJ, Given-When-Then, parameterized tests, Mockito, boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), JSpecify null-safety.", + "version": "0.13.0" + }, + { + "name": "132-java-testing-integration-testing", + "source": "./skills/132-java-testing-integration-testing", + "description": "Set up or improve Java integration tests — BaseIntegrationTest with WireMock, HTTP client detection, JSON mapping files, stub isolation, HTTP interaction verification.", + "version": "0.13.0" + }, + { + "name": "141-java-refactoring-with-modern-features", + "source": "./skills/141-java-refactoring-with-modern-features", + "description": "Refactor Java code to adopt modern features (Java 8+) — lambdas, Stream API, Optional, java.time, collection factory methods, CompletableFuture, text blocks, var, Java 25 features.", + "version": "0.13.0" + }, + { + "name": "142-java-functional-programming", + "source": "./skills/142-java-functional-programming", + "description": "Apply functional programming principles in Java — Records, pure functions, lambdas, Stream API, Optional, pattern matching, sealed classes, Stream Gatherers, effect boundary separation.", + "version": "0.13.0" + }, + { + "name": "143-java-functional-exception-handling", + "source": "./skills/143-java-functional-exception-handling", + "description": "Apply functional exception handling — Optional and VAVR Either, error type hierarchies with sealed classes, monadic pipelines, reserving exceptions for system-level failures.", + "version": "0.13.0" + }, + { + "name": "144-java-data-oriented-programming", + "source": "./skills/144-java-data-oriented-programming", + "description": "Apply data-oriented programming in Java — separating code from data with records, immutable data, pure transformation functions, flat denormalized structures, generic data access layers.", + "version": "0.13.0" + }, + { + "name": "170-java-documentation", + "source": "./skills/170-java-documentation", + "description": "Generate or improve Java project documentation — README.md, package-info.java, Javadoc — through a modular, step-based interactive process.", + "version": "0.13.0" + }, + { + "name": "171-java-adr", + "source": "./skills/171-java-adr", + "description": "Generate Architecture Decision Records (ADRs) through an interactive, conversational process that gathers context, stakeholders, options, and outcomes.", + "version": "0.13.0" + }, + { + "name": "172-java-diagrams", + "source": "./skills/172-java-diagrams", + "description": "Generate Java project diagrams — UML sequence, class, state machine, C4 model, ER — through a modular, step-based interactive process.", + "version": "0.13.0" + }, + { + "name": "173-java-agents", + "source": "./skills/173-java-agents", + "description": "Generate AGENTS.md for Java repositories — project conventions, tech stack, file structure, commands, Git workflow, contributor boundaries — through a modular, step-based interactive process.", + "version": "0.13.0" + }, + { + "name": "301-frameworks-spring-boot-core", + "source": "./skills/301-frameworks-spring-boot-core", + "description": "Review, improve, or build Spring Boot applications — @SpringBootApplication, component annotations, bean management, @ConfigurationProperties, constructor injection, scheduled tasks.", + "version": "0.13.0" + }, + { + "name": "302-frameworks-spring-boot-rest", + "source": "./skills/302-frameworks-spring-boot-rest", + "description": "Design, review, or improve REST APIs with Spring Boot — HTTP methods, resource URIs, status codes, DTOs, versioning, error handling, API documentation, problem details.", + "version": "0.13.0" + }, + { + "name": "303-frameworks-spring-data-jdbc", + "source": "./skills/303-frameworks-spring-data-jdbc", + "description": "Use Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries, transaction management.", + "version": "0.13.0" + }, + { + "name": "311-frameworks-spring-boot-slice-testing", + "source": "./skills/311-frameworks-spring-boot-slice-testing", + "description": "Write slice tests for Spring Boot — @WebMvcTest, @JdbcTest, @JsonTest, @MockBean, test profiles, @TestConfiguration for focused layer testing.", + "version": "0.13.0" + }, + { + "name": "312-frameworks-spring-boot-integration-testing", + "source": "./skills/312-frameworks-spring-boot-integration-testing", + "description": "Write or improve integration tests — Testcontainers, TestRestTemplate, data management, test structure, performance optimization.", + "version": "0.13.0" + }, + { + "name": "313-frameworks-spring-boot-local-testing", + "source": "./skills/313-frameworks-spring-boot-local-testing", + "description": "Configure local testing with spring-boot-docker-compose — dependency setup, compose services, profiles, integration test setup, service connections, health checks.", + "version": "0.13.0" + } + ] +} diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json new file mode 100644 index 00000000..81f37270 --- /dev/null +++ b/.cursor-plugin/plugin.json @@ -0,0 +1,29 @@ +{ + "name": "cursor-rules-java", + "displayName": "Cursor Rules for Java", + "version": "0.13.0-SNAPSHOT", + "description": "Curated collection of `System prompts` & `Skills` for moden `SDLC` that help software engineers and pipelines in their daily work for Java Enterprise development.", + "author": { + "name": "Juan Antonio Breña Moral", + "email": "bren@juanantonio.info" + }, + "homepage": "https://jabrena.github.io/cursor-rules-java/", + "repository": "https://github.com/jabrena/cursor-rules-java", + "license": "Apache-2.0", + "keywords": [ + "system-prompts", + "skills", + "java", + "enterprise", + "development" + ], + "category": "developer-tools", + "tags": [ + "ai-driven-agile", + "architecture", + "java", + "enterprise", + "development" + ], + "skills": "./skills/" +} diff --git a/pom.xml b/pom.xml index eb661992..c0869305 100644 --- a/pom.xml +++ b/pom.xml @@ -10,8 +10,9 @@ 0.13.0-SNAPSHOT pom cursor-rules-java - The project provides a curated collection of `System prompts` and `Skills` for Java Enterprise - development that help software engineers and pipelines in their daily programming work. + The project provides a curated collection of System prompts and Skills for moden + SDLC that help software engineers and pipelines in their daily work for Java Enterprise + development. 25