{"id":"842af3b7-9d7e-4b65-bbd5-2c4fa45bd348","shortId":"RpvvBJ","kind":"skill","title":"303-frameworks-spring-boot-validation","tagline":"Use when you need to design, review, or improve validation in Spring Boot applications — including Bean Validation on request DTOs, @Valid/@Validated at API boundaries, constraint groups, custom constraints, @ConfigurationProperties validation, nested DTO validation, and consiste","description":"# Spring Boot Validation Guidelines\n\nApply Spring Boot validation best practices at API boundaries.\n\n**What is covered in this Skill?**\n\n- Bean Validation annotations on DTOs and command models\n- @Valid / @Validated on controllers and method parameters\n- Validation groups for create/update workflows\n- Custom constraint annotations and validators\n- Consistent 400 error responses for validation failures\n\n**Scope:** Apply recommendations based on the reference rules and good/bad examples.\n\n## Constraints\n\nBefore applying validation changes, ensure the project compiles. After improvements, run full verification.\n\n- **MANDATORY**: Run `./mvnw compile` or `mvn compile` before applying any change\n- **SAFETY**: If compilation fails, stop immediately\n- **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` after applying improvements\n- **BEFORE APPLYING**: Read the reference for detailed rules and examples\n\n## When to use this skill\n\n- Add validation support in Spring Boot\n- Review Spring Boot validation rules\n- Improve request validation in Spring Boot REST APIs\n- Add custom Bean Validation constraints in Spring Boot\n- Validate configuration properties in Spring Boot\n- Improve nested DTO validation in Spring Boot\n\n## Workflow\n\n1. **Read reference and assess project context**\n\nRead `references/303-frameworks-spring-boot-validation.md` and inspect the current project setup before proposing changes.\n\n2. **Gather scope and decide target improvements**\n\nIdentify requested outcomes, constraints, and the minimum safe set of changes to apply.\n\n3. **Apply framework-aligned changes**\n\nImplement or refactor validation-related configuration/code following the reference patterns and project conventions.\n\n4. **Run verification and report results**\n\nExecute appropriate build/tests and summarize what changed, what was verified, and any follow-up actions.\n\n## Reference\n\nFor detailed guidance, examples, and constraints, see [references/303-frameworks-spring-boot-validation.md](references/303-frameworks-spring-boot-validation.md).","tags":["303","frameworks","spring","boot","validation","cursor","rules","java","jabrena","agent-skills","ai-skills","claude"],"capabilities":["skill","source-jabrena","skill-303-frameworks-spring-boot-validation","topic-agent-skills","topic-ai-skills","topic-claude","topic-claude-code","topic-claude-code-skills","topic-claude-code-subagents","topic-claude-skills","topic-cursor-agent","topic-cursor-ai","topic-cursor-skills","topic-cursorai","topic-github-copilot"],"categories":["cursor-rules-java"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jabrena/cursor-rules-java/303-frameworks-spring-boot-validation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jabrena/cursor-rules-java","source_repo":"https://github.com/jabrena/cursor-rules-java","install_from":"skills.sh"}},"qualityScore":"0.631","qualityRationale":"deterministic score 0.63 from registry signals: · indexed on github topic:agent-skills · 362 github stars · SKILL.md body (2,044 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-26T12:53:36.674Z","embedding":null,"createdAt":"2026-04-26T12:53:36.674Z","updatedAt":"2026-04-26T12:53:36.674Z","lastSeenAt":"2026-04-26T12:53:36.674Z","tsv":"'/mvnw':121,138 '1':204 '2':222 '3':242 '303':1 '4':262 '400':88 'action':283 'add':163,182 'align':246 'annot':64,84 'api':30,54,181 'appli':47,95,107,127,146,149,241,243 'applic':20 'appropri':269 'assess':208 'base':97 'bean':22,62,184 'best':51 'boot':5,19,44,49,168,171,179,189,195,202 'boundari':31,55 'build/tests':270 'chang':109,129,221,239,247,274 'clean':139,143 'command':68 'compil':113,122,125,132 'configur':191 'configuration/code':254 'configurationproperti':36 'consist':42,87 'constraint':32,35,83,105,186,232,290 'context':210 'control':73 'convent':261 'cover':58 'create/update':80 'current':216 'custom':34,82,183 'decid':226 'design':12 'detail':154,286 'dto':39,198 'dtos':26,66 'ensur':110 'error':89 'exampl':104,157,288 'execut':268 'fail':133 'failur':93 'follow':255,281 'follow-up':280 'framework':3,245 'framework-align':244 'frameworks-spring-boot-valid':2 'full':117 'gather':223 'good/bad':103 'group':33,78 'guidanc':287 'guidelin':46 'identifi':229 'immedi':135 'implement':248 'improv':15,115,147,174,196,228 'includ':21 'inspect':214 'mandatori':119 'method':75 'minimum':235 'model':69 'mvn':124,142 'need':10 'nest':38,197 'outcom':231 'paramet':76 'pattern':258 'practic':52 'project':112,209,217,260 'properti':192 'propos':220 'read':150,205,211 'recommend':96 'refactor':250 'refer':100,152,206,257,284 'references/303-frameworks-spring-boot-validation.md':212,292,293 'relat':253 'report':266 'request':25,175,230 'respons':90 'rest':180 'result':267 'review':13,169 'rule':101,155,173 'run':116,120,137,263 'safe':236 'safeti':130 'scope':94,224 'see':291 'set':237 'setup':218 'skill':61,162 'skill-303-frameworks-spring-boot-validation' 'source-jabrena' 'spring':4,18,43,48,167,170,178,188,194,201 'stop':134 'summar':272 'support':165 'target':227 'topic-agent-skills' 'topic-ai-skills' 'topic-claude' 'topic-claude-code' 'topic-claude-code-skills' 'topic-claude-code-subagents' 'topic-claude-skills' 'topic-cursor-agent' 'topic-cursor-ai' 'topic-cursor-skills' 'topic-cursorai' 'topic-github-copilot' 'use':7,160 'valid':6,16,23,27,28,37,40,45,50,63,70,71,77,86,92,108,164,172,176,185,190,199,252 'validation-rel':251 'verif':118,264 'verifi':136,140,144,277 'workflow':81,203","prices":[{"id":"4d7aa60c-15b4-4a48-bd5c-9604fe6e3739","listingId":"842af3b7-9d7e-4b65-bbd5-2c4fa45bd348","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jabrena","category":"cursor-rules-java","install_from":"skills.sh"},"createdAt":"2026-04-26T12:53:36.674Z"}],"sources":[{"listingId":"842af3b7-9d7e-4b65-bbd5-2c4fa45bd348","source":"github","sourceId":"jabrena/cursor-rules-java/303-frameworks-spring-boot-validation","sourceUrl":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/303-frameworks-spring-boot-validation","isPrimary":false,"firstSeenAt":"2026-04-26T12:53:36.674Z","lastSeenAt":"2026-04-26T12:53:36.674Z"}],"details":{"listingId":"842af3b7-9d7e-4b65-bbd5-2c4fa45bd348","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jabrena","slug":"303-frameworks-spring-boot-validation","github":{"repo":"jabrena/cursor-rules-java","stars":362,"topics":["agent-skills","ai-skills","claude","claude-code","claude-code-skills","claude-code-subagents","claude-skills","cursor-agent","cursor-ai","cursor-skills","cursorai","github-copilot","intellij-idea","java","prompting","system-prompts"],"license":"apache-2.0","html_url":"https://github.com/jabrena/cursor-rules-java","pushed_at":"2026-04-26T12:50:01Z","description":"A curated and opinionated collection of Skills and Agents to be used in modern SDLC workflows for Java Enterprise development with your favorite AI Agent harness.","skill_md_sha":"e8595cc12d4c24ef4edc5cab26f0c481cda628be","skill_md_path":"skills/303-frameworks-spring-boot-validation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/303-frameworks-spring-boot-validation"},"layout":"multi","source":"github","category":"cursor-rules-java","frontmatter":{"name":"303-frameworks-spring-boot-validation","license":"Apache-2.0","description":"Use when you need to design, review, or improve validation in Spring Boot applications — including Bean Validation on request DTOs, @Valid/@Validated at API boundaries, constraint groups, custom constraints, @ConfigurationProperties validation, nested DTO validation, and consistent validation error handling. This should trigger for requests such as Add validation support in Spring Boot; Review Spring Boot validation rules; Improve request validation in Spring Boot REST APIs; Add custom Bean Validation constraints in Spring Boot; Validate configuration properties in Spring Boot. Part of cursor-rules-java project"},"skills_sh_url":"https://skills.sh/jabrena/cursor-rules-java/303-frameworks-spring-boot-validation"},"updatedAt":"2026-04-26T12:53:36.674Z"}}