{"id":"ba368ba4-686e-4190-9e5d-416f2af81de8","shortId":"WdZ4rD","kind":"skill","title":"501-frameworks-micronaut-core","tagline":"Use when building or reviewing Micronaut applications — Micronaut.run bootstrap, @Singleton/@Prototype, @Factory beans, @ConfigurationProperties, environments, @Requires, @Controller vs services, @Scheduled, graceful shutdown, @ExecuteOn for blocking work, and Jakarta-consistent ","description":"# Micronaut Core Guidelines\n\nApply Micronaut core guidelines for DI, configuration, HTTP adapters, and operations.\n\n**What is covered in this Skill?**\n\n- Thin `main` with `Micronaut.run(Application.class, args)`\n- Bean scopes: @Singleton, @Prototype; request scope only when justified\n- Constructor injection with `jakarta.inject.Inject`\n- @Factory for third-party or explicit bean construction\n- @ConfigurationProperties (grouped settings) vs scattered @Property\n- @Requires and environments instead of env branching in domain code\n- Thin @Controller types delegating to @Singleton services\n- @Scheduled with explicit failure visibility\n- @ExecuteOn(TaskExecutors.BLOCKING) (or virtual-thread executors) for blocking I/O off the event loop\n- Netty graceful shutdown properties\n- AOP interceptors for cross-cutting concerns\n\n**Scope:** Apply recommendations based on the reference rules and good/bad code examples.\n\n## Constraints\n\nBefore applying Micronaut changes, ensure the project compiles. If compilation fails, stop immediately. After applying improvements, run full verification.\n\n- **MANDATORY**: Run `./mvnw compile` or `mvn compile` before applying any change\n- **PREREQUISITE**: Project must compile successfully before applying Micronaut core improvements\n- **SAFETY**: If compilation fails, stop immediately — compilation failure is a blocking condition\n- **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` after applying improvements\n- **BEFORE APPLYING**: Read the reference for detailed rules, good/bad patterns, and constraints\n\n## When to use this skill\n\n- Review Java code for Micronaut application structure and beans\n- Apply best practices for Micronaut configuration, @Requires, and factories\n- Improve scheduling, shutdown, or threading in Micronaut services\n\n## Workflow\n\n1. **Read reference and assess project context**\n\nRead `references/501-frameworks-micronaut-core.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/501-frameworks-micronaut-core.md](references/501-frameworks-micronaut-core.md).","tags":["501","frameworks","micronaut","core","cursor","rules","java","jabrena","agent-skills","ai-skills","claude","claude-code"],"capabilities":["skill","source-jabrena","skill-501-frameworks-micronaut-core","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/501-frameworks-micronaut-core","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,563 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:38.571Z","embedding":null,"createdAt":"2026-04-18T22:02:24.100Z","updatedAt":"2026-04-26T12:53:38.571Z","lastSeenAt":"2026-04-26T12:53:38.571Z","tsv":"'/mvnw':171,204 '1':258 '2':276 '3':296 '4':313 '501':1 'action':334 'adapt':47 'align':300 'aop':130 'appli':39,138,151,164,177,186,212,215,240,295,297 'applic':12,236 'application.class':60 'appropri':320 'arg':61 'assess':262 'base':140 'bean':18,62,82,239 'best':241 'block':30,120,200 'bootstrap':14 'branch':96 'build':8 'build/tests':321 'chang':153,179,275,293,301,325 'clean':205,209 'code':99,147,233 'compil':157,159,172,175,183,192,196 'concern':136 'condit':201 'configur':45,245 'configuration/code':305 'configurationproperti':19,84 'consist':35 'constraint':149,225,286,341 'construct':83 'constructor':71 'context':264 'control':22,101 'convent':312 'core':5,37,41,188 'cover':52 'cross':134 'cross-cut':133 'current':270 'cut':135 'decid':280 'deleg':103 'detail':220,337 'di':44 'domain':98 'ensur':154 'env':95 'environ':20,92 'event':124 'exampl':148,339 'execut':319 'executeon':28,112 'executor':118 'explicit':81,109 'factori':17,75,248 'fail':160,193 'failur':110,197 'follow':306,332 'follow-up':331 'framework':3,299 'framework-align':298 'frameworks-micronaut-cor':2 'full':167 'gather':277 'good/bad':146,222 'grace':26,127 'group':85 'guidanc':338 'guidelin':38,42 'http':46 'i/o':121 'identifi':283 'immedi':162,195 'implement':302 'improv':165,189,213,249,282 'inject':72 'inspect':268 'instead':93 'interceptor':131 'jakarta':34 'jakarta-consist':33 'jakarta.inject.inject':74 'java':232 'justifi':70 'loop':125 'main':57 'mandatori':169 'micronaut':4,11,36,40,152,187,235,244,255 'micronaut.run':13,59 'minimum':289 'must':182 'mvn':174,208 'netti':126 'oper':49 'outcom':285 'parti':79 'pattern':223,309 'practic':242 'prerequisit':180 'project':156,181,263,271,311 'properti':89,129 'propos':274 'prototyp':16,65 'read':216,259,265 'recommend':139 'refactor':304 'refer':143,218,260,308,335 'references/501-frameworks-micronaut-core.md':266,343,344 'report':317 'request':66,284 'requir':21,90,246 'result':318 'review':10,231 'rule':144,221 'run':166,170,203,314 'safe':290 'safeti':190 'scatter':88 'schedul':25,107,250 'scope':63,67,137,278 'see':342 'servic':24,106,256 'set':86,291 'setup':272 'shutdown':27,128,251 'singleton':15,64,105 'skill':55,230 'skill-501-frameworks-micronaut-core' 'source-jabrena' 'stop':161,194 'structur':237 'success':184 'summar':323 'target':281 'taskexecutors.blocking':113 'thin':56,100 'third':78 'third-parti':77 'thread':117,253 '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' 'type':102 'use':6,228 'verif':168,315 'verifi':202,206,210,328 'virtual':116 'virtual-thread':115 'visibl':111 'vs':23,87 'work':31 'workflow':257","prices":[{"id":"24503526-6732-423c-a3dd-11dc256f040c","listingId":"ba368ba4-686e-4190-9e5d-416f2af81de8","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:24.100Z"}],"sources":[{"listingId":"ba368ba4-686e-4190-9e5d-416f2af81de8","source":"github","sourceId":"jabrena/cursor-rules-java/501-frameworks-micronaut-core","sourceUrl":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/501-frameworks-micronaut-core","isPrimary":false,"firstSeenAt":"2026-04-18T22:02:24.100Z","lastSeenAt":"2026-04-26T12:53:38.571Z"}],"details":{"listingId":"ba368ba4-686e-4190-9e5d-416f2af81de8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jabrena","slug":"501-frameworks-micronaut-core","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":"f4078c6b338dbe39356037f0e35e9e4dac56efd9","skill_md_path":"skills/501-frameworks-micronaut-core/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/501-frameworks-micronaut-core"},"layout":"multi","source":"github","category":"cursor-rules-java","frontmatter":{"name":"501-frameworks-micronaut-core","license":"Apache-2.0","description":"Use when building or reviewing Micronaut applications — Micronaut.run bootstrap, @Singleton/@Prototype, @Factory beans, @ConfigurationProperties, environments, @Requires, @Controller vs services, @Scheduled, graceful shutdown, @ExecuteOn for blocking work, and Jakarta-consistent APIs. This should trigger for requests such as Review Java code for Micronaut application structure and beans; Apply best practices for Micronaut configuration, @Requires, and factories; Improve scheduling, shutdown, or threading in Micronaut services. Part of cursor-rules-java project"},"skills_sh_url":"https://skills.sh/jabrena/cursor-rules-java/501-frameworks-micronaut-core"},"updatedAt":"2026-04-26T12:53:38.571Z"}}