From 1b0c8ab576517412f05f1b82e8906c1ba319d92a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Mon, 9 Mar 2026 15:28:46 +0100 Subject: [PATCH 1/4] Initial development --- .../src/main/resources/skill-inventory.json | 6 +- .../src/main/resources/skills/014-skill.md | 105 +++++++++++ .../src/main/resources/skills/020-skill.md | 151 ++++++++++++++++ .../src/main/resources/skills/021-skill.md | 164 ++++++++++++++++++ .../src/main/resources/skills/030-skill.md | 156 +++++++++++++++++ .../skills/{010-skill.md => 040-skill.md} | 4 +- skills/014-agile-create-user-story/SKILL.md | 105 +++++++++++ .../SKILL.md | 151 ++++++++++++++++ .../SKILL.md | 164 ++++++++++++++++++ .../SKILL.md | 156 +++++++++++++++++ .../SKILL.md | 4 +- 11 files changed, 1161 insertions(+), 5 deletions(-) create mode 100644 skills-generator/src/main/resources/skills/014-skill.md create mode 100644 skills-generator/src/main/resources/skills/020-skill.md create mode 100644 skills-generator/src/main/resources/skills/021-skill.md create mode 100644 skills-generator/src/main/resources/skills/030-skill.md rename skills-generator/src/main/resources/skills/{010-skill.md => 040-skill.md} (93%) create mode 100644 skills/014-agile-create-user-story/SKILL.md create mode 100644 skills/020-architecture-functional-requirements-cli/SKILL.md create mode 100644 skills/021-architecture-functional-requirements-rest/SKILL.md create mode 100644 skills/030-architecture-non-functional-requirements/SKILL.md rename skills/{010-java-design-plans => 040-planning-enhance-ai-plan-mode}/SKILL.md (93%) diff --git a/skills-generator/src/main/resources/skill-inventory.json b/skills-generator/src/main/resources/skill-inventory.json index 834e1789..77077079 100644 --- a/skills-generator/src/main/resources/skill-inventory.json +++ b/skills-generator/src/main/resources/skill-inventory.json @@ -1,5 +1,9 @@ [ - {"id": "010", "requiresSystemPrompt": false, "skillId": "010-java-design-plans"}, + {"id": "014", "requiresSystemPrompt": false, "skillId": "014-agile-create-user-story"}, + {"id": "020", "requiresSystemPrompt": false, "skillId": "020-architecture-functional-requirements-cli"}, + {"id": "021", "requiresSystemPrompt": false, "skillId": "021-architecture-functional-requirements-rest"}, + {"id": "030", "requiresSystemPrompt": false, "skillId": "030-architecture-non-functional-requirements"}, + {"id": "040", "requiresSystemPrompt": false, "skillId": "040-planning-enhance-ai-plan-mode"}, {"id": 110}, {"id": 111}, {"id": 112}, diff --git a/skills-generator/src/main/resources/skills/014-skill.md b/skills-generator/src/main/resources/skills/014-skill.md new file mode 100644 index 00000000..00749255 --- /dev/null +++ b/skills-generator/src/main/resources/skills/014-skill.md @@ -0,0 +1,105 @@ +--- +name: 014-agile-create-user-story +description: Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. +--- + +# Create Agile User Stories + +Guides the agent to ask targeted questions to gather details for a user story and its Gherkin acceptance criteria, then generate a Markdown user story and a separate Gherkin `.feature` file. + +--- + +## Phase 1: Information Gathering + +Acknowledge the request and inform the user that you need to ask some questions. Ask the following, waiting for input after each block or as appropriate. + +### User Story Core Details + +1. **Title/ID:** "What is a concise title or unique ID for this user story?" +2. **User Role (Persona):** "Who is the primary user (persona) for this feature? (e.g., 'registered user', 'administrator', 'guest visitor')" +3. **Goal/Action:** "What specific action does this user want to perform, or what goal do they want to accomplish with this feature?" +4. **Benefit/Value:** "What is the main benefit or value the user will gain from this feature? Why is this important to them?" + +### Gherkin Feature File Details + +5. **Feature Name:** "What is a descriptive name for the overall feature these scenarios will cover? (This will be the `Feature:` line in the Gherkin file, e.g., 'User Authentication Management')." +6. **(Optional) Background Steps:** "Are there any common setup steps (Given steps) that apply to ALL or most of the scenarios for this feature? If so, please list them." + +### Acceptance Criteria / Gherkin Scenarios + +Inform the user: "Now, let's detail the acceptance criteria with concrete examples. Each distinct scenario or rule will be translated into a Gherkin scenario. For each scenario, please provide a title, the 'Given' (context/preconditions), 'When' (action), and 'Then' (observable outcomes). Include specific data examples where applicable (e.g., input values, expected messages, JSON snippets)." + +7. **Scenario 1 (e.g., Main Success Path):** + - Scenario Title: "What's a brief title for this first scenario?" + - Given: "What's the context or precondition(s)?" + - When: "What specific action is performed?" + - Then: "What are the observable outcome(s)?" + - Data Examples: "Any specific data (inputs/outputs) for this scenario?" + +8. **Additional Scenarios:** + - Ask: "Do you have another scenario to define (e.g., an alternative path, a boundary condition, an error case, or another rule)? (Yes/No)" + - If Yes, repeat the questions from step 7 for each new scenario. Continue until the user indicates 'No' more scenarios. + +### File Naming and Linking + +9. **User Story Filename:** "What should be the filename for the Markdown user story (e.g., `US-001_Login_Functionality.md`)?" +10. **Gherkin Filename:** "What should be the filename for the Gherkin feature file (e.g., `US-001_login_functionality.feature`)?" +11. **Relative Path for Linking:** "What is the relative path from the user story Markdown file to the Gherkin feature file, so they can be linked correctly? (e.g., `../features/US-001_login_functionality.feature` or `features/US-001_login_functionality.feature`)." + +### Optional User Story Notes + +12. **Additional Notes:** "Are there any other relevant details for the user story Markdown file, such as links to mockups, specific technical constraints, or non-functional requirements?" + +--- + +## Phase 2: Artifact Content Generation + +Once all information is gathered, inform the user you will now generate the content for the two files. Provide the content for each file clearly separated. + +### User Story Markdown File + +Format the user story using this template: + +```markdown +# User Story: [Title/ID] + +**As a** [User Role] +**I want to** [Goal/Action] +**So that** [Benefit/Value] + +## Acceptance Criteria + +See: [Relative path to Gherkin file] + +## Notes + +[Additional notes if provided] +``` + +### Gherkin Feature File + +Format the Gherkin file with: + +```gherkin +Feature: [Feature Name] + [Optional background steps if provided] + + Scenario: [Scenario Title] + Given [context/preconditions] + When [action] + Then [observable outcomes] +``` + +**Data examples:** Use docstrings for JSON/XML or tables for structured data when the user provides complex examples. + +--- + +## Output Checklist + +Before finalizing: + +- [ ] User story has title, role, goal, benefit +- [ ] User story links to the Gherkin feature file +- [ ] Gherkin file has Feature line and descriptive scenarios +- [ ] Each scenario has Given, When, Then +- [ ] Complex data uses docstrings or Example tables diff --git a/skills-generator/src/main/resources/skills/020-skill.md b/skills-generator/src/main/resources/skills/020-skill.md new file mode 100644 index 00000000..c98e7ebe --- /dev/null +++ b/skills-generator/src/main/resources/skills/020-skill.md @@ -0,0 +1,151 @@ +--- +name: 020-architecture-functional-requirements-cli +description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions. +--- + +# Create ADRs for CLI Development + +Guides stakeholders through a structured conversation to uncover and document technical decisions and functional requirements for CLI applications. The ADR is the documentation of that conversation, not the conversation itself. + +--- + +## Phase 0: Get Current Date + +Before starting, run `date` in the terminal to ensure accurate timestamps in the ADR document. Use this for all `[Current Date]` placeholders. + +--- + +## Phase 1: Conversational Information Gathering + +Ask one or two questions at a time. Build on previous answers. Acknowledge and validate responses before moving on. Adjust questions to CLI complexity; skip irrelevant areas and dive deeper where needed. + +### 1. Initial Context Discovery + +**Opening:** +- What CLI tool are you building and what problem does it solve? +- What's driving the need? Replacing something or creating new? +- Who are the primary users and their technical backgrounds? + +**Follow-up:** +- What existing systems or workflows will this CLI integrate with? +- Constraints: team expertise, tech preferences, organizational standards? +- Expected timeline and scope? + +### 2. Functional Requirements + +**Core functionality:** +- Main workflow: what does a user do from start to finish? +- Essential commands or operations? +- Input handling: files, arguments, configuration? +- Output formats and feedback needed? + +**User experience:** +- How technical are users? Need extensive help? +- Simple single-purpose tool or multi-command suite? +- Critical error scenarios to handle gracefully? +- How will users install and update? + +### 3. Technical Decision Discovery + +**Language & framework:** Team expertise, performance requirements (startup, memory), integration needs, familiar CLI frameworks. + +**Architecture:** Command complexity, plugin vs monolithic, configuration (files/env/args), error handling and logging. + +**Data & I/O:** Types of data, streaming for large datasets, output formatting (JSON, tables, plain text). + +**Third-party integration:** External APIs, auth methods, credential management, rate limits, throttling, multi-provider support, offline/caching, compliance, testing integrations. + +**Testing:** Current approach, CLI interaction testing, code quality tools, cross-platform compatibility. + +**Distribution:** Packaging, CI/CD, security and compliance. + +### 4. Decision Synthesis & Validation + +- Summarize requirements and ask: "Does this sound accurate?" +- Any important decisions we haven't discussed? +- Top 3 most important technical decisions? +- Deal-breakers or must-haves? + +### 5. ADR Creation Proposal + +Only after thorough conversation: "Based on our conversation, I'd like to create an ADR that documents these key decisions... Would you like me to proceed?" + +--- + +## Phase 2: ADR Document Generation + +Inform the user you will generate the ADR. Use the current date from Phase 0 for all date placeholders. + +### ADR Structure + +```markdown +# ADR-XXX: [Title] + +**Status:** Proposed | Accepted | Deprecated +**Date:** [Current Date] +**Decisions:** [Brief summary] + +## Context +[Business context, problem statement, user needs] + +## Functional Requirements +[Core commands, workflows, input/output, error handling] + +## Technical Decisions +[With rationale for each] + +### Language & Framework +[Choice and why] + +### Architecture +[Command structure, configuration, plugins] + +### Data & Integration +[Processing, external services, auth] + +### Testing & Distribution +[Approach and tools] + +## Alternatives Considered +[Rejected options and why] + +## Consequences +[Impact, trade-offs, follow-up work] + +## References +[Links, related ADRs] +``` + +--- + +## Phase 3: Next Steps and Recommendations + +After generating the ADR: + +**Next Steps:** +1. Review and validate with stakeholders +2. Create technical specifications and CLI documentation +3. Set up dev environment and project structure +4. Begin implementation with MVP +5. Establish testing and distribution frameworks + +**ADR Management:** +- Keep the ADR as a living document +- Reference during code reviews and architectural discussions +- Plan regular reviews as the CLI evolves +- Link to user stories, requirements, implementation tasks + +--- + +## Key Principles + +| Principle | Practice | +|-----------|----------| +| **Discovery over assumption** | Never assume; ask. Understand the "why". Explore edge cases. | +| **Collaborative decisions** | Help stakeholders think through trade-offs. Document reasoning, not just decisions. | +| **Iterative understanding** | Build incrementally. Circle back when new information emerges. | +| **Context-aware** | Tailor to project complexity, team expertise, constraints. | + +**Create the ADR when:** Clear context, key decisions identified, alternatives explored, understanding validated. + +**Continue the conversation when:** Requirements unclear, decisions arbitrary, alternatives not considered, stakeholders uncertain. diff --git a/skills-generator/src/main/resources/skills/021-skill.md b/skills-generator/src/main/resources/skills/021-skill.md new file mode 100644 index 00000000..9856d916 --- /dev/null +++ b/skills-generator/src/main/resources/skills/021-skill.md @@ -0,0 +1,164 @@ +--- +name: 021-architecture-functional-requirements-rest +description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions. +--- + +# Create ADRs for REST API Development + +Guides stakeholders through a structured conversation to uncover and document technical decisions and functional requirements for REST API implementations. The ADR is the documentation of that conversation, not the conversation itself. + +--- + +## Phase 0: Get Current Date + +Before starting, run `date` in the terminal to ensure accurate timestamps in the ADR document. Use this for all `[Current Date]` placeholders. + +--- + +## Phase 1: Conversational Information Gathering + +Ask one or two questions at a time. Build on previous answers. Acknowledge and validate responses before moving on. Adjust questions to API complexity; skip irrelevant areas and dive deeper where needed. + +### 1. Initial Context Discovery + +**Opening:** +- What API are you building and what business problem does it solve? +- What's driving the need? Replacing existing system, new functionality, or integrations? +- Who are the primary consumers: internal services, mobile apps, third-party developers, or end users? + +**Follow-up:** +- What existing systems or data sources will this API integrate with? +- Constraints: team expertise, organizational standards, compliance (GDPR, HIPAA, PCI)? +- Expected timeline and success criteria? +- Anticipated load: users, requests/sec, data volume? + +### 2. Functional Requirements + +**Core functionality:** +- Main use cases and essential operations? +- Resources and entities to expose; how do they relate? +- Input validation and data transformation needs? +- Response formats and data structures consumers need? + +**API design & UX:** +- How technical are consumers? Need extensive docs and SDKs? +- Simple CRUD API or complex business operations? +- Critical error scenarios to handle gracefully? +- How will consumers discover endpoints? +- Need real-time capabilities (webhooks, server-sent events)? + +### 3. Technical Decision Discovery + +**Language & framework:** Team expertise, performance (response time, throughput, memory), integration with existing systems, familiar REST frameworks. + +**API design & architecture:** Monolithic vs microservices; resource-oriented REST vs GraphQL vs RPC; API versioning; bulk ops, filtering, sorting, pagination; synchronous vs async vs webhooks for long-running ops. + +**Authentication & security:** JWT, OAuth2, API keys, mutual TLS; authorization and RBAC; rate limiting, throttling, quotas; compliance; securing sensitive data. + +**Data management:** SQL vs NoSQL vs hybrid; caching strategy; validation, serialization, transformation; consistency and transactions; schema evolution. + +**Third-party integration:** External services, auth methods, failure handling (degrade vs fail fast), rate limits, circuit breakers, multi-provider support, caching, contract testing, webhook handling. + +**Testing:** Current approach, unit/integration/contract testing, OpenAPI/Swagger, load testing, test data management. + +**Infrastructure:** Containerization, cloud platform, config and secrets, scaling strategy, blue-green or canary deployments. + +**Monitoring:** Health, performance, usage; logging; distributed tracing; alerting; business metrics and adoption. + +### 4. Decision Synthesis & Validation + +- Summarize key decisions and ask: "Does this accurately capture your requirements?" +- Any important decisions or trade-offs we haven't explored? +- Top 3 most critical technical decisions? +- Deal-breakers or must-haves? Aspects needing the most detail? +- Filename for the ADR? Related documents or ADRs to reference? + +### 5. ADR Creation Proposal + +Only after thorough conversation: "Based on our discussion, I'd like to create an ADR that documents these key decisions and their rationale... Should I proceed?" + +--- + +## Phase 2: ADR Document Generation + +Inform the user you will generate the ADR. Use the current date from Phase 0 for all date placeholders. + +### ADR Structure + +```markdown +# ADR-XXX: [Title] + +**Status:** Proposed | Accepted | Deprecated +**Date:** [Current Date] +**Decisions:** [Brief summary] + +## Context +[Business context, problem statement, consumer needs] + +## Functional Requirements +[Use cases, resources, operations, response formats, error handling] + +## Technical Decisions +[With rationale for each] + +### Language & Framework +[Choice and why] + +### API Design & Architecture +[Structure, versioning, patterns] + +### Authentication & Security +[Mechanism, authorization, rate limiting] + +### Data & Persistence +[Storage, caching, validation] + +### Integration & Infrastructure +[External services, deployment, scaling] + +### Testing & Monitoring +[Approach, observability] + +## Alternatives Considered +[Rejected options and why] + +## Consequences +[Impact, trade-offs, follow-up work] + +## References +[Links, related ADRs] +``` + +--- + +## Phase 3: Next Steps and Recommendations + +After generating the ADR: + +**Next Steps:** +1. Review and validate with stakeholders and technical teams +2. Create detailed technical specifications and API documentation +3. Set up dev environment and initial project structure +4. Begin implementation with MVP or proof-of-concept +5. Establish monitoring and testing frameworks early + +**ADR Management:** +- Keep the ADR as a living document +- Reference during code reviews and architectural discussions +- Plan regular reviews as the system evolves +- Link to user stories, requirements, implementation tasks + +--- + +## Key Principles + +| Principle | Practice | +|-----------|----------| +| **Discovery over assumption** | Never assume; ask and validate. Understand the "why". Explore edge cases. | +| **Collaborative decisions** | Help stakeholders think through trade-offs. Document reasoning, not just decisions. | +| **Iterative understanding** | Build incrementally. Circle back when new information emerges. | +| **Context-aware** | Tailor to API complexity, business domain, team maturity, constraints. | + +**Create the ADR when:** Clear context, key decisions identified, alternatives explored, understanding validated. + +**Continue the conversation when:** Requirements unclear, decisions arbitrary, alternatives not explored, stakeholders uncertain, critical context missing. diff --git a/skills-generator/src/main/resources/skills/030-skill.md b/skills-generator/src/main/resources/skills/030-skill.md new file mode 100644 index 00000000..53b76ed1 --- /dev/null +++ b/skills-generator/src/main/resources/skills/030-skill.md @@ -0,0 +1,156 @@ +--- +name: 030-architecture-non-functional-requirements +description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. +--- + +# Create ADRs for Non-Functional Requirements + +Guides stakeholders through a structured conversation to uncover and document architectural decisions for quality attributes using the ISO/IEC 25010:2023 quality model. The ADR is the documentation of that conversation, not the conversation itself. Act as an architecture consultant: challenge-first, consultative, adaptive. + +--- + +## Phase 0: Get Current Date + +Before starting, run `date` in the terminal to ensure accurate timestamps in the ADR document. Use this for all `[Current Date]` placeholders. + +--- + +## Phase 1: Conversational Information Gathering + +Ask one or two questions at a time. Build on previous answers. Stay consultative, not interrogative. Skip quality characteristics irrelevant to the use case; dive deeper where there's uncertainty or risk. + +### Opening (Challenge-First) + +"What's the main non-functional challenge you're trying to solve? Based on ISO/IEC 25010:2023, are you dealing with: + +- **Functional Suitability:** Completeness, correctness, appropriateness? +- **Performance Efficiency:** Response times, throughput, resource utilization, capacity? +- **Compatibility:** Co-existence, interoperability? +- **Interaction Capability:** Recognizability, learnability, operability, user protection, engagement, inclusivity, assistance, self-descriptiveness? +- **Reliability:** Faultlessness, availability, fault tolerance, recoverability? +- **Security:** Confidentiality, integrity, non-repudiation, accountability, authenticity, resistance? +- **Maintainability:** Modularity, reusability, analysability, modifiability, testability? +- **Flexibility:** Adaptability, installability, replaceability, scalability? +- **Safety:** Operational constraint, risk identification, fail safe, hazard warning, safe integration? + +Or something spanning multiple characteristics?" + +### 1. Understanding the Challenge (3–4 questions) + +- What's driving this decision? Proactive improvement or specific issues? +- Key constraints: timeline, budget, team expertise, tech stack, compliance? +- System context: what type of application, current architecture, who are the users? + +### 2. ISO 25010:2023 Quality-Specific Deep Dive (4–6 questions) + +**Tailor questions to the primary NFR category identified.** + +| Characteristic | Key sub-characteristics to explore | +|----------------|-----------------------------------| +| **Functional Suitability** | Completeness, correctness, appropriateness; targets; impact of gaps | +| **Performance Efficiency** | Time behaviour, resource utilization, capacity; targets; cost of slow performance | +| **Compatibility** | Co-existence, interoperability; data formats, protocols, standards | +| **Interaction Capability** | Recognizability, learnability, operability, error protection, engagement, inclusivity, assistance, self-descriptiveness | +| **Reliability** | Faultlessness, availability, fault tolerance, recoverability; uptime targets; business impact | +| **Security** | Confidentiality, integrity, non-repudiation, accountability, authenticity, resistance; data types; GDPR, HIPAA, SOC2, PCI | +| **Maintainability** | Modularity, reusability, analysability, modifiability, testability; impact on velocity | +| **Flexibility** | Adaptability, installability, replaceability, scalability; expected changes; growth patterns | +| **Safety** | Operational constraint, risk identification, fail safe, hazard warning, safe integration; harm potential; safety standards | + +### 3. Solution Exploration (3–4 questions) + +- What solutions or patterns have you considered? +- Trade-off preferences: cost, simplicity, performance, security, scalability, time to implement? +- Team expertise, tech preferences, realistic complexity? +- Success definition: metrics to track, what would make you confident? + +### 4. Decision Synthesis & Validation + +- Summarize key NFR decisions and rationale; ask: "Does this accurately capture your quality needs?" +- Any important characteristics or trade-offs we haven't explored? +- Top 3 most critical NFRs? Deal-breakers? +- Filename for the ADR? Related documents or ADRs? + +### 5. ADR Creation Proposal + +Only after thorough conversation: "Based on our discussion about your non-functional requirements, I'd like to create an ADR that documents these quality decisions and their rationale... Should I proceed?" + +--- + +## Phase 2: ADR Document Generation + +Provide a conversational summary first. Confirm accuracy, then generate the full ADR using the current date from Phase 0. + +### ADR Structure + +```markdown +# ADR-XXX: [Title] - Non-Functional Requirements + +**Status:** Proposed | Accepted | Deprecated +**Date:** [Current Date] +**ISO 25010:2023 Focus:** [Primary quality characteristic(s)] + +## Context +[Business context, quality challenge, system description] + +## Non-Functional Requirements +[Quality characteristics with sub-characteristics and targets; use ISO 25010:2023 terminology] + +### Primary Quality Characteristic +[Detailed NFRs for the main focus area] + +### Secondary Quality Characteristics +[Other relevant NFRs] + +## Technical Decisions +[Architectural approach with rationale for each quality attribute] + +## Alternatives Considered +[Rejected options and why] + +## Quality Metrics & Success Criteria +[Measurable criteria, thresholds, monitoring approach] + +## Consequences +[Impact, trade-offs, follow-up work] + +## References +[Links, related ADRs, ISO/IEC 25010:2023] +``` + +--- + +## Phase 3: Next Steps and Recommendations + +After generating the ADR: + +**Next Steps:** +1. Review and validate with stakeholders and technical teams +2. Create detailed quality metrics and measurement framework +3. Set up monitoring and observability for identified quality characteristics +4. Begin implementation with proof-of-concept for most critical NFRs +5. Establish quality gates and testing frameworks early + +**ADR Management:** +- Keep the ADR as a living document +- Reference during code reviews and architectural discussions +- Plan regular reviews as the system evolves +- Link to user stories, requirements, implementation tasks +- Track quality metrics to validate decisions + +**Optional follow-up offers:** Implementation roadmap, quality metrics framework, technology evaluation, QA strategy, ISO 25010:2023 compliance assessment. + +--- + +## Key Principles + +| Principle | Practice | +|-----------|----------| +| **Discovery over assumption** | Never assume NFRs; ask and validate. Understand the "why". Explore edge cases. | +| **Collaborative quality decisions** | Help stakeholders think through trade-offs. Document reasoning, not just decisions. | +| **Iterative understanding** | Build incrementally. Circle back when new information emerges. | +| **Context-aware** | Tailor to system type, complexity, team maturity, constraints. | + +**Create the ADR when:** Clear context, key quality decisions identified, alternatives explored, understanding validated. + +**Continue the conversation when:** NFRs unclear, decisions arbitrary, alternatives not explored, stakeholders uncertain, critical context missing. diff --git a/skills-generator/src/main/resources/skills/010-skill.md b/skills-generator/src/main/resources/skills/040-skill.md similarity index 93% rename from skills-generator/src/main/resources/skills/010-skill.md rename to skills-generator/src/main/resources/skills/040-skill.md index ee724b34..b871ddd1 100644 --- a/skills-generator/src/main/resources/skills/010-skill.md +++ b/skills-generator/src/main/resources/skills/040-skill.md @@ -1,6 +1,6 @@ --- -name: 010-java-design-plans -description: Use when it is creatin a plan using Plan model and enchance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. +name: 040-planning-enhance-ai-plans +description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. --- # Java Design Plan Creation diff --git a/skills/014-agile-create-user-story/SKILL.md b/skills/014-agile-create-user-story/SKILL.md new file mode 100644 index 00000000..a52d90c4 --- /dev/null +++ b/skills/014-agile-create-user-story/SKILL.md @@ -0,0 +1,105 @@ +--- +name: 014-agile-create-user-story +description: Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. Part of the skills-for-java project +--- + +# Create Agile User Stories + +Guides the agent to ask targeted questions to gather details for a user story and its Gherkin acceptance criteria, then generate a Markdown user story and a separate Gherkin `.feature` file. + +--- + +## Phase 1: Information Gathering + +Acknowledge the request and inform the user that you need to ask some questions. Ask the following, waiting for input after each block or as appropriate. + +### User Story Core Details + +1. **Title/ID:** "What is a concise title or unique ID for this user story?" +2. **User Role (Persona):** "Who is the primary user (persona) for this feature? (e.g., 'registered user', 'administrator', 'guest visitor')" +3. **Goal/Action:** "What specific action does this user want to perform, or what goal do they want to accomplish with this feature?" +4. **Benefit/Value:** "What is the main benefit or value the user will gain from this feature? Why is this important to them?" + +### Gherkin Feature File Details + +5. **Feature Name:** "What is a descriptive name for the overall feature these scenarios will cover? (This will be the `Feature:` line in the Gherkin file, e.g., 'User Authentication Management')." +6. **(Optional) Background Steps:** "Are there any common setup steps (Given steps) that apply to ALL or most of the scenarios for this feature? If so, please list them." + +### Acceptance Criteria / Gherkin Scenarios + +Inform the user: "Now, let's detail the acceptance criteria with concrete examples. Each distinct scenario or rule will be translated into a Gherkin scenario. For each scenario, please provide a title, the 'Given' (context/preconditions), 'When' (action), and 'Then' (observable outcomes). Include specific data examples where applicable (e.g., input values, expected messages, JSON snippets)." + +7. **Scenario 1 (e.g., Main Success Path):** + - Scenario Title: "What's a brief title for this first scenario?" + - Given: "What's the context or precondition(s)?" + - When: "What specific action is performed?" + - Then: "What are the observable outcome(s)?" + - Data Examples: "Any specific data (inputs/outputs) for this scenario?" + +8. **Additional Scenarios:** + - Ask: "Do you have another scenario to define (e.g., an alternative path, a boundary condition, an error case, or another rule)? (Yes/No)" + - If Yes, repeat the questions from step 7 for each new scenario. Continue until the user indicates 'No' more scenarios. + +### File Naming and Linking + +9. **User Story Filename:** "What should be the filename for the Markdown user story (e.g., `US-001_Login_Functionality.md`)?" +10. **Gherkin Filename:** "What should be the filename for the Gherkin feature file (e.g., `US-001_login_functionality.feature`)?" +11. **Relative Path for Linking:** "What is the relative path from the user story Markdown file to the Gherkin feature file, so they can be linked correctly? (e.g., `../features/US-001_login_functionality.feature` or `features/US-001_login_functionality.feature`)." + +### Optional User Story Notes + +12. **Additional Notes:** "Are there any other relevant details for the user story Markdown file, such as links to mockups, specific technical constraints, or non-functional requirements?" + +--- + +## Phase 2: Artifact Content Generation + +Once all information is gathered, inform the user you will now generate the content for the two files. Provide the content for each file clearly separated. + +### User Story Markdown File + +Format the user story using this template: + +```markdown +# User Story: [Title/ID] + +**As a** [User Role] +**I want to** [Goal/Action] +**So that** [Benefit/Value] + +## Acceptance Criteria + +See: [Relative path to Gherkin file] + +## Notes + +[Additional notes if provided] +``` + +### Gherkin Feature File + +Format the Gherkin file with: + +```gherkin +Feature: [Feature Name] + [Optional background steps if provided] + + Scenario: [Scenario Title] + Given [context/preconditions] + When [action] + Then [observable outcomes] +``` + +**Data examples:** Use docstrings for JSON/XML or tables for structured data when the user provides complex examples. + +--- + +## Output Checklist + +Before finalizing: + +- [ ] User story has title, role, goal, benefit +- [ ] User story links to the Gherkin feature file +- [ ] Gherkin file has Feature line and descriptive scenarios +- [ ] Each scenario has Given, When, Then +- [ ] Complex data uses docstrings or Example tables diff --git a/skills/020-architecture-functional-requirements-cli/SKILL.md b/skills/020-architecture-functional-requirements-cli/SKILL.md new file mode 100644 index 00000000..e64e9132 --- /dev/null +++ b/skills/020-architecture-functional-requirements-cli/SKILL.md @@ -0,0 +1,151 @@ +--- +name: 020-architecture-functional-requirements-cli +description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions. Part of the skills-for-java project +--- + +# Create ADRs for CLI Development + +Guides stakeholders through a structured conversation to uncover and document technical decisions and functional requirements for CLI applications. The ADR is the documentation of that conversation, not the conversation itself. + +--- + +## Phase 0: Get Current Date + +Before starting, run `date` in the terminal to ensure accurate timestamps in the ADR document. Use this for all `[Current Date]` placeholders. + +--- + +## Phase 1: Conversational Information Gathering + +Ask one or two questions at a time. Build on previous answers. Acknowledge and validate responses before moving on. Adjust questions to CLI complexity; skip irrelevant areas and dive deeper where needed. + +### 1. Initial Context Discovery + +**Opening:** +- What CLI tool are you building and what problem does it solve? +- What's driving the need? Replacing something or creating new? +- Who are the primary users and their technical backgrounds? + +**Follow-up:** +- What existing systems or workflows will this CLI integrate with? +- Constraints: team expertise, tech preferences, organizational standards? +- Expected timeline and scope? + +### 2. Functional Requirements + +**Core functionality:** +- Main workflow: what does a user do from start to finish? +- Essential commands or operations? +- Input handling: files, arguments, configuration? +- Output formats and feedback needed? + +**User experience:** +- How technical are users? Need extensive help? +- Simple single-purpose tool or multi-command suite? +- Critical error scenarios to handle gracefully? +- How will users install and update? + +### 3. Technical Decision Discovery + +**Language & framework:** Team expertise, performance requirements (startup, memory), integration needs, familiar CLI frameworks. + +**Architecture:** Command complexity, plugin vs monolithic, configuration (files/env/args), error handling and logging. + +**Data & I/O:** Types of data, streaming for large datasets, output formatting (JSON, tables, plain text). + +**Third-party integration:** External APIs, auth methods, credential management, rate limits, throttling, multi-provider support, offline/caching, compliance, testing integrations. + +**Testing:** Current approach, CLI interaction testing, code quality tools, cross-platform compatibility. + +**Distribution:** Packaging, CI/CD, security and compliance. + +### 4. Decision Synthesis & Validation + +- Summarize requirements and ask: "Does this sound accurate?" +- Any important decisions we haven't discussed? +- Top 3 most important technical decisions? +- Deal-breakers or must-haves? + +### 5. ADR Creation Proposal + +Only after thorough conversation: "Based on our conversation, I'd like to create an ADR that documents these key decisions... Would you like me to proceed?" + +--- + +## Phase 2: ADR Document Generation + +Inform the user you will generate the ADR. Use the current date from Phase 0 for all date placeholders. + +### ADR Structure + +```markdown +# ADR-XXX: [Title] + +**Status:** Proposed | Accepted | Deprecated +**Date:** [Current Date] +**Decisions:** [Brief summary] + +## Context +[Business context, problem statement, user needs] + +## Functional Requirements +[Core commands, workflows, input/output, error handling] + +## Technical Decisions +[With rationale for each] + +### Language & Framework +[Choice and why] + +### Architecture +[Command structure, configuration, plugins] + +### Data & Integration +[Processing, external services, auth] + +### Testing & Distribution +[Approach and tools] + +## Alternatives Considered +[Rejected options and why] + +## Consequences +[Impact, trade-offs, follow-up work] + +## References +[Links, related ADRs] +``` + +--- + +## Phase 3: Next Steps and Recommendations + +After generating the ADR: + +**Next Steps:** +1. Review and validate with stakeholders +2. Create technical specifications and CLI documentation +3. Set up dev environment and project structure +4. Begin implementation with MVP +5. Establish testing and distribution frameworks + +**ADR Management:** +- Keep the ADR as a living document +- Reference during code reviews and architectural discussions +- Plan regular reviews as the CLI evolves +- Link to user stories, requirements, implementation tasks + +--- + +## Key Principles + +| Principle | Practice | +|-----------|----------| +| **Discovery over assumption** | Never assume; ask. Understand the "why". Explore edge cases. | +| **Collaborative decisions** | Help stakeholders think through trade-offs. Document reasoning, not just decisions. | +| **Iterative understanding** | Build incrementally. Circle back when new information emerges. | +| **Context-aware** | Tailor to project complexity, team expertise, constraints. | + +**Create the ADR when:** Clear context, key decisions identified, alternatives explored, understanding validated. + +**Continue the conversation when:** Requirements unclear, decisions arbitrary, alternatives not considered, stakeholders uncertain. diff --git a/skills/021-architecture-functional-requirements-rest/SKILL.md b/skills/021-architecture-functional-requirements-rest/SKILL.md new file mode 100644 index 00000000..363edfd0 --- /dev/null +++ b/skills/021-architecture-functional-requirements-rest/SKILL.md @@ -0,0 +1,164 @@ +--- +name: 021-architecture-functional-requirements-rest +description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions. Part of the skills-for-java project +--- + +# Create ADRs for REST API Development + +Guides stakeholders through a structured conversation to uncover and document technical decisions and functional requirements for REST API implementations. The ADR is the documentation of that conversation, not the conversation itself. + +--- + +## Phase 0: Get Current Date + +Before starting, run `date` in the terminal to ensure accurate timestamps in the ADR document. Use this for all `[Current Date]` placeholders. + +--- + +## Phase 1: Conversational Information Gathering + +Ask one or two questions at a time. Build on previous answers. Acknowledge and validate responses before moving on. Adjust questions to API complexity; skip irrelevant areas and dive deeper where needed. + +### 1. Initial Context Discovery + +**Opening:** +- What API are you building and what business problem does it solve? +- What's driving the need? Replacing existing system, new functionality, or integrations? +- Who are the primary consumers: internal services, mobile apps, third-party developers, or end users? + +**Follow-up:** +- What existing systems or data sources will this API integrate with? +- Constraints: team expertise, organizational standards, compliance (GDPR, HIPAA, PCI)? +- Expected timeline and success criteria? +- Anticipated load: users, requests/sec, data volume? + +### 2. Functional Requirements + +**Core functionality:** +- Main use cases and essential operations? +- Resources and entities to expose; how do they relate? +- Input validation and data transformation needs? +- Response formats and data structures consumers need? + +**API design & UX:** +- How technical are consumers? Need extensive docs and SDKs? +- Simple CRUD API or complex business operations? +- Critical error scenarios to handle gracefully? +- How will consumers discover endpoints? +- Need real-time capabilities (webhooks, server-sent events)? + +### 3. Technical Decision Discovery + +**Language & framework:** Team expertise, performance (response time, throughput, memory), integration with existing systems, familiar REST frameworks. + +**API design & architecture:** Monolithic vs microservices; resource-oriented REST vs GraphQL vs RPC; API versioning; bulk ops, filtering, sorting, pagination; synchronous vs async vs webhooks for long-running ops. + +**Authentication & security:** JWT, OAuth2, API keys, mutual TLS; authorization and RBAC; rate limiting, throttling, quotas; compliance; securing sensitive data. + +**Data management:** SQL vs NoSQL vs hybrid; caching strategy; validation, serialization, transformation; consistency and transactions; schema evolution. + +**Third-party integration:** External services, auth methods, failure handling (degrade vs fail fast), rate limits, circuit breakers, multi-provider support, caching, contract testing, webhook handling. + +**Testing:** Current approach, unit/integration/contract testing, OpenAPI/Swagger, load testing, test data management. + +**Infrastructure:** Containerization, cloud platform, config and secrets, scaling strategy, blue-green or canary deployments. + +**Monitoring:** Health, performance, usage; logging; distributed tracing; alerting; business metrics and adoption. + +### 4. Decision Synthesis & Validation + +- Summarize key decisions and ask: "Does this accurately capture your requirements?" +- Any important decisions or trade-offs we haven't explored? +- Top 3 most critical technical decisions? +- Deal-breakers or must-haves? Aspects needing the most detail? +- Filename for the ADR? Related documents or ADRs to reference? + +### 5. ADR Creation Proposal + +Only after thorough conversation: "Based on our discussion, I'd like to create an ADR that documents these key decisions and their rationale... Should I proceed?" + +--- + +## Phase 2: ADR Document Generation + +Inform the user you will generate the ADR. Use the current date from Phase 0 for all date placeholders. + +### ADR Structure + +```markdown +# ADR-XXX: [Title] + +**Status:** Proposed | Accepted | Deprecated +**Date:** [Current Date] +**Decisions:** [Brief summary] + +## Context +[Business context, problem statement, consumer needs] + +## Functional Requirements +[Use cases, resources, operations, response formats, error handling] + +## Technical Decisions +[With rationale for each] + +### Language & Framework +[Choice and why] + +### API Design & Architecture +[Structure, versioning, patterns] + +### Authentication & Security +[Mechanism, authorization, rate limiting] + +### Data & Persistence +[Storage, caching, validation] + +### Integration & Infrastructure +[External services, deployment, scaling] + +### Testing & Monitoring +[Approach, observability] + +## Alternatives Considered +[Rejected options and why] + +## Consequences +[Impact, trade-offs, follow-up work] + +## References +[Links, related ADRs] +``` + +--- + +## Phase 3: Next Steps and Recommendations + +After generating the ADR: + +**Next Steps:** +1. Review and validate with stakeholders and technical teams +2. Create detailed technical specifications and API documentation +3. Set up dev environment and initial project structure +4. Begin implementation with MVP or proof-of-concept +5. Establish monitoring and testing frameworks early + +**ADR Management:** +- Keep the ADR as a living document +- Reference during code reviews and architectural discussions +- Plan regular reviews as the system evolves +- Link to user stories, requirements, implementation tasks + +--- + +## Key Principles + +| Principle | Practice | +|-----------|----------| +| **Discovery over assumption** | Never assume; ask and validate. Understand the "why". Explore edge cases. | +| **Collaborative decisions** | Help stakeholders think through trade-offs. Document reasoning, not just decisions. | +| **Iterative understanding** | Build incrementally. Circle back when new information emerges. | +| **Context-aware** | Tailor to API complexity, business domain, team maturity, constraints. | + +**Create the ADR when:** Clear context, key decisions identified, alternatives explored, understanding validated. + +**Continue the conversation when:** Requirements unclear, decisions arbitrary, alternatives not explored, stakeholders uncertain, critical context missing. diff --git a/skills/030-architecture-non-functional-requirements/SKILL.md b/skills/030-architecture-non-functional-requirements/SKILL.md new file mode 100644 index 00000000..e50b4273 --- /dev/null +++ b/skills/030-architecture-non-functional-requirements/SKILL.md @@ -0,0 +1,156 @@ +--- +name: 030-architecture-non-functional-requirements +description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. Part of the skills-for-java project +--- + +# Create ADRs for Non-Functional Requirements + +Guides stakeholders through a structured conversation to uncover and document architectural decisions for quality attributes using the ISO/IEC 25010:2023 quality model. The ADR is the documentation of that conversation, not the conversation itself. Act as an architecture consultant: challenge-first, consultative, adaptive. + +--- + +## Phase 0: Get Current Date + +Before starting, run `date` in the terminal to ensure accurate timestamps in the ADR document. Use this for all `[Current Date]` placeholders. + +--- + +## Phase 1: Conversational Information Gathering + +Ask one or two questions at a time. Build on previous answers. Stay consultative, not interrogative. Skip quality characteristics irrelevant to the use case; dive deeper where there's uncertainty or risk. + +### Opening (Challenge-First) + +"What's the main non-functional challenge you're trying to solve? Based on ISO/IEC 25010:2023, are you dealing with: + +- **Functional Suitability:** Completeness, correctness, appropriateness? +- **Performance Efficiency:** Response times, throughput, resource utilization, capacity? +- **Compatibility:** Co-existence, interoperability? +- **Interaction Capability:** Recognizability, learnability, operability, user protection, engagement, inclusivity, assistance, self-descriptiveness? +- **Reliability:** Faultlessness, availability, fault tolerance, recoverability? +- **Security:** Confidentiality, integrity, non-repudiation, accountability, authenticity, resistance? +- **Maintainability:** Modularity, reusability, analysability, modifiability, testability? +- **Flexibility:** Adaptability, installability, replaceability, scalability? +- **Safety:** Operational constraint, risk identification, fail safe, hazard warning, safe integration? + +Or something spanning multiple characteristics?" + +### 1. Understanding the Challenge (3–4 questions) + +- What's driving this decision? Proactive improvement or specific issues? +- Key constraints: timeline, budget, team expertise, tech stack, compliance? +- System context: what type of application, current architecture, who are the users? + +### 2. ISO 25010:2023 Quality-Specific Deep Dive (4–6 questions) + +**Tailor questions to the primary NFR category identified.** + +| Characteristic | Key sub-characteristics to explore | +|----------------|-----------------------------------| +| **Functional Suitability** | Completeness, correctness, appropriateness; targets; impact of gaps | +| **Performance Efficiency** | Time behaviour, resource utilization, capacity; targets; cost of slow performance | +| **Compatibility** | Co-existence, interoperability; data formats, protocols, standards | +| **Interaction Capability** | Recognizability, learnability, operability, error protection, engagement, inclusivity, assistance, self-descriptiveness | +| **Reliability** | Faultlessness, availability, fault tolerance, recoverability; uptime targets; business impact | +| **Security** | Confidentiality, integrity, non-repudiation, accountability, authenticity, resistance; data types; GDPR, HIPAA, SOC2, PCI | +| **Maintainability** | Modularity, reusability, analysability, modifiability, testability; impact on velocity | +| **Flexibility** | Adaptability, installability, replaceability, scalability; expected changes; growth patterns | +| **Safety** | Operational constraint, risk identification, fail safe, hazard warning, safe integration; harm potential; safety standards | + +### 3. Solution Exploration (3–4 questions) + +- What solutions or patterns have you considered? +- Trade-off preferences: cost, simplicity, performance, security, scalability, time to implement? +- Team expertise, tech preferences, realistic complexity? +- Success definition: metrics to track, what would make you confident? + +### 4. Decision Synthesis & Validation + +- Summarize key NFR decisions and rationale; ask: "Does this accurately capture your quality needs?" +- Any important characteristics or trade-offs we haven't explored? +- Top 3 most critical NFRs? Deal-breakers? +- Filename for the ADR? Related documents or ADRs? + +### 5. ADR Creation Proposal + +Only after thorough conversation: "Based on our discussion about your non-functional requirements, I'd like to create an ADR that documents these quality decisions and their rationale... Should I proceed?" + +--- + +## Phase 2: ADR Document Generation + +Provide a conversational summary first. Confirm accuracy, then generate the full ADR using the current date from Phase 0. + +### ADR Structure + +```markdown +# ADR-XXX: [Title] - Non-Functional Requirements + +**Status:** Proposed | Accepted | Deprecated +**Date:** [Current Date] +**ISO 25010:2023 Focus:** [Primary quality characteristic(s)] + +## Context +[Business context, quality challenge, system description] + +## Non-Functional Requirements +[Quality characteristics with sub-characteristics and targets; use ISO 25010:2023 terminology] + +### Primary Quality Characteristic +[Detailed NFRs for the main focus area] + +### Secondary Quality Characteristics +[Other relevant NFRs] + +## Technical Decisions +[Architectural approach with rationale for each quality attribute] + +## Alternatives Considered +[Rejected options and why] + +## Quality Metrics & Success Criteria +[Measurable criteria, thresholds, monitoring approach] + +## Consequences +[Impact, trade-offs, follow-up work] + +## References +[Links, related ADRs, ISO/IEC 25010:2023] +``` + +--- + +## Phase 3: Next Steps and Recommendations + +After generating the ADR: + +**Next Steps:** +1. Review and validate with stakeholders and technical teams +2. Create detailed quality metrics and measurement framework +3. Set up monitoring and observability for identified quality characteristics +4. Begin implementation with proof-of-concept for most critical NFRs +5. Establish quality gates and testing frameworks early + +**ADR Management:** +- Keep the ADR as a living document +- Reference during code reviews and architectural discussions +- Plan regular reviews as the system evolves +- Link to user stories, requirements, implementation tasks +- Track quality metrics to validate decisions + +**Optional follow-up offers:** Implementation roadmap, quality metrics framework, technology evaluation, QA strategy, ISO 25010:2023 compliance assessment. + +--- + +## Key Principles + +| Principle | Practice | +|-----------|----------| +| **Discovery over assumption** | Never assume NFRs; ask and validate. Understand the "why". Explore edge cases. | +| **Collaborative quality decisions** | Help stakeholders think through trade-offs. Document reasoning, not just decisions. | +| **Iterative understanding** | Build incrementally. Circle back when new information emerges. | +| **Context-aware** | Tailor to system type, complexity, team maturity, constraints. | + +**Create the ADR when:** Clear context, key quality decisions identified, alternatives explored, understanding validated. + +**Continue the conversation when:** NFRs unclear, decisions arbitrary, alternatives not explored, stakeholders uncertain, critical context missing. diff --git a/skills/010-java-design-plans/SKILL.md b/skills/040-planning-enhance-ai-plan-mode/SKILL.md similarity index 93% rename from skills/010-java-design-plans/SKILL.md rename to skills/040-planning-enhance-ai-plan-mode/SKILL.md index 30d63ace..5dc48f9e 100644 --- a/skills/010-java-design-plans/SKILL.md +++ b/skills/040-planning-enhance-ai-plan-mode/SKILL.md @@ -1,6 +1,6 @@ --- -name: 010-java-design-plans -description: Use when it is creatin a plan using Plan model and enchance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. Part of the skills-for-java project +name: 040-planning-enhance-ai-plans +description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. Part of the skills-for-java project --- # Java Design Plan Creation From 9cdf747e567db6e9adffff08bd3e40f6e7eddfdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Mon, 9 Mar 2026 15:47:42 +0100 Subject: [PATCH 2/4] Bumping new version and adding new tests for system-prompts and skills that version from maven need to match with those files --- .../rules/100-java-system-prompt-java-list.md | 2 +- .../rules/110-java-maven-best-practices.md | 2 +- .cursor/rules/111-java-maven-dependencies.md | 2 +- .cursor/rules/112-java-maven-plugins.md | 2 +- .cursor/rules/113-java-maven-documentation.md | 2 +- .../rules/121-java-object-oriented-design.md | 2 +- .cursor/rules/122-java-type-design.md | 2 +- .cursor/rules/123-java-exception-handling.md | 2 +- .cursor/rules/124-java-secure-coding.md | 2 +- .cursor/rules/125-java-concurrency.md | 2 +- .../rules/126-java-observability-logging.md | 2 +- .cursor/rules/128-java-generics.md | 2 +- .../rules/131-java-testing-unit-testing.md | 2 +- .../132-java-testing-integration-testing.md | 2 +- ...1-java-refactoring-with-modern-features.md | 2 +- .../rules/142-java-functional-programming.md | 2 +- .../143-java-functional-exception-handling.md | 2 +- .../144-java-data-oriented-programming.md | 2 +- .cursor/rules/151-java-performance-jmeter.md | 2 +- .cursor/rules/161-java-profiling-detect.md | 2 +- .cursor/rules/162-java-profiling-analyze.md | 2 +- .cursor/rules/163-java-profiling-refactor.md | 2 +- .cursor/rules/164-java-profiling-verify.md | 2 +- .cursor/rules/170-java-documentation.md | 2 +- .cursor/rules/171-java-adr.md | 2 +- .cursor/rules/172-java-diagrams.md | 2 +- .cursor/rules/173-java-agents.md | 2 +- .cursor/rules/behaviour-article-writer.md | 2 +- .../behaviour-consultative-interaction.md | 2 +- .../rules/behaviour-progressive-learning.md | 2 +- AGENTS.md | 2 +- documentation/MAINTENANCE.md | 2 +- pom.xml | 2 +- site-generator/pom.xml | 2 +- skills-generator/pom.xml | 2 +- .../src/main/resources/skills/014-skill.md | 3 + .../src/main/resources/skills/020-skill.md | 3 + .../src/main/resources/skills/021-skill.md | 3 + .../src/main/resources/skills/030-skill.md | 3 + .../src/main/resources/skills/040-skill.md | 3 + .../src/main/resources/skills/110-skill.md | 2 +- .../src/main/resources/skills/111-skill.md | 2 +- .../src/main/resources/skills/112-skill.md | 2 +- .../src/main/resources/skills/113-skill.md | 2 +- .../src/main/resources/skills/121-skill.md | 2 +- .../src/main/resources/skills/122-skill.md | 2 +- .../src/main/resources/skills/123-skill.md | 2 +- .../src/main/resources/skills/124-skill.md | 2 +- .../src/main/resources/skills/125-skill.md | 2 +- .../src/main/resources/skills/128-skill.md | 2 +- .../src/main/resources/skills/131-skill.md | 2 +- .../src/main/resources/skills/132-skill.md | 2 +- .../src/main/resources/skills/141-skill.md | 2 +- .../src/main/resources/skills/142-skill.md | 2 +- .../src/main/resources/skills/143-skill.md | 2 +- .../src/main/resources/skills/170-skill.md | 2 +- .../src/main/resources/skills/171-skill.md | 2 +- .../src/main/resources/skills/172-skill.md | 2 +- .../src/main/resources/skills/173-skill.md | 2 +- .../info/jab/pml/SkillsGeneratorTest.java | 64 +++++++++++++++++++ skills/110-java-maven-best-practices/SKILL.md | 2 +- .../110-java-maven-best-practices.md | 2 +- skills/111-java-maven-dependencies/SKILL.md | 2 +- .../references/111-java-maven-dependencies.md | 2 +- skills/112-java-maven-plugins/SKILL.md | 2 +- .../references/112-java-maven-plugins.md | 2 +- skills/113-java-maven-documentation/SKILL.md | 2 +- .../113-java-maven-documentation.md | 2 +- .../121-java-object-oriented-design/SKILL.md | 2 +- .../121-java-object-oriented-design.md | 2 +- skills/122-java-type-design/SKILL.md | 2 +- .../references/122-java-type-design.md | 2 +- skills/123-java-exception-handling/SKILL.md | 2 +- .../references/123-java-exception-handling.md | 2 +- skills/124-java-secure-coding/SKILL.md | 2 +- .../references/124-java-secure-coding.md | 2 +- skills/125-java-concurrency/SKILL.md | 2 +- .../references/125-java-concurrency.md | 2 +- skills/128-java-generics/SKILL.md | 2 +- .../references/128-java-generics.md | 2 +- skills/131-java-testing-unit-testing/SKILL.md | 2 +- .../131-java-testing-unit-testing.md | 2 +- .../SKILL.md | 2 +- .../132-java-testing-integration-testing.md | 2 +- .../SKILL.md | 2 +- ...1-java-refactoring-with-modern-features.md | 2 +- .../142-java-functional-programming/SKILL.md | 2 +- .../142-java-functional-programming.md | 2 +- .../SKILL.md | 2 +- .../143-java-functional-exception-handling.md | 2 +- skills/170-java-documentation/SKILL.md | 2 +- .../references/170-java-documentation.md | 2 +- skills/171-java-adr/SKILL.md | 2 +- .../171-java-adr/references/171-java-adr.md | 2 +- skills/172-java-diagrams/SKILL.md | 2 +- .../references/172-java-diagrams.md | 2 +- skills/173-java-agents/SKILL.md | 2 +- .../references/173-java-agents.md | 2 +- system-prompts-generator/pom.xml | 2 +- .../100-java-system-prompt-java-list.xml | 2 +- .../110-java-maven-best-practices.xml | 2 +- .../111-java-maven-dependencies.xml | 2 +- .../system-prompts/112-java-maven-plugins.xml | 2 +- .../113-java-maven-documentation.xml | 2 +- .../121-java-object-oriented-design.xml | 2 +- .../system-prompts/122-java-type-design.xml | 2 +- .../123-java-exception-handling.xml | 2 +- .../system-prompts/124-java-secure-coding.xml | 2 +- .../system-prompts/125-java-concurrency.xml | 2 +- .../126-java-observability-logging.xml | 2 +- .../system-prompts/128-java-generics.xml | 2 +- .../131-java-testing-unit-testing.xml | 2 +- .../132-java-testing-integration-testing.xml | 2 +- ...-java-refactoring-with-modern-features.xml | 2 +- .../142-java-functional-programming.xml | 2 +- ...143-java-functional-exception-handling.xml | 2 +- .../144-java-data-oriented-programming.xml | 2 +- .../151-java-performance-jmeter.xml | 2 +- .../161-java-profiling-detect.xml | 2 +- .../162-java-profiling-analyze.xml | 2 +- .../163-java-profiling-refactor.xml | 2 +- .../164-java-profiling-verify.xml | 2 +- .../system-prompts/170-java-documentation.xml | 2 +- .../resources/system-prompts/171-java-adr.xml | 2 +- .../system-prompts/172-java-diagrams.xml | 2 +- .../system-prompts/173-java-agents.xml | 2 +- .../behaviour-article-writer.xml | 2 +- .../behaviour-consultative-interaction.xml | 2 +- .../behaviour-progressive-learning.xml | 2 +- .../jab/pml/CursorRulesGeneratorTest.java | 64 +++++++++++++++++++ 130 files changed, 266 insertions(+), 123 deletions(-) diff --git a/.cursor/rules/100-java-system-prompt-java-list.md b/.cursor/rules/100-java-system-prompt-java-list.md index 8e7c28b1..6357f67d 100644 --- a/.cursor/rules/100-java-system-prompt-java-list.md +++ b/.cursor/rules/100-java-system-prompt-java-list.md @@ -2,7 +2,7 @@ name: 100-java-system-prompt-java-list metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Create a Checklist with all Java steps to use with system prompts for Java diff --git a/.cursor/rules/110-java-maven-best-practices.md b/.cursor/rules/110-java-maven-best-practices.md index f813a7ff..87fae532 100644 --- a/.cursor/rules/110-java-maven-best-practices.md +++ b/.cursor/rules/110-java-maven-best-practices.md @@ -4,7 +4,7 @@ description: Use when you need to improve your Maven pom.xml using best practice license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Best Practices diff --git a/.cursor/rules/111-java-maven-dependencies.md b/.cursor/rules/111-java-maven-dependencies.md index 97e8137a..5a63297d 100644 --- a/.cursor/rules/111-java-maven-dependencies.md +++ b/.cursor/rules/111-java-maven-dependencies.md @@ -4,7 +4,7 @@ description: Use when you need to think to add maven dependencies to your projec license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Add Maven dependencies for improved code quality diff --git a/.cursor/rules/112-java-maven-plugins.md b/.cursor/rules/112-java-maven-plugins.md index f138a670..1b82bc3d 100644 --- a/.cursor/rules/112-java-maven-plugins.md +++ b/.cursor/rules/112-java-maven-plugins.md @@ -4,7 +4,7 @@ description: Use when you need to add or configure Maven plugins in your pom.xml license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Plugins: pom.xml Configuration Best Practices diff --git a/.cursor/rules/113-java-maven-documentation.md b/.cursor/rules/113-java-maven-documentation.md index d122a813..1d5cf9e7 100644 --- a/.cursor/rules/113-java-maven-documentation.md +++ b/.cursor/rules/113-java-maven-documentation.md @@ -4,7 +4,7 @@ description: Use when you need to create a DEVELOPER.md file for a Maven project license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Create DEVELOPER.md for the Maven projects diff --git a/.cursor/rules/121-java-object-oriented-design.md b/.cursor/rules/121-java-object-oriented-design.md index d9f83516..4b6d7da2 100644 --- a/.cursor/rules/121-java-object-oriented-design.md +++ b/.cursor/rules/121-java-object-oriented-design.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or refactor Java code for obj license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Object-Oriented Design Guidelines diff --git a/.cursor/rules/122-java-type-design.md b/.cursor/rules/122-java-type-design.md index a44e93cc..a395ee73 100644 --- a/.cursor/rules/122-java-type-design.md +++ b/.cursor/rules/122-java-type-design.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or refactor Java code for typ license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Type Design Thinking in Java diff --git a/.cursor/rules/123-java-exception-handling.md b/.cursor/rules/123-java-exception-handling.md index 7728439f..87af8308 100644 --- a/.cursor/rules/123-java-exception-handling.md +++ b/.cursor/rules/123-java-exception-handling.md @@ -4,7 +4,7 @@ description: Use when you need to apply Java exception handling best practices license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Exception Handling Guidelines diff --git a/.cursor/rules/124-java-secure-coding.md b/.cursor/rules/124-java-secure-coding.md index 419eb125..7b826211 100644 --- a/.cursor/rules/124-java-secure-coding.md +++ b/.cursor/rules/124-java-secure-coding.md @@ -4,7 +4,7 @@ description: Use when you need to apply Java secure coding best practices — in license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Secure coding guidelines diff --git a/.cursor/rules/125-java-concurrency.md b/.cursor/rules/125-java-concurrency.md index a1253bda..5b8426b0 100644 --- a/.cursor/rules/125-java-concurrency.md +++ b/.cursor/rules/125-java-concurrency.md @@ -4,7 +4,7 @@ description: Use when you need to apply Java concurrency best practices — incl license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java rules for Concurrency objects diff --git a/.cursor/rules/126-java-observability-logging.md b/.cursor/rules/126-java-observability-logging.md index 6bde29d8..aa1d8ae6 100644 --- a/.cursor/rules/126-java-observability-logging.md +++ b/.cursor/rules/126-java-observability-logging.md @@ -3,7 +3,7 @@ name: 126-java-observability-logging license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Logging Best Practices diff --git a/.cursor/rules/128-java-generics.md b/.cursor/rules/128-java-generics.md index 3e768930..4c64cce3 100644 --- a/.cursor/rules/128-java-generics.md +++ b/.cursor/rules/128-java-generics.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or refactor Java code for gen license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Generics Best Practices diff --git a/.cursor/rules/131-java-testing-unit-testing.md b/.cursor/rules/131-java-testing-unit-testing.md index 6fc6a872..610de91f 100644 --- a/.cursor/rules/131-java-testing-unit-testing.md +++ b/.cursor/rules/131-java-testing-unit-testing.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or write Java unit tests — license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Unit testing guidelines diff --git a/.cursor/rules/132-java-testing-integration-testing.md b/.cursor/rules/132-java-testing-integration-testing.md index 3aed9736..c569deca 100644 --- a/.cursor/rules/132-java-testing-integration-testing.md +++ b/.cursor/rules/132-java-testing-integration-testing.md @@ -4,7 +4,7 @@ description: Use when you need to set up, review, or improve Java integration te license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Integration testing guidelines diff --git a/.cursor/rules/141-java-refactoring-with-modern-features.md b/.cursor/rules/141-java-refactoring-with-modern-features.md index 31eb001f..43e709ba 100644 --- a/.cursor/rules/141-java-refactoring-with-modern-features.md +++ b/.cursor/rules/141-java-refactoring-with-modern-features.md @@ -4,7 +4,7 @@ description: Use when you need to refactor Java code to adopt modern Java featur license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Modern Java Development Guidelines (Java 8+) diff --git a/.cursor/rules/142-java-functional-programming.md b/.cursor/rules/142-java-functional-programming.md index 6a654593..c974b012 100644 --- a/.cursor/rules/142-java-functional-programming.md +++ b/.cursor/rules/142-java-functional-programming.md @@ -4,7 +4,7 @@ description: Use when you need to apply functional programming principles in Jav license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Programming rules diff --git a/.cursor/rules/143-java-functional-exception-handling.md b/.cursor/rules/143-java-functional-exception-handling.md index aeca8f5c..f4f54ca8 100644 --- a/.cursor/rules/143-java-functional-exception-handling.md +++ b/.cursor/rules/143-java-functional-exception-handling.md @@ -4,7 +4,7 @@ description: Use when you need to apply functional exception handling best pract license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Exception handling Best Practices diff --git a/.cursor/rules/144-java-data-oriented-programming.md b/.cursor/rules/144-java-data-oriented-programming.md index a8c81729..60a8bef3 100644 --- a/.cursor/rules/144-java-data-oriented-programming.md +++ b/.cursor/rules/144-java-data-oriented-programming.md @@ -4,7 +4,7 @@ description: Use when you need to apply data-oriented programming best practices license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Data-Oriented Programming Best Practices diff --git a/.cursor/rules/151-java-performance-jmeter.md b/.cursor/rules/151-java-performance-jmeter.md index a39f8e72..0850a689 100644 --- a/.cursor/rules/151-java-performance-jmeter.md +++ b/.cursor/rules/151-java-performance-jmeter.md @@ -3,7 +3,7 @@ name: 151-java-performance-jmeter license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Run performance tests based on JMeter diff --git a/.cursor/rules/161-java-profiling-detect.md b/.cursor/rules/161-java-profiling-detect.md index 273dfdb5..d9d9c196 100644 --- a/.cursor/rules/161-java-profiling-detect.md +++ b/.cursor/rules/161-java-profiling-detect.md @@ -3,7 +3,7 @@ name: 161-java-profiling-detect license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Profiling Workflow / Step 1 / Collect data to measure potential issues diff --git a/.cursor/rules/162-java-profiling-analyze.md b/.cursor/rules/162-java-profiling-analyze.md index ec5d0508..ce8ee9a4 100644 --- a/.cursor/rules/162-java-profiling-analyze.md +++ b/.cursor/rules/162-java-profiling-analyze.md @@ -3,7 +3,7 @@ name: 162-java-profiling-analyze license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Profiling Workflow / Step 2 / Analyze profiling data diff --git a/.cursor/rules/163-java-profiling-refactor.md b/.cursor/rules/163-java-profiling-refactor.md index 0b8b61c0..5835991a 100644 --- a/.cursor/rules/163-java-profiling-refactor.md +++ b/.cursor/rules/163-java-profiling-refactor.md @@ -3,7 +3,7 @@ name: 163-java-profiling-refactor license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Profiling Workflow / Step 3 / Refactor code to fix issues diff --git a/.cursor/rules/164-java-profiling-verify.md b/.cursor/rules/164-java-profiling-verify.md index df1e1d80..6714a438 100644 --- a/.cursor/rules/164-java-profiling-verify.md +++ b/.cursor/rules/164-java-profiling-verify.md @@ -3,7 +3,7 @@ name: 164-java-profiling-verify license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Profiling Workflow / Step 4 / Verify results diff --git a/.cursor/rules/170-java-documentation.md b/.cursor/rules/170-java-documentation.md index 44ad406f..73b865c4 100644 --- a/.cursor/rules/170-java-documentation.md +++ b/.cursor/rules/170-java-documentation.md @@ -4,7 +4,7 @@ description: Use when you need to generate or improve Java project documentation license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Documentation Generator with modular step-based configuration diff --git a/.cursor/rules/171-java-adr.md b/.cursor/rules/171-java-adr.md index fe96ef4b..dccde377 100644 --- a/.cursor/rules/171-java-adr.md +++ b/.cursor/rules/171-java-adr.md @@ -4,7 +4,7 @@ description: Use when you need to generate Architecture Decision Records (ADRs) license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java ADR Generator with interactive conversational approach diff --git a/.cursor/rules/172-java-diagrams.md b/.cursor/rules/172-java-diagrams.md index da3a9074..bc7f7439 100644 --- a/.cursor/rules/172-java-diagrams.md +++ b/.cursor/rules/172-java-diagrams.md @@ -4,7 +4,7 @@ description: Use when you need to generate Java project diagrams — including U license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Diagrams Generator with modular step-based configuration diff --git a/.cursor/rules/173-java-agents.md b/.cursor/rules/173-java-agents.md index 1cffcb5e..eed5558f 100644 --- a/.cursor/rules/173-java-agents.md +++ b/.cursor/rules/173-java-agents.md @@ -4,7 +4,7 @@ description: Use when you need to generate an AGENTS.md file for a Java reposito license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # AGENTS.md Generator for Java repositories diff --git a/.cursor/rules/behaviour-article-writer.md b/.cursor/rules/behaviour-article-writer.md index cdd837dc..a653009e 100644 --- a/.cursor/rules/behaviour-article-writer.md +++ b/.cursor/rules/behaviour-article-writer.md @@ -2,7 +2,7 @@ name: behaviour-article-writer metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Behaviour Article Writer diff --git a/.cursor/rules/behaviour-consultative-interaction.md b/.cursor/rules/behaviour-consultative-interaction.md index c355dfef..30373e21 100644 --- a/.cursor/rules/behaviour-consultative-interaction.md +++ b/.cursor/rules/behaviour-consultative-interaction.md @@ -2,7 +2,7 @@ name: behaviour-consultative-interaction metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Behaviour Consultative Interaction Technique diff --git a/.cursor/rules/behaviour-progressive-learning.md b/.cursor/rules/behaviour-progressive-learning.md index df3a75cf..ca35a4aa 100644 --- a/.cursor/rules/behaviour-progressive-learning.md +++ b/.cursor/rules/behaviour-progressive-learning.md @@ -2,7 +2,7 @@ name: behaviour-progressive-learning metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Behaviour Progressive Learning diff --git a/AGENTS.md b/AGENTS.md index 239b3a17..2d92589c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,7 +39,7 @@ You are an expert Java developer and technical writer for this project. ./mvnw clean install -pl system-prompts-generator # Deploy Skills to skills/ -./mvnw clean install -pl skills-generator +./mvnw clean install -pl skills-generator -am # Serve the website locally (mirrors GitHub Pages path: http://localhost:8820/) ./mvnw clean generate-resources jbake:inline -pl site-generator -P local-preview diff --git a/documentation/MAINTENANCE.md b/documentation/MAINTENANCE.md index 6cc520dd..2959aeda 100644 --- a/documentation/MAINTENANCE.md +++ b/documentation/MAINTENANCE.md @@ -37,7 +37,7 @@ Can you update the current changelog for 0.10.0 comparing git commits in relatio Can you update the current changelog for 0.12.0 comparing git commits in relation to 0.11.0 tag. Use @https://keepachangelog.com/en/1.1.0/ rules # Maven command to update the maven version to next minor version -./mvnw versions:set -DnewVersion=0.12.0 +./mvnw versions:set -DnewVersion=0.13.0-SNAPSHOT ./mvnw versions:commit # Prompt to update the project to a new version diff --git a/pom.xml b/pom.xml index c30a5675..eb661992 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ info.jab cursor-rules-java - 0.12.0 + 0.13.0-SNAPSHOT pom cursor-rules-java The project provides a curated collection of `System prompts` and `Skills` for Java Enterprise diff --git a/site-generator/pom.xml b/site-generator/pom.xml index 6bd71e7d..b7a43c80 100644 --- a/site-generator/pom.xml +++ b/site-generator/pom.xml @@ -8,7 +8,7 @@ info.jab cursor-rules-java - 0.12.0 + 0.13.0-SNAPSHOT cursor-rules-java-site diff --git a/skills-generator/pom.xml b/skills-generator/pom.xml index 1cce8e63..5c357adc 100644 --- a/skills-generator/pom.xml +++ b/skills-generator/pom.xml @@ -7,7 +7,7 @@ info.jab cursor-rules-java - 0.12.0 + 0.13.0-SNAPSHOT info.jab.pml diff --git a/skills-generator/src/main/resources/skills/014-skill.md b/skills-generator/src/main/resources/skills/014-skill.md index 00749255..8fdec25a 100644 --- a/skills-generator/src/main/resources/skills/014-skill.md +++ b/skills-generator/src/main/resources/skills/014-skill.md @@ -1,6 +1,9 @@ --- name: 014-agile-create-user-story description: Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create Agile User Stories diff --git a/skills-generator/src/main/resources/skills/020-skill.md b/skills-generator/src/main/resources/skills/020-skill.md index c98e7ebe..4e9ce85f 100644 --- a/skills-generator/src/main/resources/skills/020-skill.md +++ b/skills-generator/src/main/resources/skills/020-skill.md @@ -1,6 +1,9 @@ --- name: 020-architecture-functional-requirements-cli description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions. +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create ADRs for CLI Development diff --git a/skills-generator/src/main/resources/skills/021-skill.md b/skills-generator/src/main/resources/skills/021-skill.md index 9856d916..1e46888e 100644 --- a/skills-generator/src/main/resources/skills/021-skill.md +++ b/skills-generator/src/main/resources/skills/021-skill.md @@ -1,6 +1,9 @@ --- name: 021-architecture-functional-requirements-rest description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions. +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create ADRs for REST API Development diff --git a/skills-generator/src/main/resources/skills/030-skill.md b/skills-generator/src/main/resources/skills/030-skill.md index 53b76ed1..3505f4e1 100644 --- a/skills-generator/src/main/resources/skills/030-skill.md +++ b/skills-generator/src/main/resources/skills/030-skill.md @@ -1,6 +1,9 @@ --- name: 030-architecture-non-functional-requirements description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create ADRs for Non-Functional Requirements diff --git a/skills-generator/src/main/resources/skills/040-skill.md b/skills-generator/src/main/resources/skills/040-skill.md index b871ddd1..49812a39 100644 --- a/skills-generator/src/main/resources/skills/040-skill.md +++ b/skills-generator/src/main/resources/skills/040-skill.md @@ -1,6 +1,9 @@ --- name: 040-planning-enhance-ai-plans description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Java Design Plan Creation diff --git a/skills-generator/src/main/resources/skills/110-skill.md b/skills-generator/src/main/resources/skills/110-skill.md index ab983845..028d9256 100644 --- a/skills-generator/src/main/resources/skills/110-skill.md +++ b/skills-generator/src/main/resources/skills/110-skill.md @@ -3,7 +3,7 @@ name: 110-java-maven-best-practices description: Use when you need to review, improve, or troubleshoot a Maven pom.xml file — including dependency management with BOMs, plugin configuration, version centralization, multi-module project structure, build profiles, or any situation where you want to align your Maven setup with industry best practices. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Best Practices diff --git a/skills-generator/src/main/resources/skills/111-skill.md b/skills-generator/src/main/resources/skills/111-skill.md index 6e5b11ef..66e01603 100644 --- a/skills-generator/src/main/resources/skills/111-skill.md +++ b/skills-generator/src/main/resources/skills/111-skill.md @@ -3,7 +3,7 @@ name: 111-java-maven-dependencies description: Use when you need to add or evaluate Maven dependencies that improve code quality — including nullness annotations (JSpecify), static analysis (Error Prone + NullAway), functional programming (VAVR), or architecture testing (ArchUnit) — and want a consultative, question-driven approach that adds only what you actually need. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Add Maven dependencies for improved code quality diff --git a/skills-generator/src/main/resources/skills/112-skill.md b/skills-generator/src/main/resources/skills/112-skill.md index b743a886..8725420b 100644 --- a/skills-generator/src/main/resources/skills/112-skill.md +++ b/skills-generator/src/main/resources/skills/112-skill.md @@ -3,7 +3,7 @@ name: 112-java-maven-plugins description: Use when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning (OWASP), code formatting (Spotless), version management, build information tracking, and benchmarking (JMH) — through a consultative, modular step-by-step approach that only adds what you actually need. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Plugins: pom.xml Configuration Best Practices diff --git a/skills-generator/src/main/resources/skills/113-skill.md b/skills-generator/src/main/resources/skills/113-skill.md index a4fd02e9..9d23c078 100644 --- a/skills-generator/src/main/resources/skills/113-skill.md +++ b/skills-generator/src/main/resources/skills/113-skill.md @@ -3,7 +3,7 @@ name: 113-java-maven-documentation description: Use when you need to create a DEVELOPER.md file for a Maven project — combining a fixed base template with dynamic sections derived from the project pom.xml, including a Plugin Goals Reference, Maven Profiles table, and Submodules table for multi-module projects. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Create DEVELOPER.md for the Maven projects diff --git a/skills-generator/src/main/resources/skills/121-skill.md b/skills-generator/src/main/resources/skills/121-skill.md index 88916f07..894c00bf 100644 --- a/skills-generator/src/main/resources/skills/121-skill.md +++ b/skills-generator/src/main/resources/skills/121-skill.md @@ -3,7 +3,7 @@ name: 121-java-object-oriented-design description: Use when you need to review, improve, or refactor Java code for object-oriented design quality — including applying SOLID, DRY, and YAGNI principles, improving class and interface design, fixing OOP concept misuse (encapsulation, inheritance, polymorphism), identifying and resolving code smells (God Class, Feature Envy, Data Clumps), or improving object creation patterns, method design, and exception handling. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Object-Oriented Design Guidelines diff --git a/skills-generator/src/main/resources/skills/122-skill.md b/skills-generator/src/main/resources/skills/122-skill.md index a457342e..2fb096e8 100644 --- a/skills-generator/src/main/resources/skills/122-skill.md +++ b/skills-generator/src/main/resources/skills/122-skill.md @@ -3,7 +3,7 @@ name: 122-java-type-design description: Use when you need to review, improve, or refactor Java code for type design quality — including establishing clear type hierarchies, applying consistent naming conventions, eliminating primitive obsession with domain-specific value objects, leveraging generic type parameters, creating type-safe wrappers, designing fluent interfaces, ensuring precision-appropriate numeric types (BigDecimal for financial calculations), and improving type contrast through interfaces and method signature alignment. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Type Design Thinking in Java diff --git a/skills-generator/src/main/resources/skills/123-skill.md b/skills-generator/src/main/resources/skills/123-skill.md index 341647b2..443c14d0 100644 --- a/skills-generator/src/main/resources/skills/123-skill.md +++ b/skills-generator/src/main/resources/skills/123-skill.md @@ -3,7 +3,7 @@ name: 123-java-exception-handling description: Use when you need to apply Java exception handling best practices — including using specific exception types, managing resources with try-with-resources, securing exception messages, preserving error context via exception chaining, validating inputs early with fail-fast principles, handling thread interruption correctly, documenting exceptions with @throws, enforcing logging policy, translating exceptions at API boundaries, managing retries and idempotency, enforcing timeouts, attaching suppressed exceptions, and propagating failures in async/reactive code. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Exception Handling Guidelines diff --git a/skills-generator/src/main/resources/skills/124-skill.md b/skills-generator/src/main/resources/skills/124-skill.md index 872f5c61..925e88dc 100644 --- a/skills-generator/src/main/resources/skills/124-skill.md +++ b/skills-generator/src/main/resources/skills/124-skill.md @@ -3,7 +3,7 @@ name: 124-java-secure-coding description: Use when you need to apply Java secure coding best practices — including validating untrusted inputs, defending against injection attacks with parameterized queries, minimizing attack surface via least privilege, applying strong cryptographic algorithms, handling exceptions securely without exposing sensitive data, managing secrets at runtime, avoiding unsafe deserialization, and encoding output to prevent XSS. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Secure coding guidelines diff --git a/skills-generator/src/main/resources/skills/125-skill.md b/skills-generator/src/main/resources/skills/125-skill.md index 3872c550..8fd92cd8 100644 --- a/skills-generator/src/main/resources/skills/125-skill.md +++ b/skills-generator/src/main/resources/skills/125-skill.md @@ -3,7 +3,7 @@ name: 125-java-concurrency description: Use when you need to apply Java concurrency best practices — including thread safety fundamentals, ExecutorService thread pool management, concurrent design patterns like Producer-Consumer, asynchronous programming with CompletableFuture, immutability and safe publication, deadlock avoidance, virtual threads and structured concurrency, scoped values, backpressure, cancellation discipline, and observability for concurrent systems. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java rules for Concurrency objects diff --git a/skills-generator/src/main/resources/skills/128-skill.md b/skills-generator/src/main/resources/skills/128-skill.md index 8dfcc7e2..3b85aa62 100644 --- a/skills-generator/src/main/resources/skills/128-skill.md +++ b/skills-generator/src/main/resources/skills/128-skill.md @@ -3,7 +3,7 @@ name: 128-java-generics description: Use when you need to review, improve, or refactor Java code for generics quality — including avoiding raw types, applying the PECS (Producer Extends Consumer Super) principle for wildcards, using bounded type parameters, designing effective generic methods, leveraging the diamond operator, understanding type erasure implications, handling generic inheritance correctly, preventing heap pollution with @SafeVarargs, and integrating generics with modern Java features like Records, sealed types, and pattern matching. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Generics Best Practices diff --git a/skills-generator/src/main/resources/skills/131-skill.md b/skills-generator/src/main/resources/skills/131-skill.md index 6784d62b..e1cbe813 100644 --- a/skills-generator/src/main/resources/skills/131-skill.md +++ b/skills-generator/src/main/resources/skills/131-skill.md @@ -3,7 +3,7 @@ name: 131-java-testing-unit-testing description: Use when you need to review, improve, or write Java unit tests — including migrating from JUnit 4 to JUnit 5, adopting AssertJ for fluent assertions, structuring tests with Given-When-Then, ensuring test independence, applying parameterized tests, mocking dependencies with Mockito, verifying boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), leveraging JSpecify null-safety annotations, or eliminating testing anti-patterns such as reflection-based tests or shared mutable state. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Unit testing guidelines diff --git a/skills-generator/src/main/resources/skills/132-skill.md b/skills-generator/src/main/resources/skills/132-skill.md index e9237478..a0b5caff 100644 --- a/skills-generator/src/main/resources/skills/132-skill.md +++ b/skills-generator/src/main/resources/skills/132-skill.md @@ -3,7 +3,7 @@ name: 132-java-testing-integration-testing description: Use when you need to set up, review, or improve Java integration tests — including generating a BaseIntegrationTest.java with WireMock for HTTP stubs, detecting HTTP client infrastructure from import signals, injecting service coordinates dynamically via System.setProperty(), creating WireMock JSON mapping files with bodyFileName, isolating stubs per test method, verifying HTTP interactions, or eliminating anti-patterns such as Mockito-mocked HTTP clients or globally registered WireMock stubs. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Integration testing guidelines diff --git a/skills-generator/src/main/resources/skills/141-skill.md b/skills-generator/src/main/resources/skills/141-skill.md index 26414767..59d5e64e 100644 --- a/skills-generator/src/main/resources/skills/141-skill.md +++ b/skills-generator/src/main/resources/skills/141-skill.md @@ -3,7 +3,7 @@ name: 141-java-refactoring-with-modern-features description: Use when you need to refactor Java code to adopt modern Java features (Java 8+) — including migrating anonymous classes to lambdas, replacing Iterator loops with Stream API, adopting Optional for null safety, switching from legacy Date/Calendar to java.time, using collection factory methods, migrating to CompletableFuture for async operations, applying text blocks, var inference, or leveraging Java 25 features like flexible constructor bodies and module import declarations. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Modern Java Development Guidelines (Java 8+) diff --git a/skills-generator/src/main/resources/skills/142-skill.md b/skills-generator/src/main/resources/skills/142-skill.md index 5f441eb9..90cd68da 100644 --- a/skills-generator/src/main/resources/skills/142-skill.md +++ b/skills-generator/src/main/resources/skills/142-skill.md @@ -3,7 +3,7 @@ name: 142-java-functional-programming description: Use when you need to apply functional programming principles in Java — including writing immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API pipelines, Optional for null safety, function composition, higher-order functions, pattern matching for instanceof and switch, sealed classes/interfaces for controlled hierarchies, Stream Gatherers for custom operations, currying/partial application, effect boundary separation, and concurrent-safe functional patterns. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Programming rules diff --git a/skills-generator/src/main/resources/skills/143-skill.md b/skills-generator/src/main/resources/skills/143-skill.md index 715ff871..9476764f 100644 --- a/skills-generator/src/main/resources/skills/143-skill.md +++ b/skills-generator/src/main/resources/skills/143-skill.md @@ -3,7 +3,7 @@ name: 143-java-functional-exception-handling description: Use when you need to apply functional exception handling best practices in Java — including replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions only for truly exceptional system-level failures. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Exception handling Best Practices diff --git a/skills-generator/src/main/resources/skills/170-skill.md b/skills-generator/src/main/resources/skills/170-skill.md index 6ba5e529..2167002d 100644 --- a/skills-generator/src/main/resources/skills/170-skill.md +++ b/skills-generator/src/main/resources/skills/170-skill.md @@ -3,7 +3,7 @@ name: 170-java-documentation description: Use when you need to generate or improve Java project documentation — including README.md files, package-info.java files, and Javadoc enhancements — through a modular, step-based interactive process that adapts to your specific documentation needs. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Documentation Generator with modular step-based configuration diff --git a/skills-generator/src/main/resources/skills/171-skill.md b/skills-generator/src/main/resources/skills/171-skill.md index ee2f25e9..2a6cab36 100644 --- a/skills-generator/src/main/resources/skills/171-skill.md +++ b/skills-generator/src/main/resources/skills/171-skill.md @@ -3,7 +3,7 @@ name: 171-java-adr description: Use when you need to generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes to produce well-structured ADR documents. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java ADR Generator with interactive conversational approach diff --git a/skills-generator/src/main/resources/skills/172-skill.md b/skills-generator/src/main/resources/skills/172-skill.md index 299d4d73..0038b581 100644 --- a/skills-generator/src/main/resources/skills/172-skill.md +++ b/skills-generator/src/main/resources/skills/172-skill.md @@ -3,7 +3,7 @@ name: 172-java-diagrams description: Use when you need to generate Java project diagrams — including UML sequence diagrams, UML class diagrams, C4 model diagrams, and UML state machine diagrams — through a modular, step-based interactive process that adapts to your specific visualization needs. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Diagrams Generator with modular step-based configuration diff --git a/skills-generator/src/main/resources/skills/173-skill.md b/skills-generator/src/main/resources/skills/173-skill.md index a7490506..2af16a5f 100644 --- a/skills-generator/src/main/resources/skills/173-skill.md +++ b/skills-generator/src/main/resources/skills/173-skill.md @@ -3,7 +3,7 @@ name: 173-java-agents description: Use when you need to generate an AGENTS.md file for a Java repository — covering project conventions, tech stack, file structure, commands, Git workflow, and contributor boundaries — through a modular, step-based interactive process that adapts to your specific project needs. metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # AGENTS.md Generator for Java repositories diff --git a/skills-generator/src/test/java/info/jab/pml/SkillsGeneratorTest.java b/skills-generator/src/test/java/info/jab/pml/SkillsGeneratorTest.java index 98f72c2e..908df3fa 100644 --- a/skills-generator/src/test/java/info/jab/pml/SkillsGeneratorTest.java +++ b/skills-generator/src/test/java/info/jab/pml/SkillsGeneratorTest.java @@ -7,6 +7,9 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.xml.parsers.DocumentBuilder; @@ -138,6 +141,67 @@ void should_haveMatchingTitle_when_comparingSkillMdAndSystemPromptXml(SkillsInve } } + @Nested + @DisplayName("Version Consistency Tests") + class VersionConsistencyTests { + + private static final Pattern VERSION_PATTERN = Pattern.compile("^\\s*version:\\s*(\\S+)\\s*$"); + + private static Stream provideSkillDescriptors() { + return SkillsInventory.skillDescriptors(); + } + + @ParameterizedTest + @MethodSource("provideSkillDescriptors") + @DisplayName("Should have metadata version matching project version from parent pom.xml when version is present") + void should_haveMetadataVersionMatchingProjectVersion_when_versionPresent(SkillsInventory.SkillDescriptor descriptor) throws Exception { + String numId = numericId(descriptor.skillId()); + String resourceName = "skills/" + numId + "-skill.md"; + + try (InputStream stream = SkillsGeneratorTest.class.getClassLoader().getResourceAsStream(resourceName)) { + assertThat(stream).withFailMessage("Skill file not found: %s", resourceName).isNotNull(); + String content = new String(stream.readAllBytes(), StandardCharsets.UTF_8); + Optional skillVersion = extractVersionFromFrontmatter(content); + + if (skillVersion.isEmpty()) { + return; + } + + String expectedVersion = readProjectVersionFromParentPom(); + assertThat(skillVersion.get()) + .withFailMessage( + "Skill %s has metadata version '%s' but project version is '%s'. " + + "Update the version in skills/%s-skill.md to match pom.xml.", + resourceName, skillVersion.get(), expectedVersion, numId) + .isEqualTo(expectedVersion); + } + } + + private Optional extractVersionFromFrontmatter(String content) { + return content.lines() + .map(VERSION_PATTERN::matcher) + .filter(Matcher::matches) + .findFirst() + .map(m -> m.group(1)); + } + + private String readProjectVersionFromParentPom() throws Exception { + Path parentPom = Paths.get("..", "pom.xml").normalize(); + if (!Files.exists(parentPom)) { + throw new IllegalStateException("Parent pom.xml not found at " + parentPom.toAbsolutePath()); + } + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + Document doc = factory.newDocumentBuilder().parse(Files.newInputStream(parentPom)); + Element project = doc.getDocumentElement(); + NodeList versionNodes = project.getElementsByTagName("version"); + if (versionNodes.getLength() == 0) { + throw new IllegalStateException("No element in parent pom.xml"); + } + String version = versionNodes.item(0).getTextContent(); + return version != null ? version.trim() : null; + } + } + @Nested @DisplayName("Exception Handling Tests") class ExceptionHandlingTests { diff --git a/skills/110-java-maven-best-practices/SKILL.md b/skills/110-java-maven-best-practices/SKILL.md index aa42b3af..baa01301 100644 --- a/skills/110-java-maven-best-practices/SKILL.md +++ b/skills/110-java-maven-best-practices/SKILL.md @@ -3,7 +3,7 @@ name: 110-java-maven-best-practices description: Use when you need to review, improve, or troubleshoot a Maven pom.xml file — including dependency management with BOMs, plugin configuration, version centralization, multi-module project structure, build profiles, or any situation where you want to align your Maven setup with industry best practices. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Best Practices diff --git a/skills/110-java-maven-best-practices/references/110-java-maven-best-practices.md b/skills/110-java-maven-best-practices/references/110-java-maven-best-practices.md index f813a7ff..87fae532 100644 --- a/skills/110-java-maven-best-practices/references/110-java-maven-best-practices.md +++ b/skills/110-java-maven-best-practices/references/110-java-maven-best-practices.md @@ -4,7 +4,7 @@ description: Use when you need to improve your Maven pom.xml using best practice license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Best Practices diff --git a/skills/111-java-maven-dependencies/SKILL.md b/skills/111-java-maven-dependencies/SKILL.md index 1a9b8f5c..f6b656f4 100644 --- a/skills/111-java-maven-dependencies/SKILL.md +++ b/skills/111-java-maven-dependencies/SKILL.md @@ -3,7 +3,7 @@ name: 111-java-maven-dependencies description: Use when you need to add or evaluate Maven dependencies that improve code quality — including nullness annotations (JSpecify), static analysis (Error Prone + NullAway), functional programming (VAVR), or architecture testing (ArchUnit) — and want a consultative, question-driven approach that adds only what you actually need. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Add Maven dependencies for improved code quality diff --git a/skills/111-java-maven-dependencies/references/111-java-maven-dependencies.md b/skills/111-java-maven-dependencies/references/111-java-maven-dependencies.md index 97e8137a..5a63297d 100644 --- a/skills/111-java-maven-dependencies/references/111-java-maven-dependencies.md +++ b/skills/111-java-maven-dependencies/references/111-java-maven-dependencies.md @@ -4,7 +4,7 @@ description: Use when you need to think to add maven dependencies to your projec license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Add Maven dependencies for improved code quality diff --git a/skills/112-java-maven-plugins/SKILL.md b/skills/112-java-maven-plugins/SKILL.md index f7d041e0..09326a73 100644 --- a/skills/112-java-maven-plugins/SKILL.md +++ b/skills/112-java-maven-plugins/SKILL.md @@ -3,7 +3,7 @@ name: 112-java-maven-plugins description: Use when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning (OWASP), code formatting (Spotless), version management, build information tracking, and benchmarking (JMH) — through a consultative, modular step-by-step approach that only adds what you actually need. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Plugins: pom.xml Configuration Best Practices diff --git a/skills/112-java-maven-plugins/references/112-java-maven-plugins.md b/skills/112-java-maven-plugins/references/112-java-maven-plugins.md index f138a670..1b82bc3d 100644 --- a/skills/112-java-maven-plugins/references/112-java-maven-plugins.md +++ b/skills/112-java-maven-plugins/references/112-java-maven-plugins.md @@ -4,7 +4,7 @@ description: Use when you need to add or configure Maven plugins in your pom.xml license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Maven Plugins: pom.xml Configuration Best Practices diff --git a/skills/113-java-maven-documentation/SKILL.md b/skills/113-java-maven-documentation/SKILL.md index 6b44d567..114665d8 100644 --- a/skills/113-java-maven-documentation/SKILL.md +++ b/skills/113-java-maven-documentation/SKILL.md @@ -3,7 +3,7 @@ name: 113-java-maven-documentation description: Use when you need to create a DEVELOPER.md file for a Maven project — combining a fixed base template with dynamic sections derived from the project pom.xml, including a Plugin Goals Reference, Maven Profiles table, and Submodules table for multi-module projects. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Create DEVELOPER.md for the Maven projects diff --git a/skills/113-java-maven-documentation/references/113-java-maven-documentation.md b/skills/113-java-maven-documentation/references/113-java-maven-documentation.md index d122a813..1d5cf9e7 100644 --- a/skills/113-java-maven-documentation/references/113-java-maven-documentation.md +++ b/skills/113-java-maven-documentation/references/113-java-maven-documentation.md @@ -4,7 +4,7 @@ description: Use when you need to create a DEVELOPER.md file for a Maven project license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Create DEVELOPER.md for the Maven projects diff --git a/skills/121-java-object-oriented-design/SKILL.md b/skills/121-java-object-oriented-design/SKILL.md index 24bdabe0..fac28873 100644 --- a/skills/121-java-object-oriented-design/SKILL.md +++ b/skills/121-java-object-oriented-design/SKILL.md @@ -3,7 +3,7 @@ name: 121-java-object-oriented-design description: Use when you need to review, improve, or refactor Java code for object-oriented design quality — including applying SOLID, DRY, and YAGNI principles, improving class and interface design, fixing OOP concept misuse (encapsulation, inheritance, polymorphism), identifying and resolving code smells (God Class, Feature Envy, Data Clumps), or improving object creation patterns, method design, and exception handling. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Object-Oriented Design Guidelines diff --git a/skills/121-java-object-oriented-design/references/121-java-object-oriented-design.md b/skills/121-java-object-oriented-design/references/121-java-object-oriented-design.md index d9f83516..4b6d7da2 100644 --- a/skills/121-java-object-oriented-design/references/121-java-object-oriented-design.md +++ b/skills/121-java-object-oriented-design/references/121-java-object-oriented-design.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or refactor Java code for obj license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Object-Oriented Design Guidelines diff --git a/skills/122-java-type-design/SKILL.md b/skills/122-java-type-design/SKILL.md index 70cf9f86..7bee8140 100644 --- a/skills/122-java-type-design/SKILL.md +++ b/skills/122-java-type-design/SKILL.md @@ -3,7 +3,7 @@ name: 122-java-type-design description: Use when you need to review, improve, or refactor Java code for type design quality — including establishing clear type hierarchies, applying consistent naming conventions, eliminating primitive obsession with domain-specific value objects, leveraging generic type parameters, creating type-safe wrappers, designing fluent interfaces, ensuring precision-appropriate numeric types (BigDecimal for financial calculations), and improving type contrast through interfaces and method signature alignment. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Type Design Thinking in Java diff --git a/skills/122-java-type-design/references/122-java-type-design.md b/skills/122-java-type-design/references/122-java-type-design.md index a44e93cc..a395ee73 100644 --- a/skills/122-java-type-design/references/122-java-type-design.md +++ b/skills/122-java-type-design/references/122-java-type-design.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or refactor Java code for typ license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Type Design Thinking in Java diff --git a/skills/123-java-exception-handling/SKILL.md b/skills/123-java-exception-handling/SKILL.md index 27ab6fb6..2c379313 100644 --- a/skills/123-java-exception-handling/SKILL.md +++ b/skills/123-java-exception-handling/SKILL.md @@ -3,7 +3,7 @@ name: 123-java-exception-handling description: Use when you need to apply Java exception handling best practices — including using specific exception types, managing resources with try-with-resources, securing exception messages, preserving error context via exception chaining, validating inputs early with fail-fast principles, handling thread interruption correctly, documenting exceptions with @throws, enforcing logging policy, translating exceptions at API boundaries, managing retries and idempotency, enforcing timeouts, attaching suppressed exceptions, and propagating failures in async/reactive code. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Exception Handling Guidelines diff --git a/skills/123-java-exception-handling/references/123-java-exception-handling.md b/skills/123-java-exception-handling/references/123-java-exception-handling.md index 7728439f..87af8308 100644 --- a/skills/123-java-exception-handling/references/123-java-exception-handling.md +++ b/skills/123-java-exception-handling/references/123-java-exception-handling.md @@ -4,7 +4,7 @@ description: Use when you need to apply Java exception handling best practices license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Exception Handling Guidelines diff --git a/skills/124-java-secure-coding/SKILL.md b/skills/124-java-secure-coding/SKILL.md index 703a7567..f2b31132 100644 --- a/skills/124-java-secure-coding/SKILL.md +++ b/skills/124-java-secure-coding/SKILL.md @@ -3,7 +3,7 @@ name: 124-java-secure-coding description: Use when you need to apply Java secure coding best practices — including validating untrusted inputs, defending against injection attacks with parameterized queries, minimizing attack surface via least privilege, applying strong cryptographic algorithms, handling exceptions securely without exposing sensitive data, managing secrets at runtime, avoiding unsafe deserialization, and encoding output to prevent XSS. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Secure coding guidelines diff --git a/skills/124-java-secure-coding/references/124-java-secure-coding.md b/skills/124-java-secure-coding/references/124-java-secure-coding.md index 419eb125..7b826211 100644 --- a/skills/124-java-secure-coding/references/124-java-secure-coding.md +++ b/skills/124-java-secure-coding/references/124-java-secure-coding.md @@ -4,7 +4,7 @@ description: Use when you need to apply Java secure coding best practices — in license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Secure coding guidelines diff --git a/skills/125-java-concurrency/SKILL.md b/skills/125-java-concurrency/SKILL.md index 92a51c80..14806ed5 100644 --- a/skills/125-java-concurrency/SKILL.md +++ b/skills/125-java-concurrency/SKILL.md @@ -3,7 +3,7 @@ name: 125-java-concurrency description: Use when you need to apply Java concurrency best practices — including thread safety fundamentals, ExecutorService thread pool management, concurrent design patterns like Producer-Consumer, asynchronous programming with CompletableFuture, immutability and safe publication, deadlock avoidance, virtual threads and structured concurrency, scoped values, backpressure, cancellation discipline, and observability for concurrent systems. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java rules for Concurrency objects diff --git a/skills/125-java-concurrency/references/125-java-concurrency.md b/skills/125-java-concurrency/references/125-java-concurrency.md index a1253bda..5b8426b0 100644 --- a/skills/125-java-concurrency/references/125-java-concurrency.md +++ b/skills/125-java-concurrency/references/125-java-concurrency.md @@ -4,7 +4,7 @@ description: Use when you need to apply Java concurrency best practices — incl license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java rules for Concurrency objects diff --git a/skills/128-java-generics/SKILL.md b/skills/128-java-generics/SKILL.md index 8bf26b01..35307a3f 100644 --- a/skills/128-java-generics/SKILL.md +++ b/skills/128-java-generics/SKILL.md @@ -3,7 +3,7 @@ name: 128-java-generics description: Use when you need to review, improve, or refactor Java code for generics quality — including avoiding raw types, applying the PECS (Producer Extends Consumer Super) principle for wildcards, using bounded type parameters, designing effective generic methods, leveraging the diamond operator, understanding type erasure implications, handling generic inheritance correctly, preventing heap pollution with @SafeVarargs, and integrating generics with modern Java features like Records, sealed types, and pattern matching. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Generics Best Practices diff --git a/skills/128-java-generics/references/128-java-generics.md b/skills/128-java-generics/references/128-java-generics.md index 3e768930..4c64cce3 100644 --- a/skills/128-java-generics/references/128-java-generics.md +++ b/skills/128-java-generics/references/128-java-generics.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or refactor Java code for gen license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Generics Best Practices diff --git a/skills/131-java-testing-unit-testing/SKILL.md b/skills/131-java-testing-unit-testing/SKILL.md index 704af408..82937805 100644 --- a/skills/131-java-testing-unit-testing/SKILL.md +++ b/skills/131-java-testing-unit-testing/SKILL.md @@ -3,7 +3,7 @@ name: 131-java-testing-unit-testing description: Use when you need to review, improve, or write Java unit tests — including migrating from JUnit 4 to JUnit 5, adopting AssertJ for fluent assertions, structuring tests with Given-When-Then, ensuring test independence, applying parameterized tests, mocking dependencies with Mockito, verifying boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), leveraging JSpecify null-safety annotations, or eliminating testing anti-patterns such as reflection-based tests or shared mutable state. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Unit testing guidelines diff --git a/skills/131-java-testing-unit-testing/references/131-java-testing-unit-testing.md b/skills/131-java-testing-unit-testing/references/131-java-testing-unit-testing.md index 6fc6a872..610de91f 100644 --- a/skills/131-java-testing-unit-testing/references/131-java-testing-unit-testing.md +++ b/skills/131-java-testing-unit-testing/references/131-java-testing-unit-testing.md @@ -4,7 +4,7 @@ description: Use when you need to review, improve, or write Java unit tests — license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Unit testing guidelines diff --git a/skills/132-java-testing-integration-testing/SKILL.md b/skills/132-java-testing-integration-testing/SKILL.md index b3f174ca..3ff0f635 100644 --- a/skills/132-java-testing-integration-testing/SKILL.md +++ b/skills/132-java-testing-integration-testing/SKILL.md @@ -3,7 +3,7 @@ name: 132-java-testing-integration-testing description: Use when you need to set up, review, or improve Java integration tests — including generating a BaseIntegrationTest.java with WireMock for HTTP stubs, detecting HTTP client infrastructure from import signals, injecting service coordinates dynamically via System.setProperty(), creating WireMock JSON mapping files with bodyFileName, isolating stubs per test method, verifying HTTP interactions, or eliminating anti-patterns such as Mockito-mocked HTTP clients or globally registered WireMock stubs. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Integration testing guidelines diff --git a/skills/132-java-testing-integration-testing/references/132-java-testing-integration-testing.md b/skills/132-java-testing-integration-testing/references/132-java-testing-integration-testing.md index 3aed9736..c569deca 100644 --- a/skills/132-java-testing-integration-testing/references/132-java-testing-integration-testing.md +++ b/skills/132-java-testing-integration-testing/references/132-java-testing-integration-testing.md @@ -4,7 +4,7 @@ description: Use when you need to set up, review, or improve Java integration te license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Integration testing guidelines diff --git a/skills/141-java-refactoring-with-modern-features/SKILL.md b/skills/141-java-refactoring-with-modern-features/SKILL.md index 1539da14..5030908e 100644 --- a/skills/141-java-refactoring-with-modern-features/SKILL.md +++ b/skills/141-java-refactoring-with-modern-features/SKILL.md @@ -3,7 +3,7 @@ name: 141-java-refactoring-with-modern-features description: Use when you need to refactor Java code to adopt modern Java features (Java 8+) — including migrating anonymous classes to lambdas, replacing Iterator loops with Stream API, adopting Optional for null safety, switching from legacy Date/Calendar to java.time, using collection factory methods, migrating to CompletableFuture for async operations, applying text blocks, var inference, or leveraging Java 25 features like flexible constructor bodies and module import declarations. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Modern Java Development Guidelines (Java 8+) diff --git a/skills/141-java-refactoring-with-modern-features/references/141-java-refactoring-with-modern-features.md b/skills/141-java-refactoring-with-modern-features/references/141-java-refactoring-with-modern-features.md index 31eb001f..43e709ba 100644 --- a/skills/141-java-refactoring-with-modern-features/references/141-java-refactoring-with-modern-features.md +++ b/skills/141-java-refactoring-with-modern-features/references/141-java-refactoring-with-modern-features.md @@ -4,7 +4,7 @@ description: Use when you need to refactor Java code to adopt modern Java featur license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Modern Java Development Guidelines (Java 8+) diff --git a/skills/142-java-functional-programming/SKILL.md b/skills/142-java-functional-programming/SKILL.md index 739dbd0e..13d8c8fd 100644 --- a/skills/142-java-functional-programming/SKILL.md +++ b/skills/142-java-functional-programming/SKILL.md @@ -3,7 +3,7 @@ name: 142-java-functional-programming description: Use when you need to apply functional programming principles in Java — including writing immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API pipelines, Optional for null safety, function composition, higher-order functions, pattern matching for instanceof and switch, sealed classes/interfaces for controlled hierarchies, Stream Gatherers for custom operations, currying/partial application, effect boundary separation, and concurrent-safe functional patterns. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Programming rules diff --git a/skills/142-java-functional-programming/references/142-java-functional-programming.md b/skills/142-java-functional-programming/references/142-java-functional-programming.md index 6a654593..c974b012 100644 --- a/skills/142-java-functional-programming/references/142-java-functional-programming.md +++ b/skills/142-java-functional-programming/references/142-java-functional-programming.md @@ -4,7 +4,7 @@ description: Use when you need to apply functional programming principles in Jav license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Programming rules diff --git a/skills/143-java-functional-exception-handling/SKILL.md b/skills/143-java-functional-exception-handling/SKILL.md index 429652e1..d619d1b6 100644 --- a/skills/143-java-functional-exception-handling/SKILL.md +++ b/skills/143-java-functional-exception-handling/SKILL.md @@ -3,7 +3,7 @@ name: 143-java-functional-exception-handling description: Use when you need to apply functional exception handling best practices in Java — including replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions only for truly exceptional system-level failures. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Exception handling Best Practices diff --git a/skills/143-java-functional-exception-handling/references/143-java-functional-exception-handling.md b/skills/143-java-functional-exception-handling/references/143-java-functional-exception-handling.md index aeca8f5c..f4f54ca8 100644 --- a/skills/143-java-functional-exception-handling/references/143-java-functional-exception-handling.md +++ b/skills/143-java-functional-exception-handling/references/143-java-functional-exception-handling.md @@ -4,7 +4,7 @@ description: Use when you need to apply functional exception handling best pract license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Functional Exception handling Best Practices diff --git a/skills/170-java-documentation/SKILL.md b/skills/170-java-documentation/SKILL.md index d2b782a7..e678c49d 100644 --- a/skills/170-java-documentation/SKILL.md +++ b/skills/170-java-documentation/SKILL.md @@ -3,7 +3,7 @@ name: 170-java-documentation description: Use when you need to generate or improve Java project documentation — including README.md files, package-info.java files, and Javadoc enhancements — through a modular, step-based interactive process that adapts to your specific documentation needs. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Documentation Generator with modular step-based configuration diff --git a/skills/170-java-documentation/references/170-java-documentation.md b/skills/170-java-documentation/references/170-java-documentation.md index 44ad406f..73b865c4 100644 --- a/skills/170-java-documentation/references/170-java-documentation.md +++ b/skills/170-java-documentation/references/170-java-documentation.md @@ -4,7 +4,7 @@ description: Use when you need to generate or improve Java project documentation license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Documentation Generator with modular step-based configuration diff --git a/skills/171-java-adr/SKILL.md b/skills/171-java-adr/SKILL.md index d1dfaca7..8c865e3d 100644 --- a/skills/171-java-adr/SKILL.md +++ b/skills/171-java-adr/SKILL.md @@ -3,7 +3,7 @@ name: 171-java-adr description: Use when you need to generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes to produce well-structured ADR documents. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java ADR Generator with interactive conversational approach diff --git a/skills/171-java-adr/references/171-java-adr.md b/skills/171-java-adr/references/171-java-adr.md index fe96ef4b..dccde377 100644 --- a/skills/171-java-adr/references/171-java-adr.md +++ b/skills/171-java-adr/references/171-java-adr.md @@ -4,7 +4,7 @@ description: Use when you need to generate Architecture Decision Records (ADRs) license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java ADR Generator with interactive conversational approach diff --git a/skills/172-java-diagrams/SKILL.md b/skills/172-java-diagrams/SKILL.md index 37f30150..150bee76 100644 --- a/skills/172-java-diagrams/SKILL.md +++ b/skills/172-java-diagrams/SKILL.md @@ -3,7 +3,7 @@ name: 172-java-diagrams description: Use when you need to generate Java project diagrams — including UML sequence diagrams, UML class diagrams, C4 model diagrams, and UML state machine diagrams — through a modular, step-based interactive process that adapts to your specific visualization needs. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Diagrams Generator with modular step-based configuration diff --git a/skills/172-java-diagrams/references/172-java-diagrams.md b/skills/172-java-diagrams/references/172-java-diagrams.md index da3a9074..bc7f7439 100644 --- a/skills/172-java-diagrams/references/172-java-diagrams.md +++ b/skills/172-java-diagrams/references/172-java-diagrams.md @@ -4,7 +4,7 @@ description: Use when you need to generate Java project diagrams — including U license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # Java Diagrams Generator with modular step-based configuration diff --git a/skills/173-java-agents/SKILL.md b/skills/173-java-agents/SKILL.md index be143bf4..72194788 100644 --- a/skills/173-java-agents/SKILL.md +++ b/skills/173-java-agents/SKILL.md @@ -3,7 +3,7 @@ name: 173-java-agents description: Use when you need to generate an AGENTS.md file for a Java repository — covering project conventions, tech stack, file structure, commands, Git workflow, and contributor boundaries — through a modular, step-based interactive process that adapts to your specific project needs. Part of the skills-for-java project metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # AGENTS.md Generator for Java repositories diff --git a/skills/173-java-agents/references/173-java-agents.md b/skills/173-java-agents/references/173-java-agents.md index 1cffcb5e..eed5558f 100644 --- a/skills/173-java-agents/references/173-java-agents.md +++ b/skills/173-java-agents/references/173-java-agents.md @@ -4,7 +4,7 @@ description: Use when you need to generate an AGENTS.md file for a Java reposito license: Apache-2.0 metadata: author: Juan Antonio Breña Moral - version: 0.12.0 + version: 0.13.0-SNAPSHOT --- # AGENTS.md Generator for Java repositories diff --git a/system-prompts-generator/pom.xml b/system-prompts-generator/pom.xml index 7c46d00a..49f9a76a 100644 --- a/system-prompts-generator/pom.xml +++ b/system-prompts-generator/pom.xml @@ -7,7 +7,7 @@ info.jab cursor-rules-java - 0.12.0 + 0.13.0-SNAPSHOT info.jab.pml diff --git a/system-prompts-generator/src/main/resources/system-prompts/100-java-system-prompt-java-list.xml b/system-prompts-generator/src/main/resources/system-prompts/100-java-system-prompt-java-list.xml index 8753fd85..253f945d 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/100-java-system-prompt-java-list.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/100-java-system-prompt-java-list.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Create a Checklist with all Java steps to use with system prompts for Java diff --git a/system-prompts-generator/src/main/resources/system-prompts/110-java-maven-best-practices.xml b/system-prompts-generator/src/main/resources/system-prompts/110-java-maven-best-practices.xml index b359d744..36d5986f 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/110-java-maven-best-practices.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/110-java-maven-best-practices.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Maven Best Practices Use when you need to improve your Maven pom.xml using best practices. diff --git a/system-prompts-generator/src/main/resources/system-prompts/111-java-maven-dependencies.xml b/system-prompts-generator/src/main/resources/system-prompts/111-java-maven-dependencies.xml index 6a9442f8..24062036 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/111-java-maven-dependencies.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/111-java-maven-dependencies.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Add Maven dependencies for improved code quality Use when you need to think to add maven dependencies to your project. diff --git a/system-prompts-generator/src/main/resources/system-prompts/112-java-maven-plugins.xml b/system-prompts-generator/src/main/resources/system-prompts/112-java-maven-plugins.xml index d5eb2f89..316dac2a 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/112-java-maven-plugins.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/112-java-maven-plugins.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Maven Plugins: pom.xml Configuration Best Practices Use when you need to add or configure Maven plugins in your pom.xml using a modular, step-based approach. diff --git a/system-prompts-generator/src/main/resources/system-prompts/113-java-maven-documentation.xml b/system-prompts-generator/src/main/resources/system-prompts/113-java-maven-documentation.xml index 98c67daa..5ff784d9 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/113-java-maven-documentation.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/113-java-maven-documentation.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Create DEVELOPER.md for the Maven projects Use when you need to create a DEVELOPER.md file for a Maven project documenting plugin goals, Maven profiles, and submodules. diff --git a/system-prompts-generator/src/main/resources/system-prompts/121-java-object-oriented-design.xml b/system-prompts-generator/src/main/resources/system-prompts/121-java-object-oriented-design.xml index 80f4b441..c449fe4e 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/121-java-object-oriented-design.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/121-java-object-oriented-design.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Object-Oriented Design Guidelines Use when you need to review, improve, or refactor Java code for object-oriented design quality — applying SOLID, DRY, and YAGNI principles, improving class and interface design, fixing OOP misuse, and resolving common code smells such as God Class, Feature Envy, and Data Clumps. diff --git a/system-prompts-generator/src/main/resources/system-prompts/122-java-type-design.xml b/system-prompts-generator/src/main/resources/system-prompts/122-java-type-design.xml index 3b5711d4..2469efcf 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/122-java-type-design.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/122-java-type-design.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Type Design Thinking in Java Use when you need to review, improve, or refactor Java code for type design quality — including establishing clear type hierarchies, applying consistent naming conventions, eliminating primitive obsession with domain-specific value objects, leveraging generic type parameters, creating type-safe wrappers, designing fluent interfaces, ensuring precision-appropriate numeric types (BigDecimal for financial calculations), and improving type contrast through interfaces and method signature alignment. diff --git a/system-prompts-generator/src/main/resources/system-prompts/123-java-exception-handling.xml b/system-prompts-generator/src/main/resources/system-prompts/123-java-exception-handling.xml index 94cc1821..9be91831 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/123-java-exception-handling.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/123-java-exception-handling.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Exception Handling Guidelines Use when you need to apply Java exception handling best practices — including using specific exception types, managing resources with try-with-resources, securing exception messages, preserving error context via exception chaining, validating inputs early with fail-fast principles, handling thread interruption correctly, documenting exceptions with @throws, enforcing logging policy, translating exceptions at API boundaries, managing retries and idempotency, enforcing timeouts, attaching suppressed exceptions, and propagating failures in async/reactive code. diff --git a/system-prompts-generator/src/main/resources/system-prompts/124-java-secure-coding.xml b/system-prompts-generator/src/main/resources/system-prompts/124-java-secure-coding.xml index 6320a781..6d2a8113 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/124-java-secure-coding.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/124-java-secure-coding.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Secure coding guidelines Use when you need to apply Java secure coding best practices — including validating untrusted inputs, defending against injection attacks with parameterized queries, minimizing attack surface via least privilege, applying strong cryptographic algorithms, handling exceptions securely without exposing sensitive data, managing secrets at runtime, avoiding unsafe deserialization, and encoding output to prevent XSS. diff --git a/system-prompts-generator/src/main/resources/system-prompts/125-java-concurrency.xml b/system-prompts-generator/src/main/resources/system-prompts/125-java-concurrency.xml index d4353fab..41ed762c 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/125-java-concurrency.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/125-java-concurrency.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java rules for Concurrency objects Use when you need to apply Java concurrency best practices — including thread safety fundamentals, ExecutorService thread pool management, concurrent design patterns like Producer-Consumer, asynchronous programming with CompletableFuture, immutability and safe publication, deadlock avoidance, virtual threads and structured concurrency, scoped values, backpressure, cancellation discipline, and observability for concurrent systems. diff --git a/system-prompts-generator/src/main/resources/system-prompts/126-java-observability-logging.xml b/system-prompts-generator/src/main/resources/system-prompts/126-java-observability-logging.xml index c4cb0b5b..7c35ba0b 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/126-java-observability-logging.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/126-java-observability-logging.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Logging Best Practices diff --git a/system-prompts-generator/src/main/resources/system-prompts/128-java-generics.xml b/system-prompts-generator/src/main/resources/system-prompts/128-java-generics.xml index 54c61daf..d839b5bf 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/128-java-generics.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/128-java-generics.xml @@ -2,7 +2,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Generics Best Practices Use when you need to review, improve, or refactor Java code for generics quality — including avoiding raw types, applying PECS wildcards, using bounded type parameters, designing effective generic methods, leveraging type inference with the diamond operator, handling type erasure, preventing heap pollution with @SafeVarargs, and integrating generics with Records, sealed types, and pattern matching. diff --git a/system-prompts-generator/src/main/resources/system-prompts/131-java-testing-unit-testing.xml b/system-prompts-generator/src/main/resources/system-prompts/131-java-testing-unit-testing.xml index c002f518..4f9904c4 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/131-java-testing-unit-testing.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/131-java-testing-unit-testing.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Unit testing guidelines Use when you need to review, improve, or write Java unit tests — including migrating from JUnit 4 to JUnit 5, adopting AssertJ for fluent assertions, structuring tests with Given-When-Then, ensuring test independence, applying parameterized tests, mocking dependencies with Mockito, verifying boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), leveraging JSpecify null-safety annotations, or eliminating testing anti-patterns such as reflection-based tests or shared mutable state. diff --git a/system-prompts-generator/src/main/resources/system-prompts/132-java-testing-integration-testing.xml b/system-prompts-generator/src/main/resources/system-prompts/132-java-testing-integration-testing.xml index 9f9e3916..26bac215 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/132-java-testing-integration-testing.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/132-java-testing-integration-testing.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Integration testing guidelines Use when you need to set up, review, or improve Java integration tests — including generating a BaseIntegrationTest.java with WireMock for HTTP stubs, detecting HTTP client infrastructure from import signals, injecting service coordinates dynamically via System.setProperty(), creating WireMock JSON mapping files with bodyFileName, isolating stubs per test method, verifying HTTP interactions, or eliminating anti-patterns such as Mockito-mocked HTTP clients or globally registered WireMock stubs. diff --git a/system-prompts-generator/src/main/resources/system-prompts/141-java-refactoring-with-modern-features.xml b/system-prompts-generator/src/main/resources/system-prompts/141-java-refactoring-with-modern-features.xml index 83becb50..7d0cc71a 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/141-java-refactoring-with-modern-features.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/141-java-refactoring-with-modern-features.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Modern Java Development Guidelines (Java 8+) Use when you need to refactor Java code to adopt modern Java features (Java 8+) including lambda expressions, Stream API, Optional, java.time API, collection factory methods, CompletableFuture, text blocks, var inference, and Java 25 flexible constructor bodies and module import declarations. diff --git a/system-prompts-generator/src/main/resources/system-prompts/142-java-functional-programming.xml b/system-prompts-generator/src/main/resources/system-prompts/142-java-functional-programming.xml index 7b245030..5b1a22c4 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/142-java-functional-programming.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/142-java-functional-programming.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Functional Programming rules Use when you need to apply functional programming principles in Java — including immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API, Optional for null safety, function composition, higher-order functions, pattern matching, sealed classes/interfaces, and concurrent-safe functional patterns. diff --git a/system-prompts-generator/src/main/resources/system-prompts/143-java-functional-exception-handling.xml b/system-prompts-generator/src/main/resources/system-prompts/143-java-functional-exception-handling.xml index 5d0a669a..a5baacad 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/143-java-functional-exception-handling.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/143-java-functional-exception-handling.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Functional Exception handling Best Practices Use when you need to apply functional exception handling best practices in Java — including replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions only for truly exceptional system-level failures. diff --git a/system-prompts-generator/src/main/resources/system-prompts/144-java-data-oriented-programming.xml b/system-prompts-generator/src/main/resources/system-prompts/144-java-data-oriented-programming.xml index 4fcdf61d..573abce3 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/144-java-data-oriented-programming.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/144-java-data-oriented-programming.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Data-Oriented Programming Best Practices Use when you need to apply data-oriented programming best practices in Java — including separating code (behavior) from data structures using records, designing immutable data with pure transformation functions, keeping data flat and denormalized with ID-based references, starting with generic data structures converting to specific types when needed, ensuring data integrity through pure validation functions, and creating flexible generic data access layers. diff --git a/system-prompts-generator/src/main/resources/system-prompts/151-java-performance-jmeter.xml b/system-prompts-generator/src/main/resources/system-prompts/151-java-performance-jmeter.xml index 4069b9a8..ad8ed4fc 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/151-java-performance-jmeter.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/151-java-performance-jmeter.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Run performance tests based on JMeter diff --git a/system-prompts-generator/src/main/resources/system-prompts/161-java-profiling-detect.xml b/system-prompts-generator/src/main/resources/system-prompts/161-java-profiling-detect.xml index 7b422ed6..624f3b4f 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/161-java-profiling-detect.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/161-java-profiling-detect.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Profiling Workflow / Step 1 / Collect data to measure potential issues diff --git a/system-prompts-generator/src/main/resources/system-prompts/162-java-profiling-analyze.xml b/system-prompts-generator/src/main/resources/system-prompts/162-java-profiling-analyze.xml index 78bea8da..ba29a390 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/162-java-profiling-analyze.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/162-java-profiling-analyze.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Profiling Workflow / Step 2 / Analyze profiling data diff --git a/system-prompts-generator/src/main/resources/system-prompts/163-java-profiling-refactor.xml b/system-prompts-generator/src/main/resources/system-prompts/163-java-profiling-refactor.xml index 46ba7a7a..b4b8cb88 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/163-java-profiling-refactor.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/163-java-profiling-refactor.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Profiling Workflow / Step 3 / Refactor code to fix issues diff --git a/system-prompts-generator/src/main/resources/system-prompts/164-java-profiling-verify.xml b/system-prompts-generator/src/main/resources/system-prompts/164-java-profiling-verify.xml index 02b7e5c9..45786317 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/164-java-profiling-verify.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/164-java-profiling-verify.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Profiling Workflow / Step 4 / Verify results diff --git a/system-prompts-generator/src/main/resources/system-prompts/170-java-documentation.xml b/system-prompts-generator/src/main/resources/system-prompts/170-java-documentation.xml index 6576c6e2..faf80d4e 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/170-java-documentation.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/170-java-documentation.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Documentation Generator with modular step-based configuration Use when you need to generate or improve Java project documentation — including README.md files, package-info.java files, and Javadoc enhancements — through a modular, step-based interactive process that adapts to your specific documentation needs. diff --git a/system-prompts-generator/src/main/resources/system-prompts/171-java-adr.xml b/system-prompts-generator/src/main/resources/system-prompts/171-java-adr.xml index 8b3d6aca..d62092b5 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/171-java-adr.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/171-java-adr.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java ADR Generator with interactive conversational approach Use when you need to generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes to produce well-structured ADR documents. diff --git a/system-prompts-generator/src/main/resources/system-prompts/172-java-diagrams.xml b/system-prompts-generator/src/main/resources/system-prompts/172-java-diagrams.xml index 8bce366e..2ad41e6d 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/172-java-diagrams.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/172-java-diagrams.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 Java Diagrams Generator with modular step-based configuration Use when you need to generate Java project diagrams — including UML sequence diagrams, UML class diagrams, C4 model diagrams, and UML state machine diagrams — through a modular, step-based interactive process that adapts to your specific visualization needs. diff --git a/system-prompts-generator/src/main/resources/system-prompts/173-java-agents.xml b/system-prompts-generator/src/main/resources/system-prompts/173-java-agents.xml index 555dd3cd..951d463e 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/173-java-agents.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/173-java-agents.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Apache-2.0 AGENTS.md Generator for Java repositories Use when you need to generate an AGENTS.md file for a Java repository — covering project conventions, tech stack, file structure, commands, Git workflow, and contributor boundaries — through a modular, step-based interactive process that adapts to your specific project needs. diff --git a/system-prompts-generator/src/main/resources/system-prompts/behaviour-article-writer.xml b/system-prompts-generator/src/main/resources/system-prompts/behaviour-article-writer.xml index 0b13fa83..58cb444c 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/behaviour-article-writer.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/behaviour-article-writer.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Behaviour Article Writer diff --git a/system-prompts-generator/src/main/resources/system-prompts/behaviour-consultative-interaction.xml b/system-prompts-generator/src/main/resources/system-prompts/behaviour-consultative-interaction.xml index 9451a753..8a6f5750 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/behaviour-consultative-interaction.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/behaviour-consultative-interaction.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Behaviour Consultative Interaction Technique diff --git a/system-prompts-generator/src/main/resources/system-prompts/behaviour-progressive-learning.xml b/system-prompts-generator/src/main/resources/system-prompts/behaviour-progressive-learning.xml index 9fd1018f..75b1cd13 100644 --- a/system-prompts-generator/src/main/resources/system-prompts/behaviour-progressive-learning.xml +++ b/system-prompts-generator/src/main/resources/system-prompts/behaviour-progressive-learning.xml @@ -3,7 +3,7 @@ Juan Antonio Breña Moral - 0.12.0 + 0.13.0-SNAPSHOT Behaviour Progressive Learning diff --git a/system-prompts-generator/src/test/java/info/jab/pml/CursorRulesGeneratorTest.java b/system-prompts-generator/src/test/java/info/jab/pml/CursorRulesGeneratorTest.java index f3240c5e..b9b5ba55 100644 --- a/system-prompts-generator/src/test/java/info/jab/pml/CursorRulesGeneratorTest.java +++ b/system-prompts-generator/src/test/java/info/jab/pml/CursorRulesGeneratorTest.java @@ -1,12 +1,15 @@ package info.jab.pml; import java.io.IOException; +import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -14,6 +17,9 @@ import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -468,4 +474,62 @@ private void saveGeneratedContentToTarget(String content, String filename) throw } } + + @Nested + @DisplayName("Version Consistency Tests") + class VersionConsistencyTests { + + @ParameterizedTest + @MethodSource("info.jab.pml.SystemPromptsInventory#baseNames") + @DisplayName("Should have metadata version matching project version from parent pom.xml") + void should_haveMetadataVersionMatchingProjectVersion(String baseFileName) throws Exception { + String expectedVersion = readProjectVersionFromParentPom(); + String xmlVersion = readVersionFromXmlMetadata("system-prompts/" + baseFileName + ".xml"); + + assertThat(xmlVersion) + .withFailMessage( + "System prompt %s.xml has metadata version '%s' but project version is '%s'. " + + "Update the in the XML metadata to match pom.xml.", + baseFileName, xmlVersion, expectedVersion) + .isEqualTo(expectedVersion); + } + + private String readProjectVersionFromParentPom() throws Exception { + Path parentPom = Paths.get("..", "pom.xml").normalize(); + if (!Files.exists(parentPom)) { + throw new IllegalStateException("Parent pom.xml not found at " + parentPom.toAbsolutePath()); + } + Document doc = parseXml(Files.newInputStream(parentPom)); + return getElementText(doc.getDocumentElement(), "version"); + } + + private String readVersionFromXmlMetadata(String resourceName) throws Exception { + try (InputStream stream = getClass().getClassLoader().getResourceAsStream(resourceName)) { + if (stream == null) { + throw new IllegalStateException("Resource not found: " + resourceName); + } + Document doc = parseXml(stream); + Element metadata = (Element) doc.getElementsByTagName("metadata").item(0); + if (metadata == null) { + throw new IllegalStateException("No metadata element in " + resourceName); + } + return getElementText(metadata, "version"); + } + } + + private Document parseXml(InputStream stream) throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + return builder.parse(stream); + } + + private String getElementText(Element parent, String tagName) { + NodeList nodes = parent.getElementsByTagName(tagName); + if (nodes.getLength() == 0) { + return null; + } + String text = nodes.item(0).getTextContent(); + return text != null ? text.trim() : null; + } + } } From 9b595b3506455db7ad13f40527ca5662c9d90236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Mon, 9 Mar 2026 15:56:50 +0100 Subject: [PATCH 3/4] Minor change --- skills-generator/src/main/resources/skills/040-skill.md | 2 +- skills/014-agile-create-user-story/SKILL.md | 3 +++ skills/020-architecture-functional-requirements-cli/SKILL.md | 3 +++ .../021-architecture-functional-requirements-rest/SKILL.md | 3 +++ skills/030-architecture-non-functional-requirements/SKILL.md | 3 +++ skills/040-planning-enhance-ai-plan-mode/SKILL.md | 5 ++++- 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/skills-generator/src/main/resources/skills/040-skill.md b/skills-generator/src/main/resources/skills/040-skill.md index 49812a39..a26e0997 100644 --- a/skills-generator/src/main/resources/skills/040-skill.md +++ b/skills-generator/src/main/resources/skills/040-skill.md @@ -1,5 +1,5 @@ --- -name: 040-planning-enhance-ai-plans +name: 040-planning-enhance-ai-plan-mode description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. metadata: author: Juan Antonio Breña Moral diff --git a/skills/014-agile-create-user-story/SKILL.md b/skills/014-agile-create-user-story/SKILL.md index a52d90c4..ee23a809 100644 --- a/skills/014-agile-create-user-story/SKILL.md +++ b/skills/014-agile-create-user-story/SKILL.md @@ -1,6 +1,9 @@ --- name: 014-agile-create-user-story description: Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. Part of the skills-for-java project +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create Agile User Stories diff --git a/skills/020-architecture-functional-requirements-cli/SKILL.md b/skills/020-architecture-functional-requirements-cli/SKILL.md index e64e9132..712f33e0 100644 --- a/skills/020-architecture-functional-requirements-cli/SKILL.md +++ b/skills/020-architecture-functional-requirements-cli/SKILL.md @@ -1,6 +1,9 @@ --- name: 020-architecture-functional-requirements-cli description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions. Part of the skills-for-java project +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create ADRs for CLI Development diff --git a/skills/021-architecture-functional-requirements-rest/SKILL.md b/skills/021-architecture-functional-requirements-rest/SKILL.md index 363edfd0..db3e4d60 100644 --- a/skills/021-architecture-functional-requirements-rest/SKILL.md +++ b/skills/021-architecture-functional-requirements-rest/SKILL.md @@ -1,6 +1,9 @@ --- name: 021-architecture-functional-requirements-rest description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions. Part of the skills-for-java project +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create ADRs for REST API Development diff --git a/skills/030-architecture-non-functional-requirements/SKILL.md b/skills/030-architecture-non-functional-requirements/SKILL.md index e50b4273..db97ae28 100644 --- a/skills/030-architecture-non-functional-requirements/SKILL.md +++ b/skills/030-architecture-non-functional-requirements/SKILL.md @@ -1,6 +1,9 @@ --- name: 030-architecture-non-functional-requirements description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. Part of the skills-for-java project +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Create ADRs for Non-Functional Requirements diff --git a/skills/040-planning-enhance-ai-plan-mode/SKILL.md b/skills/040-planning-enhance-ai-plan-mode/SKILL.md index 5dc48f9e..88453d42 100644 --- a/skills/040-planning-enhance-ai-plan-mode/SKILL.md +++ b/skills/040-planning-enhance-ai-plan-mode/SKILL.md @@ -1,6 +1,9 @@ --- -name: 040-planning-enhance-ai-plans +name: 040-planning-enhance-ai-plan-mode description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. Part of the skills-for-java project +metadata: + author: Juan Antonio Breña Moral + version: 0.13.0-SNAPSHOT --- # Java Design Plan Creation From f80b592da8587181af7f76909e196cb8384babc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Bre=C3=B1a=20Moral?= Date: Mon, 9 Mar 2026 16:06:11 +0100 Subject: [PATCH 4/4] Adding license: Apache-2.0 to all Skills --- .../src/main/java/info/jab/pml/SkillsGenerator.java | 12 +++++++++++- .../src/main/resources/skills/014-skill.md | 1 + .../src/main/resources/skills/020-skill.md | 1 + .../src/main/resources/skills/021-skill.md | 1 + .../src/main/resources/skills/030-skill.md | 1 + .../src/main/resources/skills/040-skill.md | 1 + .../src/main/resources/skills/110-skill.md | 1 + .../src/main/resources/skills/111-skill.md | 1 + .../src/main/resources/skills/112-skill.md | 1 + .../src/main/resources/skills/113-skill.md | 1 + .../src/main/resources/skills/121-skill.md | 1 + .../src/main/resources/skills/122-skill.md | 1 + .../src/main/resources/skills/123-skill.md | 1 + .../src/main/resources/skills/124-skill.md | 1 + .../src/main/resources/skills/125-skill.md | 1 + .../src/main/resources/skills/128-skill.md | 1 + .../src/main/resources/skills/131-skill.md | 1 + .../src/main/resources/skills/132-skill.md | 1 + .../src/main/resources/skills/141-skill.md | 1 + .../src/main/resources/skills/142-skill.md | 1 + .../src/main/resources/skills/143-skill.md | 1 + .../src/main/resources/skills/170-skill.md | 1 + .../src/main/resources/skills/171-skill.md | 1 + .../src/main/resources/skills/172-skill.md | 1 + .../src/main/resources/skills/173-skill.md | 1 + skills/014-agile-create-user-story/SKILL.md | 1 + .../SKILL.md | 1 + .../SKILL.md | 1 + .../SKILL.md | 1 + skills/040-planning-enhance-ai-plan-mode/SKILL.md | 1 + skills/110-java-maven-best-practices/SKILL.md | 1 + skills/111-java-maven-dependencies/SKILL.md | 1 + skills/112-java-maven-plugins/SKILL.md | 1 + skills/113-java-maven-documentation/SKILL.md | 1 + skills/121-java-object-oriented-design/SKILL.md | 1 + skills/122-java-type-design/SKILL.md | 1 + skills/123-java-exception-handling/SKILL.md | 1 + skills/124-java-secure-coding/SKILL.md | 1 + skills/125-java-concurrency/SKILL.md | 1 + skills/128-java-generics/SKILL.md | 1 + skills/131-java-testing-unit-testing/SKILL.md | 1 + skills/132-java-testing-integration-testing/SKILL.md | 1 + .../SKILL.md | 1 + skills/142-java-functional-programming/SKILL.md | 1 + .../143-java-functional-exception-handling/SKILL.md | 1 + skills/170-java-documentation/SKILL.md | 1 + skills/171-java-adr/SKILL.md | 1 + skills/172-java-diagrams/SKILL.md | 1 + skills/173-java-agents/SKILL.md | 1 + 49 files changed, 59 insertions(+), 1 deletion(-) diff --git a/skills-generator/src/main/java/info/jab/pml/SkillsGenerator.java b/skills-generator/src/main/java/info/jab/pml/SkillsGenerator.java index d4d24cb6..e1415418 100644 --- a/skills-generator/src/main/java/info/jab/pml/SkillsGenerator.java +++ b/skills-generator/src/main/java/info/jab/pml/SkillsGenerator.java @@ -20,6 +20,7 @@ public final class SkillsGenerator { private static final String PROJECT_TAG = " Part of the skills-for-java project"; + private static final String LICENSE_FIELD = "license: Apache-2.0"; private final CursorRulesGenerator cursorRulesGenerator; @@ -146,8 +147,17 @@ private String loadSkillSummary(String skillId) { } private String appendProjectTagToDescription(String content) { + boolean hasLicense = content.contains("license:"); return content.lines() - .map(line -> line.startsWith("description:") ? line + PROJECT_TAG : line) + .map(line -> { + if (line.startsWith("description:") && !line.endsWith(PROJECT_TAG)) { + return line + PROJECT_TAG; + } + if (!hasLicense && line.startsWith("metadata:")) { + return LICENSE_FIELD + System.lineSeparator() + line; + } + return line; + }) .collect(java.util.stream.Collectors.joining(System.lineSeparator(), "", System.lineSeparator())); } diff --git a/skills-generator/src/main/resources/skills/014-skill.md b/skills-generator/src/main/resources/skills/014-skill.md index 8fdec25a..48f217ce 100644 --- a/skills-generator/src/main/resources/skills/014-skill.md +++ b/skills-generator/src/main/resources/skills/014-skill.md @@ -1,6 +1,7 @@ --- name: 014-agile-create-user-story description: Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/020-skill.md b/skills-generator/src/main/resources/skills/020-skill.md index 4e9ce85f..6f9653e2 100644 --- a/skills-generator/src/main/resources/skills/020-skill.md +++ b/skills-generator/src/main/resources/skills/020-skill.md @@ -1,6 +1,7 @@ --- name: 020-architecture-functional-requirements-cli description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/021-skill.md b/skills-generator/src/main/resources/skills/021-skill.md index 1e46888e..1039b8c8 100644 --- a/skills-generator/src/main/resources/skills/021-skill.md +++ b/skills-generator/src/main/resources/skills/021-skill.md @@ -1,6 +1,7 @@ --- name: 021-architecture-functional-requirements-rest description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/030-skill.md b/skills-generator/src/main/resources/skills/030-skill.md index 3505f4e1..30929365 100644 --- a/skills-generator/src/main/resources/skills/030-skill.md +++ b/skills-generator/src/main/resources/skills/030-skill.md @@ -1,6 +1,7 @@ --- name: 030-architecture-non-functional-requirements description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/040-skill.md b/skills-generator/src/main/resources/skills/040-skill.md index a26e0997..0fb41311 100644 --- a/skills-generator/src/main/resources/skills/040-skill.md +++ b/skills-generator/src/main/resources/skills/040-skill.md @@ -1,6 +1,7 @@ --- name: 040-planning-enhance-ai-plan-mode description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/110-skill.md b/skills-generator/src/main/resources/skills/110-skill.md index 028d9256..5d7a9189 100644 --- a/skills-generator/src/main/resources/skills/110-skill.md +++ b/skills-generator/src/main/resources/skills/110-skill.md @@ -1,6 +1,7 @@ --- name: 110-java-maven-best-practices description: Use when you need to review, improve, or troubleshoot a Maven pom.xml file — including dependency management with BOMs, plugin configuration, version centralization, multi-module project structure, build profiles, or any situation where you want to align your Maven setup with industry best practices. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/111-skill.md b/skills-generator/src/main/resources/skills/111-skill.md index 66e01603..fbb1a0be 100644 --- a/skills-generator/src/main/resources/skills/111-skill.md +++ b/skills-generator/src/main/resources/skills/111-skill.md @@ -1,6 +1,7 @@ --- name: 111-java-maven-dependencies description: Use when you need to add or evaluate Maven dependencies that improve code quality — including nullness annotations (JSpecify), static analysis (Error Prone + NullAway), functional programming (VAVR), or architecture testing (ArchUnit) — and want a consultative, question-driven approach that adds only what you actually need. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/112-skill.md b/skills-generator/src/main/resources/skills/112-skill.md index 8725420b..b332d1c2 100644 --- a/skills-generator/src/main/resources/skills/112-skill.md +++ b/skills-generator/src/main/resources/skills/112-skill.md @@ -1,6 +1,7 @@ --- name: 112-java-maven-plugins description: Use when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning (OWASP), code formatting (Spotless), version management, build information tracking, and benchmarking (JMH) — through a consultative, modular step-by-step approach that only adds what you actually need. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/113-skill.md b/skills-generator/src/main/resources/skills/113-skill.md index 9d23c078..fad58051 100644 --- a/skills-generator/src/main/resources/skills/113-skill.md +++ b/skills-generator/src/main/resources/skills/113-skill.md @@ -1,6 +1,7 @@ --- name: 113-java-maven-documentation description: Use when you need to create a DEVELOPER.md file for a Maven project — combining a fixed base template with dynamic sections derived from the project pom.xml, including a Plugin Goals Reference, Maven Profiles table, and Submodules table for multi-module projects. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/121-skill.md b/skills-generator/src/main/resources/skills/121-skill.md index 894c00bf..886e9d48 100644 --- a/skills-generator/src/main/resources/skills/121-skill.md +++ b/skills-generator/src/main/resources/skills/121-skill.md @@ -1,6 +1,7 @@ --- name: 121-java-object-oriented-design description: Use when you need to review, improve, or refactor Java code for object-oriented design quality — including applying SOLID, DRY, and YAGNI principles, improving class and interface design, fixing OOP concept misuse (encapsulation, inheritance, polymorphism), identifying and resolving code smells (God Class, Feature Envy, Data Clumps), or improving object creation patterns, method design, and exception handling. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/122-skill.md b/skills-generator/src/main/resources/skills/122-skill.md index 2fb096e8..2a255c2f 100644 --- a/skills-generator/src/main/resources/skills/122-skill.md +++ b/skills-generator/src/main/resources/skills/122-skill.md @@ -1,6 +1,7 @@ --- name: 122-java-type-design description: Use when you need to review, improve, or refactor Java code for type design quality — including establishing clear type hierarchies, applying consistent naming conventions, eliminating primitive obsession with domain-specific value objects, leveraging generic type parameters, creating type-safe wrappers, designing fluent interfaces, ensuring precision-appropriate numeric types (BigDecimal for financial calculations), and improving type contrast through interfaces and method signature alignment. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/123-skill.md b/skills-generator/src/main/resources/skills/123-skill.md index 443c14d0..c4d0623d 100644 --- a/skills-generator/src/main/resources/skills/123-skill.md +++ b/skills-generator/src/main/resources/skills/123-skill.md @@ -1,6 +1,7 @@ --- name: 123-java-exception-handling description: Use when you need to apply Java exception handling best practices — including using specific exception types, managing resources with try-with-resources, securing exception messages, preserving error context via exception chaining, validating inputs early with fail-fast principles, handling thread interruption correctly, documenting exceptions with @throws, enforcing logging policy, translating exceptions at API boundaries, managing retries and idempotency, enforcing timeouts, attaching suppressed exceptions, and propagating failures in async/reactive code. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/124-skill.md b/skills-generator/src/main/resources/skills/124-skill.md index 925e88dc..60c4781f 100644 --- a/skills-generator/src/main/resources/skills/124-skill.md +++ b/skills-generator/src/main/resources/skills/124-skill.md @@ -1,6 +1,7 @@ --- name: 124-java-secure-coding description: Use when you need to apply Java secure coding best practices — including validating untrusted inputs, defending against injection attacks with parameterized queries, minimizing attack surface via least privilege, applying strong cryptographic algorithms, handling exceptions securely without exposing sensitive data, managing secrets at runtime, avoiding unsafe deserialization, and encoding output to prevent XSS. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/125-skill.md b/skills-generator/src/main/resources/skills/125-skill.md index 8fd92cd8..7ffa8051 100644 --- a/skills-generator/src/main/resources/skills/125-skill.md +++ b/skills-generator/src/main/resources/skills/125-skill.md @@ -1,6 +1,7 @@ --- name: 125-java-concurrency description: Use when you need to apply Java concurrency best practices — including thread safety fundamentals, ExecutorService thread pool management, concurrent design patterns like Producer-Consumer, asynchronous programming with CompletableFuture, immutability and safe publication, deadlock avoidance, virtual threads and structured concurrency, scoped values, backpressure, cancellation discipline, and observability for concurrent systems. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/128-skill.md b/skills-generator/src/main/resources/skills/128-skill.md index 3b85aa62..d24bb5ec 100644 --- a/skills-generator/src/main/resources/skills/128-skill.md +++ b/skills-generator/src/main/resources/skills/128-skill.md @@ -1,6 +1,7 @@ --- name: 128-java-generics description: Use when you need to review, improve, or refactor Java code for generics quality — including avoiding raw types, applying the PECS (Producer Extends Consumer Super) principle for wildcards, using bounded type parameters, designing effective generic methods, leveraging the diamond operator, understanding type erasure implications, handling generic inheritance correctly, preventing heap pollution with @SafeVarargs, and integrating generics with modern Java features like Records, sealed types, and pattern matching. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/131-skill.md b/skills-generator/src/main/resources/skills/131-skill.md index e1cbe813..4d7fc396 100644 --- a/skills-generator/src/main/resources/skills/131-skill.md +++ b/skills-generator/src/main/resources/skills/131-skill.md @@ -1,6 +1,7 @@ --- name: 131-java-testing-unit-testing description: Use when you need to review, improve, or write Java unit tests — including migrating from JUnit 4 to JUnit 5, adopting AssertJ for fluent assertions, structuring tests with Given-When-Then, ensuring test independence, applying parameterized tests, mocking dependencies with Mockito, verifying boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), leveraging JSpecify null-safety annotations, or eliminating testing anti-patterns such as reflection-based tests or shared mutable state. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/132-skill.md b/skills-generator/src/main/resources/skills/132-skill.md index a0b5caff..22d6c39f 100644 --- a/skills-generator/src/main/resources/skills/132-skill.md +++ b/skills-generator/src/main/resources/skills/132-skill.md @@ -1,6 +1,7 @@ --- name: 132-java-testing-integration-testing description: Use when you need to set up, review, or improve Java integration tests — including generating a BaseIntegrationTest.java with WireMock for HTTP stubs, detecting HTTP client infrastructure from import signals, injecting service coordinates dynamically via System.setProperty(), creating WireMock JSON mapping files with bodyFileName, isolating stubs per test method, verifying HTTP interactions, or eliminating anti-patterns such as Mockito-mocked HTTP clients or globally registered WireMock stubs. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/141-skill.md b/skills-generator/src/main/resources/skills/141-skill.md index 59d5e64e..3a7f2e74 100644 --- a/skills-generator/src/main/resources/skills/141-skill.md +++ b/skills-generator/src/main/resources/skills/141-skill.md @@ -1,6 +1,7 @@ --- name: 141-java-refactoring-with-modern-features description: Use when you need to refactor Java code to adopt modern Java features (Java 8+) — including migrating anonymous classes to lambdas, replacing Iterator loops with Stream API, adopting Optional for null safety, switching from legacy Date/Calendar to java.time, using collection factory methods, migrating to CompletableFuture for async operations, applying text blocks, var inference, or leveraging Java 25 features like flexible constructor bodies and module import declarations. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/142-skill.md b/skills-generator/src/main/resources/skills/142-skill.md index 90cd68da..3b5f4436 100644 --- a/skills-generator/src/main/resources/skills/142-skill.md +++ b/skills-generator/src/main/resources/skills/142-skill.md @@ -1,6 +1,7 @@ --- name: 142-java-functional-programming description: Use when you need to apply functional programming principles in Java — including writing immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API pipelines, Optional for null safety, function composition, higher-order functions, pattern matching for instanceof and switch, sealed classes/interfaces for controlled hierarchies, Stream Gatherers for custom operations, currying/partial application, effect boundary separation, and concurrent-safe functional patterns. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/143-skill.md b/skills-generator/src/main/resources/skills/143-skill.md index 9476764f..33df4c1e 100644 --- a/skills-generator/src/main/resources/skills/143-skill.md +++ b/skills-generator/src/main/resources/skills/143-skill.md @@ -1,6 +1,7 @@ --- name: 143-java-functional-exception-handling description: Use when you need to apply functional exception handling best practices in Java — including replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions only for truly exceptional system-level failures. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/170-skill.md b/skills-generator/src/main/resources/skills/170-skill.md index 2167002d..a3264137 100644 --- a/skills-generator/src/main/resources/skills/170-skill.md +++ b/skills-generator/src/main/resources/skills/170-skill.md @@ -1,6 +1,7 @@ --- name: 170-java-documentation description: Use when you need to generate or improve Java project documentation — including README.md files, package-info.java files, and Javadoc enhancements — through a modular, step-based interactive process that adapts to your specific documentation needs. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/171-skill.md b/skills-generator/src/main/resources/skills/171-skill.md index 2a6cab36..59c3f896 100644 --- a/skills-generator/src/main/resources/skills/171-skill.md +++ b/skills-generator/src/main/resources/skills/171-skill.md @@ -1,6 +1,7 @@ --- name: 171-java-adr description: Use when you need to generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes to produce well-structured ADR documents. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/172-skill.md b/skills-generator/src/main/resources/skills/172-skill.md index 0038b581..855d2ff9 100644 --- a/skills-generator/src/main/resources/skills/172-skill.md +++ b/skills-generator/src/main/resources/skills/172-skill.md @@ -1,6 +1,7 @@ --- name: 172-java-diagrams description: Use when you need to generate Java project diagrams — including UML sequence diagrams, UML class diagrams, C4 model diagrams, and UML state machine diagrams — through a modular, step-based interactive process that adapts to your specific visualization needs. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills-generator/src/main/resources/skills/173-skill.md b/skills-generator/src/main/resources/skills/173-skill.md index 2af16a5f..0ac6f7f5 100644 --- a/skills-generator/src/main/resources/skills/173-skill.md +++ b/skills-generator/src/main/resources/skills/173-skill.md @@ -1,6 +1,7 @@ --- name: 173-java-agents description: Use when you need to generate an AGENTS.md file for a Java repository — covering project conventions, tech stack, file structure, commands, Git workflow, and contributor boundaries — through a modular, step-based interactive process that adapts to your specific project needs. +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/014-agile-create-user-story/SKILL.md b/skills/014-agile-create-user-story/SKILL.md index ee23a809..7ad46218 100644 --- a/skills/014-agile-create-user-story/SKILL.md +++ b/skills/014-agile-create-user-story/SKILL.md @@ -1,6 +1,7 @@ --- name: 014-agile-create-user-story description: Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/020-architecture-functional-requirements-cli/SKILL.md b/skills/020-architecture-functional-requirements-cli/SKILL.md index 712f33e0..0282905d 100644 --- a/skills/020-architecture-functional-requirements-cli/SKILL.md +++ b/skills/020-architecture-functional-requirements-cli/SKILL.md @@ -1,6 +1,7 @@ --- name: 020-architecture-functional-requirements-cli description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for CLI development. Use when the user wants to document CLI architecture, capture functional requirements for a command-line tool, create ADRs for CLI projects, or design CLI applications with documented decisions. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/021-architecture-functional-requirements-rest/SKILL.md b/skills/021-architecture-functional-requirements-rest/SKILL.md index db3e4d60..a5e2de5b 100644 --- a/skills/021-architecture-functional-requirements-rest/SKILL.md +++ b/skills/021-architecture-functional-requirements-rest/SKILL.md @@ -1,6 +1,7 @@ --- name: 021-architecture-functional-requirements-rest description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for REST API development. Use when the user wants to document REST API architecture, capture functional requirements for APIs, create ADRs for REST/HTTP services, or design APIs with documented decisions. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/030-architecture-non-functional-requirements/SKILL.md b/skills/030-architecture-non-functional-requirements/SKILL.md index db97ae28..d17ba135 100644 --- a/skills/030-architecture-non-functional-requirements/SKILL.md +++ b/skills/030-architecture-non-functional-requirements/SKILL.md @@ -1,6 +1,7 @@ --- name: 030-architecture-non-functional-requirements description: Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/040-planning-enhance-ai-plan-mode/SKILL.md b/skills/040-planning-enhance-ai-plan-mode/SKILL.md index 88453d42..ec81cb44 100644 --- a/skills/040-planning-enhance-ai-plan-mode/SKILL.md +++ b/skills/040-planning-enhance-ai-plan-mode/SKILL.md @@ -1,6 +1,7 @@ --- name: 040-planning-enhance-ai-plan-mode description: Use when creating a plan using Plan model and enhance the creation of structured design plans in Cursor Plan mode for Java implementations. Use when the user wants to create a plan, design an implementation, structure a development plan, or use plan mode for outside-in TDD, feature implementation, or refactoring work. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/110-java-maven-best-practices/SKILL.md b/skills/110-java-maven-best-practices/SKILL.md index baa01301..1007e7cf 100644 --- a/skills/110-java-maven-best-practices/SKILL.md +++ b/skills/110-java-maven-best-practices/SKILL.md @@ -1,6 +1,7 @@ --- name: 110-java-maven-best-practices description: Use when you need to review, improve, or troubleshoot a Maven pom.xml file — including dependency management with BOMs, plugin configuration, version centralization, multi-module project structure, build profiles, or any situation where you want to align your Maven setup with industry best practices. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/111-java-maven-dependencies/SKILL.md b/skills/111-java-maven-dependencies/SKILL.md index f6b656f4..bb653f6e 100644 --- a/skills/111-java-maven-dependencies/SKILL.md +++ b/skills/111-java-maven-dependencies/SKILL.md @@ -1,6 +1,7 @@ --- name: 111-java-maven-dependencies description: Use when you need to add or evaluate Maven dependencies that improve code quality — including nullness annotations (JSpecify), static analysis (Error Prone + NullAway), functional programming (VAVR), or architecture testing (ArchUnit) — and want a consultative, question-driven approach that adds only what you actually need. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/112-java-maven-plugins/SKILL.md b/skills/112-java-maven-plugins/SKILL.md index 09326a73..1f971c52 100644 --- a/skills/112-java-maven-plugins/SKILL.md +++ b/skills/112-java-maven-plugins/SKILL.md @@ -1,6 +1,7 @@ --- name: 112-java-maven-plugins description: Use when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning (OWASP), code formatting (Spotless), version management, build information tracking, and benchmarking (JMH) — through a consultative, modular step-by-step approach that only adds what you actually need. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/113-java-maven-documentation/SKILL.md b/skills/113-java-maven-documentation/SKILL.md index 114665d8..6c1c2374 100644 --- a/skills/113-java-maven-documentation/SKILL.md +++ b/skills/113-java-maven-documentation/SKILL.md @@ -1,6 +1,7 @@ --- name: 113-java-maven-documentation description: Use when you need to create a DEVELOPER.md file for a Maven project — combining a fixed base template with dynamic sections derived from the project pom.xml, including a Plugin Goals Reference, Maven Profiles table, and Submodules table for multi-module projects. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/121-java-object-oriented-design/SKILL.md b/skills/121-java-object-oriented-design/SKILL.md index fac28873..c6e1a4a7 100644 --- a/skills/121-java-object-oriented-design/SKILL.md +++ b/skills/121-java-object-oriented-design/SKILL.md @@ -1,6 +1,7 @@ --- name: 121-java-object-oriented-design description: Use when you need to review, improve, or refactor Java code for object-oriented design quality — including applying SOLID, DRY, and YAGNI principles, improving class and interface design, fixing OOP concept misuse (encapsulation, inheritance, polymorphism), identifying and resolving code smells (God Class, Feature Envy, Data Clumps), or improving object creation patterns, method design, and exception handling. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/122-java-type-design/SKILL.md b/skills/122-java-type-design/SKILL.md index 7bee8140..c297215e 100644 --- a/skills/122-java-type-design/SKILL.md +++ b/skills/122-java-type-design/SKILL.md @@ -1,6 +1,7 @@ --- name: 122-java-type-design description: Use when you need to review, improve, or refactor Java code for type design quality — including establishing clear type hierarchies, applying consistent naming conventions, eliminating primitive obsession with domain-specific value objects, leveraging generic type parameters, creating type-safe wrappers, designing fluent interfaces, ensuring precision-appropriate numeric types (BigDecimal for financial calculations), and improving type contrast through interfaces and method signature alignment. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/123-java-exception-handling/SKILL.md b/skills/123-java-exception-handling/SKILL.md index 2c379313..985c5e2c 100644 --- a/skills/123-java-exception-handling/SKILL.md +++ b/skills/123-java-exception-handling/SKILL.md @@ -1,6 +1,7 @@ --- name: 123-java-exception-handling description: Use when you need to apply Java exception handling best practices — including using specific exception types, managing resources with try-with-resources, securing exception messages, preserving error context via exception chaining, validating inputs early with fail-fast principles, handling thread interruption correctly, documenting exceptions with @throws, enforcing logging policy, translating exceptions at API boundaries, managing retries and idempotency, enforcing timeouts, attaching suppressed exceptions, and propagating failures in async/reactive code. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/124-java-secure-coding/SKILL.md b/skills/124-java-secure-coding/SKILL.md index f2b31132..21e29aa1 100644 --- a/skills/124-java-secure-coding/SKILL.md +++ b/skills/124-java-secure-coding/SKILL.md @@ -1,6 +1,7 @@ --- name: 124-java-secure-coding description: Use when you need to apply Java secure coding best practices — including validating untrusted inputs, defending against injection attacks with parameterized queries, minimizing attack surface via least privilege, applying strong cryptographic algorithms, handling exceptions securely without exposing sensitive data, managing secrets at runtime, avoiding unsafe deserialization, and encoding output to prevent XSS. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/125-java-concurrency/SKILL.md b/skills/125-java-concurrency/SKILL.md index 14806ed5..0d184bf1 100644 --- a/skills/125-java-concurrency/SKILL.md +++ b/skills/125-java-concurrency/SKILL.md @@ -1,6 +1,7 @@ --- name: 125-java-concurrency description: Use when you need to apply Java concurrency best practices — including thread safety fundamentals, ExecutorService thread pool management, concurrent design patterns like Producer-Consumer, asynchronous programming with CompletableFuture, immutability and safe publication, deadlock avoidance, virtual threads and structured concurrency, scoped values, backpressure, cancellation discipline, and observability for concurrent systems. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/128-java-generics/SKILL.md b/skills/128-java-generics/SKILL.md index 35307a3f..775afb36 100644 --- a/skills/128-java-generics/SKILL.md +++ b/skills/128-java-generics/SKILL.md @@ -1,6 +1,7 @@ --- name: 128-java-generics description: Use when you need to review, improve, or refactor Java code for generics quality — including avoiding raw types, applying the PECS (Producer Extends Consumer Super) principle for wildcards, using bounded type parameters, designing effective generic methods, leveraging the diamond operator, understanding type erasure implications, handling generic inheritance correctly, preventing heap pollution with @SafeVarargs, and integrating generics with modern Java features like Records, sealed types, and pattern matching. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/131-java-testing-unit-testing/SKILL.md b/skills/131-java-testing-unit-testing/SKILL.md index 82937805..5cb1505f 100644 --- a/skills/131-java-testing-unit-testing/SKILL.md +++ b/skills/131-java-testing-unit-testing/SKILL.md @@ -1,6 +1,7 @@ --- name: 131-java-testing-unit-testing description: Use when you need to review, improve, or write Java unit tests — including migrating from JUnit 4 to JUnit 5, adopting AssertJ for fluent assertions, structuring tests with Given-When-Then, ensuring test independence, applying parameterized tests, mocking dependencies with Mockito, verifying boundary conditions (RIGHT-BICEP, CORRECT, A-TRIP), leveraging JSpecify null-safety annotations, or eliminating testing anti-patterns such as reflection-based tests or shared mutable state. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/132-java-testing-integration-testing/SKILL.md b/skills/132-java-testing-integration-testing/SKILL.md index 3ff0f635..38aba290 100644 --- a/skills/132-java-testing-integration-testing/SKILL.md +++ b/skills/132-java-testing-integration-testing/SKILL.md @@ -1,6 +1,7 @@ --- name: 132-java-testing-integration-testing description: Use when you need to set up, review, or improve Java integration tests — including generating a BaseIntegrationTest.java with WireMock for HTTP stubs, detecting HTTP client infrastructure from import signals, injecting service coordinates dynamically via System.setProperty(), creating WireMock JSON mapping files with bodyFileName, isolating stubs per test method, verifying HTTP interactions, or eliminating anti-patterns such as Mockito-mocked HTTP clients or globally registered WireMock stubs. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/141-java-refactoring-with-modern-features/SKILL.md b/skills/141-java-refactoring-with-modern-features/SKILL.md index 5030908e..6911c2b6 100644 --- a/skills/141-java-refactoring-with-modern-features/SKILL.md +++ b/skills/141-java-refactoring-with-modern-features/SKILL.md @@ -1,6 +1,7 @@ --- name: 141-java-refactoring-with-modern-features description: Use when you need to refactor Java code to adopt modern Java features (Java 8+) — including migrating anonymous classes to lambdas, replacing Iterator loops with Stream API, adopting Optional for null safety, switching from legacy Date/Calendar to java.time, using collection factory methods, migrating to CompletableFuture for async operations, applying text blocks, var inference, or leveraging Java 25 features like flexible constructor bodies and module import declarations. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/142-java-functional-programming/SKILL.md b/skills/142-java-functional-programming/SKILL.md index 13d8c8fd..32827e20 100644 --- a/skills/142-java-functional-programming/SKILL.md +++ b/skills/142-java-functional-programming/SKILL.md @@ -1,6 +1,7 @@ --- name: 142-java-functional-programming description: Use when you need to apply functional programming principles in Java — including writing immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API pipelines, Optional for null safety, function composition, higher-order functions, pattern matching for instanceof and switch, sealed classes/interfaces for controlled hierarchies, Stream Gatherers for custom operations, currying/partial application, effect boundary separation, and concurrent-safe functional patterns. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/143-java-functional-exception-handling/SKILL.md b/skills/143-java-functional-exception-handling/SKILL.md index d619d1b6..cd0932fb 100644 --- a/skills/143-java-functional-exception-handling/SKILL.md +++ b/skills/143-java-functional-exception-handling/SKILL.md @@ -1,6 +1,7 @@ --- name: 143-java-functional-exception-handling description: Use when you need to apply functional exception handling best practices in Java — including replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions only for truly exceptional system-level failures. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/170-java-documentation/SKILL.md b/skills/170-java-documentation/SKILL.md index e678c49d..76ce2143 100644 --- a/skills/170-java-documentation/SKILL.md +++ b/skills/170-java-documentation/SKILL.md @@ -1,6 +1,7 @@ --- name: 170-java-documentation description: Use when you need to generate or improve Java project documentation — including README.md files, package-info.java files, and Javadoc enhancements — through a modular, step-based interactive process that adapts to your specific documentation needs. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/171-java-adr/SKILL.md b/skills/171-java-adr/SKILL.md index 8c865e3d..164f14c7 100644 --- a/skills/171-java-adr/SKILL.md +++ b/skills/171-java-adr/SKILL.md @@ -1,6 +1,7 @@ --- name: 171-java-adr description: Use when you need to generate Architecture Decision Records (ADRs) for a Java project through an interactive, conversational process that systematically gathers context, stakeholders, options, and outcomes to produce well-structured ADR documents. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/172-java-diagrams/SKILL.md b/skills/172-java-diagrams/SKILL.md index 150bee76..a16eed11 100644 --- a/skills/172-java-diagrams/SKILL.md +++ b/skills/172-java-diagrams/SKILL.md @@ -1,6 +1,7 @@ --- name: 172-java-diagrams description: Use when you need to generate Java project diagrams — including UML sequence diagrams, UML class diagrams, C4 model diagrams, and UML state machine diagrams — through a modular, step-based interactive process that adapts to your specific visualization needs. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT diff --git a/skills/173-java-agents/SKILL.md b/skills/173-java-agents/SKILL.md index 72194788..8c812ee1 100644 --- a/skills/173-java-agents/SKILL.md +++ b/skills/173-java-agents/SKILL.md @@ -1,6 +1,7 @@ --- name: 173-java-agents description: Use when you need to generate an AGENTS.md file for a Java repository — covering project conventions, tech stack, file structure, commands, Git workflow, and contributor boundaries — through a modular, step-based interactive process that adapts to your specific project needs. Part of the skills-for-java project +license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.13.0-SNAPSHOT