From 05956d7ca5adc767f60d75f1a85f5a09a08cab76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Thu, 9 Apr 2026 21:58:33 +0200 Subject: [PATCH 1/4] docs(documentation): expand MAINTENANCE skill registry checklist Made-with: Cursor --- documentation/MAINTENANCE.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/documentation/MAINTENANCE.md b/documentation/MAINTENANCE.md index 4c2a111c..24cef748 100644 --- a/documentation/MAINTENANCE.md +++ b/documentation/MAINTENANCE.md @@ -31,8 +31,15 @@ Can you update the current changelog for 0.14.0 comparing git commits in relatio - [ ] Create article - [ ] Communicate in social media +--- + + +```bash +# Review Skill registries +https://github.com/jabrena/cursor-rules-java https://tessl.io/registry/skills/submit -cd target && npx skills add jabrena/cursor-rules-java --all --agent cursor +cd target && npx skills add jabrena/cursor-rules-java --all --agent cursor && cd .. +``` --- From 701dd35dfc06e55c76cc7c1a6be3afd8ec1f8a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Fri, 10 Apr 2026 09:36:36 +0200 Subject: [PATCH 2/4] fix(docs): Improving the file generated about Inventory --- AGENTS-JAVA.md => documentation/INVENTORY-AGENTS-JAVA.md | 0 SKILLS-JAVA.md => documentation/INVENTORY-SKILLS-JAVA.md | 0 skills-generator/src/main/resources/skills/001-skill.xml | 6 +++--- skills-generator/src/main/resources/skills/002-skill.xml | 6 +++--- .../resources/system-prompts/001-skills-inventory.xml | 8 ++++---- .../resources/system-prompts/002-agents-inventory.xml | 8 ++++---- skills/001-skills-inventory/SKILL.md | 6 +++--- .../references/001-skills-inventory.md | 8 ++++---- skills/002-agents-inventory/SKILL.md | 6 +++--- .../references/002-agents-inventory.md | 8 ++++---- 10 files changed, 28 insertions(+), 28 deletions(-) rename AGENTS-JAVA.md => documentation/INVENTORY-AGENTS-JAVA.md (100%) rename SKILLS-JAVA.md => documentation/INVENTORY-SKILLS-JAVA.md (100%) diff --git a/AGENTS-JAVA.md b/documentation/INVENTORY-AGENTS-JAVA.md similarity index 100% rename from AGENTS-JAVA.md rename to documentation/INVENTORY-AGENTS-JAVA.md diff --git a/SKILLS-JAVA.md b/documentation/INVENTORY-SKILLS-JAVA.md similarity index 100% rename from SKILLS-JAVA.md rename to documentation/INVENTORY-SKILLS-JAVA.md diff --git a/skills-generator/src/main/resources/skills/001-skill.xml b/skills-generator/src/main/resources/skills/001-skill.xml index 1a579829..7ea3ce3e 100644 --- a/skills-generator/src/main/resources/skills/001-skill.xml +++ b/skills-generator/src/main/resources/skills/001-skill.xml @@ -6,7 +6,7 @@ Juan Antonio Breña Moral 0.14.0 Apache-2.0 - Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing SKILLS-JAVA.md in the project root. + Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing INVENTORY-SKILLS-JAVA.md in the project root. Create a Checklist with all Java steps to use with system prompts for Java @@ -16,7 +16,7 @@ Create a comprehensive step-by-step checklist document for Java system prompts b **What is covered in this Skill?** - Exact-template checklist generation -- Output file creation as `SKILLS-JAVA.md` +- Output file creation as `INVENTORY-SKILLS-JAVA.md` - Strict adherence to listed steps and cursor rules ]]> @@ -32,7 +32,7 @@ Create a comprehensive step-by-step checklist document for Java system prompts b Create Java system prompts checklist - Generate SKILLS-JAVA.md + Generate INVENTORY-SKILLS-JAVA.md Use @001-skills-inventory diff --git a/skills-generator/src/main/resources/skills/002-skill.xml b/skills-generator/src/main/resources/skills/002-skill.xml index 6b9885a9..d0ca3c1d 100644 --- a/skills-generator/src/main/resources/skills/002-skill.xml +++ b/skills-generator/src/main/resources/skills/002-skill.xml @@ -6,7 +6,7 @@ Juan Antonio Breña Moral 0.14.0 Apache-2.0 - Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing AGENTS-JAVA.md in the project root. + Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing INVENTORY-AGENTS-JAVA.md in the project root. Create a Checklist with embedded agents inventory for Java @@ -16,7 +16,7 @@ Create a comprehensive checklist document for embedded agents inventory by follo **What is covered in this Skill?** - Exact-template checklist generation -- Output file creation as `AGENTS-JAVA.md` +- Output file creation as `INVENTORY-AGENTS-JAVA.md` - Strict adherence to listed sections and content ]]> @@ -32,7 +32,7 @@ Create a comprehensive checklist document for embedded agents inventory by follo Create embedded agents inventory checklist - Generate AGENTS-JAVA.md + Generate INVENTORY-AGENTS-JAVA.md Use @002-agents-inventory diff --git a/skills-generator/src/main/resources/system-prompts/001-skills-inventory.xml b/skills-generator/src/main/resources/system-prompts/001-skills-inventory.xml index cecb0737..c1e498b2 100644 --- a/skills-generator/src/main/resources/system-prompts/001-skills-inventory.xml +++ b/skills-generator/src/main/resources/system-prompts/001-skills-inventory.xml @@ -6,14 +6,14 @@ 0.14.0 Apache-2.0 Create a Checklist with all Java steps to use with system prompts for Java - Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing SKILLS-JAVA.md in the project root. + Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing INVENTORY-SKILLS-JAVA.md in the project root. You are a Senior software engineer with extensive experience in Java software development Your task is to create a comprehensive step-by-step guide that follows the exact format and structure defined in the embedded template below. Create a markdown file named - `SKILLS-JAVA.md` with the following content: + `INVENTORY-SKILLS-JAVA.md` with the following content: ```markdown @@ -39,10 +39,10 @@ **File Creation**: Generate the complete markdown file named - `SKILLS-JAVA.md` in the project root directory + `INVENTORY-SKILLS-JAVA.md` in the project root directory **Template Adherence**: Follow the embedded template structure and content exactly - no additions, modifications, or omissions - **File Handling**: If `SKILLS-JAVA.md` already exists, + **File Handling**: If `INVENTORY-SKILLS-JAVA.md` already exists, overwrite it completely with the new generated content diff --git a/skills-generator/src/main/resources/system-prompts/002-agents-inventory.xml b/skills-generator/src/main/resources/system-prompts/002-agents-inventory.xml index 7cac886b..470947dd 100644 --- a/skills-generator/src/main/resources/system-prompts/002-agents-inventory.xml +++ b/skills-generator/src/main/resources/system-prompts/002-agents-inventory.xml @@ -6,14 +6,14 @@ 0.14.0 Apache-2.0 Create a Checklist with embedded agents inventory for Java - Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing AGENTS-JAVA.md in the project root. + Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing INVENTORY-AGENTS-JAVA.md in the project root. You are a Senior software engineer with extensive experience in Java software development Your task is to create a comprehensive checklist that follows the exact format and structure defined in the embedded template below. Create a markdown file named - `AGENTS-JAVA.md` with the following content: + `INVENTORY-AGENTS-JAVA.md` with the following content: ```markdown @@ -34,10 +34,10 @@ **File Creation**: Generate the complete markdown file named - `AGENTS-JAVA.md` in the project root directory + `INVENTORY-AGENTS-JAVA.md` in the project root directory **Template Adherence**: Follow the embedded template structure and content exactly - no additions, modifications, or omissions - **File Handling**: If `AGENTS-JAVA.md` already exists, + **File Handling**: If `INVENTORY-AGENTS-JAVA.md` already exists, overwrite it completely with the new generated content diff --git a/skills/001-skills-inventory/SKILL.md b/skills/001-skills-inventory/SKILL.md index db6e2913..ab2064c5 100644 --- a/skills/001-skills-inventory/SKILL.md +++ b/skills/001-skills-inventory/SKILL.md @@ -1,6 +1,6 @@ --- name: 001-skills-inventory -description: Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing SKILLS-JAVA.md in the project root. Part of the skills-for-java project +description: Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing INVENTORY-SKILLS-JAVA.md in the project root. Part of the skills-for-java project license: Apache-2.0 metadata: author: Juan Antonio Breña Moral @@ -13,7 +13,7 @@ Create a comprehensive step-by-step checklist document for Java system prompts b **What is covered in this Skill?** - Exact-template checklist generation -- Output file creation as `SKILLS-JAVA.md` +- Output file creation as `INVENTORY-SKILLS-JAVA.md` - Strict adherence to listed steps and cursor rules ## Constraints @@ -27,7 +27,7 @@ Follow the template exactly without adding or removing steps, sections, or rules ## When to use this skill - Create Java system prompts checklist -- Generate SKILLS-JAVA.md +- Generate INVENTORY-SKILLS-JAVA.md - Use @001-skills-inventory ## Reference diff --git a/skills/001-skills-inventory/references/001-skills-inventory.md b/skills/001-skills-inventory/references/001-skills-inventory.md index 929cafb5..524360a6 100644 --- a/skills/001-skills-inventory/references/001-skills-inventory.md +++ b/skills/001-skills-inventory/references/001-skills-inventory.md @@ -1,6 +1,6 @@ --- name: 001-skills-inventory -description: Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing SKILLS-JAVA.md in the project root. +description: Use when you need to generate a checklist document with Java system prompts, following the embedded template exactly and producing INVENTORY-SKILLS-JAVA.md in the project root. license: Apache-2.0 metadata: author: Juan Antonio Breña Moral @@ -16,7 +16,7 @@ You are a Senior software engineer with extensive experience in Java software de Your task is to create a comprehensive step-by-step guide that follows the exact format and structure defined in the embedded template below. Create a markdown file named -`SKILLS-JAVA.md` with the following content: +`INVENTORY-SKILLS-JAVA.md` with the following content: ```markdown # Cursor rules Java @@ -181,6 +181,6 @@ Use the following collection of System prompts of Java to improve your Java deve ## Output Format -- **File Creation**: Generate the complete markdown file named `SKILLS-JAVA.md` in the project root directory +- **File Creation**: Generate the complete markdown file named `INVENTORY-SKILLS-JAVA.md` in the project root directory - **Template Adherence**: Follow the embedded template structure and content exactly - no additions, modifications, or omissions -- **File Handling**: If `SKILLS-JAVA.md` already exists, overwrite it completely with the new generated content \ No newline at end of file +- **File Handling**: If `INVENTORY-SKILLS-JAVA.md` already exists, overwrite it completely with the new generated content \ No newline at end of file diff --git a/skills/002-agents-inventory/SKILL.md b/skills/002-agents-inventory/SKILL.md index 6cb5b568..95a474a2 100644 --- a/skills/002-agents-inventory/SKILL.md +++ b/skills/002-agents-inventory/SKILL.md @@ -1,6 +1,6 @@ --- name: 002-agents-inventory -description: Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing AGENTS-JAVA.md in the project root. Part of the skills-for-java project +description: Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing INVENTORY-AGENTS-JAVA.md in the project root. Part of the skills-for-java project license: Apache-2.0 metadata: author: Juan Antonio Breña Moral @@ -13,7 +13,7 @@ Create a comprehensive checklist document for embedded agents inventory by follo **What is covered in this Skill?** - Exact-template checklist generation -- Output file creation as `AGENTS-JAVA.md` +- Output file creation as `INVENTORY-AGENTS-JAVA.md` - Strict adherence to listed sections and content ## Constraints @@ -27,7 +27,7 @@ Follow the template exactly without adding or removing sections, rows, or detail ## When to use this skill - Create embedded agents inventory checklist -- Generate AGENTS-JAVA.md +- Generate INVENTORY-AGENTS-JAVA.md - Use @002-agents-inventory ## Reference diff --git a/skills/002-agents-inventory/references/002-agents-inventory.md b/skills/002-agents-inventory/references/002-agents-inventory.md index c5859177..e158a763 100644 --- a/skills/002-agents-inventory/references/002-agents-inventory.md +++ b/skills/002-agents-inventory/references/002-agents-inventory.md @@ -1,6 +1,6 @@ --- name: 002-agents-inventory -description: Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing AGENTS-JAVA.md in the project root. +description: Use when you need to generate a checklist document with embedded agents inventory, following the embedded template exactly and producing INVENTORY-AGENTS-JAVA.md in the project root. license: Apache-2.0 metadata: author: Juan Antonio Breña Moral @@ -16,7 +16,7 @@ You are a Senior software engineer with extensive experience in Java software de Your task is to create a comprehensive checklist that follows the exact format and structure defined in the embedded template below. Create a markdown file named -`AGENTS-JAVA.md` with the following content: +`INVENTORY-AGENTS-JAVA.md` with the following content: ```markdown # Embedded Agents Inventory @@ -54,6 +54,6 @@ Provide a quick checklist of the embedded agents available for installation in t ## Output Format -- **File Creation**: Generate the complete markdown file named `AGENTS-JAVA.md` in the project root directory +- **File Creation**: Generate the complete markdown file named `INVENTORY-AGENTS-JAVA.md` in the project root directory - **Template Adherence**: Follow the embedded template structure and content exactly - no additions, modifications, or omissions -- **File Handling**: If `AGENTS-JAVA.md` already exists, overwrite it completely with the new generated content \ No newline at end of file +- **File Handling**: If `INVENTORY-AGENTS-JAVA.md` already exists, overwrite it completely with the new generated content \ No newline at end of file From c9211d054d3f28218d3db99c83a44f6583326c37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Fri, 10 Apr 2026 10:24:53 +0200 Subject: [PATCH 3/4] fix(docs): refresh Java skills inventory and references Regenerate the skills inventory outputs after updating the Java skills template and normalize naming/link conventions across generated documentation. Made-with: Cursor --- README.md | 29 +-- documentation/INVENTORY-SKILLS-JAVA.md | 181 ++++++++++-------- documentation/adr/README.md | 9 + .../java-system-prompts-java-list-template.md | 181 ++++++++++-------- .../references/001-skills-inventory.md | 181 ++++++++++-------- 5 files changed, 318 insertions(+), 263 deletions(-) create mode 100644 documentation/adr/README.md diff --git a/README.md b/README.md index 281da3bd..6079ca67 100644 --- a/README.md +++ b/README.md @@ -22,23 +22,16 @@ 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 | Location | -| ----------------------- | ------------------------------------------------------------------------------------------ | -| Skills for Java | [https://skills.sh/jabrena/cursor-rules-java](https://skills.sh/jabrena/cursor-rules-java) | -| Agents for Java | [Catalog](.cursor/agents) (`.cursor/agents`) | +| Deliverable | Instalation | 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. ### Compatibility -This project is compatible with any Tool compatible with `Skills`, `Agents` or `AGENTS.md`. - -## Getting started - -Read the following comprehensive guides to use this project today. - -- [Getting started with `Skills for Java`](./documentation/GETTING-STARTED-SKILLS.md) -- [Getting started with `Agents for Java`](./documentation/GETTING-STARTED-AGENTS.md) -- [Getting started with `CI/CD Pipelines and AI Capabilities`](./documentation/GETTING-STARTED-PIPELINES.md) +This project is compatible with any Tool compatible with `Skills`, `Agents`, `AGENTS.md` & `MCP` Servers. ## How to use them? @@ -62,6 +55,8 @@ 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) + ## Limitations ### Lack of determinism @@ -86,13 +81,7 @@ The repository includes [a collection of examples](./examples/) where you can ex ## Architectural decision records, ADR -| Date | ID | Name | -| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 2026-04-06 | ADR-005 | [Drop Cursor rules support in favor of Agent Skills](./documentation/adr/ADR-005-drop-cursor-rules-support-in-favor-of-agent-skills.md) | -| 2026-03-01 | ADR-004 | [Skill Generation](./documentation/adr/ADR-004-skill-generation.md) | -| 2025-09-16 | ADR-003 | [Website Generation](./documentation/adr/ADR-003-website-generation.md) | -| 2025-07-10 | ADR-002 | [Cursor Rules scope configuration](./documentation/adr/ADR-002-configure-cursor-rules-manual-scope.md) | -| 2025-07-08 | ADR-001 | [Cursor Rules generation from XML Files](./documentation/adr/ADR-001-generate-cursor-rules-from-xml-files.md) | +- Review the [ADR index](./documentation/adr/README.md) for the complete list. ## Changelog diff --git a/documentation/INVENTORY-SKILLS-JAVA.md b/documentation/INVENTORY-SKILLS-JAVA.md index e3821f4f..453cf261 100644 --- a/documentation/INVENTORY-SKILLS-JAVA.md +++ b/documentation/INVENTORY-SKILLS-JAVA.md @@ -1,147 +1,166 @@ -# Cursor rules Java +# Skills for Java -Use the following collection of System prompts of Java to improve your Java development. +Use the following collection of Skills for Java to improve your Java development. -## Generate this list of System prompts for Java +## Inventory -| Cursor Rule | Description | User Prompt | Notes | +| Skill | Description | User Prompt | Notes | |----|----|----|----| -| [001-skills-inventory](.cursor/rules/001-skills-inventory.md) | Generate list of System Prompts for Java | **User Prompt:** `Create a document with all System prompts for Java using @001-skills-inventory` | | +| [001-skills-inventory](@001-skills-inventory.md) | Generate list of System Prompts for Java | **User Prompt:** `Create a document with all System prompts for Java using @001-skills-inventory` | | +| [002-agents-inventory](@002-agents-inventory.md) | Generate checklist with embedded agents inventory for Java | **User Prompt:** `Create a document with all agents for Java using @002-agents-inventory` | | -## AI-Driven Agile (User Stories, Gherkin & AI Planning) +## Installation -| Cursor Rule | Description | Prompt | Notes | -|----|----|----|----| -| [012-agile-epic](.cursor/rules/012-agile-epic.md) | Create agile epics with comprehensive definition including business value, success criteria, and breakdown into user stories | **Interactive User Prompt:** `Create an agile epic using @012-agile-epic` **Note:** The rule asks targeted questions about epic title, business value, target users, problem statement, solution overview, success criteria, key features, dependencies, risks, and documentation before generating the epic document. | Three-phase approach: gets current date, gathers details through structured questions, then produces epic document with next steps. | -| [013-agile-feature](.cursor/rules/013-agile-feature.md) | Create detailed feature Markdown files from an existing epic | **Interactive User Prompt:** `Create features from my epic using @013-agile-feature` **Note:** Add the epic file path or paste epic content. The rule analyzes the epic, clarifies scope and audience, asks per-feature questions, then generates one feature document per feature. | Phases: current date, epic analysis and structured questions (including repeated questions per feature), then feature file generation and epic integration guidance. | -| [014-agile-user-story](.cursor/rules/014-agile-user-story.md) | Create user stories with Gherkin acceptance criteria and BDD feature files | **Interactive User Prompt:** `Create a user story with acceptance criteria using @014-agile-user-story` **Note:** The rule asks targeted questions about title, persona, goal, benefit, feature context, and Gherkin scenarios before generating the Markdown user story and `.feature` file. | Two-phase approach: gathers details through structured questions, then produces user story and Gherkin file. Optional upstream: retrieve issue bodies and comments with `@043-planning-github-issues`, then use that text as draft answers while keeping the same question order. | -| [043-planning-github-issues](.cursor/rules/043-planning-github-issues.md) | List GitHub issues (all or by milestone), fetch issue bodies and comments with `gh`, present tables; hand off to user stories | **User Prompt:** `List open issues in this repo as a table using @043-planning-github-issues` **User Prompt:** `Get all issues for milestone "Sprint 12" with @043-planning-github-issues` **User Prompt:** `Pull issue #44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires GitHub CLI (`gh`) installed and authenticated. | Pairs with `@014-agile-user-story` when turning GitHub threads into user stories and Gherkin. | -| [044-planning-jira](.cursor/rules/044-planning-jira.md) | List Jira issues (all or by JQL), fetch issue descriptions and comments with `jira`, present tables; hand off to user stories | **User Prompt:** `List open Jira issues as a table using @044-planning-jira` **User Prompt:** `Get Jira issues with JQL "project = PROJ AND statusCategory != Done" using @044-planning-jira` **User Prompt:** `Pull issue PROJ-44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires Jira CLI (`jira`) installed and configured. | Pairs with `@014-agile-user-story` when turning Jira threads into user stories and Gherkin. | -| [041-planning-plan-mode](.cursor/rules/041-planning-plan-mode.md) | Create structured design plans for Cursor Plan mode (Java implementation, TDD, refactoring) | **Interactive User Prompt:** `Create a plan for [feature/refactoring] using @041-planning-plan-mode` **Note:** Use in Plan mode. Gathers context (specs, acceptance criteria) then produces YAML-frontmatter plan with Requirements Summary, Approach (Mermaid), Task List, Execution Instructions. | Suitable for outside-in TDD, feature implementation, or refactoring work. | -| [042-planning-openspec](.cursor/rules/042-planning-openspec.md) | Transform `*.plan.md` into OpenSpec change workflow (install/check/init/list/status/show/validate/archive) | **Interactive User Prompt:** `Convert this .plan.md into an OpenSpec change using @042-planning-openspec` **Note:** Verifies `openspec --version` first; if missing, offers npm install guidance for macOS/Linux/Windows, then proposes `openspec init` for new projects. | Uses `add-dark-mode` as a canonical change-id example and supports create-or-update flows. | +| Skill | Description | User Prompt | Notes | +|----|----|----|----| +| [003-agents-installation](@003-agents-installation.md) | Install embedded robot agents into `.cursor/agents` or `.claude/agents` | **Interactive User Prompt:** `Install embedded agents using @003-agents-installation` | Asks destination first, then installs the full six-agent bundle from embedded assets. | + +## Agile (User Stories, Gherkin & AI Planning) + +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [012-agile-epic](@012-agile-epic.md) | Create agile epics with comprehensive definition including business value, success criteria, and breakdown into user stories | **Interactive User Prompt:** `Create an agile epic using @012-agile-epic` **Note:** The rule asks targeted questions about epic title, business value, target users, problem statement, solution overview, success criteria, key features, dependencies, risks, and documentation before generating the epic document. | Three-phase approach: gets current date, gathers details through structured questions, then produces epic document with next steps. | +| [013-agile-feature](@013-agile-feature.md) | Create detailed feature Markdown files from an existing epic | **Interactive User Prompt:** `Create features from my epic using @013-agile-feature` **Note:** Add the epic file path or paste epic content. The rule analyzes the epic, clarifies scope and audience, asks per-feature questions, then generates one feature document per feature. | Phases: current date, epic analysis and structured questions (including repeated questions per feature), then feature file generation and epic integration guidance. | +| [014-agile-user-story](@014-agile-user-story.md) | Create user stories with Gherkin acceptance criteria and BDD feature files | **Interactive User Prompt:** `Create a user story with acceptance criteria using @014-agile-user-story` **Note:** The rule asks targeted questions about title, persona, goal, benefit, feature context, and Gherkin scenarios before generating the Markdown user story and `.feature` file. | Two-phase approach: gathers details through structured questions, then produces user story and Gherkin file. Optional upstream: retrieve issue bodies and comments with `@043-planning-github-issues`, then use that text as draft answers while keeping the same question order. | ## Architecture -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [030-architecture-adr-general](@030-architecture-adr-general.md) | Generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes | **Interactive User Prompt:** `Generate an ADR for the project with the skill @030-architecture-adr-general` **Note:** Add in the context the project root folder. The rule will ask questions about ADR storage location and naming convention before starting the interactive ADR generation process. Ensures project validation with Maven before proceeding. | Interactive rule — asks questions one by one to gather all ADR information. Validates Maven project before starting, auto-increments ADR file numbering, and provides a comprehensive summary after generation. | +| [031-architecture-adr-functional-requirements](@031-architecture-adr-functional-requirements.md) | Create ADRs for functional requirements — CLI and/or REST/HTTP API; infers interface type from project context when possible | **Interactive User Prompt:** `Generate an ADR for functional requirements with @031-architecture-adr-functional-requirements` **Note:** Add the CLI and/or API project to context. Conversational discovery; surface discovery (CLI vs API vs both); one or two questions at a time. | Unified functional-requirements ADR (CLI and/or REST). | +| [032-architecture-adr-non-functional-requirements](@032-architecture-adr-non-functional-requirements.md) | Create ADRs for non-functional requirements — document quality attributes, NFR decisions, security/performance/scalability using ISO/IEC 25010:2023 | **Interactive User Prompt:** `Generate an ADR for non-functional requirements with @032-architecture-adr-non-functional-requirements` **Note:** Add in the context the project. Skips irrelevant quality characteristics; dives deeper where there is uncertainty. | NFR-focused ADR generation. | +| [033-architecture-diagrams](@033-architecture-diagrams.md) | Generate Java project diagrams including UML sequence, class, state-machine diagrams and C4 model diagrams using a modular step-based approach | **Interactive User Prompt:** `Generate diagrams about the project with the skill @033-architecture-diagrams` **User Prompt:** `Create UML class diagrams with @033-architecture-diagrams without any question` (Example) **Note:** Add in the context the folder to generate the diagrams. The rule will analyze the codebase and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on diagram generation only. I recommend to run the JBang tool `jbang puml-to-png@jabrena --watch .` in order to generate diagrams in PNG format on the fly | + +## Planning + +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [030-architecture-adr-general](.cursor/rules/030-architecture-adr-general.md) | Generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes | **Interactive User Prompt:** `Generate an ADR for the project with the cursor rule @030-architecture-adr-general` **Note:** Add in the context the project root folder. The rule will ask questions about ADR storage location and naming convention before starting the interactive ADR generation process. Ensures project validation with Maven before proceeding. | Interactive rule — asks questions one by one to gather all ADR information. Validates Maven project before starting, auto-increments ADR file numbering, and provides a comprehensive summary after generation. | -| [031-architecture-adr-functional-requirements](.cursor/rules/031-architecture-adr-functional-requirements.md) | Create ADRs for functional requirements — CLI and/or REST/HTTP API; infers interface type from project context when possible | **Interactive User Prompt:** `Generate an ADR for functional requirements with @031-architecture-adr-functional-requirements` **Note:** Add the CLI and/or API project to context. Conversational discovery; surface discovery (CLI vs API vs both); one or two questions at a time. | Unified functional-requirements ADR (CLI and/or REST). | -| [032-architecture-adr-non-functional-requirements](.cursor/rules/032-architecture-adr-non-functional-requirements.md) | Create ADRs for non-functional requirements — document quality attributes, NFR decisions, security/performance/scalability using ISO/IEC 25010:2023 | **Interactive User Prompt:** `Generate an ADR for non-functional requirements with @032-architecture-adr-non-functional-requirements` **Note:** Add in the context the project. Skips irrelevant quality characteristics; dives deeper where there is uncertainty. | NFR-focused ADR generation. | -| [033-architecture-diagrams](.cursor/rules/033-architecture-diagrams.md) | Generate Java project diagrams including UML sequence, class, state-machine diagrams and C4 model diagrams using a modular step-based approach | **Interactive User Prompt:** `Generate diagrams about the project with the cursor rule @033-architecture-diagrams` **User Prompt:** `Create UML class diagrams with @033-architecture-diagrams without any question` (Example) **Note:** Add in the context the folder to generate the diagrams. The rule will analyze the codebase and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on diagram generation only. I recommend to run the JBang tool `jbang puml-to-png@jabrena --watch .` in order to generate diagrams in PNG format on the fly | +| [041-planning-plan-mode](@041-planning-plan-mode.md) | Create structured design plans for Cursor Plan mode (Java implementation, TDD, refactoring) | **Interactive User Prompt:** `Create a plan for [feature/refactoring] using @041-planning-plan-mode` **Note:** Use in Plan mode. Gathers context (specs, acceptance criteria) then produces YAML-frontmatter plan with Requirements Summary, Approach (Mermaid), Task List, Execution Instructions. | Suitable for outside-in TDD, feature implementation, or refactoring work. | +| [042-planning-openspec](@042-planning-openspec.md) | Transform `*.plan.md` into OpenSpec change workflow (install/check/init/list/status/show/validate/archive) | **Interactive User Prompt:** `Convert this .plan.md into an OpenSpec change using @042-planning-openspec` **Note:** Verifies `openspec --version` first; if missing, offers npm install guidance for macOS/Linux/Windows, then proposes `openspec init` for new projects. | Uses `add-dark-mode` as a canonical change-id example and supports create-or-update flows. | +| [043-planning-github-issues](@043-planning-github-issues.md) | List GitHub issues (all or by milestone), fetch issue bodies and comments with `gh`, present tables; hand off to user stories | **User Prompt:** `List open issues in this repo as a table using @043-planning-github-issues` **User Prompt:** `Get all issues for milestone "Sprint 12" with @043-planning-github-issues` **User Prompt:** `Pull issue #44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires GitHub CLI (`gh`) installed and authenticated. | Pairs with `@014-agile-user-story` when turning GitHub threads into user stories and Gherkin. | +| [044-planning-jira](@044-planning-jira.md) | List Jira issues (all or by JQL), fetch issue descriptions and comments with `jira`, present tables; hand off to user stories | **User Prompt:** `List open Jira issues as a table using @044-planning-jira` **User Prompt:** `Get Jira issues with JQL "project = PROJ AND statusCategory != Done" using @044-planning-jira` **User Prompt:** `Pull issue PROJ-44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires Jira CLI (`jira`) installed and configured. | Pairs with `@014-agile-user-story` when turning Jira threads into user stories and Gherkin. | ## Build system rules (Maven) -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [110-java-maven-best-practices](.cursor/rules/110-java-maven-best-practices.md) | Analyze your `pom.xml` and apply Maven best practices | **User Prompt:** `Apply in the pom.xml the rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. **User Prompt with Consultative Interactive Behaviour:** `Apply in the pom.xml the rule @110-java-maven-best-practices with the behaviour @behaviour-consultative-interaction`| You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [111-java-maven-dependencies](.cursor/rules/111-java-maven-dependencies.md) | Add Maven dependencies for improved code quality | **Interactive User Prompt:** `Add essential Maven dependencies for code quality using @111-java-maven-dependencies` **User Prompt:** `Add VAVR dependency with the help of@111-java-maven-dependencies and not make any question` (Example)**Note:** Add in the context the `pom.xml` which you want to enhance with quality dependencies. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the cursor rule to selectively add JSpecify, Error Prone, NullAway and VAVR dependencies based on project needs. | -| [112-java-maven-plugins](.cursor/rules/112-java-maven-plugins.md) | Update your `pom.xml` with Maven Dependencies & Plugins | **Interactive User Prompt:** `Improve the pom.xml using the cursor rule @112-java-maven-plugins` **User Prompt:** `Add Maven Enforcer plugin only from the rule @112-java-maven-plugins without any question` (Example) **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the cursor rule to update the `pom.xml`. | -| [113-java-maven-documentation](.cursor/rules/113-java-maven-documentation.md) | Create a Maven Documentation with the file `README-DEV.md` | **User Prompt:** `Generate developer documentation with essential Maven commands using @113-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This cursor rule is applied automatically without any interaction with the Software engineer. | -| [114-java-maven-search](.cursor/rules/114-java-maven-search.md) | Search Maven Central, resolve coordinates, version metadata, and direct artifact URLs | **User Prompt:** `Find the latest version of com.google.guava:guava using @114-java-maven-search` **Note:** Use for dependency lookup, POM/JAR URLs, `maven-metadata.xml`, or Search API queries — not for editing `pom.xml` (use `@111` / `@112` for that). | Non-interactive. Use MCP Maven tools when available for live Central queries. | +| [110-java-maven-best-practices](@110-java-maven-best-practices.md) | Analyze your `pom.xml` and apply Maven best practices | **User Prompt:** `Apply in the pom.xml the rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. **User Prompt with Consultative Interactive Behaviour:** `Apply in the pom.xml the rule @110-java-maven-best-practices with the behaviour @behaviour-consultative-interaction`| You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [111-java-maven-dependencies](@111-java-maven-dependencies.md) | Add Maven dependencies for improved code quality | **Interactive User Prompt:** `Add essential Maven dependencies for code quality using @111-java-maven-dependencies` **User Prompt:** `Add VAVR dependency with the help of@111-java-maven-dependencies and not make any question` (Example)**Note:** Add in the context the `pom.xml` which you want to enhance with quality dependencies. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the skill to selectively add JSpecify, Error Prone, NullAway and VAVR dependencies based on project needs. | +| [112-java-maven-plugins](@112-java-maven-plugins.md) | Update your `pom.xml` with Maven Dependencies & Plugins | **Interactive User Prompt:** `Improve the pom.xml using the skill @112-java-maven-plugins` **User Prompt:** `Add Maven Enforcer plugin only from the rule @112-java-maven-plugins without any question` (Example) **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the skill to update the `pom.xml`. | +| [113-java-maven-documentation](@113-java-maven-documentation.md) | Create a Maven Documentation with the file `README-DEV.md` | **User Prompt:** `Generate developer documentation with essential Maven commands using @113-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This skill is applied automatically without any interaction with the Software engineer. | +| [114-java-maven-search](@114-java-maven-search.md) | Search Maven Central, resolve coordinates, version metadata, and direct artifact URLs | **User Prompt:** `Find the latest version of com.google.guava:guava using @114-java-maven-search` **Note:** Use for dependency lookup, POM/JAR URLs, `maven-metadata.xml`, or Search API queries — not for editing `pom.xml` (use `@111` / `@112` for that). | Non-interactive. Use MCP Maven tools when available for live Central queries. | ## Design rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [121-java-object-oriented-design](.cursor/rules/121-java-object-oriented-design.md) | Take another point of view with an Object Oriented Design of your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design`(Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [122-java-type-design](.cursor/rules/122-java-type-design.md) | Review the Type Design in your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design` (Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [121-java-object-oriented-design](@121-java-object-oriented-design.md) | Take another point of view with an Object Oriented Design of your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design`(Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [122-java-type-design](@122-java-type-design.md) | Review the Type Design in your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design` (Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Coding rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [123-java-exception-handling](.cursor/rules/123-java-exception-handling.md) | Add Exception handling | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [124-java-secure-coding](.cursor/rules/124-java-secure-coding.md) | Review my code for Secure Java Coding rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [125-java-concurrency](.cursor/rules/125-java-concurrency.md) | Improve your code with Concurrency rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [180-java-observability-logging](.cursor/rules/180-java-observability-logging.md) | Apply logging guidelines in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [128-java-generics](.cursor/rules/128-java-generics.md) | Apply generics in a class | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @128-java-generics` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @128-java-generics with the behaviour @behaviour-consultative-interaction` **User Prompt with Training behaviour:** `Create a course about @128-java-generics.md using the behavior @behaviour-progressive-learning.md and put the course here` **Note:** Add in the context the location to add the course. | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [123-java-exception-handling](@123-java-exception-handling.md) | Add Exception handling | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [124-java-secure-coding](@124-java-secure-coding.md) | Review my code for Secure Java Coding rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [125-java-concurrency](@125-java-concurrency.md) | Improve your code with Concurrency rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [180-java-observability-logging](@180-java-observability-logging.md) | Apply logging guidelines in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [128-java-generics](@128-java-generics.md) | Apply generics in a class | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @128-java-generics` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @128-java-generics with the behaviour @behaviour-consultative-interaction` **User Prompt with Training behaviour:** `Create a course about @128-java-generics.md using the behavior @behaviour-progressive-learning.md and put the course here` **Note:** Add in the context the location to add the course. | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Testing rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [130-java-testing-strategies](.cursor/rules/130-java-testing-strategies.md) | Apply testing strategies — RIGHT-BICEP, A-TRIP, CORRECT for boundary conditions and test quality | **User Prompt:** `Improve tests applying testing strategies with @130-java-testing-strategies` **Note:** Add in the context test classes or code under test. Focuses on conceptual frameworks rather than framework-specific annotations. | Use for strategy-focused test design. For JUnit 5, AssertJ, Mockito, use @131-java-testing-unit-testing. | -| [131-java-testing-unit-testing](.cursor/rules/131-java-testing-unit-testing.md) | Apply Unit Testing best practices for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing` (Example) **Note:** Add in the context a class/classes. Project must NOT use Spring Boot, Quarkus, or Micronaut. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing with the behaviour @behaviour-consultative-interaction` | Precondition: framework-agnostic Java. For Spring Boot use @321-frameworks-spring-boot-testing-unit-tests; for Quarkus @421-frameworks-quarkus-testing-unit-tests; for Micronaut @521-frameworks-micronaut-testing-unit-tests. | -| [132-java-testing-integration-testing](.cursor/rules/132-java-testing-integration-testing.md) | Set up integration test infrastructure with WireMock (REST stubs) and generate a `BaseIntegrationTest.java` for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **Interactive User Prompt:** `Set up integration test infrastructure for my service using @132-java-testing-integration-testing` **Note:** The rule will ask questions about your service's outbound HTTP dependencies before generating `BaseIntegrationTest.java` and starter WireMock mapping files. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Precondition: framework-agnostic Java. For Spring Boot use @322-frameworks-spring-boot-testing-integration-tests; for Quarkus @422-frameworks-quarkus-testing-integration-tests; for Micronaut @522-frameworks-micronaut-testing-integration-tests. Interactive rule — asks questions about REST topology before generating code. | -| [133-java-testing-acceptance-tests](.cursor/rules/133-java-testing-acceptance-tests.md) | Implement acceptance tests from a Gherkin .feature file for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) — @acceptance scenarios, RestAssured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @133-java-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Preconditions: .feature file in context; framework-agnostic Java. For Spring Boot use @323-frameworks-spring-boot-testing-acceptance-tests; for Quarkus @423-frameworks-quarkus-testing-acceptance-tests; for Micronaut @523-frameworks-micronaut-testing-acceptance-tests. | +| [130-java-testing-strategies](@130-java-testing-strategies.md) | Apply testing strategies — RIGHT-BICEP, A-TRIP, CORRECT for boundary conditions and test quality | **User Prompt:** `Improve tests applying testing strategies with @130-java-testing-strategies` **Note:** Add in the context test classes or code under test. Focuses on conceptual frameworks rather than framework-specific annotations. | Use for strategy-focused test design. For JUnit 5, AssertJ, Mockito, use @131-java-testing-unit-testing. | +| [131-java-testing-unit-testing](@131-java-testing-unit-testing.md) | Apply Unit Testing best practices for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing` (Example) **Note:** Add in the context a class/classes. Project must NOT use Spring Boot, Quarkus, or Micronaut. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing with the behaviour @behaviour-consultative-interaction` | Precondition: framework-agnostic Java. For Spring Boot use @321-frameworks-spring-boot-testing-unit-tests; for Quarkus @421-frameworks-quarkus-testing-unit-tests; for Micronaut @521-frameworks-micronaut-testing-unit-tests. | +| [132-java-testing-integration-testing](@132-java-testing-integration-testing.md) | Set up integration test infrastructure with WireMock (REST stubs) and generate a `BaseIntegrationTest.java` for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **Interactive User Prompt:** `Set up integration test infrastructure for my service using @132-java-testing-integration-testing` **Note:** The rule will ask questions about your service's outbound HTTP dependencies before generating `BaseIntegrationTest.java` and starter WireMock mapping files. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Precondition: framework-agnostic Java. For Spring Boot use @322-frameworks-spring-boot-testing-integration-tests; for Quarkus @422-frameworks-quarkus-testing-integration-tests; for Micronaut @522-frameworks-micronaut-testing-integration-tests. Interactive rule — asks questions about REST topology before generating code. | +| [133-java-testing-acceptance-tests](@133-java-testing-acceptance-tests.md) | Implement acceptance tests from a Gherkin .feature file for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) — @acceptance scenarios, RestAssured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @133-java-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Preconditions: .feature file in context; framework-agnostic Java. For Spring Boot use @323-frameworks-spring-boot-testing-acceptance-tests; for Quarkus @423-frameworks-quarkus-testing-acceptance-tests; for Micronaut @523-frameworks-micronaut-testing-acceptance-tests. | ## Refactoring rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [141-java-refactoring-with-modern-features](.cursor/rules/141-java-refactoring-with-modern-features.md) | Add Modern Java Features in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [142-java-functional-programming](.cursor/rules/142-java-functional-programming.md) | Add Functional Programming style in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [143-java-functional-exception-handling](.cursor/rules/143-java-functional-exception-handling.md) | Apply functional programming approaches for error handling using Optional and VAVR Either types | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. It promotes using Monads like Optional and Either instead of exceptions for predictable failures. | -| [144-java-data-oriented-programming](.cursor/rules/144-java-data-oriented-programming.md) | Add Data Oriented Programming in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [141-java-refactoring-with-modern-features](@141-java-refactoring-with-modern-features.md) | Add Modern Java Features in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [142-java-functional-programming](@142-java-functional-programming.md) | Add Functional Programming style in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [143-java-functional-exception-handling](@143-java-functional-exception-handling.md) | Apply functional programming approaches for error handling using Optional and VAVR Either types | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. It promotes using Monads like Optional and Either instead of exceptions for predictable failures. | +| [144-java-data-oriented-programming](@144-java-data-oriented-programming.md) | Add Data Oriented Programming in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Performance rule (Jmeter) | Activity | Description | Prompt | Notes | |----|----|----|----| -| [151-java-performance-jmeter](.cursor/rules/151-java-performance-jmeter.md) | Run a performance test with Jmeter | **User Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This cursor rule is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. | +| [151-java-performance-jmeter](@151-java-performance-jmeter.md) | Run a performance test with Jmeter | **User Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This skill is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. | ## Profiling rules (Async profiler, jps, jstack, jcmd & jstat) | Activity | Description | Prompt | Notes | |----|----|----|----| -| [161-java-profiling-detect](.cursor/rules/161-java-profiling-detect.md) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. The Cursor rule will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. **Step 1:** execute `./run-with-profiler.sh --help` **Step2:** execute `./run-jmeter.sh --help` **Step 3:** execute `./profiler/scripts/java-profile.sh` | -| [162-java-profiling-analyze](.cursor/rules/162-java-profiling-analyze.md) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the cursor rule @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. | -| [163-java-profiling-refactor](.cursor/rules/163-java-profiling-refactor.md) | Refactor code based on profiling analysis findings to fix performance bottlenecks | **Prompt:** `Apply refactoring from profiling analysis using @163-java-profiling-refactor` **Note:** Review `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` before refactoring. Replace YYYYMMDD with the analysis date. | Step 3 of profiling workflow. Non conversational. Verifies changes with `./mvnw clean verify`. | +| [161-java-profiling-detect](@161-java-profiling-detect.md) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational skill. The Skill will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. **Step 1:** execute `./run-with-profiler.sh --help` **Step2:** execute `./run-jmeter.sh --help` **Step 3:** execute `./profiler/scripts/java-profile.sh` | +| [162-java-profiling-analyze](@162-java-profiling-analyze.md) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the skill @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational skill. | +| [163-java-profiling-refactor](@163-java-profiling-refactor.md) | Refactor code based on profiling analysis findings to fix performance bottlenecks | **Prompt:** `Apply refactoring from profiling analysis using @163-java-profiling-refactor` **Note:** Review `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` before refactoring. Replace YYYYMMDD with the analysis date. | Step 3 of profiling workflow. Non conversational. Verifies changes with `./mvnw clean verify`. | | - | Code Refactoring from suggestions from analysis | `Can you apply the solutions from @profiling-solutions-yyyymmdd.md in @/info to mitigate bottlenecks` | Make a refactoring with the notes from the analysis | -| [164-java-profiling-verify](.cursor/rules/164-java-profiling-verify.md) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the cursor rule @164-java-profiling-verify` **Note:** Put in the context the folder with the results | This cursor rule is applied automatically without any interaction with the Software engineer. | +| [164-java-profiling-verify](@164-java-profiling-verify.md) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the skill @164-java-profiling-verify` **Note:** Put in the context the folder with the results | This skill is applied automatically without any interaction with the Software engineer. | ## Documentation rules | Activity | Description | Prompt | Notes | |----|----|----|----| -| [170-java-documentation](.cursor/rules/170-java-documentation.md) | Generate Java project documentation including README.md, package-info.java files, and Javadoc using a modular step-based approach | **Interactive User Prompt:** `Generate technical documentation about the project with the cursor rule @170-java-documentation` **User Prompt:** `Generate README.md with @170-java-documentation without any question` (Example) **Note:** Add in the context the folder to generate the documentation. The rule will analyze existing documentation and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on documentation generation only. For diagrams, use @033-architecture-diagrams | +| [170-java-documentation](@170-java-documentation.md) | Generate Java project documentation including README.md, package-info.java files, and Javadoc using a modular step-based approach | **Interactive User Prompt:** `Generate technical documentation about the project with the skill @170-java-documentation` **User Prompt:** `Generate README.md with @170-java-documentation without any question` (Example) **Note:** Add in the context the folder to generate the documentation. The rule will analyze existing documentation and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on documentation generation only. For diagrams, use @033-architecture-diagrams | ## Spring Boot rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [301-frameworks-spring-boot-core](.cursor/rules/301-frameworks-spring-boot-core.md) | Apply Spring Boot core guidelines — @SpringBootApplication, component annotations, bean definition, @ConfigurationProperties, profiles, constructor injection | **User Prompt:** `Improve the Spring Boot application in context using @301-frameworks-spring-boot-core` **Note:** Add in the context the application classes or project. | Core Spring Boot best practices. | -| [302-frameworks-spring-boot-rest](.cursor/rules/302-frameworks-spring-boot-rest.md) | Design and improve REST APIs with Spring Boot — HTTP methods, URIs, status codes, DTOs, versioning, error handling, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @302-frameworks-spring-boot-rest` **Note:** Add in the context the controllers or API classes. | REST API design principles. | -| [311-frameworks-spring-jdbc](.cursor/rules/311-frameworks-spring-jdbc.md) | Programmatic JDBC with Spring — JdbcClient (Spring Framework 6.1+), JdbcTemplate for batch/streaming APIs, parameterized SQL, RowMapper, batch updates, transactions | **User Prompt:** `Review or improve JDBC data access using @311-frameworks-spring-jdbc` **Note:** Add in the context repository/DAO classes or SQL usage. | Use for ad-hoc SQL and JDBC; for repository-style aggregates prefer `@312-frameworks-spring-data-jdbc`. | -| [312-frameworks-spring-data-jdbc](.cursor/rules/312-frameworks-spring-data-jdbc.md) | Apply Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries | **User Prompt:** `Improve the data access layer in context using @312-frameworks-spring-data-jdbc` **Note:** Add in the context the entities, repositories, or project. | Spring Data JDBC with records. | -| [313-frameworks-spring-db-migrations-flyway](.cursor/rules/313-frameworks-spring-db-migrations-flyway.md) | Flyway database migrations with Spring Boot — `db/migration` scripts, `spring.flyway.*`, baseline/validate, Java migrations | **User Prompt:** `Add or review Flyway migrations in context using @313-frameworks-spring-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@311` / `@312` for JDBC and Spring Data JDBC. | -| [321-frameworks-spring-boot-testing-unit-tests](.cursor/rules/321-frameworks-spring-boot-testing-unit-tests.md) | Write unit tests for Spring Boot — pure Mockito for @Service/@Component, @WebMvcTest, @JsonTest | **User Prompt:** `Add or improve unit tests in context using @321-frameworks-spring-boot-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Pure unit + slice tests with Mockito. For integration tests use @322. | -| [322-frameworks-spring-boot-testing-integration-tests](.cursor/rules/322-frameworks-spring-boot-testing-integration-tests.md) | Write integration tests for Spring Boot — Testcontainers, TestRestTemplate, data management, test structure | **User Prompt:** `Add or improve integration tests in context using @322-frameworks-spring-boot-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing guidelines. | -| [323-frameworks-spring-boot-testing-acceptance-tests](.cursor/rules/323-frameworks-spring-boot-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Spring Boot — @acceptance scenarios, RestAssured, @SpringBootTest, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @323-frameworks-spring-boot-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Spring Boot. | Preconditions: .feature file in context; Spring Boot. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [301-frameworks-spring-boot-core](@301-frameworks-spring-boot-core.md) | Apply Spring Boot core guidelines — @SpringBootApplication, component annotations, bean definition, @ConfigurationProperties, profiles, constructor injection | **User Prompt:** `Improve the Spring Boot application in context using @301-frameworks-spring-boot-core` **Note:** Add in the context the application classes or project. | Core Spring Boot best practices. | +| [302-frameworks-spring-boot-rest](@302-frameworks-spring-boot-rest.md) | Design and improve REST APIs with Spring Boot — HTTP methods, URIs, status codes, DTOs, versioning, error handling, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @302-frameworks-spring-boot-rest` **Note:** Add in the context the controllers or API classes. | REST API design principles. | +| [311-frameworks-spring-jdbc](@311-frameworks-spring-jdbc.md) | Programmatic JDBC with Spring — JdbcClient (Spring Framework 6.1+), JdbcTemplate for batch/streaming APIs, parameterized SQL, RowMapper, batch updates, transactions | **User Prompt:** `Review or improve JDBC data access using @311-frameworks-spring-jdbc` **Note:** Add in the context repository/DAO classes or SQL usage. | Use for ad-hoc SQL and JDBC; for repository-style aggregates prefer `@312-frameworks-spring-data-jdbc`. | +| [312-frameworks-spring-data-jdbc](@312-frameworks-spring-data-jdbc.md) | Apply Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries | **User Prompt:** `Improve the data access layer in context using @312-frameworks-spring-data-jdbc` **Note:** Add in the context the entities, repositories, or project. | Spring Data JDBC with records. | +| [313-frameworks-spring-db-migrations-flyway](@313-frameworks-spring-db-migrations-flyway.md) | Flyway database migrations with Spring Boot — `db/migration` scripts, `spring.flyway.*`, baseline/validate, Java migrations | **User Prompt:** `Add or review Flyway migrations in context using @313-frameworks-spring-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@311` / `@312` for JDBC and Spring Data JDBC. | +| [321-frameworks-spring-boot-testing-unit-tests](@321-frameworks-spring-boot-testing-unit-tests.md) | Write unit tests for Spring Boot — pure Mockito for @Service/@Component, @WebMvcTest, @JsonTest | **User Prompt:** `Add or improve unit tests in context using @321-frameworks-spring-boot-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Pure unit + slice tests with Mockito. For integration tests use @322. | +| [322-frameworks-spring-boot-testing-integration-tests](@322-frameworks-spring-boot-testing-integration-tests.md) | Write integration tests for Spring Boot — Testcontainers, TestRestTemplate, data management, test structure | **User Prompt:** `Add or improve integration tests in context using @322-frameworks-spring-boot-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing guidelines. | +| [323-frameworks-spring-boot-testing-acceptance-tests](@323-frameworks-spring-boot-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Spring Boot — @acceptance scenarios, RestAssured, @SpringBootTest, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @323-frameworks-spring-boot-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Spring Boot. | Preconditions: .feature file in context; Spring Boot. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## Quarkus rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [401-frameworks-quarkus-core](.cursor/rules/401-frameworks-quarkus-core.md) | Apply Quarkus core guidelines — CDI beans, @ApplicationScoped, @ConfigMapping, profiles, lifecycle, extension-friendly structure | **User Prompt:** `Improve the Quarkus application in context using @401-frameworks-quarkus-core` **Note:** Add in the context the application classes or project. | Core Quarkus and CDI best practices. | -| [402-frameworks-quarkus-rest](.cursor/rules/402-frameworks-quarkus-rest.md) | Design and improve REST APIs with Quarkus REST (JAX-RS) — resources, HTTP semantics, DTOs, validation, error mapping, OpenAPI as contract (API-first), SmallRye optional | **User Prompt:** `Review and improve the REST API in context using @402-frameworks-quarkus-rest` **Note:** Add in the context the resource classes or project. | REST on Quarkus REST / JAX-RS. | -| [411-frameworks-quarkus-jdbc](.cursor/rules/411-frameworks-quarkus-jdbc.md) | Programmatic JDBC with Quarkus — Agroal datasource, JdbcTemplate or java.sql with named parameters, transactions, records | **User Prompt:** `Review or improve JDBC data access using @411-frameworks-quarkus-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; no ORM. | -| [412-frameworks-quarkus-panache](.cursor/rules/412-frameworks-quarkus-panache.md) | Data access with Hibernate ORM Panache — repositories, active record, queries, transactions; keep persistence simple (no Spring Data JPA) | **User Prompt:** `Improve the data access layer in context using @412-frameworks-quarkus-panache` **Note:** Add entities, repositories, or project. | Panache for relational data; pair with `@411` for raw SQL. | -| [413-frameworks-quarkus-db-migrations-flyway](.cursor/rules/413-frameworks-quarkus-db-migrations-flyway.md) | Flyway database migrations with Quarkus — `quarkus-flyway`, `db/migration`, `quarkus.flyway.*`, migrate-at-start | **User Prompt:** `Add or review Flyway migrations in context using @413-frameworks-quarkus-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@411` / `@412` for JDBC and Panache. | -| [421-frameworks-quarkus-testing-unit-tests](.cursor/rules/421-frameworks-quarkus-testing-unit-tests.md) | Write unit tests for Quarkus — Mockito, @QuarkusTest with injection toggles, RESTAssured slices where appropriate | **User Prompt:** `Add or improve unit tests in context using @421-frameworks-quarkus-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Prefer fast tests without full bootstrap when possible. | -| [422-frameworks-quarkus-testing-integration-tests](.cursor/rules/422-frameworks-quarkus-testing-integration-tests.md) | Write integration tests for Quarkus — @QuarkusTest, Testcontainers, Dev Services, persistence and HTTP | **User Prompt:** `Add or improve integration tests in context using @422-frameworks-quarkus-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing with real infrastructure. | -| [423-frameworks-quarkus-testing-acceptance-tests](.cursor/rules/423-frameworks-quarkus-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Quarkus — @QuarkusTest, REST Assured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @423-frameworks-quarkus-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Quarkus. | Preconditions: .feature file in context; Quarkus. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [401-frameworks-quarkus-core](@401-frameworks-quarkus-core.md) | Apply Quarkus core guidelines — CDI beans, @ApplicationScoped, @ConfigMapping, profiles, lifecycle, extension-friendly structure | **User Prompt:** `Improve the Quarkus application in context using @401-frameworks-quarkus-core` **Note:** Add in the context the application classes or project. | Core Quarkus and CDI best practices. | +| [402-frameworks-quarkus-rest](@402-frameworks-quarkus-rest.md) | Design and improve REST APIs with Quarkus REST (JAX-RS) — resources, HTTP semantics, DTOs, validation, error mapping, OpenAPI as contract (API-first), SmallRye optional | **User Prompt:** `Review and improve the REST API in context using @402-frameworks-quarkus-rest` **Note:** Add in the context the resource classes or project. | REST on Quarkus REST / JAX-RS. | +| [411-frameworks-quarkus-jdbc](@411-frameworks-quarkus-jdbc.md) | Programmatic JDBC with Quarkus — Agroal datasource, JdbcTemplate or java.sql with named parameters, transactions, records | **User Prompt:** `Review or improve JDBC data access using @411-frameworks-quarkus-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; no ORM. | +| [412-frameworks-quarkus-panache](@412-frameworks-quarkus-panache.md) | Data access with Hibernate ORM Panache — repositories, active record, queries, transactions; keep persistence simple (no Spring Data JPA) | **User Prompt:** `Improve the data access layer in context using @412-frameworks-quarkus-panache` **Note:** Add entities, repositories, or project. | Panache for relational data; pair with `@411` for raw SQL. | +| [413-frameworks-quarkus-db-migrations-flyway](@413-frameworks-quarkus-db-migrations-flyway.md) | Flyway database migrations with Quarkus — `quarkus-flyway`, `db/migration`, `quarkus.flyway.*`, migrate-at-start | **User Prompt:** `Add or review Flyway migrations in context using @413-frameworks-quarkus-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@411` / `@412` for JDBC and Panache. | +| [421-frameworks-quarkus-testing-unit-tests](@421-frameworks-quarkus-testing-unit-tests.md) | Write unit tests for Quarkus — Mockito, @QuarkusTest with injection toggles, RESTAssured slices where appropriate | **User Prompt:** `Add or improve unit tests in context using @421-frameworks-quarkus-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Prefer fast tests without full bootstrap when possible. | +| [422-frameworks-quarkus-testing-integration-tests](@422-frameworks-quarkus-testing-integration-tests.md) | Write integration tests for Quarkus — @QuarkusTest, Testcontainers, Dev Services, persistence and HTTP | **User Prompt:** `Add or improve integration tests in context using @422-frameworks-quarkus-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing with real infrastructure. | +| [423-frameworks-quarkus-testing-acceptance-tests](@423-frameworks-quarkus-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Quarkus — @QuarkusTest, REST Assured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @423-frameworks-quarkus-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Quarkus. | Preconditions: .feature file in context; Quarkus. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## Micronaut rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [501-frameworks-micronaut-core](.cursor/rules/501-frameworks-micronaut-core.md) | Apply Micronaut core guidelines — Micronaut.run, @Singleton/@Factory, @ConfigurationProperties, @Requires, scheduling, graceful shutdown | **User Prompt:** `Improve the Micronaut application in context using @501-frameworks-micronaut-core` **Note:** Add in the context the application classes or project. | Core Micronaut and DI best practices. | -| [502-frameworks-micronaut-rest](.cursor/rules/502-frameworks-micronaut-rest.md) | Design and improve REST APIs with Micronaut — @Controller, HTTP semantics, DTOs, validation, errors, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @502-frameworks-micronaut-rest` **Note:** Add in the context the controllers or project. | REST on Micronaut HTTP. | -| [511-frameworks-micronaut-jdbc](.cursor/rules/511-frameworks-micronaut-jdbc.md) | Programmatic JDBC with Micronaut — pooled DataSource, PreparedStatement, text blocks, @Transactional, records, domain exceptions | **User Prompt:** `Review or improve JDBC data access using @511-frameworks-micronaut-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; pair with `@512` for generated repositories. | -| [512-frameworks-micronaut-data](.cursor/rules/512-frameworks-micronaut-data.md) | Micronaut Data — @MappedEntity, repositories, @Query, transactions, pagination, Testcontainers tests | **User Prompt:** `Improve the data access layer in context using @512-frameworks-micronaut-data` **Note:** Add entities, repositories, or project. | Repository-style access; use `@511` for raw JDBC. | -| [513-frameworks-micronaut-db-migrations-flyway](.cursor/rules/513-frameworks-micronaut-db-migrations-flyway.md) | Flyway database migrations with Micronaut — `micronaut-flyway`, `db/migration`, `flyway.datasources.*` | **User Prompt:** `Add or review Flyway migrations in context using @513-frameworks-micronaut-db-migrations-flyway` **Note:** Add `pom.xml`, `application.yml`, or migration SQL. | Pairs with `@511` / `@512` for JDBC and Micronaut Data. | -| [521-frameworks-micronaut-testing-unit-tests](.cursor/rules/521-frameworks-micronaut-testing-unit-tests.md) | Unit tests for Micronaut — Mockito-first, @MicronautTest with @MockBean, HttpClient | **User Prompt:** `Add or improve unit tests in context using @521-frameworks-micronaut-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Fast tests without full boot when possible. | -| [522-frameworks-micronaut-testing-integration-tests](.cursor/rules/522-frameworks-micronaut-testing-integration-tests.md) | Integration tests for Micronaut — @MicronautTest, TestPropertyProvider, Testcontainers, HttpClient | **User Prompt:** `Add or improve integration tests in context using @522-frameworks-micronaut-testing-integration-tests` **Note:** Add in the context the project or test classes. | Real infrastructure in tests. | -| [523-frameworks-micronaut-testing-acceptance-tests](.cursor/rules/523-frameworks-micronaut-testing-acceptance-tests.md) | Acceptance tests from Gherkin .feature for Micronaut — @acceptance, HttpClient, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @523-frameworks-micronaut-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Micronaut. | Preconditions: .feature in context; Micronaut. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [501-frameworks-micronaut-core](@501-frameworks-micronaut-core.md) | Apply Micronaut core guidelines — Micronaut.run, @Singleton/@Factory, @ConfigurationProperties, @Requires, scheduling, graceful shutdown | **User Prompt:** `Improve the Micronaut application in context using @501-frameworks-micronaut-core` **Note:** Add in the context the application classes or project. | Core Micronaut and DI best practices. | +| [502-frameworks-micronaut-rest](@502-frameworks-micronaut-rest.md) | Design and improve REST APIs with Micronaut — @Controller, HTTP semantics, DTOs, validation, errors, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @502-frameworks-micronaut-rest` **Note:** Add in the context the controllers or project. | REST on Micronaut HTTP. | +| [511-frameworks-micronaut-jdbc](@511-frameworks-micronaut-jdbc.md) | Programmatic JDBC with Micronaut — pooled DataSource, PreparedStatement, text blocks, @Transactional, records, domain exceptions | **User Prompt:** `Review or improve JDBC data access using @511-frameworks-micronaut-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; pair with `@512` for generated repositories. | +| [512-frameworks-micronaut-data](@512-frameworks-micronaut-data.md) | Micronaut Data — @MappedEntity, repositories, @Query, transactions, pagination, Testcontainers tests | **User Prompt:** `Improve the data access layer in context using @512-frameworks-micronaut-data` **Note:** Add entities, repositories, or project. | Repository-style access; use `@511` for raw JDBC. | +| [513-frameworks-micronaut-db-migrations-flyway](@513-frameworks-micronaut-db-migrations-flyway.md) | Flyway database migrations with Micronaut — `micronaut-flyway`, `db/migration`, `flyway.datasources.*` | **User Prompt:** `Add or review Flyway migrations in context using @513-frameworks-micronaut-db-migrations-flyway` **Note:** Add `pom.xml`, `application.yml`, or migration SQL. | Pairs with `@511` / `@512` for JDBC and Micronaut Data. | +| [521-frameworks-micronaut-testing-unit-tests](@521-frameworks-micronaut-testing-unit-tests.md) | Unit tests for Micronaut — Mockito-first, @MicronautTest with @MockBean, HttpClient | **User Prompt:** `Add or improve unit tests in context using @521-frameworks-micronaut-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Fast tests without full boot when possible. | +| [522-frameworks-micronaut-testing-integration-tests](@522-frameworks-micronaut-testing-integration-tests.md) | Integration tests for Micronaut — @MicronautTest, TestPropertyProvider, Testcontainers, HttpClient | **User Prompt:** `Add or improve integration tests in context using @522-frameworks-micronaut-testing-integration-tests` **Note:** Add in the context the project or test classes. | Real infrastructure in tests. | +| [523-frameworks-micronaut-testing-acceptance-tests](@523-frameworks-micronaut-testing-acceptance-tests.md) | Acceptance tests from Gherkin .feature for Micronaut — @acceptance, HttpClient, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @523-frameworks-micronaut-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Micronaut. | Preconditions: .feature in context; Micronaut. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## AI Tooling -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [200-agents-md](@200-agents-md.md) | Generate AGENTS.md files for Java repositories using a modular step-based approach. AGENTS.md guides AI agents and contributors on project conventions, tech stack, file structure, commands, Git workflow, and boundaries | **Interactive User Prompt:** `Generate AGENTS.md for the project with the skill @200-agents-md` **Note:** Add in the context the project root folder. The rule will ask 6 questions to understand requirements before generating. Handles existing AGENTS.md (overwrite/merge/backup). | Focused on AGENTS.md generation only. Asks role, tech stack, file structure, commands, Git workflow, and boundaries before generating | + +## Technologies + +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [200-agents-md](.cursor/rules/200-agents-md.md) | Generate AGENTS.md files for Java repositories using a modular step-based approach. AGENTS.md guides AI agents and contributors on project conventions, tech stack, file structure, commands, Git workflow, and boundaries | **Interactive User Prompt:** `Generate AGENTS.md for the project with the cursor rule @200-agents-md` **Note:** Add in the context the project root folder. The rule will ask 6 questions to understand requirements before generating. Handles existing AGENTS.md (overwrite/merge/backup). | Focused on AGENTS.md generation only. Asks role, tech stack, file structure, commands, Git workflow, and boundaries before generating | +| [701-technologies-openapi](@701-technologies-openapi.md) | Framework-agnostic OpenAPI 3.x guidance — spec structure, reusable schemas, security schemes, examples, validation, and breaking-change awareness | **User Prompt:** `Review and improve my OpenAPI specification using @701-technologies-openapi` **Note:** Add the OpenAPI spec file (`openapi.yaml`/`openapi.json`) to context. | Use when the goal is API contract quality independent of Spring Boot, Quarkus, or Micronaut. | +| [702-technologies-wiremock](@702-technologies-wiremock.md) | Framework-agnostic WireMock guidance — robust stubs, request matching, response design, verification, and test isolation | **User Prompt:** `Design or review WireMock stubs using @702-technologies-wiremock` **Note:** Add mappings, test code, or expected HTTP interactions to context. | Use for reliable HTTP stubbing patterns across Java frameworks. | --- -**Note:** This guide is self-contained and portable. Copy it into any Java project to get started with Cursor Rules for Java development. +**Note:** This guide is self-contained and portable. Copy it into any Java project to get started with Skills for Java development. diff --git a/documentation/adr/README.md b/documentation/adr/README.md new file mode 100644 index 00000000..d5c595e6 --- /dev/null +++ b/documentation/adr/README.md @@ -0,0 +1,9 @@ +## Architectural decision records, ADR + +| Date | ID | Name | +| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| 2026-04-06 | ADR-005 | [Drop Cursor rules support in favor of Agent Skills](./ADR-005-drop-cursor-rules-support-in-favor-of-agent-skills.md) | +| 2026-03-01 | ADR-004 | [Skill Generation](./ADR-004-skill-generation.md) | +| 2025-09-16 | ADR-003 | [Website Generation](./ADR-003-website-generation.md) | +| 2025-07-10 | ADR-002 | [Cursor Rules scope configuration](./ADR-002-configure-cursor-rules-manual-scope.md) | +| 2025-07-08 | ADR-001 | [Cursor Rules generation from XML Files](./ADR-001-generate-cursor-rules-from-xml-files.md) | diff --git a/skills-generator/src/main/resources/system-prompts/assets/java-system-prompts-java-list-template.md b/skills-generator/src/main/resources/system-prompts/assets/java-system-prompts-java-list-template.md index df4d0cac..c4faa22c 100644 --- a/skills-generator/src/main/resources/system-prompts/assets/java-system-prompts-java-list-template.md +++ b/skills-generator/src/main/resources/system-prompts/assets/java-system-prompts-java-list-template.md @@ -1,146 +1,165 @@ -# Cursor rules Java +# Skills for Java -Use the following collection of System prompts of Java to improve your Java development. +Use the following collection of Skills for Java to improve your Java development. -## Generate this list of System prompts for Java +## Inventory -| Cursor Rule | Description | User Prompt | Notes | +| Skill | Description | User Prompt | Notes | |----|----|----|----| -| [001-skills-inventory](.cursor/rules/001-skills-inventory.md) | Generate list of System Prompts for Java | **User Prompt:** `Create a document with all System prompts for Java using @001-skills-inventory` | | +| [001-skills-inventory](@001-skills-inventory.md) | Generate list of System Prompts for Java | **User Prompt:** `Create a document with all System prompts for Java using @001-skills-inventory` | | +| [002-agents-inventory](@002-agents-inventory.md) | Generate checklist with embedded agents inventory for Java | **User Prompt:** `Create a document with all agents for Java using @002-agents-inventory` | | -## AI-Driven Agile (User Stories, Gherkin & AI Planning) +## Installation -| Cursor Rule | Description | Prompt | Notes | -|----|----|----|----| -| [012-agile-epic](.cursor/rules/012-agile-epic.md) | Create agile epics with comprehensive definition including business value, success criteria, and breakdown into user stories | **Interactive User Prompt:** `Create an agile epic using @012-agile-epic` **Note:** The rule asks targeted questions about epic title, business value, target users, problem statement, solution overview, success criteria, key features, dependencies, risks, and documentation before generating the epic document. | Three-phase approach: gets current date, gathers details through structured questions, then produces epic document with next steps. | -| [013-agile-feature](.cursor/rules/013-agile-feature.md) | Create detailed feature Markdown files from an existing epic | **Interactive User Prompt:** `Create features from my epic using @013-agile-feature` **Note:** Add the epic file path or paste epic content. The rule analyzes the epic, clarifies scope and audience, asks per-feature questions, then generates one feature document per feature. | Phases: current date, epic analysis and structured questions (including repeated questions per feature), then feature file generation and epic integration guidance. | -| [014-agile-user-story](.cursor/rules/014-agile-user-story.md) | Create user stories with Gherkin acceptance criteria and BDD feature files | **Interactive User Prompt:** `Create a user story with acceptance criteria using @014-agile-user-story` **Note:** The rule asks targeted questions about title, persona, goal, benefit, feature context, and Gherkin scenarios before generating the Markdown user story and `.feature` file. | Two-phase approach: gathers details through structured questions, then produces user story and Gherkin file. Optional upstream: retrieve issue bodies and comments with `@043-planning-github-issues`, then use that text as draft answers while keeping the same question order. | -| [043-planning-github-issues](.cursor/rules/043-planning-github-issues.md) | List GitHub issues (all or by milestone), fetch issue bodies and comments with `gh`, present tables; hand off to user stories | **User Prompt:** `List open issues in this repo as a table using @043-planning-github-issues` **User Prompt:** `Get all issues for milestone "Sprint 12" with @043-planning-github-issues` **User Prompt:** `Pull issue #44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires GitHub CLI (`gh`) installed and authenticated. | Pairs with `@014-agile-user-story` when turning GitHub threads into user stories and Gherkin. | -| [044-planning-jira](.cursor/rules/044-planning-jira.md) | List Jira issues (all or by JQL), fetch issue descriptions and comments with `jira`, present tables; hand off to user stories | **User Prompt:** `List open Jira issues as a table using @044-planning-jira` **User Prompt:** `Get Jira issues with JQL "project = PROJ AND statusCategory != Done" using @044-planning-jira` **User Prompt:** `Pull issue PROJ-44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires Jira CLI (`jira`) installed and configured. | Pairs with `@014-agile-user-story` when turning Jira threads into user stories and Gherkin. | -| [041-planning-plan-mode](.cursor/rules/041-planning-plan-mode.md) | Create structured design plans for Cursor Plan mode (Java implementation, TDD, refactoring) | **Interactive User Prompt:** `Create a plan for [feature/refactoring] using @041-planning-plan-mode` **Note:** Use in Plan mode. Gathers context (specs, acceptance criteria) then produces YAML-frontmatter plan with Requirements Summary, Approach (Mermaid), Task List, Execution Instructions. | Suitable for outside-in TDD, feature implementation, or refactoring work. | -| [042-planning-openspec](.cursor/rules/042-planning-openspec.md) | Transform `*.plan.md` into OpenSpec change workflow (install/check/init/list/status/show/validate/archive) | **Interactive User Prompt:** `Convert this .plan.md into an OpenSpec change using @042-planning-openspec` **Note:** Verifies `openspec --version` first; if missing, offers npm install guidance for macOS/Linux/Windows, then proposes `openspec init` for new projects. | Uses `add-dark-mode` as a canonical change-id example and supports create-or-update flows. | +| Skill | Description | User Prompt | Notes | +|----|----|----|----| +| [003-agents-installation](@003-agents-installation.md) | Install embedded robot agents into `.cursor/agents` or `.claude/agents` | **Interactive User Prompt:** `Install embedded agents using @003-agents-installation` | Asks destination first, then installs the full six-agent bundle from embedded assets. | + +## Agile (User Stories, Gherkin & AI Planning) + +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [012-agile-epic](@012-agile-epic.md) | Create agile epics with comprehensive definition including business value, success criteria, and breakdown into user stories | **Interactive User Prompt:** `Create an agile epic using @012-agile-epic` **Note:** The rule asks targeted questions about epic title, business value, target users, problem statement, solution overview, success criteria, key features, dependencies, risks, and documentation before generating the epic document. | Three-phase approach: gets current date, gathers details through structured questions, then produces epic document with next steps. | +| [013-agile-feature](@013-agile-feature.md) | Create detailed feature Markdown files from an existing epic | **Interactive User Prompt:** `Create features from my epic using @013-agile-feature` **Note:** Add the epic file path or paste epic content. The rule analyzes the epic, clarifies scope and audience, asks per-feature questions, then generates one feature document per feature. | Phases: current date, epic analysis and structured questions (including repeated questions per feature), then feature file generation and epic integration guidance. | +| [014-agile-user-story](@014-agile-user-story.md) | Create user stories with Gherkin acceptance criteria and BDD feature files | **Interactive User Prompt:** `Create a user story with acceptance criteria using @014-agile-user-story` **Note:** The rule asks targeted questions about title, persona, goal, benefit, feature context, and Gherkin scenarios before generating the Markdown user story and `.feature` file. | Two-phase approach: gathers details through structured questions, then produces user story and Gherkin file. Optional upstream: retrieve issue bodies and comments with `@043-planning-github-issues`, then use that text as draft answers while keeping the same question order. | ## Architecture -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [030-architecture-adr-general](@030-architecture-adr-general.md) | Generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes | **Interactive User Prompt:** `Generate an ADR for the project with the skill @030-architecture-adr-general` **Note:** Add in the context the project root folder. The rule will ask questions about ADR storage location and naming convention before starting the interactive ADR generation process. Ensures project validation with Maven before proceeding. | Interactive rule — asks questions one by one to gather all ADR information. Validates Maven project before starting, auto-increments ADR file numbering, and provides a comprehensive summary after generation. | +| [031-architecture-adr-functional-requirements](@031-architecture-adr-functional-requirements.md) | Create ADRs for functional requirements — CLI and/or REST/HTTP API; infers interface type from project context when possible | **Interactive User Prompt:** `Generate an ADR for functional requirements with @031-architecture-adr-functional-requirements` **Note:** Add the CLI and/or API project to context. Conversational discovery; surface discovery (CLI vs API vs both); one or two questions at a time. | Unified functional-requirements ADR (CLI and/or REST). | +| [032-architecture-adr-non-functional-requirements](@032-architecture-adr-non-functional-requirements.md) | Create ADRs for non-functional requirements — document quality attributes, NFR decisions, security/performance/scalability using ISO/IEC 25010:2023 | **Interactive User Prompt:** `Generate an ADR for non-functional requirements with @032-architecture-adr-non-functional-requirements` **Note:** Add in the context the project. Skips irrelevant quality characteristics; dives deeper where there is uncertainty. | NFR-focused ADR generation. | +| [033-architecture-diagrams](@033-architecture-diagrams.md) | Generate Java project diagrams including UML sequence, class, state-machine diagrams and C4 model diagrams using a modular step-based approach | **Interactive User Prompt:** `Generate diagrams about the project with the skill @033-architecture-diagrams` **User Prompt:** `Create UML class diagrams with @033-architecture-diagrams without any question` (Example) **Note:** Add in the context the folder to generate the diagrams. The rule will analyze the codebase and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on diagram generation only. I recommend to run the JBang tool `jbang puml-to-png@jabrena --watch .` in order to generate diagrams in PNG format on the fly | + +## Planning + +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [030-architecture-adr-general](.cursor/rules/030-architecture-adr-general.md) | Generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes | **Interactive User Prompt:** `Generate an ADR for the project with the cursor rule @030-architecture-adr-general` **Note:** Add in the context the project root folder. The rule will ask questions about ADR storage location and naming convention before starting the interactive ADR generation process. Ensures project validation with Maven before proceeding. | Interactive rule — asks questions one by one to gather all ADR information. Validates Maven project before starting, auto-increments ADR file numbering, and provides a comprehensive summary after generation. | -| [031-architecture-adr-functional-requirements](.cursor/rules/031-architecture-adr-functional-requirements.md) | Create ADRs for functional requirements — CLI and/or REST/HTTP API; infers interface type from project context when possible | **Interactive User Prompt:** `Generate an ADR for functional requirements with @031-architecture-adr-functional-requirements` **Note:** Add the CLI and/or API project to context. Conversational discovery; surface discovery (CLI vs API vs both); one or two questions at a time. | Unified functional-requirements ADR (CLI and/or REST). | -| [032-architecture-adr-non-functional-requirements](.cursor/rules/032-architecture-adr-non-functional-requirements.md) | Create ADRs for non-functional requirements — document quality attributes, NFR decisions, security/performance/scalability using ISO/IEC 25010:2023 | **Interactive User Prompt:** `Generate an ADR for non-functional requirements with @032-architecture-adr-non-functional-requirements` **Note:** Add in the context the project. Skips irrelevant quality characteristics; dives deeper where there is uncertainty. | NFR-focused ADR generation. | -| [033-architecture-diagrams](.cursor/rules/033-architecture-diagrams.md) | Generate Java project diagrams including UML sequence, class, state-machine diagrams and C4 model diagrams using a modular step-based approach | **Interactive User Prompt:** `Generate diagrams about the project with the cursor rule @033-architecture-diagrams` **User Prompt:** `Create UML class diagrams with @033-architecture-diagrams without any question` (Example) **Note:** Add in the context the folder to generate the diagrams. The rule will analyze the codebase and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on diagram generation only. I recommend to run the JBang tool `jbang puml-to-png@jabrena --watch .` in order to generate diagrams in PNG format on the fly | +| [041-planning-plan-mode](@041-planning-plan-mode.md) | Create structured design plans for Cursor Plan mode (Java implementation, TDD, refactoring) | **Interactive User Prompt:** `Create a plan for [feature/refactoring] using @041-planning-plan-mode` **Note:** Use in Plan mode. Gathers context (specs, acceptance criteria) then produces YAML-frontmatter plan with Requirements Summary, Approach (Mermaid), Task List, Execution Instructions. | Suitable for outside-in TDD, feature implementation, or refactoring work. | +| [042-planning-openspec](@042-planning-openspec.md) | Transform `*.plan.md` into OpenSpec change workflow (install/check/init/list/status/show/validate/archive) | **Interactive User Prompt:** `Convert this .plan.md into an OpenSpec change using @042-planning-openspec` **Note:** Verifies `openspec --version` first; if missing, offers npm install guidance for macOS/Linux/Windows, then proposes `openspec init` for new projects. | Uses `add-dark-mode` as a canonical change-id example and supports create-or-update flows. | +| [043-planning-github-issues](@043-planning-github-issues.md) | List GitHub issues (all or by milestone), fetch issue bodies and comments with `gh`, present tables; hand off to user stories | **User Prompt:** `List open issues in this repo as a table using @043-planning-github-issues` **User Prompt:** `Get all issues for milestone "Sprint 12" with @043-planning-github-issues` **User Prompt:** `Pull issue #44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires GitHub CLI (`gh`) installed and authenticated. | Pairs with `@014-agile-user-story` when turning GitHub threads into user stories and Gherkin. | +| [044-planning-jira](@044-planning-jira.md) | List Jira issues (all or by JQL), fetch issue descriptions and comments with `jira`, present tables; hand off to user stories | **User Prompt:** `List open Jira issues as a table using @044-planning-jira` **User Prompt:** `Get Jira issues with JQL "project = PROJ AND statusCategory != Done" using @044-planning-jira` **User Prompt:** `Pull issue PROJ-44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires Jira CLI (`jira`) installed and configured. | Pairs with `@014-agile-user-story` when turning Jira threads into user stories and Gherkin. | ## Build system rules (Maven) -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [110-java-maven-best-practices](.cursor/rules/110-java-maven-best-practices.md) | Analyze your `pom.xml` and apply Maven best practices | **User Prompt:** `Apply in the pom.xml the rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. **User Prompt with Consultative Interactive Behaviour:** `Apply in the pom.xml the rule @110-java-maven-best-practices with the behaviour @behaviour-consultative-interaction`| You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [111-java-maven-dependencies](.cursor/rules/111-java-maven-dependencies.md) | Add Maven dependencies for improved code quality | **Interactive User Prompt:** `Add essential Maven dependencies for code quality using @111-java-maven-dependencies` **User Prompt:** `Add VAVR dependency with the help of@111-java-maven-dependencies and not make any question` (Example)**Note:** Add in the context the `pom.xml` which you want to enhance with quality dependencies. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the cursor rule to selectively add JSpecify, Error Prone, NullAway and VAVR dependencies based on project needs. | -| [112-java-maven-plugins](.cursor/rules/112-java-maven-plugins.md) | Update your `pom.xml` with Maven Dependencies & Plugins | **Interactive User Prompt:** `Improve the pom.xml using the cursor rule @112-java-maven-plugins` **User Prompt:** `Add Maven Enforcer plugin only from the rule @112-java-maven-plugins without any question` (Example) **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the cursor rule to update the `pom.xml`. | -| [113-java-maven-documentation](.cursor/rules/113-java-maven-documentation.md) | Create a Maven Documentation with the file `README-DEV.md` | **User Prompt:** `Generate developer documentation with essential Maven commands using @113-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This cursor rule is applied automatically without any interaction with the Software engineer. | -| [114-java-maven-search](.cursor/rules/114-java-maven-search.md) | Search Maven Central, resolve coordinates, version metadata, and direct artifact URLs | **User Prompt:** `Find the latest version of com.google.guava:guava using @114-java-maven-search` **Note:** Use for dependency lookup, POM/JAR URLs, `maven-metadata.xml`, or Search API queries — not for editing `pom.xml` (use `@111` / `@112` for that). | Non-interactive. Use MCP Maven tools when available for live Central queries. | +| [110-java-maven-best-practices](@110-java-maven-best-practices.md) | Analyze your `pom.xml` and apply Maven best practices | **User Prompt:** `Apply in the pom.xml the rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. **User Prompt with Consultative Interactive Behaviour:** `Apply in the pom.xml the rule @110-java-maven-best-practices with the behaviour @behaviour-consultative-interaction`| You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [111-java-maven-dependencies](@111-java-maven-dependencies.md) | Add Maven dependencies for improved code quality | **Interactive User Prompt:** `Add essential Maven dependencies for code quality using @111-java-maven-dependencies` **User Prompt:** `Add VAVR dependency with the help of@111-java-maven-dependencies and not make any question` (Example)**Note:** Add in the context the `pom.xml` which you want to enhance with quality dependencies. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the skill to selectively add JSpecify, Error Prone, NullAway and VAVR dependencies based on project needs. | +| [112-java-maven-plugins](@112-java-maven-plugins.md) | Update your `pom.xml` with Maven Dependencies & Plugins | **Interactive User Prompt:** `Improve the pom.xml using the skill @112-java-maven-plugins` **User Prompt:** `Add Maven Enforcer plugin only from the rule @112-java-maven-plugins without any question` (Example) **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the skill to update the `pom.xml`. | +| [113-java-maven-documentation](@113-java-maven-documentation.md) | Create a Maven Documentation with the file `README-DEV.md` | **User Prompt:** `Generate developer documentation with essential Maven commands using @113-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This skill is applied automatically without any interaction with the Software engineer. | +| [114-java-maven-search](@114-java-maven-search.md) | Search Maven Central, resolve coordinates, version metadata, and direct artifact URLs | **User Prompt:** `Find the latest version of com.google.guava:guava using @114-java-maven-search` **Note:** Use for dependency lookup, POM/JAR URLs, `maven-metadata.xml`, or Search API queries — not for editing `pom.xml` (use `@111` / `@112` for that). | Non-interactive. Use MCP Maven tools when available for live Central queries. | ## Design rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [121-java-object-oriented-design](.cursor/rules/121-java-object-oriented-design.md) | Take another point of view with an Object Oriented Design of your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design`(Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [122-java-type-design](.cursor/rules/122-java-type-design.md) | Review the Type Design in your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design` (Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [121-java-object-oriented-design](@121-java-object-oriented-design.md) | Take another point of view with an Object Oriented Design of your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design`(Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [122-java-type-design](@122-java-type-design.md) | Review the Type Design in your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design` (Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Coding rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [123-java-exception-handling](.cursor/rules/123-java-exception-handling.md) | Add Exception handling | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [124-java-secure-coding](.cursor/rules/124-java-secure-coding.md) | Review my code for Secure Java Coding rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [125-java-concurrency](.cursor/rules/125-java-concurrency.md) | Improve your code with Concurrency rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [180-java-observability-logging](.cursor/rules/180-java-observability-logging.md) | Apply logging guidelines in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [128-java-generics](.cursor/rules/128-java-generics.md) | Apply generics in a class | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @128-java-generics` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @128-java-generics with the behaviour @behaviour-consultative-interaction` **User Prompt with Training behaviour:** `Create a course about @128-java-generics.md using the behavior @behaviour-progressive-learning.md and put the course here` **Note:** Add in the context the location to add the course. | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [123-java-exception-handling](@123-java-exception-handling.md) | Add Exception handling | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [124-java-secure-coding](@124-java-secure-coding.md) | Review my code for Secure Java Coding rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [125-java-concurrency](@125-java-concurrency.md) | Improve your code with Concurrency rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [180-java-observability-logging](@180-java-observability-logging.md) | Apply logging guidelines in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [128-java-generics](@128-java-generics.md) | Apply generics in a class | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @128-java-generics` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @128-java-generics with the behaviour @behaviour-consultative-interaction` **User Prompt with Training behaviour:** `Create a course about @128-java-generics.md using the behavior @behaviour-progressive-learning.md and put the course here` **Note:** Add in the context the location to add the course. | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Testing rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [130-java-testing-strategies](.cursor/rules/130-java-testing-strategies.md) | Apply testing strategies — RIGHT-BICEP, A-TRIP, CORRECT for boundary conditions and test quality | **User Prompt:** `Improve tests applying testing strategies with @130-java-testing-strategies` **Note:** Add in the context test classes or code under test. Focuses on conceptual frameworks rather than framework-specific annotations. | Use for strategy-focused test design. For JUnit 5, AssertJ, Mockito, use @131-java-testing-unit-testing. | -| [131-java-testing-unit-testing](.cursor/rules/131-java-testing-unit-testing.md) | Apply Unit Testing best practices for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing` (Example) **Note:** Add in the context a class/classes. Project must NOT use Spring Boot, Quarkus, or Micronaut. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing with the behaviour @behaviour-consultative-interaction` | Precondition: framework-agnostic Java. For Spring Boot use @321-frameworks-spring-boot-testing-unit-tests; for Quarkus @421-frameworks-quarkus-testing-unit-tests; for Micronaut @521-frameworks-micronaut-testing-unit-tests. | -| [132-java-testing-integration-testing](.cursor/rules/132-java-testing-integration-testing.md) | Set up integration test infrastructure with WireMock (REST stubs) and generate a `BaseIntegrationTest.java` for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **Interactive User Prompt:** `Set up integration test infrastructure for my service using @132-java-testing-integration-testing` **Note:** The rule will ask questions about your service's outbound HTTP dependencies before generating `BaseIntegrationTest.java` and starter WireMock mapping files. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Precondition: framework-agnostic Java. For Spring Boot use @322-frameworks-spring-boot-testing-integration-tests; for Quarkus @422-frameworks-quarkus-testing-integration-tests; for Micronaut @522-frameworks-micronaut-testing-integration-tests. Interactive rule — asks questions about REST topology before generating code. | -| [133-java-testing-acceptance-tests](.cursor/rules/133-java-testing-acceptance-tests.md) | Implement acceptance tests from a Gherkin .feature file for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) — @acceptance scenarios, RestAssured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @133-java-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Preconditions: .feature file in context; framework-agnostic Java. For Spring Boot use @323-frameworks-spring-boot-testing-acceptance-tests; for Quarkus @423-frameworks-quarkus-testing-acceptance-tests; for Micronaut @523-frameworks-micronaut-testing-acceptance-tests. | +| [130-java-testing-strategies](@130-java-testing-strategies.md) | Apply testing strategies — RIGHT-BICEP, A-TRIP, CORRECT for boundary conditions and test quality | **User Prompt:** `Improve tests applying testing strategies with @130-java-testing-strategies` **Note:** Add in the context test classes or code under test. Focuses on conceptual frameworks rather than framework-specific annotations. | Use for strategy-focused test design. For JUnit 5, AssertJ, Mockito, use @131-java-testing-unit-testing. | +| [131-java-testing-unit-testing](@131-java-testing-unit-testing.md) | Apply Unit Testing best practices for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing` (Example) **Note:** Add in the context a class/classes. Project must NOT use Spring Boot, Quarkus, or Micronaut. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing with the behaviour @behaviour-consultative-interaction` | Precondition: framework-agnostic Java. For Spring Boot use @321-frameworks-spring-boot-testing-unit-tests; for Quarkus @421-frameworks-quarkus-testing-unit-tests; for Micronaut @521-frameworks-micronaut-testing-unit-tests. | +| [132-java-testing-integration-testing](@132-java-testing-integration-testing.md) | Set up integration test infrastructure with WireMock (REST stubs) and generate a `BaseIntegrationTest.java` for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **Interactive User Prompt:** `Set up integration test infrastructure for my service using @132-java-testing-integration-testing` **Note:** The rule will ask questions about your service's outbound HTTP dependencies before generating `BaseIntegrationTest.java` and starter WireMock mapping files. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Precondition: framework-agnostic Java. For Spring Boot use @322-frameworks-spring-boot-testing-integration-tests; for Quarkus @422-frameworks-quarkus-testing-integration-tests; for Micronaut @522-frameworks-micronaut-testing-integration-tests. Interactive rule — asks questions about REST topology before generating code. | +| [133-java-testing-acceptance-tests](@133-java-testing-acceptance-tests.md) | Implement acceptance tests from a Gherkin .feature file for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) — @acceptance scenarios, RestAssured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @133-java-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Preconditions: .feature file in context; framework-agnostic Java. For Spring Boot use @323-frameworks-spring-boot-testing-acceptance-tests; for Quarkus @423-frameworks-quarkus-testing-acceptance-tests; for Micronaut @523-frameworks-micronaut-testing-acceptance-tests. | ## Refactoring rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [141-java-refactoring-with-modern-features](.cursor/rules/141-java-refactoring-with-modern-features.md) | Add Modern Java Features in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [142-java-functional-programming](.cursor/rules/142-java-functional-programming.md) | Add Functional Programming style in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [143-java-functional-exception-handling](.cursor/rules/143-java-functional-exception-handling.md) | Apply functional programming approaches for error handling using Optional and VAVR Either types | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. It promotes using Monads like Optional and Either instead of exceptions for predictable failures. | -| [144-java-data-oriented-programming](.cursor/rules/144-java-data-oriented-programming.md) | Add Data Oriented Programming in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [141-java-refactoring-with-modern-features](@141-java-refactoring-with-modern-features.md) | Add Modern Java Features in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [142-java-functional-programming](@142-java-functional-programming.md) | Add Functional Programming style in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [143-java-functional-exception-handling](@143-java-functional-exception-handling.md) | Apply functional programming approaches for error handling using Optional and VAVR Either types | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. It promotes using Monads like Optional and Either instead of exceptions for predictable failures. | +| [144-java-data-oriented-programming](@144-java-data-oriented-programming.md) | Add Data Oriented Programming in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Performance rule (Jmeter) | Activity | Description | Prompt | Notes | |----|----|----|----| -| [151-java-performance-jmeter](.cursor/rules/151-java-performance-jmeter.md) | Run a performance test with Jmeter | **User Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This cursor rule is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. | +| [151-java-performance-jmeter](@151-java-performance-jmeter.md) | Run a performance test with Jmeter | **User Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This skill is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. | ## Profiling rules (Async profiler, jps, jstack, jcmd & jstat) | Activity | Description | Prompt | Notes | |----|----|----|----| -| [161-java-profiling-detect](.cursor/rules/161-java-profiling-detect.md) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. The Cursor rule will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. **Step 1:** execute `./run-with-profiler.sh --help` **Step2:** execute `./run-jmeter.sh --help` **Step 3:** execute `./profiler/scripts/java-profile.sh` | -| [162-java-profiling-analyze](.cursor/rules/162-java-profiling-analyze.md) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the cursor rule @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. | -| [163-java-profiling-refactor](.cursor/rules/163-java-profiling-refactor.md) | Refactor code based on profiling analysis findings to fix performance bottlenecks | **Prompt:** `Apply refactoring from profiling analysis using @163-java-profiling-refactor` **Note:** Review `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` before refactoring. Replace YYYYMMDD with the analysis date. | Step 3 of profiling workflow. Non conversational. Verifies changes with `./mvnw clean verify`. | +| [161-java-profiling-detect](@161-java-profiling-detect.md) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational skill. The Skill will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. **Step 1:** execute `./run-with-profiler.sh --help` **Step2:** execute `./run-jmeter.sh --help` **Step 3:** execute `./profiler/scripts/java-profile.sh` | +| [162-java-profiling-analyze](@162-java-profiling-analyze.md) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the skill @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational skill. | +| [163-java-profiling-refactor](@163-java-profiling-refactor.md) | Refactor code based on profiling analysis findings to fix performance bottlenecks | **Prompt:** `Apply refactoring from profiling analysis using @163-java-profiling-refactor` **Note:** Review `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` before refactoring. Replace YYYYMMDD with the analysis date. | Step 3 of profiling workflow. Non conversational. Verifies changes with `./mvnw clean verify`. | | - | Code Refactoring from suggestions from analysis | `Can you apply the solutions from @profiling-solutions-yyyymmdd.md in @/info to mitigate bottlenecks` | Make a refactoring with the notes from the analysis | -| [164-java-profiling-verify](.cursor/rules/164-java-profiling-verify.md) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the cursor rule @164-java-profiling-verify` **Note:** Put in the context the folder with the results | This cursor rule is applied automatically without any interaction with the Software engineer. | +| [164-java-profiling-verify](@164-java-profiling-verify.md) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the skill @164-java-profiling-verify` **Note:** Put in the context the folder with the results | This skill is applied automatically without any interaction with the Software engineer. | ## Documentation rules | Activity | Description | Prompt | Notes | |----|----|----|----| -| [170-java-documentation](.cursor/rules/170-java-documentation.md) | Generate Java project documentation including README.md, package-info.java files, and Javadoc using a modular step-based approach | **Interactive User Prompt:** `Generate technical documentation about the project with the cursor rule @170-java-documentation` **User Prompt:** `Generate README.md with @170-java-documentation without any question` (Example) **Note:** Add in the context the folder to generate the documentation. The rule will analyze existing documentation and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on documentation generation only. For diagrams, use @033-architecture-diagrams | +| [170-java-documentation](@170-java-documentation.md) | Generate Java project documentation including README.md, package-info.java files, and Javadoc using a modular step-based approach | **Interactive User Prompt:** `Generate technical documentation about the project with the skill @170-java-documentation` **User Prompt:** `Generate README.md with @170-java-documentation without any question` (Example) **Note:** Add in the context the folder to generate the documentation. The rule will analyze existing documentation and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on documentation generation only. For diagrams, use @033-architecture-diagrams | ## Spring Boot rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [301-frameworks-spring-boot-core](.cursor/rules/301-frameworks-spring-boot-core.md) | Apply Spring Boot core guidelines — @SpringBootApplication, component annotations, bean definition, @ConfigurationProperties, profiles, constructor injection | **User Prompt:** `Improve the Spring Boot application in context using @301-frameworks-spring-boot-core` **Note:** Add in the context the application classes or project. | Core Spring Boot best practices. | -| [302-frameworks-spring-boot-rest](.cursor/rules/302-frameworks-spring-boot-rest.md) | Design and improve REST APIs with Spring Boot — HTTP methods, URIs, status codes, DTOs, versioning, error handling, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @302-frameworks-spring-boot-rest` **Note:** Add in the context the controllers or API classes. | REST API design principles. | -| [311-frameworks-spring-jdbc](.cursor/rules/311-frameworks-spring-jdbc.md) | Programmatic JDBC with Spring — JdbcClient (Spring Framework 6.1+), JdbcTemplate for batch/streaming APIs, parameterized SQL, RowMapper, batch updates, transactions | **User Prompt:** `Review or improve JDBC data access using @311-frameworks-spring-jdbc` **Note:** Add in the context repository/DAO classes or SQL usage. | Use for ad-hoc SQL and JDBC; for repository-style aggregates prefer `@312-frameworks-spring-data-jdbc`. | -| [312-frameworks-spring-data-jdbc](.cursor/rules/312-frameworks-spring-data-jdbc.md) | Apply Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries | **User Prompt:** `Improve the data access layer in context using @312-frameworks-spring-data-jdbc` **Note:** Add in the context the entities, repositories, or project. | Spring Data JDBC with records. | -| [313-frameworks-spring-db-migrations-flyway](.cursor/rules/313-frameworks-spring-db-migrations-flyway.md) | Flyway database migrations with Spring Boot — `db/migration` scripts, `spring.flyway.*`, baseline/validate, Java migrations | **User Prompt:** `Add or review Flyway migrations in context using @313-frameworks-spring-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@311` / `@312` for JDBC and Spring Data JDBC. | -| [321-frameworks-spring-boot-testing-unit-tests](.cursor/rules/321-frameworks-spring-boot-testing-unit-tests.md) | Write unit tests for Spring Boot — pure Mockito for @Service/@Component, @WebMvcTest, @JsonTest | **User Prompt:** `Add or improve unit tests in context using @321-frameworks-spring-boot-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Pure unit + slice tests with Mockito. For integration tests use @322. | -| [322-frameworks-spring-boot-testing-integration-tests](.cursor/rules/322-frameworks-spring-boot-testing-integration-tests.md) | Write integration tests for Spring Boot — Testcontainers, TestRestTemplate, data management, test structure | **User Prompt:** `Add or improve integration tests in context using @322-frameworks-spring-boot-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing guidelines. | -| [323-frameworks-spring-boot-testing-acceptance-tests](.cursor/rules/323-frameworks-spring-boot-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Spring Boot — @acceptance scenarios, RestAssured, @SpringBootTest, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @323-frameworks-spring-boot-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Spring Boot. | Preconditions: .feature file in context; Spring Boot. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [301-frameworks-spring-boot-core](@301-frameworks-spring-boot-core.md) | Apply Spring Boot core guidelines — @SpringBootApplication, component annotations, bean definition, @ConfigurationProperties, profiles, constructor injection | **User Prompt:** `Improve the Spring Boot application in context using @301-frameworks-spring-boot-core` **Note:** Add in the context the application classes or project. | Core Spring Boot best practices. | +| [302-frameworks-spring-boot-rest](@302-frameworks-spring-boot-rest.md) | Design and improve REST APIs with Spring Boot — HTTP methods, URIs, status codes, DTOs, versioning, error handling, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @302-frameworks-spring-boot-rest` **Note:** Add in the context the controllers or API classes. | REST API design principles. | +| [311-frameworks-spring-jdbc](@311-frameworks-spring-jdbc.md) | Programmatic JDBC with Spring — JdbcClient (Spring Framework 6.1+), JdbcTemplate for batch/streaming APIs, parameterized SQL, RowMapper, batch updates, transactions | **User Prompt:** `Review or improve JDBC data access using @311-frameworks-spring-jdbc` **Note:** Add in the context repository/DAO classes or SQL usage. | Use for ad-hoc SQL and JDBC; for repository-style aggregates prefer `@312-frameworks-spring-data-jdbc`. | +| [312-frameworks-spring-data-jdbc](@312-frameworks-spring-data-jdbc.md) | Apply Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries | **User Prompt:** `Improve the data access layer in context using @312-frameworks-spring-data-jdbc` **Note:** Add in the context the entities, repositories, or project. | Spring Data JDBC with records. | +| [313-frameworks-spring-db-migrations-flyway](@313-frameworks-spring-db-migrations-flyway.md) | Flyway database migrations with Spring Boot — `db/migration` scripts, `spring.flyway.*`, baseline/validate, Java migrations | **User Prompt:** `Add or review Flyway migrations in context using @313-frameworks-spring-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@311` / `@312` for JDBC and Spring Data JDBC. | +| [321-frameworks-spring-boot-testing-unit-tests](@321-frameworks-spring-boot-testing-unit-tests.md) | Write unit tests for Spring Boot — pure Mockito for @Service/@Component, @WebMvcTest, @JsonTest | **User Prompt:** `Add or improve unit tests in context using @321-frameworks-spring-boot-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Pure unit + slice tests with Mockito. For integration tests use @322. | +| [322-frameworks-spring-boot-testing-integration-tests](@322-frameworks-spring-boot-testing-integration-tests.md) | Write integration tests for Spring Boot — Testcontainers, TestRestTemplate, data management, test structure | **User Prompt:** `Add or improve integration tests in context using @322-frameworks-spring-boot-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing guidelines. | +| [323-frameworks-spring-boot-testing-acceptance-tests](@323-frameworks-spring-boot-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Spring Boot — @acceptance scenarios, RestAssured, @SpringBootTest, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @323-frameworks-spring-boot-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Spring Boot. | Preconditions: .feature file in context; Spring Boot. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## Quarkus rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [401-frameworks-quarkus-core](.cursor/rules/401-frameworks-quarkus-core.md) | Apply Quarkus core guidelines — CDI beans, @ApplicationScoped, @ConfigMapping, profiles, lifecycle, extension-friendly structure | **User Prompt:** `Improve the Quarkus application in context using @401-frameworks-quarkus-core` **Note:** Add in the context the application classes or project. | Core Quarkus and CDI best practices. | -| [402-frameworks-quarkus-rest](.cursor/rules/402-frameworks-quarkus-rest.md) | Design and improve REST APIs with Quarkus REST (JAX-RS) — resources, HTTP semantics, DTOs, validation, error mapping, OpenAPI as contract (API-first), SmallRye optional | **User Prompt:** `Review and improve the REST API in context using @402-frameworks-quarkus-rest` **Note:** Add in the context the resource classes or project. | REST on Quarkus REST / JAX-RS. | -| [411-frameworks-quarkus-jdbc](.cursor/rules/411-frameworks-quarkus-jdbc.md) | Programmatic JDBC with Quarkus — Agroal datasource, JdbcTemplate or java.sql with named parameters, transactions, records | **User Prompt:** `Review or improve JDBC data access using @411-frameworks-quarkus-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; no ORM. | -| [412-frameworks-quarkus-panache](.cursor/rules/412-frameworks-quarkus-panache.md) | Data access with Hibernate ORM Panache — repositories, active record, queries, transactions; keep persistence simple (no Spring Data JPA) | **User Prompt:** `Improve the data access layer in context using @412-frameworks-quarkus-panache` **Note:** Add entities, repositories, or project. | Panache for relational data; pair with `@411` for raw SQL. | -| [413-frameworks-quarkus-db-migrations-flyway](.cursor/rules/413-frameworks-quarkus-db-migrations-flyway.md) | Flyway database migrations with Quarkus — `quarkus-flyway`, `db/migration`, `quarkus.flyway.*`, migrate-at-start | **User Prompt:** `Add or review Flyway migrations in context using @413-frameworks-quarkus-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@411` / `@412` for JDBC and Panache. | -| [421-frameworks-quarkus-testing-unit-tests](.cursor/rules/421-frameworks-quarkus-testing-unit-tests.md) | Write unit tests for Quarkus — Mockito, @QuarkusTest with injection toggles, RESTAssured slices where appropriate | **User Prompt:** `Add or improve unit tests in context using @421-frameworks-quarkus-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Prefer fast tests without full bootstrap when possible. | -| [422-frameworks-quarkus-testing-integration-tests](.cursor/rules/422-frameworks-quarkus-testing-integration-tests.md) | Write integration tests for Quarkus — @QuarkusTest, Testcontainers, Dev Services, persistence and HTTP | **User Prompt:** `Add or improve integration tests in context using @422-frameworks-quarkus-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing with real infrastructure. | -| [423-frameworks-quarkus-testing-acceptance-tests](.cursor/rules/423-frameworks-quarkus-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Quarkus — @QuarkusTest, REST Assured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @423-frameworks-quarkus-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Quarkus. | Preconditions: .feature file in context; Quarkus. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [401-frameworks-quarkus-core](@401-frameworks-quarkus-core.md) | Apply Quarkus core guidelines — CDI beans, @ApplicationScoped, @ConfigMapping, profiles, lifecycle, extension-friendly structure | **User Prompt:** `Improve the Quarkus application in context using @401-frameworks-quarkus-core` **Note:** Add in the context the application classes or project. | Core Quarkus and CDI best practices. | +| [402-frameworks-quarkus-rest](@402-frameworks-quarkus-rest.md) | Design and improve REST APIs with Quarkus REST (JAX-RS) — resources, HTTP semantics, DTOs, validation, error mapping, OpenAPI as contract (API-first), SmallRye optional | **User Prompt:** `Review and improve the REST API in context using @402-frameworks-quarkus-rest` **Note:** Add in the context the resource classes or project. | REST on Quarkus REST / JAX-RS. | +| [411-frameworks-quarkus-jdbc](@411-frameworks-quarkus-jdbc.md) | Programmatic JDBC with Quarkus — Agroal datasource, JdbcTemplate or java.sql with named parameters, transactions, records | **User Prompt:** `Review or improve JDBC data access using @411-frameworks-quarkus-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; no ORM. | +| [412-frameworks-quarkus-panache](@412-frameworks-quarkus-panache.md) | Data access with Hibernate ORM Panache — repositories, active record, queries, transactions; keep persistence simple (no Spring Data JPA) | **User Prompt:** `Improve the data access layer in context using @412-frameworks-quarkus-panache` **Note:** Add entities, repositories, or project. | Panache for relational data; pair with `@411` for raw SQL. | +| [413-frameworks-quarkus-db-migrations-flyway](@413-frameworks-quarkus-db-migrations-flyway.md) | Flyway database migrations with Quarkus — `quarkus-flyway`, `db/migration`, `quarkus.flyway.*`, migrate-at-start | **User Prompt:** `Add or review Flyway migrations in context using @413-frameworks-quarkus-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@411` / `@412` for JDBC and Panache. | +| [421-frameworks-quarkus-testing-unit-tests](@421-frameworks-quarkus-testing-unit-tests.md) | Write unit tests for Quarkus — Mockito, @QuarkusTest with injection toggles, RESTAssured slices where appropriate | **User Prompt:** `Add or improve unit tests in context using @421-frameworks-quarkus-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Prefer fast tests without full bootstrap when possible. | +| [422-frameworks-quarkus-testing-integration-tests](@422-frameworks-quarkus-testing-integration-tests.md) | Write integration tests for Quarkus — @QuarkusTest, Testcontainers, Dev Services, persistence and HTTP | **User Prompt:** `Add or improve integration tests in context using @422-frameworks-quarkus-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing with real infrastructure. | +| [423-frameworks-quarkus-testing-acceptance-tests](@423-frameworks-quarkus-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Quarkus — @QuarkusTest, REST Assured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @423-frameworks-quarkus-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Quarkus. | Preconditions: .feature file in context; Quarkus. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## Micronaut rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [501-frameworks-micronaut-core](.cursor/rules/501-frameworks-micronaut-core.md) | Apply Micronaut core guidelines — Micronaut.run, @Singleton/@Factory, @ConfigurationProperties, @Requires, scheduling, graceful shutdown | **User Prompt:** `Improve the Micronaut application in context using @501-frameworks-micronaut-core` **Note:** Add in the context the application classes or project. | Core Micronaut and DI best practices. | -| [502-frameworks-micronaut-rest](.cursor/rules/502-frameworks-micronaut-rest.md) | Design and improve REST APIs with Micronaut — @Controller, HTTP semantics, DTOs, validation, errors, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @502-frameworks-micronaut-rest` **Note:** Add in the context the controllers or project. | REST on Micronaut HTTP. | -| [511-frameworks-micronaut-jdbc](.cursor/rules/511-frameworks-micronaut-jdbc.md) | Programmatic JDBC with Micronaut — pooled DataSource, PreparedStatement, text blocks, @Transactional, records, domain exceptions | **User Prompt:** `Review or improve JDBC data access using @511-frameworks-micronaut-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; pair with `@512` for generated repositories. | -| [512-frameworks-micronaut-data](.cursor/rules/512-frameworks-micronaut-data.md) | Micronaut Data — @MappedEntity, repositories, @Query, transactions, pagination, Testcontainers tests | **User Prompt:** `Improve the data access layer in context using @512-frameworks-micronaut-data` **Note:** Add entities, repositories, or project. | Repository-style access; use `@511` for raw JDBC. | -| [513-frameworks-micronaut-db-migrations-flyway](.cursor/rules/513-frameworks-micronaut-db-migrations-flyway.md) | Flyway database migrations with Micronaut — `micronaut-flyway`, `db/migration`, `flyway.datasources.*` | **User Prompt:** `Add or review Flyway migrations in context using @513-frameworks-micronaut-db-migrations-flyway` **Note:** Add `pom.xml`, `application.yml`, or migration SQL. | Pairs with `@511` / `@512` for JDBC and Micronaut Data. | -| [521-frameworks-micronaut-testing-unit-tests](.cursor/rules/521-frameworks-micronaut-testing-unit-tests.md) | Unit tests for Micronaut — Mockito-first, @MicronautTest with @MockBean, HttpClient | **User Prompt:** `Add or improve unit tests in context using @521-frameworks-micronaut-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Fast tests without full boot when possible. | -| [522-frameworks-micronaut-testing-integration-tests](.cursor/rules/522-frameworks-micronaut-testing-integration-tests.md) | Integration tests for Micronaut — @MicronautTest, TestPropertyProvider, Testcontainers, HttpClient | **User Prompt:** `Add or improve integration tests in context using @522-frameworks-micronaut-testing-integration-tests` **Note:** Add in the context the project or test classes. | Real infrastructure in tests. | -| [523-frameworks-micronaut-testing-acceptance-tests](.cursor/rules/523-frameworks-micronaut-testing-acceptance-tests.md) | Acceptance tests from Gherkin .feature for Micronaut — @acceptance, HttpClient, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @523-frameworks-micronaut-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Micronaut. | Preconditions: .feature in context; Micronaut. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [501-frameworks-micronaut-core](@501-frameworks-micronaut-core.md) | Apply Micronaut core guidelines — Micronaut.run, @Singleton/@Factory, @ConfigurationProperties, @Requires, scheduling, graceful shutdown | **User Prompt:** `Improve the Micronaut application in context using @501-frameworks-micronaut-core` **Note:** Add in the context the application classes or project. | Core Micronaut and DI best practices. | +| [502-frameworks-micronaut-rest](@502-frameworks-micronaut-rest.md) | Design and improve REST APIs with Micronaut — @Controller, HTTP semantics, DTOs, validation, errors, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @502-frameworks-micronaut-rest` **Note:** Add in the context the controllers or project. | REST on Micronaut HTTP. | +| [511-frameworks-micronaut-jdbc](@511-frameworks-micronaut-jdbc.md) | Programmatic JDBC with Micronaut — pooled DataSource, PreparedStatement, text blocks, @Transactional, records, domain exceptions | **User Prompt:** `Review or improve JDBC data access using @511-frameworks-micronaut-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; pair with `@512` for generated repositories. | +| [512-frameworks-micronaut-data](@512-frameworks-micronaut-data.md) | Micronaut Data — @MappedEntity, repositories, @Query, transactions, pagination, Testcontainers tests | **User Prompt:** `Improve the data access layer in context using @512-frameworks-micronaut-data` **Note:** Add entities, repositories, or project. | Repository-style access; use `@511` for raw JDBC. | +| [513-frameworks-micronaut-db-migrations-flyway](@513-frameworks-micronaut-db-migrations-flyway.md) | Flyway database migrations with Micronaut — `micronaut-flyway`, `db/migration`, `flyway.datasources.*` | **User Prompt:** `Add or review Flyway migrations in context using @513-frameworks-micronaut-db-migrations-flyway` **Note:** Add `pom.xml`, `application.yml`, or migration SQL. | Pairs with `@511` / `@512` for JDBC and Micronaut Data. | +| [521-frameworks-micronaut-testing-unit-tests](@521-frameworks-micronaut-testing-unit-tests.md) | Unit tests for Micronaut — Mockito-first, @MicronautTest with @MockBean, HttpClient | **User Prompt:** `Add or improve unit tests in context using @521-frameworks-micronaut-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Fast tests without full boot when possible. | +| [522-frameworks-micronaut-testing-integration-tests](@522-frameworks-micronaut-testing-integration-tests.md) | Integration tests for Micronaut — @MicronautTest, TestPropertyProvider, Testcontainers, HttpClient | **User Prompt:** `Add or improve integration tests in context using @522-frameworks-micronaut-testing-integration-tests` **Note:** Add in the context the project or test classes. | Real infrastructure in tests. | +| [523-frameworks-micronaut-testing-acceptance-tests](@523-frameworks-micronaut-testing-acceptance-tests.md) | Acceptance tests from Gherkin .feature for Micronaut — @acceptance, HttpClient, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @523-frameworks-micronaut-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Micronaut. | Preconditions: .feature in context; Micronaut. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## AI Tooling -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [200-agents-md](@200-agents-md.md) | Generate AGENTS.md files for Java repositories using a modular step-based approach. AGENTS.md guides AI agents and contributors on project conventions, tech stack, file structure, commands, Git workflow, and boundaries | **Interactive User Prompt:** `Generate AGENTS.md for the project with the skill @200-agents-md` **Note:** Add in the context the project root folder. The rule will ask 6 questions to understand requirements before generating. Handles existing AGENTS.md (overwrite/merge/backup). | Focused on AGENTS.md generation only. Asks role, tech stack, file structure, commands, Git workflow, and boundaries before generating | + +## Technologies + +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [200-agents-md](.cursor/rules/200-agents-md.md) | Generate AGENTS.md files for Java repositories using a modular step-based approach. AGENTS.md guides AI agents and contributors on project conventions, tech stack, file structure, commands, Git workflow, and boundaries | **Interactive User Prompt:** `Generate AGENTS.md for the project with the cursor rule @200-agents-md` **Note:** Add in the context the project root folder. The rule will ask 6 questions to understand requirements before generating. Handles existing AGENTS.md (overwrite/merge/backup). | Focused on AGENTS.md generation only. Asks role, tech stack, file structure, commands, Git workflow, and boundaries before generating | +| [701-technologies-openapi](@701-technologies-openapi.md) | Framework-agnostic OpenAPI 3.x guidance — spec structure, reusable schemas, security schemes, examples, validation, and breaking-change awareness | **User Prompt:** `Review and improve my OpenAPI specification using @701-technologies-openapi` **Note:** Add the OpenAPI spec file (`openapi.yaml`/`openapi.json`) to context. | Use when the goal is API contract quality independent of Spring Boot, Quarkus, or Micronaut. | +| [702-technologies-wiremock](@702-technologies-wiremock.md) | Framework-agnostic WireMock guidance — robust stubs, request matching, response design, verification, and test isolation | **User Prompt:** `Design or review WireMock stubs using @702-technologies-wiremock` **Note:** Add mappings, test code, or expected HTTP interactions to context. | Use for reliable HTTP stubbing patterns across Java frameworks. | --- -**Note:** This guide is self-contained and portable. Copy it into any Java project to get started with Cursor Rules for Java development. +**Note:** This guide is self-contained and portable. Copy it into any Java project to get started with Skills for Java development. diff --git a/skills/001-skills-inventory/references/001-skills-inventory.md b/skills/001-skills-inventory/references/001-skills-inventory.md index 524360a6..9c47f4e3 100644 --- a/skills/001-skills-inventory/references/001-skills-inventory.md +++ b/skills/001-skills-inventory/references/001-skills-inventory.md @@ -19,152 +19,171 @@ and structure defined in the embedded template below. Create a markdown file nam `INVENTORY-SKILLS-JAVA.md` with the following content: ```markdown -# Cursor rules Java +# Skills for Java -Use the following collection of System prompts of Java to improve your Java development. +Use the following collection of Skills for Java to improve your Java development. -## Generate this list of System prompts for Java +## Inventory -| Cursor Rule | Description | User Prompt | Notes | +| Skill | Description | User Prompt | Notes | |----|----|----|----| -| [001-skills-inventory](.cursor/rules/001-skills-inventory.md) | Generate list of System Prompts for Java | **User Prompt:** `Create a document with all System prompts for Java using @001-skills-inventory` | | +| [001-skills-inventory](@001-skills-inventory.md) | Generate list of System Prompts for Java | **User Prompt:** `Create a document with all System prompts for Java using @001-skills-inventory` | | +| [002-agents-inventory](@002-agents-inventory.md) | Generate checklist with embedded agents inventory for Java | **User Prompt:** `Create a document with all agents for Java using @002-agents-inventory` | | -## AI-Driven Agile (User Stories, Gherkin & AI Planning) +## Installation -| Cursor Rule | Description | Prompt | Notes | -|----|----|----|----| -| [012-agile-epic](.cursor/rules/012-agile-epic.md) | Create agile epics with comprehensive definition including business value, success criteria, and breakdown into user stories | **Interactive User Prompt:** `Create an agile epic using @012-agile-epic` **Note:** The rule asks targeted questions about epic title, business value, target users, problem statement, solution overview, success criteria, key features, dependencies, risks, and documentation before generating the epic document. | Three-phase approach: gets current date, gathers details through structured questions, then produces epic document with next steps. | -| [013-agile-feature](.cursor/rules/013-agile-feature.md) | Create detailed feature Markdown files from an existing epic | **Interactive User Prompt:** `Create features from my epic using @013-agile-feature` **Note:** Add the epic file path or paste epic content. The rule analyzes the epic, clarifies scope and audience, asks per-feature questions, then generates one feature document per feature. | Phases: current date, epic analysis and structured questions (including repeated questions per feature), then feature file generation and epic integration guidance. | -| [014-agile-user-story](.cursor/rules/014-agile-user-story.md) | Create user stories with Gherkin acceptance criteria and BDD feature files | **Interactive User Prompt:** `Create a user story with acceptance criteria using @014-agile-user-story` **Note:** The rule asks targeted questions about title, persona, goal, benefit, feature context, and Gherkin scenarios before generating the Markdown user story and `.feature` file. | Two-phase approach: gathers details through structured questions, then produces user story and Gherkin file. Optional upstream: retrieve issue bodies and comments with `@043-planning-github-issues`, then use that text as draft answers while keeping the same question order. | -| [043-planning-github-issues](.cursor/rules/043-planning-github-issues.md) | List GitHub issues (all or by milestone), fetch issue bodies and comments with `gh`, present tables; hand off to user stories | **User Prompt:** `List open issues in this repo as a table using @043-planning-github-issues` **User Prompt:** `Get all issues for milestone "Sprint 12" with @043-planning-github-issues` **User Prompt:** `Pull issue #44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires GitHub CLI (`gh`) installed and authenticated. | Pairs with `@014-agile-user-story` when turning GitHub threads into user stories and Gherkin. | -| [044-planning-jira](.cursor/rules/044-planning-jira.md) | List Jira issues (all or by JQL), fetch issue descriptions and comments with `jira`, present tables; hand off to user stories | **User Prompt:** `List open Jira issues as a table using @044-planning-jira` **User Prompt:** `Get Jira issues with JQL "project = PROJ AND statusCategory != Done" using @044-planning-jira` **User Prompt:** `Pull issue PROJ-44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires Jira CLI (`jira`) installed and configured. | Pairs with `@014-agile-user-story` when turning Jira threads into user stories and Gherkin. | -| [041-planning-plan-mode](.cursor/rules/041-planning-plan-mode.md) | Create structured design plans for Cursor Plan mode (Java implementation, TDD, refactoring) | **Interactive User Prompt:** `Create a plan for [feature/refactoring] using @041-planning-plan-mode` **Note:** Use in Plan mode. Gathers context (specs, acceptance criteria) then produces YAML-frontmatter plan with Requirements Summary, Approach (Mermaid), Task List, Execution Instructions. | Suitable for outside-in TDD, feature implementation, or refactoring work. | -| [042-planning-openspec](.cursor/rules/042-planning-openspec.md) | Transform `*.plan.md` into OpenSpec change workflow (install/check/init/list/status/show/validate/archive) | **Interactive User Prompt:** `Convert this .plan.md into an OpenSpec change using @042-planning-openspec` **Note:** Verifies `openspec --version` first; if missing, offers npm install guidance for macOS/Linux/Windows, then proposes `openspec init` for new projects. | Uses `add-dark-mode` as a canonical change-id example and supports create-or-update flows. | +| Skill | Description | User Prompt | Notes | +|----|----|----|----| +| [003-agents-installation](@003-agents-installation.md) | Install embedded robot agents into `.cursor/agents` or `.claude/agents` | **Interactive User Prompt:** `Install embedded agents using @003-agents-installation` | Asks destination first, then installs the full six-agent bundle from embedded assets. | + +## Agile (User Stories, Gherkin & AI Planning) + +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [012-agile-epic](@012-agile-epic.md) | Create agile epics with comprehensive definition including business value, success criteria, and breakdown into user stories | **Interactive User Prompt:** `Create an agile epic using @012-agile-epic` **Note:** The rule asks targeted questions about epic title, business value, target users, problem statement, solution overview, success criteria, key features, dependencies, risks, and documentation before generating the epic document. | Three-phase approach: gets current date, gathers details through structured questions, then produces epic document with next steps. | +| [013-agile-feature](@013-agile-feature.md) | Create detailed feature Markdown files from an existing epic | **Interactive User Prompt:** `Create features from my epic using @013-agile-feature` **Note:** Add the epic file path or paste epic content. The rule analyzes the epic, clarifies scope and audience, asks per-feature questions, then generates one feature document per feature. | Phases: current date, epic analysis and structured questions (including repeated questions per feature), then feature file generation and epic integration guidance. | +| [014-agile-user-story](@014-agile-user-story.md) | Create user stories with Gherkin acceptance criteria and BDD feature files | **Interactive User Prompt:** `Create a user story with acceptance criteria using @014-agile-user-story` **Note:** The rule asks targeted questions about title, persona, goal, benefit, feature context, and Gherkin scenarios before generating the Markdown user story and `.feature` file. | Two-phase approach: gathers details through structured questions, then produces user story and Gherkin file. Optional upstream: retrieve issue bodies and comments with `@043-planning-github-issues`, then use that text as draft answers while keeping the same question order. | ## Architecture -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [030-architecture-adr-general](@030-architecture-adr-general.md) | Generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes | **Interactive User Prompt:** `Generate an ADR for the project with the skill @030-architecture-adr-general` **Note:** Add in the context the project root folder. The rule will ask questions about ADR storage location and naming convention before starting the interactive ADR generation process. Ensures project validation with Maven before proceeding. | Interactive rule — asks questions one by one to gather all ADR information. Validates Maven project before starting, auto-increments ADR file numbering, and provides a comprehensive summary after generation. | +| [031-architecture-adr-functional-requirements](@031-architecture-adr-functional-requirements.md) | Create ADRs for functional requirements — CLI and/or REST/HTTP API; infers interface type from project context when possible | **Interactive User Prompt:** `Generate an ADR for functional requirements with @031-architecture-adr-functional-requirements` **Note:** Add the CLI and/or API project to context. Conversational discovery; surface discovery (CLI vs API vs both); one or two questions at a time. | Unified functional-requirements ADR (CLI and/or REST). | +| [032-architecture-adr-non-functional-requirements](@032-architecture-adr-non-functional-requirements.md) | Create ADRs for non-functional requirements — document quality attributes, NFR decisions, security/performance/scalability using ISO/IEC 25010:2023 | **Interactive User Prompt:** `Generate an ADR for non-functional requirements with @032-architecture-adr-non-functional-requirements` **Note:** Add in the context the project. Skips irrelevant quality characteristics; dives deeper where there is uncertainty. | NFR-focused ADR generation. | +| [033-architecture-diagrams](@033-architecture-diagrams.md) | Generate Java project diagrams including UML sequence, class, state-machine diagrams and C4 model diagrams using a modular step-based approach | **Interactive User Prompt:** `Generate diagrams about the project with the skill @033-architecture-diagrams` **User Prompt:** `Create UML class diagrams with @033-architecture-diagrams without any question` (Example) **Note:** Add in the context the folder to generate the diagrams. The rule will analyze the codebase and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on diagram generation only. I recommend to run the JBang tool `jbang puml-to-png@jabrena --watch .` in order to generate diagrams in PNG format on the fly | + +## Planning + +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [030-architecture-adr-general](.cursor/rules/030-architecture-adr-general.md) | Generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes | **Interactive User Prompt:** `Generate an ADR for the project with the cursor rule @030-architecture-adr-general` **Note:** Add in the context the project root folder. The rule will ask questions about ADR storage location and naming convention before starting the interactive ADR generation process. Ensures project validation with Maven before proceeding. | Interactive rule — asks questions one by one to gather all ADR information. Validates Maven project before starting, auto-increments ADR file numbering, and provides a comprehensive summary after generation. | -| [031-architecture-adr-functional-requirements](.cursor/rules/031-architecture-adr-functional-requirements.md) | Create ADRs for functional requirements — CLI and/or REST/HTTP API; infers interface type from project context when possible | **Interactive User Prompt:** `Generate an ADR for functional requirements with @031-architecture-adr-functional-requirements` **Note:** Add the CLI and/or API project to context. Conversational discovery; surface discovery (CLI vs API vs both); one or two questions at a time. | Unified functional-requirements ADR (CLI and/or REST). | -| [032-architecture-adr-non-functional-requirements](.cursor/rules/032-architecture-adr-non-functional-requirements.md) | Create ADRs for non-functional requirements — document quality attributes, NFR decisions, security/performance/scalability using ISO/IEC 25010:2023 | **Interactive User Prompt:** `Generate an ADR for non-functional requirements with @032-architecture-adr-non-functional-requirements` **Note:** Add in the context the project. Skips irrelevant quality characteristics; dives deeper where there is uncertainty. | NFR-focused ADR generation. | -| [033-architecture-diagrams](.cursor/rules/033-architecture-diagrams.md) | Generate Java project diagrams including UML sequence, class, state-machine diagrams and C4 model diagrams using a modular step-based approach | **Interactive User Prompt:** `Generate diagrams about the project with the cursor rule @033-architecture-diagrams` **User Prompt:** `Create UML class diagrams with @033-architecture-diagrams without any question` (Example) **Note:** Add in the context the folder to generate the diagrams. The rule will analyze the codebase and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on diagram generation only. I recommend to run the JBang tool `jbang puml-to-png@jabrena --watch .` in order to generate diagrams in PNG format on the fly | +| [041-planning-plan-mode](@041-planning-plan-mode.md) | Create structured design plans for Cursor Plan mode (Java implementation, TDD, refactoring) | **Interactive User Prompt:** `Create a plan for [feature/refactoring] using @041-planning-plan-mode` **Note:** Use in Plan mode. Gathers context (specs, acceptance criteria) then produces YAML-frontmatter plan with Requirements Summary, Approach (Mermaid), Task List, Execution Instructions. | Suitable for outside-in TDD, feature implementation, or refactoring work. | +| [042-planning-openspec](@042-planning-openspec.md) | Transform `*.plan.md` into OpenSpec change workflow (install/check/init/list/status/show/validate/archive) | **Interactive User Prompt:** `Convert this .plan.md into an OpenSpec change using @042-planning-openspec` **Note:** Verifies `openspec --version` first; if missing, offers npm install guidance for macOS/Linux/Windows, then proposes `openspec init` for new projects. | Uses `add-dark-mode` as a canonical change-id example and supports create-or-update flows. | +| [043-planning-github-issues](@043-planning-github-issues.md) | List GitHub issues (all or by milestone), fetch issue bodies and comments with `gh`, present tables; hand off to user stories | **User Prompt:** `List open issues in this repo as a table using @043-planning-github-issues` **User Prompt:** `Get all issues for milestone "Sprint 12" with @043-planning-github-issues` **User Prompt:** `Pull issue #44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires GitHub CLI (`gh`) installed and authenticated. | Pairs with `@014-agile-user-story` when turning GitHub threads into user stories and Gherkin. | +| [044-planning-jira](@044-planning-jira.md) | List Jira issues (all or by JQL), fetch issue descriptions and comments with `jira`, present tables; hand off to user stories | **User Prompt:** `List open Jira issues as a table using @044-planning-jira` **User Prompt:** `Get Jira issues with JQL "project = PROJ AND statusCategory != Done" using @044-planning-jira` **User Prompt:** `Pull issue PROJ-44 description and comments, then draft a user story with @014-agile-user-story` **Note:** Requires Jira CLI (`jira`) installed and configured. | Pairs with `@014-agile-user-story` when turning Jira threads into user stories and Gherkin. | ## Build system rules (Maven) -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [110-java-maven-best-practices](.cursor/rules/110-java-maven-best-practices.md) | Analyze your `pom.xml` and apply Maven best practices | **User Prompt:** `Apply in the pom.xml the rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. **User Prompt with Consultative Interactive Behaviour:** `Apply in the pom.xml the rule @110-java-maven-best-practices with the behaviour @behaviour-consultative-interaction`| You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [111-java-maven-dependencies](.cursor/rules/111-java-maven-dependencies.md) | Add Maven dependencies for improved code quality | **Interactive User Prompt:** `Add essential Maven dependencies for code quality using @111-java-maven-dependencies` **User Prompt:** `Add VAVR dependency with the help of@111-java-maven-dependencies and not make any question` (Example)**Note:** Add in the context the `pom.xml` which you want to enhance with quality dependencies. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the cursor rule to selectively add JSpecify, Error Prone, NullAway and VAVR dependencies based on project needs. | -| [112-java-maven-plugins](.cursor/rules/112-java-maven-plugins.md) | Update your `pom.xml` with Maven Dependencies & Plugins | **Interactive User Prompt:** `Improve the pom.xml using the cursor rule @112-java-maven-plugins` **User Prompt:** `Add Maven Enforcer plugin only from the rule @112-java-maven-plugins without any question` (Example) **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the cursor rule to update the `pom.xml`. | -| [113-java-maven-documentation](.cursor/rules/113-java-maven-documentation.md) | Create a Maven Documentation with the file `README-DEV.md` | **User Prompt:** `Generate developer documentation with essential Maven commands using @113-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This cursor rule is applied automatically without any interaction with the Software engineer. | -| [114-java-maven-search](.cursor/rules/114-java-maven-search.md) | Search Maven Central, resolve coordinates, version metadata, and direct artifact URLs | **User Prompt:** `Find the latest version of com.google.guava:guava using @114-java-maven-search` **Note:** Use for dependency lookup, POM/JAR URLs, `maven-metadata.xml`, or Search API queries — not for editing `pom.xml` (use `@111` / `@112` for that). | Non-interactive. Use MCP Maven tools when available for live Central queries. | +| [110-java-maven-best-practices](@110-java-maven-best-practices.md) | Analyze your `pom.xml` and apply Maven best practices | **User Prompt:** `Apply in the pom.xml the rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. **User Prompt with Consultative Interactive Behaviour:** `Apply in the pom.xml the rule @110-java-maven-best-practices with the behaviour @behaviour-consultative-interaction`| You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [111-java-maven-dependencies](@111-java-maven-dependencies.md) | Add Maven dependencies for improved code quality | **Interactive User Prompt:** `Add essential Maven dependencies for code quality using @111-java-maven-dependencies` **User Prompt:** `Add VAVR dependency with the help of@111-java-maven-dependencies and not make any question` (Example)**Note:** Add in the context the `pom.xml` which you want to enhance with quality dependencies. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the skill to selectively add JSpecify, Error Prone, NullAway and VAVR dependencies based on project needs. | +| [112-java-maven-plugins](@112-java-maven-plugins.md) | Update your `pom.xml` with Maven Dependencies & Plugins | **Interactive User Prompt:** `Improve the pom.xml using the skill @112-java-maven-plugins` **User Prompt:** `Add Maven Enforcer plugin only from the rule @112-java-maven-plugins without any question` (Example) **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | It is possible to apply the System prompt in an interactive and non interactive way. Using the interactive approach, the Software engineer will interact with the skill to update the `pom.xml`. | +| [113-java-maven-documentation](@113-java-maven-documentation.md) | Create a Maven Documentation with the file `README-DEV.md` | **User Prompt:** `Generate developer documentation with essential Maven commands using @113-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This skill is applied automatically without any interaction with the Software engineer. | +| [114-java-maven-search](@114-java-maven-search.md) | Search Maven Central, resolve coordinates, version metadata, and direct artifact URLs | **User Prompt:** `Find the latest version of com.google.guava:guava using @114-java-maven-search` **Note:** Use for dependency lookup, POM/JAR URLs, `maven-metadata.xml`, or Search API queries — not for editing `pom.xml` (use `@111` / `@112` for that). | Non-interactive. Use MCP Maven tools when available for live Central queries. | ## Design rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [121-java-object-oriented-design](.cursor/rules/121-java-object-oriented-design.md) | Take another point of view with an Object Oriented Design of your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design`(Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [122-java-type-design](.cursor/rules/122-java-type-design.md) | Review the Type Design in your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design` (Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [121-java-object-oriented-design](@121-java-object-oriented-design.md) | Take another point of view with an Object Oriented Design of your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design`(Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @121-java-object-oriented-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [122-java-type-design](@122-java-type-design.md) | Review the Type Design in your development | **User prompt:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design` (Example) **Note:** Add in the context a class/classes to improve the design. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @122-java-type-design with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Coding rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [123-java-exception-handling](.cursor/rules/123-java-exception-handling.md) | Add Exception handling | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [124-java-secure-coding](.cursor/rules/124-java-secure-coding.md) | Review my code for Secure Java Coding rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [125-java-concurrency](.cursor/rules/125-java-concurrency.md) | Improve your code with Concurrency rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [180-java-observability-logging](.cursor/rules/180-java-observability-logging.md) | Apply logging guidelines in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [128-java-generics](.cursor/rules/128-java-generics.md) | Apply generics in a class | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @128-java-generics` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @128-java-generics with the behaviour @behaviour-consultative-interaction` **User Prompt with Training behaviour:** `Create a course about @128-java-generics.md using the behavior @behaviour-progressive-learning.md and put the course here` **Note:** Add in the context the location to add the course. | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [123-java-exception-handling](@123-java-exception-handling.md) | Add Exception handling | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @123-java-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [124-java-secure-coding](@124-java-secure-coding.md) | Review my code for Secure Java Coding rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @124-java-secure-coding with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [125-java-concurrency](@125-java-concurrency.md) | Improve your code with Concurrency rules | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @125-java-concurrency with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [180-java-observability-logging](@180-java-observability-logging.md) | Apply logging guidelines in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @180-java-observability-logging with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [128-java-generics](@128-java-generics.md) | Apply generics in a class | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @128-java-generics` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @128-java-generics with the behaviour @behaviour-consultative-interaction` **User Prompt with Training behaviour:** `Create a course about @128-java-generics.md using the behavior @behaviour-progressive-learning.md and put the course here` **Note:** Add in the context the location to add the course. | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Testing rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [130-java-testing-strategies](.cursor/rules/130-java-testing-strategies.md) | Apply testing strategies — RIGHT-BICEP, A-TRIP, CORRECT for boundary conditions and test quality | **User Prompt:** `Improve tests applying testing strategies with @130-java-testing-strategies` **Note:** Add in the context test classes or code under test. Focuses on conceptual frameworks rather than framework-specific annotations. | Use for strategy-focused test design. For JUnit 5, AssertJ, Mockito, use @131-java-testing-unit-testing. | -| [131-java-testing-unit-testing](.cursor/rules/131-java-testing-unit-testing.md) | Apply Unit Testing best practices for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing` (Example) **Note:** Add in the context a class/classes. Project must NOT use Spring Boot, Quarkus, or Micronaut. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing with the behaviour @behaviour-consultative-interaction` | Precondition: framework-agnostic Java. For Spring Boot use @321-frameworks-spring-boot-testing-unit-tests; for Quarkus @421-frameworks-quarkus-testing-unit-tests; for Micronaut @521-frameworks-micronaut-testing-unit-tests. | -| [132-java-testing-integration-testing](.cursor/rules/132-java-testing-integration-testing.md) | Set up integration test infrastructure with WireMock (REST stubs) and generate a `BaseIntegrationTest.java` for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **Interactive User Prompt:** `Set up integration test infrastructure for my service using @132-java-testing-integration-testing` **Note:** The rule will ask questions about your service's outbound HTTP dependencies before generating `BaseIntegrationTest.java` and starter WireMock mapping files. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Precondition: framework-agnostic Java. For Spring Boot use @322-frameworks-spring-boot-testing-integration-tests; for Quarkus @422-frameworks-quarkus-testing-integration-tests; for Micronaut @522-frameworks-micronaut-testing-integration-tests. Interactive rule — asks questions about REST topology before generating code. | -| [133-java-testing-acceptance-tests](.cursor/rules/133-java-testing-acceptance-tests.md) | Implement acceptance tests from a Gherkin .feature file for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) — @acceptance scenarios, RestAssured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @133-java-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Preconditions: .feature file in context; framework-agnostic Java. For Spring Boot use @323-frameworks-spring-boot-testing-acceptance-tests; for Quarkus @423-frameworks-quarkus-testing-acceptance-tests; for Micronaut @523-frameworks-micronaut-testing-acceptance-tests. | +| [130-java-testing-strategies](@130-java-testing-strategies.md) | Apply testing strategies — RIGHT-BICEP, A-TRIP, CORRECT for boundary conditions and test quality | **User Prompt:** `Improve tests applying testing strategies with @130-java-testing-strategies` **Note:** Add in the context test classes or code under test. Focuses on conceptual frameworks rather than framework-specific annotations. | Use for strategy-focused test design. For JUnit 5, AssertJ, Mockito, use @131-java-testing-unit-testing. | +| [131-java-testing-unit-testing](@131-java-testing-unit-testing.md) | Apply Unit Testing best practices for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing` (Example) **Note:** Add in the context a class/classes. Project must NOT use Spring Boot, Quarkus, or Micronaut. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @131-java-testing-unit-testing with the behaviour @behaviour-consultative-interaction` | Precondition: framework-agnostic Java. For Spring Boot use @321-frameworks-spring-boot-testing-unit-tests; for Quarkus @421-frameworks-quarkus-testing-unit-tests; for Micronaut @521-frameworks-micronaut-testing-unit-tests. | +| [132-java-testing-integration-testing](@132-java-testing-integration-testing.md) | Set up integration test infrastructure with WireMock (REST stubs) and generate a `BaseIntegrationTest.java` for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) | **Interactive User Prompt:** `Set up integration test infrastructure for my service using @132-java-testing-integration-testing` **Note:** The rule will ask questions about your service's outbound HTTP dependencies before generating `BaseIntegrationTest.java` and starter WireMock mapping files. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Precondition: framework-agnostic Java. For Spring Boot use @322-frameworks-spring-boot-testing-integration-tests; for Quarkus @422-frameworks-quarkus-testing-integration-tests; for Micronaut @522-frameworks-micronaut-testing-integration-tests. Interactive rule — asks questions about REST topology before generating code. | +| [133-java-testing-acceptance-tests](@133-java-testing-acceptance-tests.md) | Implement acceptance tests from a Gherkin .feature file for framework-agnostic Java (no Spring Boot, Quarkus, Micronaut) — @acceptance scenarios, RestAssured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @133-java-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must NOT use Spring Boot, Quarkus, or Micronaut. | Preconditions: .feature file in context; framework-agnostic Java. For Spring Boot use @323-frameworks-spring-boot-testing-acceptance-tests; for Quarkus @423-frameworks-quarkus-testing-acceptance-tests; for Micronaut @523-frameworks-micronaut-testing-acceptance-tests. | ## Refactoring rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [141-java-refactoring-with-modern-features](.cursor/rules/141-java-refactoring-with-modern-features.md) | Add Modern Java Features in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [142-java-functional-programming](.cursor/rules/142-java-functional-programming.md) | Add Functional Programming style in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | -| [143-java-functional-exception-handling](.cursor/rules/143-java-functional-exception-handling.md) | Apply functional programming approaches for error handling using Optional and VAVR Either types | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. It promotes using Monads like Optional and Either instead of exceptions for predictable failures. | -| [144-java-data-oriented-programming](.cursor/rules/144-java-data-oriented-programming.md) | Add Data Oriented Programming in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [141-java-refactoring-with-modern-features](@141-java-refactoring-with-modern-features.md) | Add Modern Java Features in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @141-java-refactoring-with-modern-features with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [142-java-functional-programming](@142-java-functional-programming.md) | Add Functional Programming style in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @142-java-functional-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | +| [143-java-functional-exception-handling](@143-java-functional-exception-handling.md) | Apply functional programming approaches for error handling using Optional and VAVR Either types | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @143-java-functional-exception-handling with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. It promotes using Monads like Optional and Either instead of exceptions for predictable failures. | +| [144-java-data-oriented-programming](@144-java-data-oriented-programming.md) | Add Data Oriented Programming in your development | **User Prompt:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming` (Example) **Note:** Add in the context a class/classes. **User Prompt with Consultative Interactive Behaviour:** `Improve the class/classes added in the context applying the system prompt @144-java-data-oriented-programming with the behaviour @behaviour-consultative-interaction` | You can use the System prompt in a purist way or add the Behaviours to customize the final behaviour. | ## Performance rule (Jmeter) | Activity | Description | Prompt | Notes | |----|----|----|----| -| [151-java-performance-jmeter](.cursor/rules/151-java-performance-jmeter.md) | Run a performance test with Jmeter | **User Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This cursor rule is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. | +| [151-java-performance-jmeter](@151-java-performance-jmeter.md) | Run a performance test with Jmeter | **User Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This skill is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. | ## Profiling rules (Async profiler, jps, jstack, jcmd & jstat) | Activity | Description | Prompt | Notes | |----|----|----|----| -| [161-java-profiling-detect](.cursor/rules/161-java-profiling-detect.md) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. The Cursor rule will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. **Step 1:** execute `./run-with-profiler.sh --help` **Step2:** execute `./run-jmeter.sh --help` **Step 3:** execute `./profiler/scripts/java-profile.sh` | -| [162-java-profiling-analyze](.cursor/rules/162-java-profiling-analyze.md) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the cursor rule @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. | -| [163-java-profiling-refactor](.cursor/rules/163-java-profiling-refactor.md) | Refactor code based on profiling analysis findings to fix performance bottlenecks | **Prompt:** `Apply refactoring from profiling analysis using @163-java-profiling-refactor` **Note:** Review `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` before refactoring. Replace YYYYMMDD with the analysis date. | Step 3 of profiling workflow. Non conversational. Verifies changes with `./mvnw clean verify`. | +| [161-java-profiling-detect](@161-java-profiling-detect.md) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational skill. The Skill will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. **Step 1:** execute `./run-with-profiler.sh --help` **Step2:** execute `./run-jmeter.sh --help` **Step 3:** execute `./profiler/scripts/java-profile.sh` | +| [162-java-profiling-analyze](@162-java-profiling-analyze.md) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the skill @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational skill. | +| [163-java-profiling-refactor](@163-java-profiling-refactor.md) | Refactor code based on profiling analysis findings to fix performance bottlenecks | **Prompt:** `Apply refactoring from profiling analysis using @163-java-profiling-refactor` **Note:** Review `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` before refactoring. Replace YYYYMMDD with the analysis date. | Step 3 of profiling workflow. Non conversational. Verifies changes with `./mvnw clean verify`. | | - | Code Refactoring from suggestions from analysis | `Can you apply the solutions from @profiling-solutions-yyyymmdd.md in @/info to mitigate bottlenecks` | Make a refactoring with the notes from the analysis | -| [164-java-profiling-verify](.cursor/rules/164-java-profiling-verify.md) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the cursor rule @164-java-profiling-verify` **Note:** Put in the context the folder with the results | This cursor rule is applied automatically without any interaction with the Software engineer. | +| [164-java-profiling-verify](@164-java-profiling-verify.md) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the skill @164-java-profiling-verify` **Note:** Put in the context the folder with the results | This skill is applied automatically without any interaction with the Software engineer. | ## Documentation rules | Activity | Description | Prompt | Notes | |----|----|----|----| -| [170-java-documentation](.cursor/rules/170-java-documentation.md) | Generate Java project documentation including README.md, package-info.java files, and Javadoc using a modular step-based approach | **Interactive User Prompt:** `Generate technical documentation about the project with the cursor rule @170-java-documentation` **User Prompt:** `Generate README.md with @170-java-documentation without any question` (Example) **Note:** Add in the context the folder to generate the documentation. The rule will analyze existing documentation and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on documentation generation only. For diagrams, use @033-architecture-diagrams | +| [170-java-documentation](@170-java-documentation.md) | Generate Java project documentation including README.md, package-info.java files, and Javadoc using a modular step-based approach | **Interactive User Prompt:** `Generate technical documentation about the project with the skill @170-java-documentation` **User Prompt:** `Generate README.md with @170-java-documentation without any question` (Example) **Note:** Add in the context the folder to generate the documentation. The rule will analyze existing documentation and ask for user preferences before generating anything. Ensures project validation with Maven before proceeding. | Focused on documentation generation only. For diagrams, use @033-architecture-diagrams | ## Spring Boot rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [301-frameworks-spring-boot-core](.cursor/rules/301-frameworks-spring-boot-core.md) | Apply Spring Boot core guidelines — @SpringBootApplication, component annotations, bean definition, @ConfigurationProperties, profiles, constructor injection | **User Prompt:** `Improve the Spring Boot application in context using @301-frameworks-spring-boot-core` **Note:** Add in the context the application classes or project. | Core Spring Boot best practices. | -| [302-frameworks-spring-boot-rest](.cursor/rules/302-frameworks-spring-boot-rest.md) | Design and improve REST APIs with Spring Boot — HTTP methods, URIs, status codes, DTOs, versioning, error handling, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @302-frameworks-spring-boot-rest` **Note:** Add in the context the controllers or API classes. | REST API design principles. | -| [311-frameworks-spring-jdbc](.cursor/rules/311-frameworks-spring-jdbc.md) | Programmatic JDBC with Spring — JdbcClient (Spring Framework 6.1+), JdbcTemplate for batch/streaming APIs, parameterized SQL, RowMapper, batch updates, transactions | **User Prompt:** `Review or improve JDBC data access using @311-frameworks-spring-jdbc` **Note:** Add in the context repository/DAO classes or SQL usage. | Use for ad-hoc SQL and JDBC; for repository-style aggregates prefer `@312-frameworks-spring-data-jdbc`. | -| [312-frameworks-spring-data-jdbc](.cursor/rules/312-frameworks-spring-data-jdbc.md) | Apply Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries | **User Prompt:** `Improve the data access layer in context using @312-frameworks-spring-data-jdbc` **Note:** Add in the context the entities, repositories, or project. | Spring Data JDBC with records. | -| [313-frameworks-spring-db-migrations-flyway](.cursor/rules/313-frameworks-spring-db-migrations-flyway.md) | Flyway database migrations with Spring Boot — `db/migration` scripts, `spring.flyway.*`, baseline/validate, Java migrations | **User Prompt:** `Add or review Flyway migrations in context using @313-frameworks-spring-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@311` / `@312` for JDBC and Spring Data JDBC. | -| [321-frameworks-spring-boot-testing-unit-tests](.cursor/rules/321-frameworks-spring-boot-testing-unit-tests.md) | Write unit tests for Spring Boot — pure Mockito for @Service/@Component, @WebMvcTest, @JsonTest | **User Prompt:** `Add or improve unit tests in context using @321-frameworks-spring-boot-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Pure unit + slice tests with Mockito. For integration tests use @322. | -| [322-frameworks-spring-boot-testing-integration-tests](.cursor/rules/322-frameworks-spring-boot-testing-integration-tests.md) | Write integration tests for Spring Boot — Testcontainers, TestRestTemplate, data management, test structure | **User Prompt:** `Add or improve integration tests in context using @322-frameworks-spring-boot-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing guidelines. | -| [323-frameworks-spring-boot-testing-acceptance-tests](.cursor/rules/323-frameworks-spring-boot-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Spring Boot — @acceptance scenarios, RestAssured, @SpringBootTest, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @323-frameworks-spring-boot-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Spring Boot. | Preconditions: .feature file in context; Spring Boot. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [301-frameworks-spring-boot-core](@301-frameworks-spring-boot-core.md) | Apply Spring Boot core guidelines — @SpringBootApplication, component annotations, bean definition, @ConfigurationProperties, profiles, constructor injection | **User Prompt:** `Improve the Spring Boot application in context using @301-frameworks-spring-boot-core` **Note:** Add in the context the application classes or project. | Core Spring Boot best practices. | +| [302-frameworks-spring-boot-rest](@302-frameworks-spring-boot-rest.md) | Design and improve REST APIs with Spring Boot — HTTP methods, URIs, status codes, DTOs, versioning, error handling, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @302-frameworks-spring-boot-rest` **Note:** Add in the context the controllers or API classes. | REST API design principles. | +| [311-frameworks-spring-jdbc](@311-frameworks-spring-jdbc.md) | Programmatic JDBC with Spring — JdbcClient (Spring Framework 6.1+), JdbcTemplate for batch/streaming APIs, parameterized SQL, RowMapper, batch updates, transactions | **User Prompt:** `Review or improve JDBC data access using @311-frameworks-spring-jdbc` **Note:** Add in the context repository/DAO classes or SQL usage. | Use for ad-hoc SQL and JDBC; for repository-style aggregates prefer `@312-frameworks-spring-data-jdbc`. | +| [312-frameworks-spring-data-jdbc](@312-frameworks-spring-data-jdbc.md) | Apply Spring Data JDBC with Java records — entity design, repository pattern, immutable updates, aggregate relationships, custom queries | **User Prompt:** `Improve the data access layer in context using @312-frameworks-spring-data-jdbc` **Note:** Add in the context the entities, repositories, or project. | Spring Data JDBC with records. | +| [313-frameworks-spring-db-migrations-flyway](@313-frameworks-spring-db-migrations-flyway.md) | Flyway database migrations with Spring Boot — `db/migration` scripts, `spring.flyway.*`, baseline/validate, Java migrations | **User Prompt:** `Add or review Flyway migrations in context using @313-frameworks-spring-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@311` / `@312` for JDBC and Spring Data JDBC. | +| [321-frameworks-spring-boot-testing-unit-tests](@321-frameworks-spring-boot-testing-unit-tests.md) | Write unit tests for Spring Boot — pure Mockito for @Service/@Component, @WebMvcTest, @JsonTest | **User Prompt:** `Add or improve unit tests in context using @321-frameworks-spring-boot-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Pure unit + slice tests with Mockito. For integration tests use @322. | +| [322-frameworks-spring-boot-testing-integration-tests](@322-frameworks-spring-boot-testing-integration-tests.md) | Write integration tests for Spring Boot — Testcontainers, TestRestTemplate, data management, test structure | **User Prompt:** `Add or improve integration tests in context using @322-frameworks-spring-boot-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing guidelines. | +| [323-frameworks-spring-boot-testing-acceptance-tests](@323-frameworks-spring-boot-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Spring Boot — @acceptance scenarios, RestAssured, @SpringBootTest, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @323-frameworks-spring-boot-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Spring Boot. | Preconditions: .feature file in context; Spring Boot. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## Quarkus rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [401-frameworks-quarkus-core](.cursor/rules/401-frameworks-quarkus-core.md) | Apply Quarkus core guidelines — CDI beans, @ApplicationScoped, @ConfigMapping, profiles, lifecycle, extension-friendly structure | **User Prompt:** `Improve the Quarkus application in context using @401-frameworks-quarkus-core` **Note:** Add in the context the application classes or project. | Core Quarkus and CDI best practices. | -| [402-frameworks-quarkus-rest](.cursor/rules/402-frameworks-quarkus-rest.md) | Design and improve REST APIs with Quarkus REST (JAX-RS) — resources, HTTP semantics, DTOs, validation, error mapping, OpenAPI as contract (API-first), SmallRye optional | **User Prompt:** `Review and improve the REST API in context using @402-frameworks-quarkus-rest` **Note:** Add in the context the resource classes or project. | REST on Quarkus REST / JAX-RS. | -| [411-frameworks-quarkus-jdbc](.cursor/rules/411-frameworks-quarkus-jdbc.md) | Programmatic JDBC with Quarkus — Agroal datasource, JdbcTemplate or java.sql with named parameters, transactions, records | **User Prompt:** `Review or improve JDBC data access using @411-frameworks-quarkus-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; no ORM. | -| [412-frameworks-quarkus-panache](.cursor/rules/412-frameworks-quarkus-panache.md) | Data access with Hibernate ORM Panache — repositories, active record, queries, transactions; keep persistence simple (no Spring Data JPA) | **User Prompt:** `Improve the data access layer in context using @412-frameworks-quarkus-panache` **Note:** Add entities, repositories, or project. | Panache for relational data; pair with `@411` for raw SQL. | -| [413-frameworks-quarkus-db-migrations-flyway](.cursor/rules/413-frameworks-quarkus-db-migrations-flyway.md) | Flyway database migrations with Quarkus — `quarkus-flyway`, `db/migration`, `quarkus.flyway.*`, migrate-at-start | **User Prompt:** `Add or review Flyway migrations in context using @413-frameworks-quarkus-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@411` / `@412` for JDBC and Panache. | -| [421-frameworks-quarkus-testing-unit-tests](.cursor/rules/421-frameworks-quarkus-testing-unit-tests.md) | Write unit tests for Quarkus — Mockito, @QuarkusTest with injection toggles, RESTAssured slices where appropriate | **User Prompt:** `Add or improve unit tests in context using @421-frameworks-quarkus-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Prefer fast tests without full bootstrap when possible. | -| [422-frameworks-quarkus-testing-integration-tests](.cursor/rules/422-frameworks-quarkus-testing-integration-tests.md) | Write integration tests for Quarkus — @QuarkusTest, Testcontainers, Dev Services, persistence and HTTP | **User Prompt:** `Add or improve integration tests in context using @422-frameworks-quarkus-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing with real infrastructure. | -| [423-frameworks-quarkus-testing-acceptance-tests](.cursor/rules/423-frameworks-quarkus-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Quarkus — @QuarkusTest, REST Assured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @423-frameworks-quarkus-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Quarkus. | Preconditions: .feature file in context; Quarkus. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [401-frameworks-quarkus-core](@401-frameworks-quarkus-core.md) | Apply Quarkus core guidelines — CDI beans, @ApplicationScoped, @ConfigMapping, profiles, lifecycle, extension-friendly structure | **User Prompt:** `Improve the Quarkus application in context using @401-frameworks-quarkus-core` **Note:** Add in the context the application classes or project. | Core Quarkus and CDI best practices. | +| [402-frameworks-quarkus-rest](@402-frameworks-quarkus-rest.md) | Design and improve REST APIs with Quarkus REST (JAX-RS) — resources, HTTP semantics, DTOs, validation, error mapping, OpenAPI as contract (API-first), SmallRye optional | **User Prompt:** `Review and improve the REST API in context using @402-frameworks-quarkus-rest` **Note:** Add in the context the resource classes or project. | REST on Quarkus REST / JAX-RS. | +| [411-frameworks-quarkus-jdbc](@411-frameworks-quarkus-jdbc.md) | Programmatic JDBC with Quarkus — Agroal datasource, JdbcTemplate or java.sql with named parameters, transactions, records | **User Prompt:** `Review or improve JDBC data access using @411-frameworks-quarkus-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; no ORM. | +| [412-frameworks-quarkus-panache](@412-frameworks-quarkus-panache.md) | Data access with Hibernate ORM Panache — repositories, active record, queries, transactions; keep persistence simple (no Spring Data JPA) | **User Prompt:** `Improve the data access layer in context using @412-frameworks-quarkus-panache` **Note:** Add entities, repositories, or project. | Panache for relational data; pair with `@411` for raw SQL. | +| [413-frameworks-quarkus-db-migrations-flyway](@413-frameworks-quarkus-db-migrations-flyway.md) | Flyway database migrations with Quarkus — `quarkus-flyway`, `db/migration`, `quarkus.flyway.*`, migrate-at-start | **User Prompt:** `Add or review Flyway migrations in context using @413-frameworks-quarkus-db-migrations-flyway` **Note:** Add `pom.xml`, `application.properties`, or migration SQL. | Pairs with `@411` / `@412` for JDBC and Panache. | +| [421-frameworks-quarkus-testing-unit-tests](@421-frameworks-quarkus-testing-unit-tests.md) | Write unit tests for Quarkus — Mockito, @QuarkusTest with injection toggles, RESTAssured slices where appropriate | **User Prompt:** `Add or improve unit tests in context using @421-frameworks-quarkus-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Prefer fast tests without full bootstrap when possible. | +| [422-frameworks-quarkus-testing-integration-tests](@422-frameworks-quarkus-testing-integration-tests.md) | Write integration tests for Quarkus — @QuarkusTest, Testcontainers, Dev Services, persistence and HTTP | **User Prompt:** `Add or improve integration tests in context using @422-frameworks-quarkus-testing-integration-tests` **Note:** Add in the context the project or test classes. | Integration testing with real infrastructure. | +| [423-frameworks-quarkus-testing-acceptance-tests](@423-frameworks-quarkus-testing-acceptance-tests.md) | Implement acceptance tests from Gherkin .feature file for Quarkus — @QuarkusTest, REST Assured, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @423-frameworks-quarkus-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Quarkus. | Preconditions: .feature file in context; Quarkus. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## Micronaut rules -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [501-frameworks-micronaut-core](.cursor/rules/501-frameworks-micronaut-core.md) | Apply Micronaut core guidelines — Micronaut.run, @Singleton/@Factory, @ConfigurationProperties, @Requires, scheduling, graceful shutdown | **User Prompt:** `Improve the Micronaut application in context using @501-frameworks-micronaut-core` **Note:** Add in the context the application classes or project. | Core Micronaut and DI best practices. | -| [502-frameworks-micronaut-rest](.cursor/rules/502-frameworks-micronaut-rest.md) | Design and improve REST APIs with Micronaut — @Controller, HTTP semantics, DTOs, validation, errors, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @502-frameworks-micronaut-rest` **Note:** Add in the context the controllers or project. | REST on Micronaut HTTP. | -| [511-frameworks-micronaut-jdbc](.cursor/rules/511-frameworks-micronaut-jdbc.md) | Programmatic JDBC with Micronaut — pooled DataSource, PreparedStatement, text blocks, @Transactional, records, domain exceptions | **User Prompt:** `Review or improve JDBC data access using @511-frameworks-micronaut-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; pair with `@512` for generated repositories. | -| [512-frameworks-micronaut-data](.cursor/rules/512-frameworks-micronaut-data.md) | Micronaut Data — @MappedEntity, repositories, @Query, transactions, pagination, Testcontainers tests | **User Prompt:** `Improve the data access layer in context using @512-frameworks-micronaut-data` **Note:** Add entities, repositories, or project. | Repository-style access; use `@511` for raw JDBC. | -| [513-frameworks-micronaut-db-migrations-flyway](.cursor/rules/513-frameworks-micronaut-db-migrations-flyway.md) | Flyway database migrations with Micronaut — `micronaut-flyway`, `db/migration`, `flyway.datasources.*` | **User Prompt:** `Add or review Flyway migrations in context using @513-frameworks-micronaut-db-migrations-flyway` **Note:** Add `pom.xml`, `application.yml`, or migration SQL. | Pairs with `@511` / `@512` for JDBC and Micronaut Data. | -| [521-frameworks-micronaut-testing-unit-tests](.cursor/rules/521-frameworks-micronaut-testing-unit-tests.md) | Unit tests for Micronaut — Mockito-first, @MicronautTest with @MockBean, HttpClient | **User Prompt:** `Add or improve unit tests in context using @521-frameworks-micronaut-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Fast tests without full boot when possible. | -| [522-frameworks-micronaut-testing-integration-tests](.cursor/rules/522-frameworks-micronaut-testing-integration-tests.md) | Integration tests for Micronaut — @MicronautTest, TestPropertyProvider, Testcontainers, HttpClient | **User Prompt:** `Add or improve integration tests in context using @522-frameworks-micronaut-testing-integration-tests` **Note:** Add in the context the project or test classes. | Real infrastructure in tests. | -| [523-frameworks-micronaut-testing-acceptance-tests](.cursor/rules/523-frameworks-micronaut-testing-acceptance-tests.md) | Acceptance tests from Gherkin .feature for Micronaut — @acceptance, HttpClient, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @523-frameworks-micronaut-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Micronaut. | Preconditions: .feature in context; Micronaut. For framework-agnostic Java use @133-java-testing-acceptance-tests. | +| [501-frameworks-micronaut-core](@501-frameworks-micronaut-core.md) | Apply Micronaut core guidelines — Micronaut.run, @Singleton/@Factory, @ConfigurationProperties, @Requires, scheduling, graceful shutdown | **User Prompt:** `Improve the Micronaut application in context using @501-frameworks-micronaut-core` **Note:** Add in the context the application classes or project. | Core Micronaut and DI best practices. | +| [502-frameworks-micronaut-rest](@502-frameworks-micronaut-rest.md) | Design and improve REST APIs with Micronaut — @Controller, HTTP semantics, DTOs, validation, errors, OpenAPI as contract (API-first) | **User Prompt:** `Review and improve the REST API in context using @502-frameworks-micronaut-rest` **Note:** Add in the context the controllers or project. | REST on Micronaut HTTP. | +| [511-frameworks-micronaut-jdbc](@511-frameworks-micronaut-jdbc.md) | Programmatic JDBC with Micronaut — pooled DataSource, PreparedStatement, text blocks, @Transactional, records, domain exceptions | **User Prompt:** `Review or improve JDBC data access using @511-frameworks-micronaut-jdbc` **Note:** Add in the context repository or SQL usage. | Explicit SQL; pair with `@512` for generated repositories. | +| [512-frameworks-micronaut-data](@512-frameworks-micronaut-data.md) | Micronaut Data — @MappedEntity, repositories, @Query, transactions, pagination, Testcontainers tests | **User Prompt:** `Improve the data access layer in context using @512-frameworks-micronaut-data` **Note:** Add entities, repositories, or project. | Repository-style access; use `@511` for raw JDBC. | +| [513-frameworks-micronaut-db-migrations-flyway](@513-frameworks-micronaut-db-migrations-flyway.md) | Flyway database migrations with Micronaut — `micronaut-flyway`, `db/migration`, `flyway.datasources.*` | **User Prompt:** `Add or review Flyway migrations in context using @513-frameworks-micronaut-db-migrations-flyway` **Note:** Add `pom.xml`, `application.yml`, or migration SQL. | Pairs with `@511` / `@512` for JDBC and Micronaut Data. | +| [521-frameworks-micronaut-testing-unit-tests](@521-frameworks-micronaut-testing-unit-tests.md) | Unit tests for Micronaut — Mockito-first, @MicronautTest with @MockBean, HttpClient | **User Prompt:** `Add or improve unit tests in context using @521-frameworks-micronaut-testing-unit-tests` **Note:** Add in the context the classes to test or test classes. | Fast tests without full boot when possible. | +| [522-frameworks-micronaut-testing-integration-tests](@522-frameworks-micronaut-testing-integration-tests.md) | Integration tests for Micronaut — @MicronautTest, TestPropertyProvider, Testcontainers, HttpClient | **User Prompt:** `Add or improve integration tests in context using @522-frameworks-micronaut-testing-integration-tests` **Note:** Add in the context the project or test classes. | Real infrastructure in tests. | +| [523-frameworks-micronaut-testing-acceptance-tests](@523-frameworks-micronaut-testing-acceptance-tests.md) | Acceptance tests from Gherkin .feature for Micronaut — @acceptance, HttpClient, Testcontainers, WireMock | **Interactive User Prompt:** `Implement acceptance tests from my Gherkin feature file using @523-frameworks-micronaut-testing-acceptance-tests` **Note:** Add the .feature file to context. Project must use Micronaut. | Preconditions: .feature in context; Micronaut. For framework-agnostic Java use @133-java-testing-acceptance-tests. | ## AI Tooling -| Cursor Rule | Description | Prompt | Notes | +| Skill | Description | Prompt | Notes | +|----|----|----|----| +| [200-agents-md](@200-agents-md.md) | Generate AGENTS.md files for Java repositories using a modular step-based approach. AGENTS.md guides AI agents and contributors on project conventions, tech stack, file structure, commands, Git workflow, and boundaries | **Interactive User Prompt:** `Generate AGENTS.md for the project with the skill @200-agents-md` **Note:** Add in the context the project root folder. The rule will ask 6 questions to understand requirements before generating. Handles existing AGENTS.md (overwrite/merge/backup). | Focused on AGENTS.md generation only. Asks role, tech stack, file structure, commands, Git workflow, and boundaries before generating | + +## Technologies + +| Skill | Description | Prompt | Notes | |----|----|----|----| -| [200-agents-md](.cursor/rules/200-agents-md.md) | Generate AGENTS.md files for Java repositories using a modular step-based approach. AGENTS.md guides AI agents and contributors on project conventions, tech stack, file structure, commands, Git workflow, and boundaries | **Interactive User Prompt:** `Generate AGENTS.md for the project with the cursor rule @200-agents-md` **Note:** Add in the context the project root folder. The rule will ask 6 questions to understand requirements before generating. Handles existing AGENTS.md (overwrite/merge/backup). | Focused on AGENTS.md generation only. Asks role, tech stack, file structure, commands, Git workflow, and boundaries before generating | +| [701-technologies-openapi](@701-technologies-openapi.md) | Framework-agnostic OpenAPI 3.x guidance — spec structure, reusable schemas, security schemes, examples, validation, and breaking-change awareness | **User Prompt:** `Review and improve my OpenAPI specification using @701-technologies-openapi` **Note:** Add the OpenAPI spec file (`openapi.yaml`/`openapi.json`) to context. | Use when the goal is API contract quality independent of Spring Boot, Quarkus, or Micronaut. | +| [702-technologies-wiremock](@702-technologies-wiremock.md) | Framework-agnostic WireMock guidance — robust stubs, request matching, response design, verification, and test isolation | **User Prompt:** `Design or review WireMock stubs using @702-technologies-wiremock` **Note:** Add mappings, test code, or expected HTTP interactions to context. | Use for reliable HTTP stubbing patterns across Java frameworks. | --- -**Note:** This guide is self-contained and portable. Copy it into any Java project to get started with Cursor Rules for Java development. +**Note:** This guide is self-contained and portable. Copy it into any Java project to get started with Skills for Java development. ``` From 2e3e3bc4cb4820c1d0f1d918ed38d423b43a1f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Fri, 10 Apr 2026 10:25:42 +0200 Subject: [PATCH 4/4] fix(docs): correct inventory artifact names in changelog Update the 0.14.0 changelog entries so the inventory skills reference the generated INVENTORY-* filenames. Made-with: Cursor --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b1de18a..9ea34a37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - **Skills**: - - `@001-skills-inventory` checklist skill that emits `SKILLS-JAVA.md` in the project root using the embedded system-prompts template - - `@002-agents-inventory` checklist skill that emits `AGENTS-JAVA.md` with the embedded agents table and installation targets + - `@001-skills-inventory` checklist skill that emits `INVENTORY-SKILLS-JAVA.md` in the project root using the embedded system-prompts template + - `@002-agents-inventory` checklist skill that emits `INVENTORY-AGENTS-JAVA.md` with the embedded agents table and installation targets - `@003-agents-installation` interactive installer that copies the six embedded robot agents into `.cursor/agents` or `.claude/agents` - Add INVEST validation to agile user-story workflow in `@014-agile-user-story` (#633) - Maven Central search guidance skill (`@114-java-maven-search`) (#605)