[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BXVEP33NG1YREVBDF5R3TN":3,"skill-same:01M6BXVEP33NG1YREVBDF5R3TN":50},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":31,"ownerHtmlUrl":32,"ownerBlogUrl":33,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M6BXVEP33NG1YREVBDF5R3TN","Maven standards",null,"Conventions to use in Maven files, mostly the `pom.xml` files","jesperancinha\u002Fkotlin-mysteries","jesperancinha","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F11569930?v=4","01M6BXV038GJ2R8FQNEPT7AVZC","João Filipe Sabino Esperancinha","01M6BXV07CCQXNTGXREN86RZBR",2,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmaven\u002FSKILL.md",[],[19,5,20],"maven","xml","2026-11-10 10:12:30",false,"---\nname: Maven standards\ndescription: Conventions to use in Maven files, mostly the `pom.xml` files\n---\n\n## 1. Make sure dependencies that are supposed to be of scope `test`, remain test dependencies\n\nIn most cases, test dependencies should be of scope `test`. If you find any dependencies that are supposed to be of scope `test` but are not, you should add the `\u003Cscope>test\u003C\u002Fscope>` element to them. This ensures that the dependencies are only included in the test classpath and not in the production classpath.\nFor these cases, the following are the dependencies that supposed to be of scope `test`:\n\n```xml\n        \u003Cdependency>\n            \u003CgroupId>com.fasterxml.jackson.dataformat\u003C\u002FgroupId>\n            \u003CartifactId>jackson-dataformat-xml\u003C\u002FartifactId>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>io.mockk\u003C\u002FgroupId>\n            \u003CartifactId>mockk-jvm\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>com.ninja-squad\u003C\u002FgroupId>\n            \u003CartifactId>springmockk\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>io.kotest\u003C\u002FgroupId>\n            \u003CartifactId>kotest-assertions-core-jvm\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>org.springframework.boot\u003C\u002FgroupId>\n            \u003CartifactId>spring-boot-starter-test\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n```\n\nIn some cases, the test dependencies may be used for production code in test modules. Those cases are not always easy to determine.\nHowever, if you see that the module, where these dependencies are found to be used, is being used as a test dependency of other modules in the same project, then leave the dependency as is.\n\n## 2. Excessive declarations of the maven compiler\n\nAs a common practice, the `maven-compiler-plugin` was declared in the parent module, but also in many submodules. \nThe repetition is unnecessary, but may still prevail.\nPlease remove all `maven-compiler-plugin` declarations from all modules and submodules. \nKeep only one at the top level.\nAll the other `maven-compiler-plugin` declarations can be removed\n\n## 3. Excessive declarations of maven surefire and maven failsafe \n\nAs a common practice, the `maven-surefire-plugin` and the `maven-failsafe-plugin` were declared in the parent module, but also in many submodules.\nPlease remove all `maven-surefire-plugin` and the `maven-failsafe-plugin` declarations from all modules and submodules.\nKeep them only at the top level.\nAll the other `maven-surefire-plugin` and the `maven-failsafe-plugin` declarations can be removed\n","## 1. Make sure dependencies that are supposed to be of scope `test`, remain test dependencies\n\nIn most cases, test dependencies should be of scope `test`. If you find any dependencies that are supposed to be of scope `test` but are not, you should add the `\u003Cscope>test\u003C\u002Fscope>` element to them. This ensures that the dependencies are only included in the test classpath and not in the production classpath.\nFor these cases, the following are the dependencies that supposed to be of scope `test`:\n\n```xml\n        \u003Cdependency>\n            \u003CgroupId>com.fasterxml.jackson.dataformat\u003C\u002FgroupId>\n            \u003CartifactId>jackson-dataformat-xml\u003C\u002FartifactId>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>io.mockk\u003C\u002FgroupId>\n            \u003CartifactId>mockk-jvm\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>com.ninja-squad\u003C\u002FgroupId>\n            \u003CartifactId>springmockk\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>io.kotest\u003C\u002FgroupId>\n            \u003CartifactId>kotest-assertions-core-jvm\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n        \u003Cdependency>\n            \u003CgroupId>org.springframework.boot\u003C\u002FgroupId>\n            \u003CartifactId>spring-boot-starter-test\u003C\u002FartifactId>\n            \u003Cscope>test\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n```\n\nIn some cases, the test dependencies may be used for production code in test modules. Those cases are not always easy to determine.\nHowever, if you see that the module, where these dependencies are found to be used, is being used as a test dependency of other modules in the same project, then leave the dependency as is.\n\n## 2. Excessive declarations of the maven compiler\n\nAs a common practice, the `maven-compiler-plugin` was declared in the parent module, but also in many submodules. \nThe repetition is unnecessary, but may still prevail.\nPlease remove all `maven-compiler-plugin` declarations from all modules and submodules. \nKeep only one at the top level.\nAll the other `maven-compiler-plugin` declarations can be removed\n\n## 3. Excessive declarations of maven surefire and maven failsafe \n\nAs a common practice, the `maven-surefire-plugin` and the `maven-failsafe-plugin` were declared in the parent module, but also in many submodules.\nPlease remove all `maven-surefire-plugin` and the `maven-failsafe-plugin` declarations from all modules and submodules.\nKeep them only at the top level.\nAll the other `maven-surefire-plugin` and the `maven-failsafe-plugin` declarations can be removed\n",{"name":5,"description":7},"main","697d8147950c43487405f9593abb95dc5dc7aabe",".claude\u002Fskills\u002Fmaven",0,"https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries","https:\u002F\u002Fjesperancinha.github.io\u002Fkotlin-mysteries\u002F","https:\u002F\u002Fgithub.com\u002Fjesperancinha","http:\u002F\u002Fjoaofilipesabinoesperancinha.nl\u002F","IT Engineer","2026-07-20 17:47:29",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add jesperancinha\u002Fkotlin-mysteries --skill \"Maven standards\"",{"tool":42,"command":43},"bunx","bunx skills add jesperancinha\u002Fkotlin-mysteries --skill \"Maven standards\"",{"tool":45,"command":46},"pnpm","pnpm dlx skills add jesperancinha\u002Fkotlin-mysteries --skill \"Maven standards\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmaven\u002FSKILL.md",true,[],[51,68,82,91,98,105],{"skillNo":52,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":21},"01M6BXVS2Q1EJRCHG37A671S8K","spring","Conventions for dependency injection and mocking in Spring Boot in this project. Use this whenever writing, reviewing, or refactoring integration test classes (anything annotated @SpringBootTest, or under src\u002Ftest that talks to a real Spring context), especially when deciding how to wire dependencies or mock collaborators. Also consult this before adding @Autowired, @MockBean, @MockitoBean, or field injection in any test class.","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fspring\u002FSKILL.md",[],[53,58,59,60,61,62,63,64,65,66,67],"writing","src","refactoring","consult","how","injection","integration","spring boot","boot","test",{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":21},"01M6BXVP5QBEYCNWG56FFBBHZK","spring-integration-test-wiring","Conventions for dependency injection and mocking in Spring Boot integration tests in this project. Use this whenever writing, reviewing, or refactoring integration test classes (anything annotated @SpringBootTest, or under src\u002Ftest that talks to a real Spring context), especially when deciding how to wire dependencies or mock collaborators. Also consult this before adding @Autowired, @MockBean, @MockitoBean, or field injection in any test class.","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fspring-test\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[80,64,67,58,81,59,60,61,62,63,65,66],"spring integration test wiring","integration tests",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":21},"01M6BXVM9KDEWYJ7WWJSTA22GR","Scripts patterns","Conventions for using sh, bash, bat, python scripts","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fscripts\u002FSKILL.md",[],[84,89,90],"Bash","python",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":21},"01M6BXVJETCKANCGG2ZVJJVWYN","Readme standards","Conventions to use in Readme files","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Freadme\u002FSKILL.md",[],[93],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":21},"01M6BXVGR52RYGR5R2A4N4C3SE","parallelization","Conventions for using parallelization in all tests using Jupiter","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fparallel\u002FSKILL.md",[],[100],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":21},"01M6BXVCG904KP6JBVVXVR01CN","kotlin patterns","Conventions for using Kotlin","https:\u002F\u002Fgithub.com\u002Fjesperancinha\u002Fkotlin-mysteries\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fkotlin\u002FSKILL.md",[],[112,107],"kotlin"]