{"id":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","shortId":"xRAjdn","kind":"skill","title":"create-spring-boot-kotlin-project","tagline":"Create Spring Boot Kotlin Project Skeleton","description":"# Create Spring Boot Kotlin project prompt\n\n- Please make sure you have the following software installed on your system:\n\n  - Java 21\n  - Docker\n  - Docker Compose\n\n- If you need to custom the project name, please change the `artifactId` and the `packageName` in [download-spring-boot-project-template](#download-spring-boot-project-template)\n\n- If you need to update the Spring Boot version, please change the `bootVersion` in [download-spring-boot-project-template](#download-spring-boot-project-template)\n\n## Check Java version\n\n- Run following command in terminal and check the version of Java\n\n```shell\njava -version\n```\n\n## Download Spring Boot project template\n\n- Run following command in terminal to download a Spring Boot project template\n\n```shell\ncurl https://start.spring.io/starter.zip \\\n  -d artifactId=${input:projectName:demo-kotlin} \\\n  -d bootVersion=3.4.5 \\\n  -d dependencies=configuration-processor,webflux,data-r2dbc,postgresql,data-redis-reactive,data-mongodb-reactive,validation,cache,testcontainers \\\n  -d javaVersion=21 \\\n  -d language=kotlin \\\n  -d packageName=com.example \\\n  -d packaging=jar \\\n  -d type=gradle-project-kotlin \\\n  -o starter.zip\n```\n\n## Unzip the downloaded file\n\n- Run following command in terminal to unzip the downloaded file\n\n```shell\nunzip starter.zip -d ./${input:projectName:demo-kotlin}\n```\n\n## Remove the downloaded zip file\n\n- Run following command in terminal to delete the downloaded zip file\n\n```shell\nrm -f starter.zip\n```\n\n## Unzip the downloaded file\n\n- Run following command in terminal to unzip the downloaded file\n\n```shell\nunzip starter.zip -d ./${input:projectName:demo-kotlin}\n```\n\n## Add additional dependencies\n\n- Insert `springdoc-openapi-starter-webmvc-ui` and `archunit-junit5` dependency into `build.gradle.kts` file\n\n```gradle.kts\ndependencies {\n  implementation(\"org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.6\")\n  testImplementation(\"com.tngtech.archunit:archunit-junit5:1.2.1\")\n}\n```\n\n- Insert SpringDoc configurations into `application.properties` file\n\n```properties\n# SpringDoc configurations\nspringdoc.swagger-ui.doc-expansion=none\nspringdoc.swagger-ui.operations-sorter=alpha\nspringdoc.swagger-ui.tags-sorter=alpha\n```\n\n- Insert Redis configurations into `application.properties` file\n\n```properties\n# Redis configurations\nspring.data.redis.host=localhost\nspring.data.redis.port=6379\nspring.data.redis.password=rootroot\n```\n\n- Insert R2DBC configurations into `application.properties` file\n\n```properties\n# R2DBC configurations\nspring.r2dbc.url=r2dbc:postgresql://localhost:5432/postgres\nspring.r2dbc.username=postgres\nspring.r2dbc.password=rootroot\n\nspring.sql.init.mode=always\nspring.sql.init.platform=postgres\nspring.sql.init.continue-on-error=true\n```\n\n- Insert MongoDB configurations into `application.properties` file\n\n```properties\n# MongoDB configurations\nspring.data.mongodb.host=localhost\nspring.data.mongodb.port=27017\nspring.data.mongodb.authentication-database=admin\nspring.data.mongodb.username=root\nspring.data.mongodb.password=rootroot\nspring.data.mongodb.database=test\n```\n\n- Create `docker-compose.yaml` at project root and add following services: `redis:6`, `postgresql:17` and `mongo:8`.\n\n  - redis service should have\n    - password `rootroot`\n    - mapping port 6379 to 6379\n    - mounting volume `./redis_data` to `/data`\n  - postgresql service should have\n    - password `rootroot`\n    - mapping port 5432 to 5432\n    - mounting volume `./postgres_data` to `/var/lib/postgresql/data`\n  - mongo service should have\n    - initdb root username `root`\n    - initdb root password `rootroot`\n    - mapping port 27017 to 27017\n    - mounting volume `./mongo_data` to `/data/db`\n\n- Insert `redis_data`, `postgres_data` and `mongo_data` directories in `.gitignore` file\n\n- Run gradle clean test command to check if the project is working\n\n```shell\n./gradlew clean test\n```\n\n- (Optional) `docker-compose up -d` to start the services, `./gradlew spring-boot:run` to run the Spring Boot project, `docker-compose rm -sf` to stop the services.\n\nLet's do this step by step.","tags":["create","spring","boot","kotlin","project","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot"],"capabilities":["skill","source-github","skill-create-spring-boot-kotlin-project","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/create-spring-boot-kotlin-project","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (4,072 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-05-18T18:52:08.694Z","embedding":null,"createdAt":"2026-04-18T20:26:13.274Z","updatedAt":"2026-05-18T18:52:08.694Z","lastSeenAt":"2026-05-18T18:52:08.694Z","tsv":"'/data':393 '/data/db':431 '/gradlew':457,470 '/mongo_data':429 '/postgres_data':407 '/redis_data':391 '/starter.zip':128 '/var/lib/postgresql/data':409 '1.2.1':280 '17':374 '2.8.6':274 '21':32,162 '27017':352,424,426 '3.4.5':138 '5432':402,404 '5432/postgres':326 '6':372 '6379':311,386,388 '8':377 'add':246,368 'addit':247 'admin':355 'alpha':295,298 'alway':332 'application.properties':285,303,318,344 'archunit':258,278 'archunit-junit5':257,277 'artifactid':47,130 'boot':4,9,15,55,61,71,81,87,109,121,473,479 'bootvers':76,137 'build.gradle.kts':262 'cach':158 'chang':45,74 'check':90,99,450 'clean':446,458 'com.example':168 'com.tngtech.archunit':276 'command':95,114,186,210,229,448 'compos':35,463,483 'configur':142,283,289,301,307,316,322,342,348 'configuration-processor':141 'creat':2,7,13,362 'create-spring-boot-kotlin-project':1 'curl':125 'custom':40 'd':129,136,139,160,163,166,169,172,197,240,465 'data':146,150,154,434,436,439 'data-mongodb-react':153 'data-r2dbc':145 'data-redis-react':149 'databas':354 'delet':214 'demo':134,201,244 'demo-kotlin':133,200,243 'depend':140,248,260,265 'directori':440 'docker':33,34,462,482 'docker-compos':461,481 'docker-compose.yaml':363 'download':53,59,79,85,107,118,182,192,205,216,225,235 'download-spring-boot-project-templ':52,58,78,84 'error':338 'expans':291 'f':221 'file':183,193,207,218,226,236,263,286,304,319,345,443 'follow':25,94,113,185,209,228,369 'gitignor':442 'gradl':175,445 'gradle-project-kotlin':174 'gradle.kts':264 'implement':266 'initdb':414,418 'input':131,198,241 'insert':249,281,299,314,340,432 'instal':27 'jar':171 'java':31,91,103,105 'javavers':161 'junit5':259,279 'kotlin':5,10,16,135,165,177,202,245 'languag':164 'let':490 'localhost':309,325,350 'make':20 'map':384,400,422 'mongo':376,410,438 'mongodb':155,341,347 'mount':389,405,427 'name':43 'need':38,66 'none':292 'o':178 'on-error':336 'openapi':252,270 'option':460 'org.springdoc':267 'packag':170 'packagenam':50,167 'password':382,398,420 'pleas':19,44,73 'port':385,401,423 'postgr':328,334,435 'postgresql':148,373,394 'processor':143 'project':6,11,17,42,56,62,82,88,110,122,176,365,453,480 'projectnam':132,199,242 'prompt':18 'properti':287,305,320,346 'r2dbc':147,315,321,324 'reactiv':152,156 'redi':151,300,306,371,378,433 'remov':203 'rm':220,484 'root':357,366,415,417,419 'rootroot':313,330,359,383,399,421 'run':93,112,184,208,227,444,474,476 'servic':370,379,395,411,469,489 'sf':485 'shell':104,124,194,219,237,456 'skeleton':12 'skill' 'skill-create-spring-boot-kotlin-project' 'softwar':26 'sorter':294,297 'source-github' 'spring':3,8,14,54,60,70,80,86,108,120,472,478 'spring-boot':471 'spring.data.mongodb.authentication':353 'spring.data.mongodb.database':360 'spring.data.mongodb.host':349 'spring.data.mongodb.password':358 'spring.data.mongodb.port':351 'spring.data.mongodb.username':356 'spring.data.redis.host':308 'spring.data.redis.password':312 'spring.data.redis.port':310 'spring.r2dbc.password':329 'spring.r2dbc.url':323 'spring.r2dbc.username':327 'spring.sql.init.continue':335 'spring.sql.init.mode':331 'spring.sql.init.platform':333 'springdoc':251,269,282,288 'springdoc-openapi-starter-webflux-ui':268 'springdoc-openapi-starter-webmvc-ui':250 'springdoc.swagger-ui.doc':290 'springdoc.swagger-ui.operations':293 'springdoc.swagger-ui.tags':296 'start':467 'start.spring.io':127 'start.spring.io/starter.zip':126 'starter':253,271 'starter.zip':179,196,222,239 'step':494,496 'stop':487 'sure':21 'system':30 'templat':57,63,83,89,111,123 'termin':97,116,188,212,231 'test':361,447,459 'testcontain':159 'testimplement':275 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'true':339 'type':173 'ui':255,273 'unzip':180,190,195,223,233,238 'updat':68 'usernam':416 'valid':157 'version':72,92,101,106 'volum':390,406,428 'webflux':144,272 'webmvc':254 'work':455 'zip':206,217","prices":[{"id":"747508a2-0de6-4977-b0ad-cba6a6d05d95","listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:26:13.274Z"}],"sources":[{"listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","source":"github","sourceId":"github/awesome-copilot/create-spring-boot-kotlin-project","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/create-spring-boot-kotlin-project","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:54.675Z","lastSeenAt":"2026-05-18T18:52:08.694Z"},{"listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","source":"skills_sh","sourceId":"github/awesome-copilot/create-spring-boot-kotlin-project","sourceUrl":"https://skills.sh/github/awesome-copilot/create-spring-boot-kotlin-project","isPrimary":true,"firstSeenAt":"2026-04-18T20:26:13.274Z","lastSeenAt":"2026-05-07T22:40:18.942Z"}],"details":{"listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"create-spring-boot-kotlin-project","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"d656a4fcecbb3536fbff8c331e3edfc4782e8dd2","skill_md_path":"skills/create-spring-boot-kotlin-project/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/create-spring-boot-kotlin-project"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"create-spring-boot-kotlin-project","description":"Create Spring Boot Kotlin Project Skeleton"},"skills_sh_url":"https://skills.sh/github/awesome-copilot/create-spring-boot-kotlin-project"},"updatedAt":"2026-05-18T18:52:08.694Z"}}