diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml index d65edcc7..19ddd9d2 100644 --- a/.github/workflows/maven.yaml +++ b/.github/workflows/maven.yaml @@ -72,3 +72,27 @@ jobs: java-version: '25' - name: Build ${{ matrix.example.name }} run: cd ${{ matrix.example.path }} && ./mvnw --batch-mode --no-transfer-progress ${{ matrix.example.goal }} --file pom.xml + + package-agent-artifacts: + name: Package Agents and Skills + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + submodules: true + - name: Create agents archive + run: cd .cursor && zip -r ../agents.zip agents + - name: Create skills archive + run: zip -r skills.zip skills + - name: Upload agents.zip + uses: actions/upload-artifact@v4 + with: + name: agents.zip + path: agents.zip + if-no-files-found: error + - name: Upload skills.zip + uses: actions/upload-artifact@v4 + with: + name: skills.zip + path: skills.zip + if-no-files-found: error diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ea34a37..3812ab7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add INVEST validation to agile user-story workflow in `@014-agile-user-story` (#633) - Maven Central search guidance skill (`@114-java-maven-search`) (#605) - OpenSpec adoption for project change management in `@042-planning-openspec` (#620, #621, #616) - - GitHub issue management workflow support`@043-planning-github` (#607) + - GitHub issue management workflow support (`@043-planning-github-issues`) (#607) - Jira planning support and guidance improvements in `@044-planning-jira` (#631, #641, #642) - OpenAPI guidance skill `@701-technologies-openapi` (#635) - WireMock guidance skill `@702-technologies-wiremock` (#636) @@ -24,10 +24,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Cursor and Claude plugin support documentation/workflow (#622) - **Rules:** - - Created an ADR to drop support for Rules in favor of Skills. + - Added an ADR documenting the decision to drop Rules in favor of Skills. - **Examples:** - - Reduce CI Pipeline times, removing non essential examples + - Reduced CI pipeline duration by removing non-essential examples ## [0.13.0] 2026-03-30 @@ -71,12 +71,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Skills & Agent system**: - SKILL generator for Cursor agent skills (#421). - - Skills support evolution (v1–v4) with skilljars and validation pipeline (#416, #418, #420, #423, #424). + - Skills support evolution (v1–v4) with Skill JARs and a validation pipeline (#416, #418, #420, #423, #424). - Improved skill generation and minimum requirements (#417, #427, #451). - **New Cursor Rules**: - `@132-java-testing-integration-testing` with WireMock support (#443). - - Arch Unit support in `@111-java-maven-dependencies` (#445). + - ArchUnit support in `@111-java-maven-dependencies` (#445). - **Maven rules & docs**: - Centralized version management and best practices for multi-module POM in `@110-java-maven-best-practices` (#441). @@ -98,11 +98,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - **Behaviours**: - - Added Tone variations to consultative and progressive learning behaviours (#330). - - Added Tone to Interactive prompts + - Added tone variations to consultative and progressive learning behaviours (#330). + - Added tone support for interactive prompts. - **Website**: - - Added Website to communicate about System prompts for Java. https://jabrena.github.io/cursor-rules-java/ + - Added a website covering system prompts for Java: https://jabrena.github.io/cursor-rules-java/ - **Educational content**: - New "System Prompts for Java" course (#335). https://jabrena.github.io/cursor-rules-java/courses/system-prompts-java/index.html @@ -121,8 +121,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Cursor rules**: - Extensive refinements across multiple rules (dependencies, plugins, secure coding, concurrency, exception handling, functional programming, documentation, diagrams) (#309, #341). - Decoupled system prompts from behaviours and added learning behaviour; reorganized generator templates and inventory (#309). - - All examples use single imports without using wildcard * - - Updated profiling Script to add support for Async-profiler 4.1 https://github.com/async-profiler/async-profiler/releases/tag/v4.1 + - All examples use single-type imports (no wildcard `import ...*`) + - Updated profiling script to add support for Async-profiler 4.1: https://github.com/async-profiler/async-profiler/releases/tag/v4.1 - Improved JFR support ### Removed @@ -143,7 +143,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - JMH (Java Microbenchmark Harness) support for Maven projects without modules - Enhanced Maven plugins cursor rule with comprehensive JMH integration -- Tested the project for Cursor, Cursor CLI, Claude Code, GitHub Copilot & JetBrains Junie. Further information at https://github.com/jabrena/cursor-rules-java/blob/main/docs/reviews/review-20250829.md +- Tested the project for Cursor, Cursor CLI, Claude Code, GitHub Copilot, and JetBrains Junie. Further information: https://github.com/jabrena/cursor-rules-java/blob/main/docs/reviews/review-20250829.md ### Changed @@ -289,7 +289,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `@304-java-rest-api-design` (moved to separate Spring Boot rules project) - `@500-sql` (moved to Spring Boot rules) -## [0.6.0] 30/5/2025 +## [0.6.0] 2025-05-30 ### Added @@ -301,7 +301,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved the Cursor rule about acceptance criteria as part of the repository about [Agile](https://github.com/jabrena/cursor-rules-agile) - Increased consistency in all cursor rules, now all examples use asserts from AssertJ -## [0.5.0] 20/05/2025 +## [0.5.0] 2025-05-20 ### Added @@ -313,7 +313,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated all cursor rules -## [0.4.0] 27/04/2025 +## [0.4.0] 2025-04-27 ### Added @@ -323,7 +323,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated all cursor rules -## [0.3.0] 06/04/2025 +## [0.3.0] 2025-04-06 ### Added @@ -334,7 +334,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated cursor rules (Java, Effective Java, Concurrency, Functional programming, Data-Oriented programming, Pragmatic Unit Testing, Spring Boot & Quarkus) -## [0.2.0] 01/03/2025 +## [0.2.0] 2025-03-01 ### Added @@ -344,7 +344,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated cursor rules (Java, Effective Java, Concurrency, Functional programming, Data-Oriented programming & Spring Boot) -## [0.1.0] 09/02/2025 +## [0.1.0] 2025-02-09 ### Added diff --git a/README.md b/README.md index 6079ca67..0d54f050 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ ## Goal -A curated collection of `Skills` and `Agents` for Java Enterprise development, designed to streamline modern `SDLC` workflows. +A curated collection of `Skills` and `Agents` to be used in modern `SDLC` workflows for Java Enterprise development. | QUESTION | ROLE | AREA | SUPPORT | | ---------- | ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| WHAT / WHEN | PO, BA, EA, SA, TL | Agile & Planning | `User Stories`, `Github Issues` & `Jira`| +| WHAT / WHEN | PO, BA, EA, SA, TL | Agile & Planning | `User Stories`, `GitHub Issues` & `Jira` | | WHY | EA, SL, TL | Architecture | `ADRs` & `UML` / `C4` / `ER` Diagrams | | HOW | SA, TL, SWE | Spec-Driven | `AI Plan mode` & `OpenSpec` | | HOW | TL, SWE | Java development | `Build system based on Maven`, `Design`, `Coding`, `Testing`, `Observability`, `Refactoring & JMH Benchmarking`, `Performance testing with JMeter`, `Profiling with Async profiler/OpenJDK tools`, `Documentation`, `Spring Boot`, `Quarkus`, `Micronaut`, `OpenAPI`, `Wiremock` & `AGENTS.md` | @@ -22,30 +22,30 @@ A curated collection of `Skills` and `Agents` for Java Enterprise development, d The project generates a set of deliverables at the end of any iteration. -| Deliverable | Instalation | Getting Started | +| Deliverable | Installation | Getting Started | | --------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | 1. [Skills for Java](./documentation/INVENTORY-SKILLS-JAVA.md) | `npx skills add jabrena/cursor-rules-java --all --agent cursor` | [`Skills for Java`](./documentation/GETTING-STARTED-SKILLS.md) | | 2. [Agents for Java](./documentation/INVENTORY-AGENTS-JAVA.md) | `@003-agents-installation` Install Agents in Cursor | [`Agents for Java`](./documentation/GETTING-STARTED-AGENTS.md) | -**Note:** Once you install all skills, you could install the agents easily for Cursor or Claude. +**Note:** After you install the skills, you can install the agents easily for Cursor or Claude. ### Compatibility -This project is compatible with any Tool compatible with `Skills`, `Agents`, `AGENTS.md` & `MCP` Servers. +This project is compatible with any tool that supports `Skills`, `Agents`, `AGENTS.md`, and `MCP` servers. -## How to use them? +## How to use them -The SDLC has evolved with the arrival of this new set of AI tooling, enhancing the Software Engineering process. In the development of this project, it was identified 3 different workflows: `Prompting Enginering Workflow`, `Pipelines Workflow` & `Agentic Workflow`. +The SDLC has evolved with this new wave of AI tooling, which enhances the software engineering process. While building this project, we identified three workflows: `Prompting Engineering Workflow`, `Pipelines Workflow`, and `Agentic Workflow`. -### Prompting Enginering Workflow +### Prompting Engineering Workflow -In this workflow, the Software engineer interact with models using `User prompts` and in an incremental way you delegate a delegate completely a task or ask help in certain moments. You could use this project to refactor the code generated or delegate the task and associate a System prompt / Skills to that task. +In this workflow, the software engineer interacts with models using `User prompts`. In an incremental way, you delegate a whole task or ask for help at specific points. You can use this project to refactor generated code, or delegate the task and attach a system prompt or Skills to it. ![](./documentation/images/workflow-prompts.png) -### Agent Workflow +### Agentic Workflow -`Agents for Java Enterprise development` were designed to help the Software engineer in the implementation phase. The software engineer define good `Specs` and that Specifications are delegated to Agents. +`Agents for Java Enterprise development` were designed to help the software engineer in the implementation phase. The engineer defines solid `Specs`, and those specifications are delegated to Agents. ![](./documentation/images/workflow-agents.png) @@ -55,21 +55,21 @@ Adding AI tools to your pipeline can provide new opportunities to deliver more v ![](./documentation/images/workflow-pipelines.png) -Futher information [here`](./documentation/GETTING-STARTED-PIPELINES.md) +Further information [here](./documentation/GETTING-STARTED-PIPELINES.md). ## Limitations ### Lack of determinism -From the outset, be aware that the results provided by interactions with the different `Cursor rules` are not deterministic due to the nature of the models, but this can be mitigated with clear goals and validation checkpoints. +From the outset, be aware that results from interactions with these `Skills` and agents are not deterministic because of how the models behave, but you can mitigate that with clear goals and validation checkpoints. ### Not all models behave in the same way -In the project exist some Interactive skills which require to use `Premium` models to run in an interactive way in other case, they will work like in sequence of steps. +Some interactive skills require `Premium` models for interactive use; otherwise they follow a fixed sequence of steps. ### Limits of interactions with models -Models are able to generate code, but they cannot run code with your local data. To address this limitation, some prompts provide scripts to bridge this gap on the model side. +Models can generate code, but they cannot execute it against your local data. To bridge that gap, some Skills include scripts you run locally. ## Contribute @@ -77,7 +77,7 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) for conventions, generator workflows, t ## Examples -The repository includes [a collection of examples](./examples/) where you can explore the possibilities of these system prompts designed for Java. +The repository includes [a collection of examples](./examples/) where you can explore what these Skills and workflows enable for Java. ## Architectural decision records, ADR @@ -87,11 +87,11 @@ The repository includes [a collection of examples](./examples/) where you can ex - Review the [CHANGELOG](./CHANGELOG.md) for further details -## Java JEPS from Java 8 +## Java JEPs from Java 8 onward -Java uses JEPs as the vehicle to describe new features to be added to the language. The repository continuously reviews which JEPs could improve any of the cursor rules present in this repository. +Java uses JEPs (JDK Enhancement Proposals) to describe new language and platform features. This repository tracks which JEPs could improve the Skills and guidance here. -- [JEPS List](./documentation/jeps/All-JEPS.md) +- [JEPs list](./documentation/jeps/All-JEPS.md) ## Meetups, Conferences, Workshops & Articles diff --git a/docs/2/index.html b/docs/2/index.html index 9df68677..97105d5c 100644 --- a/docs/2/index.html +++ b/docs/2/index.html @@ -5,10 +5,10 @@ - Rules, Skills & Agents for Java + Skills & Agents for Java - + @@ -35,7 +35,7 @@ -Rules, Skills & Agents for Java +Skills & Agents for Java diff --git a/docs/tags/java-25.html b/docs/tags/java-25.html index 2d24acac..09bdc7c1 100644 --- a/docs/tags/java-25.html +++ b/docs/tags/java-25.html @@ -5,10 +5,10 @@ - Rules, Skills & Agents for Java + Skills & Agents for Java - + @@ -34,7 +34,7 @@ -Rules, Skills & Agents for Java +Skills & Agents for Java
-

Module 1: Foundations - Project Setup & Build Systems

- -

- -   - - java - system-prompts - -

- -
-
- 🎯 Learning Objectives -By the end of this module, you will: - -Master Maven best practices using automated system prompts -Configure quality dependencies for enterprise-grade projects -Generate professional documentation automatically -Understand the fundamentals of AI-powered development workflows -Apply system prompts effectively in real-world scenarios - -📚 Module Overview -Duration: 4 hours -Difficulty:... -

- [Read More] -
-
-
-

Mastering Java Enterprise Development with AI-Powered System Prompts

@@ -504,33 +473,38 @@

Maste

-

Mastering Java Generics - From Type Safety to Advanced Patterns

+

Module 1: Foundations - Project Setup & Build Systems

  java - generics + system-prompts

- Course Overview -Transform your Java development skills with this comprehensive course on generics - one of Java's most powerful yet misunderstood features. This course takes you from basic type safety concepts to advanced patterns used in production systems. -🎯 Learning Objectives -By the end of this course, you will be able to: + 🎯 Learning Objectives +By the end of this module, you will: -Eliminate ClassCastException through proper generic type usage -Design ... +Master Maven best practices using automated system prompts +Configure quality dependencies for enterprise-grade projects +Generate professional documentation automatically +Understand the fundamentals of AI-powered development workflows +Apply system prompts effectively in real-world scenarios + +📚 Module Overview +Duration: 4 hours +Difficulty:...

- [Read More] + [Read More]
-

Module 5: Assessment - Validate Your Mastery

+

Mastering Java Generics - From Type Safety to Advanced Patterns

@@ -543,15 +517,15 @@

- 📖 Module Overview -Congratulations on reaching the final module! It's time to validate your Java Generics mastery through comprehensive challenges and code reviews. This module ensures you can apply generics effectively in real-world scenarios. + Course Overview +Transform your Java development skills with this comprehensive course on generics - one of Java's most powerful yet misunderstood features. This course takes you from basic type safety concepts to advanced patterns used in production systems. 🎯 Learning Objectives -By the end of this module, you will have: +By the end of this course, you will be able to: -Demonstrated comprehensive understanding through coding challenges -Applied all generics co... +Eliminate ClassCastException through proper generic type usage +Design ...

-
[Read More] + [Read More]

@@ -659,6 +633,32 @@

+

Module 5: Assessment - Validate Your Mastery

+ +

+ +   + + java + generics + +

+ +
+
+ 📖 Module Overview +Congratulations on reaching the final module! It's time to validate your Java Generics mastery through comprehensive challenges and code reviews. This module ensures you can apply generics effectively in real-world scenarios. +🎯 Learning Objectives +By the end of this module, you will have: + +Demonstrated comprehensive understanding through coding challenges +Applied all generics co... +

+ [Read More] +
+
+ diff --git a/docs/tags/jfr.html b/docs/tags/jfr.html index cc21d744..8ca26203 100644 --- a/docs/tags/jfr.html +++ b/docs/tags/jfr.html @@ -5,10 +5,10 @@ - Rules, Skills & Agents for Java + Skills & Agents for Java - + @@ -34,7 +34,7 @@ -Rules, Skills & Agents for Java +Skills & Agents for Java diff --git a/documentation/openspec/specs/agile-user-story-quality/spec.md b/documentation/openspec/specs/agile-user-story-quality/spec.md deleted file mode 100644 index e2e87dd1..00000000 --- a/documentation/openspec/specs/agile-user-story-quality/spec.md +++ /dev/null @@ -1,32 +0,0 @@ -# agile-user-story-quality Specification - -## Purpose -TBD - created by archiving change add-invest-criteria-user-story-skill. Update Purpose after archive. -## Requirements -### Requirement: INVEST Criteria Guidance -The `014-agile-user-story` skill SHALL include explicit INVEST quality criteria guidance for user story authoring. - -#### Scenario: INVEST guidance is present -- **Given** a user is creating a story with the `014-agile-user-story` skill -- **When** the skill instructions are presented -- **Then** the skill includes a dedicated INVEST section -- **And** each INVEST dimension is defined in practical terms - -### Requirement: INVEST Validation Step -The `014-agile-user-story` skill SHALL require an INVEST validation step before final story output. - -#### Scenario: Story is validated before finalization -- **Given** a story draft has been created -- **When** the workflow reaches finalization -- **Then** the skill prompts validation against INVEST -- **And** the final output is confirmed against all INVEST dimensions - -### Requirement: INVEST-Compliant Example -The `014-agile-user-story` skill SHALL provide an example showing how a user story satisfies INVEST. - -#### Scenario: Example demonstrates criteria -- **Given** a user reviews the skill documentation -- **When** they reach examples -- **Then** at least one example references INVEST compliance -- **And** the example is traceable to Independent, Negotiable, Valuable, Estimable, Small, and Testable qualities - diff --git a/documentation/openspec/specs/compatibility-planning/spec.md b/documentation/openspec/specs/compatibility-planning/spec.md deleted file mode 100644 index 39957cca..00000000 --- a/documentation/openspec/specs/compatibility-planning/spec.md +++ /dev/null @@ -1,46 +0,0 @@ -# compatibility-planning Specification - -## Purpose -Define the ongoing compatibility policy for this project so contributors can evolve Skills, Agents, AGENTS.md guidance, and OpenSpec workflows without creating avoidable downstream breakage. This specification establishes how compatibility targets are identified, how breaking changes are communicated, and which repository artifacts must stay aligned when compatibility-impacting decisions are made. -## Requirements -### Requirement: Compatibility Surface Definition -The project SHALL maintain a clear, documented compatibility surface aligned with the repository goal and deliverables. - -#### Scenario: Compatibility targets are explicit -- **Given** contributors are planning a change that affects generated guidance or project workflows -- **When** they evaluate compatibility impact -- **Then** they identify impacted surfaces across `skills/`, `.cursor/agents`, `AGENTS.md` conventions, and OpenSpec-based planning artifacts -- **And** they document which user-facing contracts are expected to remain stable -- **And** they record any intentionally unsupported legacy behavior as out of scope - -### Requirement: Breaking Change Governance -The project SHALL apply explicit governance for breaking changes that affect supported compatibility surfaces. - -#### Scenario: Breaking change is proposed -- **Given** a proposed change alters expected behavior for supported consumers -- **When** the change is reviewed -- **Then** the change is marked as breaking -- **And** semantic versioning impact is documented before release -- **And** migration guidance is written for downstream users -- **And** related ADR and/or OpenSpec change records are linked - -### Requirement: Ecosystem and Dependency Impact Mapping -The project SHALL evaluate ecosystem and repository dependencies before compatibility-impacting changes are accepted. - -#### Scenario: Impact assessment is completed -- **Given** a compatibility-relevant change is in planning -- **When** maintainers perform impact analysis -- **Then** they map affected documentation, CI workflows, examples, and generator modules -- **And** they identify downstream usage assumptions that may fail after the change -- **And** they capture mitigation actions in tasks or migration notes - -### Requirement: Documentation and Delivery Alignment -The project SHALL keep public documentation and validated delivery outputs aligned with the compatibility policy. - -#### Scenario: Release preparation validates compatibility communication -- **Given** compatibility-impacting work is ready for release -- **When** release preparation is performed -- **Then** `README.md` and relevant getting-started/contributor documentation reflect the current supported workflow -- **And** generated deliverables remain consistent with the documented compatibility surface -- **And** verification commands used by the project continue to pass for the supported pipeline - diff --git a/documentation/openspec/specs/technologies-openapi/spec.md b/documentation/openspec/specs/technologies-openapi/spec.md deleted file mode 100644 index b65cfc33..00000000 --- a/documentation/openspec/specs/technologies-openapi/spec.md +++ /dev/null @@ -1,51 +0,0 @@ -# technologies-openapi Specification - -## Purpose - -Define requirements for **`701-technologies-openapi`**: framework-agnostic OpenAPI 3.x contract guidance in `skills-generator`, distinct from framework REST skills (`302` / `402` / `502`) and from CATS fuzz testing (`134`). - -## Requirements -### Requirement: Skill Identifier - -The repository SHALL define the framework-agnostic OpenAPI guidance skill identifier as `701-technologies-openapi`. - -#### Scenario: Skill identifier is standardized - -- **Given** maintainers implement OpenAPI best-practices guidance in generator sources -- **When** they create or reference the skill in XML, inventories, or documentation -- **Then** the identifier used is `701-technologies-openapi` -- **And** references are consistent across OpenSpec artifacts and GitHub issue [#537](https://github.com/jabrena/cursor-rules-java/issues/537) - -### Requirement: Framework-Agnostic Scope - -The `701-technologies-openapi` system prompt and skill SHALL focus on OpenAPI/Swagger contract quality and lifecycle topics that apply regardless of Java HTTP framework. - -#### Scenario: Guidance does not require a framework choice - -- **Given** a user asks for OpenAPI best practices without naming Spring Boot, Quarkus, or Micronaut -- **When** the agent applies `701-technologies-openapi` -- **Then** recommendations address the specification artifact (e.g. structure, versioning, documentation, validation, security schemes, examples, breaking changes) -- **And** framework-specific runtime configuration is deferred to `@302-frameworks-spring-boot-rest`, `@402-frameworks-quarkus-rest`, or `@502-frameworks-micronaut-rest` where relevant - -### Requirement: Complement Existing REST Skills - -The new skill SHALL complement, not duplicate, framework REST skills: framework skills MAY continue to document OpenAPI Generator and runtime exposure; **701** SHALL emphasize contract-first principles shared across stacks. - -#### Scenario: Clear separation from fuzz testing skill - -- **Given** a contributor searches for OpenAPI-related automation -- **When** they compare skill descriptions and triggers -- **Then** `701-technologies-openapi` is distinct from `134-java-testing-fuzzing-testing` (contract design vs CATS fuzz execution) -- **And** inventory entries describe non-overlapping primary use cases - -### Requirement: Generator Integration - -New sources for **701** MUST be registered in both `skill-inventory.xml` and `system-prompt-inventory.xml`, and the `skills-generator` module MUST build successfully after the change. - -#### Scenario: Maven verify passes - -- **Given** the XML sources and inventory entries for **701** are added -- **When** a maintainer runs `./mvnw clean verify -pl skills-generator` -- **Then** the build completes without failure -- **And** regenerated skill output reflects the new id where the pipeline emits skills - diff --git a/documentation/openspec/specs/technologies-wiremock/spec.md b/documentation/openspec/specs/technologies-wiremock/spec.md deleted file mode 100644 index f7d7be1a..00000000 --- a/documentation/openspec/specs/technologies-wiremock/spec.md +++ /dev/null @@ -1,51 +0,0 @@ -# technologies-wiremock Specification - -## Purpose - -Define requirements for **`702-technologies-wiremock`**: framework-agnostic WireMock guidance in `skills-generator`, distinct from framework integration-test skills (`322` / `422` / `522`), from framework-agnostic integration testing with WireMock (`132`), and from OpenAPI contract design (`701`). - -## Requirements -### Requirement: Skill Identifier - -The repository SHALL define the framework-agnostic WireMock guidance skill identifier as `702-technologies-wiremock`. - -#### Scenario: Skill identifier is standardized - -- **Given** maintainers implement WireMock best-practices guidance in generator sources -- **When** they create or reference the skill in XML, inventories, or documentation -- **Then** the identifier used is `702-technologies-wiremock` -- **And** references are consistent across OpenSpec artifacts and GitHub issue [#544](https://github.com/jabrena/cursor-rules-java/issues/544) - -### Requirement: Framework-Agnostic Scope - -The `702-technologies-wiremock` system prompt and skill SHALL focus on WireMock topics that apply regardless of Java HTTP framework or test bootstrap. - -#### Scenario: Guidance does not require a framework choice - -- **Given** a user asks for WireMock best practices without naming Spring Boot, Quarkus, or Micronaut -- **When** the agent applies `702-technologies-wiremock` -- **Then** recommendations address portable stubbing concerns (for example isolation, mapping structure, matching rules, response bodies, lifecycle, verification, and test flakiness avoidance) -- **And** framework-specific test integration (for example `@SpringBootTest`, `@QuarkusTest`, `@MicronautTest`, extension-specific setup) is deferred to `@132-java-testing-integration-testing`, `@322-frameworks-spring-boot-testing-integration-tests`, `@422-frameworks-quarkus-testing-integration-tests`, or `@522-frameworks-micronaut-testing-integration-tests` where relevant - -### Requirement: Complement Existing Integration-Test Skills - -The new skill SHALL complement, not replace, framework integration-test skills: those skills MAY continue to document WireMock in their stack context; **702** SHALL emphasize **cross-stack** WireMock practices shared across tests. - -#### Scenario: Clear separation from OpenAPI technology skill - -- **Given** a contributor searches for HTTP contract or stubbing guidance -- **When** they compare skill descriptions and triggers -- **Then** `702-technologies-wiremock` is distinct from `701-technologies-openapi` (stub server behavior vs OpenAPI contract artifact design) -- **And** inventory entries describe non-overlapping primary use cases - -### Requirement: Generator Integration - -New sources for **702** MUST be registered in both `skill-inventory.xml` and `system-prompt-inventory.xml`, and the `skills-generator` module MUST build successfully after the change. - -#### Scenario: Maven verify passes - -- **Given** the XML sources and inventory entries for **702** are added -- **When** a maintainer runs `./mvnw clean verify -pl skills-generator` -- **Then** the build completes without failure -- **And** regenerated skill output reflects the new id where the pipeline emits skills - diff --git a/pom.xml b/pom.xml index 789432ca..95d658fc 100644 --- a/pom.xml +++ b/pom.xml @@ -10,9 +10,7 @@ 0.14.0 pom cursor-rules-java - The project provides a curated collection of System prompts and Skills for modern - SDLC that help software engineers and pipelines in their daily work for Java Enterprise - development. + A curated collection of Skills and Agents to be used in modern SDLC workflows for Java Enterprise development. https://github.com/jabrena/cursor-rules-java diff --git a/site-generator/assets/images/2026/4/cats.png b/site-generator/assets/images/2026/4/cats.png new file mode 100644 index 00000000..6288fe62 Binary files /dev/null and b/site-generator/assets/images/2026/4/cats.png differ diff --git a/site-generator/assets/images/2026/4/implement-openspec-change.png b/site-generator/assets/images/2026/4/implement-openspec-change.png new file mode 100644 index 00000000..5daadcfa Binary files /dev/null and b/site-generator/assets/images/2026/4/implement-openspec-change.png differ diff --git a/site-generator/assets/images/2026/4/issue-to-openspec.png b/site-generator/assets/images/2026/4/issue-to-openspec.png new file mode 100644 index 00000000..f750df10 Binary files /dev/null and b/site-generator/assets/images/2026/4/issue-to-openspec.png differ diff --git a/site-generator/content/blog/2026/04/release-0.14.0.md b/site-generator/content/blog/2026/04/release-0.14.0.md new file mode 100644 index 00000000..9428d1b3 --- /dev/null +++ b/site-generator/content/blog/2026/04/release-0.14.0.md @@ -0,0 +1,176 @@ +title=What's new in Cursor rules for Java 0.14.0? +date=2026-04-13 +type=post +tags=blog +author=Juan Antonio Breña Moral +status=published +~~~~~~ + +## What are Cursor rules for Java? + +A curated collection of `Skills` and `Agents` to be used in modern `SDLC` workflows for Java Enterprise development. + +With appreciation for our community located in `Singapore`, `Copenhagen`, `Quito`, `Shah Alam`, and `Amstelveen`. 👋👋👋 + +## What's new in this release? + +### Rules support dropped in favor of Skills + +It is a bit weird to explain that the project is named `Cursor rules for Java`, but one of the changes in this minor release is to drop support for Rules. + +**Why were Cursor rules dropped?** + +Until this release, the project maintained 3 very different deliverables: + +- Rules +- Skills +- Agents + +`Rules` and `Skills` both guide model behaviour in broadly similar ways, but Rules were Cursor’s approach while `Skills` have recently become the standard, so consolidating on a single solution makes more sense. **On the other hand**, maintaining a single generator (`skills-generator`) made it possible to improve how skills are packaged, which was somewhat constrained when both `rules-generator` and `skills-generator` existed. + +```bash +skill-name/ +├── SKILL.md # Required: metadata + instructions +├── scripts/ # Optional: executable code +├── references/ # Optional: documentation +├── assets/ # Optional: templates, resources +└── ... # Any additional files or directories +``` + +**Source:** https://agentskills.io/specification + +The last generated rules are preserved in release 0.13.0: https://github.com/jabrena/cursor-rules-java/releases/tag/0.13.0; you can download them there if needed. + +### Improvements in the Agile process + +When you create a `User Story`, the flow not only generates the usual structure plus acceptance criteria in `Gherkin` format; it also reviews the user story as a whole using `INVEST`. INVEST is an acronym used in Agile to evaluate the quality of a user story, ensuring it is `Independent`, `Negotiable`, `Valuable`, `Estimable`, `Small`, and `Testable`. + +**Skills:** + +- `@014-agile-user-story` + +### Improvements in the planning process + +It is tedious to copy issue details from your issue tracker into the context of whichever AI tool you use. With that in mind, you can now access assigned issues more easily if you work with `GitHub Issues` or `Jira`. Those `Skills` combine well with `@014-agile-user-story` to turn the classic `Anemic one line User Story` into something richer. + +Once the information is `ready for development`, you can convert it into a `Change` or `Delta` using `OpenSpec`. + +![](/cursor-rules-java/images/2026/4/issue-to-openspec.png) + +#### How does OpenSpec work? + +OpenSpec is a spec-driven change workflow: you capture what you want and how you will verify it before (or alongside) changing code and generators. + +The scaffolding for any project using OpenSpec looks like this: + +```bash +openspec/ + └── changes/ + └── add-profile-filters/ + ├── proposal.md + ├── tasks.md + └── specs/profile/spec.md + └── specs/ +config.yaml +``` + +Commands you will use often: + +```bash +openspec init +openspec list +openspec status --change +openspec show +openspec new change +openspec validate --all +openspec archive +``` + +Further information about OpenSpec: https://openspec.dev/ + +#### When to use OpenSpec in daily work? + +If you pick up a user story from any issue-tracking tool and it relates to a service you know well, you can use the following workflow directly: + +```bash +User story > Create a Change in OpenSpec > Implement with Java Agents +``` + +![](/cursor-rules-java/images/2026/4/implement-openspec-change.png) + +But if you are less sure about the assigned user story, invest more time in the analysis phase: + +```bash +User story > Create a Plan > Enhance the plan > Convert into multiple Changes in OpenSpec > Implement with Java Agents +``` + +Some factors to take into consideration: + +- Design incremental Deltas +- Review the tests +- Use TDD. (Consider TCR) +- Do not execute all changes at once. Finish one and review for potential technical debt. + +**Skills:** + +- `@042-planning-openspec` +- `@043-planning-github-issues` +- `@044-planning-jira` + +### Improvements in the Implementation phase + +#### Improvements in Maven + +Now it is easier to update your `pom.xml` with `@114-java-maven-search`. On the other hand, the Maven-related skills are gradually gaining popularity. + +https://skills.sh/?q=maven + +**Skills** + +- `@114-java-maven-search` + +### Reinforced REST API development with new technologies + +In the previous release, the project added Agents to implement plans. In this release, you can apply changes in a more granular way, or keep using Plans when the change is small. You can review your REST contracts with `@701-technologies-openapi`, reinforce your integration tests with `@702-technologies-wiremock`, and—most significantly for testing—use the new black-box testing capabilities with `@703-technologies-fuzzing-testing` based on `CATS`. + +You can run black-box testing against your development environment using your `OpenAPI` specification. + +![](/cursor-rules-java/images/2026/4/cats.png) + +Further information about CATS: https://github.com/Endava/cats + +**Skills** + +- `@701-technologies-openapi` +- `@702-technologies-wiremock` +- `@703-technologies-fuzzing-testing` + +### Skill inventory + +In version `v0.14.0`, the project ships `68 Skills`. + +You can install the `Skills` easily with: + +```bash +npx skills add jabrena/cursor-rules-java --all --agent cursor +npx skills add jabrena/cursor-rules-java --all --agent claude-code +``` + +Once you have the skills installed, you can install the `Agents` with: + +``` +@003-agents-installation Install Agents in Cursor +@003-agents-installation Install Agents in Claude +``` + +## What is the next step? + +Improve some Skills based on notes from [Tessl](https://tessl.io/registry). + +## Do you still have questions about the project? + +If you feel stuck using this project or have questions, you can attend the following workshop at `Codemotion Madrid 2026`: + +[![](/cursor-rules-java/images/2026/3/codemotion-madrid-2026.jpg)](https://conferences.codemotion.com/madrid/) + +https://conferences.codemotion.com/madrid/workshop/ diff --git a/site-generator/jbake.properties b/site-generator/jbake.properties index 3d33b18e..789820eb 100644 --- a/site-generator/jbake.properties +++ b/site-generator/jbake.properties @@ -3,8 +3,8 @@ site.host=https://jabrena.github.io/cursor-rules-java/ server.contextPath=/cursor-rules-java site.lang=en -site.title=Rules, Skills & Agents for Java -site.subtitle=A curated collection of Rules, Skills, and Agents for Java Enterprise development, designed to streamline modern SDLC workflows. +site.title=Skills & Agents for Java +site.subtitle=A curated collection of Skills and Agents for Java Enterprise development, designed to streamline modern SDLC workflows. site.avatar=images/java-icon.png index.bigimg=images/jwst-image-rawpixel.jpg