{"id":"e5f07988-d93b-4bf8-b732-896ae3adce7c","shortId":"T2C9KU","kind":"skill","title":"512-frameworks-micronaut-data","tagline":"Use when you need data access with Micronaut Data — @MappedEntity, CrudRepository/PageableRepository, @Query with parameters, @Transactional services, projections, @Version, and @MicronautTest with TestPropertyProvider and Testcontainers. For raw java.sql access without generated","description":"# Micronaut Data Guidelines\n\nApply Micronaut Data patterns for relational repositories and safe SQL.\n\n**What is covered in this Skill?**\n\n- @MappedEntity, @Id, @GeneratedValue, @MappedProperty for column mapping\n- @Repository interfaces extending CrudRepository / PageableRepository\n- Derived finder methods and @Query with named parameters\n- @Transactional on @Singleton services (readOnly where appropriate)\n- Page and Pageable for list endpoints\n- DTO/interface projections for read-heavy queries\n- @Version for optimistic locking\n- Integration tests: @MicronautTest + TestPropertyProvider + Testcontainers\n\n**Scope:** Apply recommendations based on the reference rules and good/bad code examples.\n\n## Constraints\n\nCompile before persistence changes; verify the full build after.\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- **EDGE CASE**: If the user goal is ambiguous, stop and ask a clarifying question before editing files or running project-wide commands\n- **EDGE CASE**: If required context, files, credentials, or tools are missing, report the blocker explicitly and ask whether to proceed with setup or fallback guidance\n- **EDGE CASE**: If requested changes conflict with project constraints or safety boundaries, explain the conflict and ask for user confirmation on the preferred trade-off\n\n## When to use this skill\n\n- Review or implement Micronaut Data repositories and entities\n- Add transactions, pagination, or projections in Micronaut persistence layer\n\n## Workflow\n\n1. **Read reference and assess project context**\n\nRead `references/512-frameworks-micronaut-data.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 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/512-frameworks-micronaut-data.md](references/512-frameworks-micronaut-data.md).","tags":["512","frameworks","micronaut","data","cursor","rules","java","jabrena","agent-skills","ai-skills","claude","claude-code"],"capabilities":["skill","source-jabrena","skill-512-frameworks-micronaut-data","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/512-frameworks-micronaut-data","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,501 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:39.087Z","embedding":null,"createdAt":"2026-04-18T22:02:26.507Z","updatedAt":"2026-04-26T12:53:39.087Z","lastSeenAt":"2026-04-26T12:53:39.087Z","tsv":"'/mvnw':128,145 '1':262 '2':280 '3':300 '4':317 '512':1 'access':11,33 'action':338 'add':252 'align':304 'ambigu':172 'appli':39,105,134,153,156,299,301 'appropri':81,324 'ask':175,204,229 'assess':266 'base':107 'blocker':201 'boundari':224 'build':124 'build/tests':325 'case':166,189,214 'chang':120,136,217,279,297,305,329 'clarifi':177 'clean':146,150 'code':114 'column':60 'command':187 'compil':117,129,132,139 'configuration/code':309 'confirm':232 'conflict':218,227 'constraint':116,221,290,345 'context':192,268 'convent':316 'cover':51 'credenti':194 'crudrepositori':65 'crudrepository/pageablerepository':16 'current':274 'data':5,10,14,37,41,248 'decid':284 'deriv':67 'detail':161,341 'dto/interface':88 'edg':165,188,213 'edit':180 'endpoint':87 'entiti':251 'exampl':115,164,343 'execut':323 'explain':225 'explicit':202 'extend':64 'fail':140 'fallback':211 'file':181,193 'finder':68 'follow':310,336 'follow-up':335 'framework':3,303 'framework-align':302 'frameworks-micronaut-data':2 'full':123 'gather':281 'generat':35 'generatedvalu':57 'goal':170 'good/bad':113 'guidanc':212,342 'guidelin':38 'heavi':93 'id':56 'identifi':287 'immedi':142 'implement':246,306 'improv':154,286 'inspect':272 'integr':99 'interfac':63 'java.sql':32 'layer':260 'list':86 'lock':98 'mandatori':126 'map':61 'mappedent':15,55 'mappedproperti':58 'method':69 'micronaut':4,13,36,40,247,258 'micronauttest':25,101 'minimum':293 'miss':198 'mvn':131,149 'name':73 'need':9 'optimist':97 'outcom':289 'page':82 'pageabl':84 'pageablerepositori':66 'pagin':254 'paramet':19,74 'pattern':42,313 'persist':119,259 'prefer':235 'proceed':207 'project':22,89,185,220,256,267,275,315 'project-wid':184 'propos':278 'queri':17,71,94 'question':178 'raw':31 'read':92,157,263,269 'read-heavi':91 'readon':79 'recommend':106 'refactor':308 'refer':110,159,264,312,339 'references/512-frameworks-micronaut-data.md':270,347,348 'relat':44 'report':199,321 'repositori':45,62,249 'request':216,288 'requir':191 'result':322 'review':244 'rule':111,162 'run':127,144,183,318 'safe':47,294 'safeti':137,223 'scope':104,282 'see':346 'servic':21,78 'set':295 'setup':209,276 'singleton':77 'skill':54,243 'skill-512-frameworks-micronaut-data' 'source-jabrena' 'sql':48 'stop':141,173 'summar':327 'target':285 'test':100 'testcontain':29,103 'testpropertyprovid':27,102 'tool':196 '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' 'trade':237 'trade-off':236 'transact':20,75,253 'use':6,241 'user':169,231 'verif':319 'verifi':121,143,147,151,332 'version':23,95 'whether':205 'wide':186 'without':34 'workflow':261","prices":[{"id":"e9f694e4-e82e-41b4-91b9-9647744dcc65","listingId":"e5f07988-d93b-4bf8-b732-896ae3adce7c","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-18T22:02:26.507Z"}],"sources":[{"listingId":"e5f07988-d93b-4bf8-b732-896ae3adce7c","source":"github","sourceId":"jabrena/cursor-rules-java/512-frameworks-micronaut-data","sourceUrl":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/512-frameworks-micronaut-data","isPrimary":false,"firstSeenAt":"2026-04-18T22:02:26.507Z","lastSeenAt":"2026-04-26T12:53:39.087Z"}],"details":{"listingId":"e5f07988-d93b-4bf8-b732-896ae3adce7c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jabrena","slug":"512-frameworks-micronaut-data","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":"58ba63f326bb1f95ac69f2da74fbf86e480d5725","skill_md_path":"skills/512-frameworks-micronaut-data/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/512-frameworks-micronaut-data"},"layout":"multi","source":"github","category":"cursor-rules-java","frontmatter":{"name":"512-frameworks-micronaut-data","license":"Apache-2.0","description":"Use when you need data access with Micronaut Data — @MappedEntity, CrudRepository/PageableRepository, @Query with parameters, @Transactional services, projections, @Version, and @MicronautTest with TestPropertyProvider and Testcontainers. For raw java.sql access without generated repositories, use @511-frameworks-micronaut-jdbc. This should trigger for requests such as Review or implement Micronaut Data repositories and entities; Add transactions, pagination, or projections in Micronaut persistence layer. Part of cursor-rules-java project"},"skills_sh_url":"https://skills.sh/jabrena/cursor-rules-java/512-frameworks-micronaut-data"},"updatedAt":"2026-04-26T12:53:39.087Z"}}