← ClaudeAtlas

kora-project-setup-kotlinlisted

Scaffold a new Kotlin Kora service (Gradle Kotlin DSL) — KSP symbol-processors, kora-parent BOM, koraBom, @KoraApp, wrapper. Use when starting a Kotlin project or configuring KSP. For Java see kora-project-setup-java.
kora-projects/kora-skills · ★ 1 · AI & Automation · score 72
Install: claude install-skill kora-projects/kora-skills
# Kora Project Setup — Kotlin > **Kora sub-skill — obey the [kora-v1 meta rules](../../SKILL.md) on every task:** **R0** ensure `.kora-agent/` docs+examples are cloned · **R1** read this sub-skill before writing code · **R2** Kora APIs only — no Spring/Micronaut/Quarkus, no invented annotations or config keys · **R3** journal any incorrect Kora usage. Add comments/Javadoc only if asked. Scaffold a runnable Kotlin Kora service: Gradle Kotlin DSL build, KSP symbol processors, the `kora-parent` BOM, and a `@KoraApp` interface that plugs in Kora capabilities by extending `*Module` interfaces. **Pinned versions** (match `.kora-agent/kora-examples`): Kora BOM `1.2.19`, Kotlin `1.9.25`, KSP `1.9.25-1.0.20`, Gradle `9.5.1`, JVM toolchain `21`. Never version individual `ru.tinkoff.kora:*` artifacts — the BOM aligns them all. --- ## Core principle Kora generates code at compile time. For Kotlin this runs through **KSP** (the `com.google.devtools.ksp` plugin + the `ru.tinkoff.kora:symbol-processors` artifact), not Java's `annotationProcessor`. Without KSP, nothing is generated and the build produces no `ApplicationGraph`. KSP writes generated sources to `build/generated/ksp/main/kotlin` — register that directory as a source dir so IDEs and compilation see it. --- ## Project structure ``` my-app/ ├── build.gradle.kts ├── settings.gradle.kts ├── gradle.properties ├── gradle/wrapper/gradle-wrapper.properties ├── src/main/ │ ├── kotlin/com/example/Application.kt │ └── resources