Claude-skill-registry kotlin-dsl
Kotlin DSL - type-safe builders, Gradle DSL, @DslMarker
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/kotlin-dsl" ~/.claude/skills/majiayu000-claude-skill-registry-kotlin-dsl && rm -rf "$T"
manifest:
skills/data/kotlin-dsl/SKILL.mdsource content
Kotlin DSL Skill
Build type-safe DSLs with Kotlin's language features.
Topics Covered
@DslMarker for Scope Control
@DslMarker annotation class HtmlDsl @HtmlDsl class HTML { fun body(block: Body.() -> Unit) { } } @HtmlDsl class Body { fun p(text: String) { } } // Usage - scoped correctly html { body { p("Text") } }
Gradle Convention Plugin
// kotlin-library.gradle.kts plugins { kotlin("jvm"); `java-library` } kotlin { jvmToolchain(17) } dependencies { testImplementation(kotlin("test")) testImplementation("io.mockk:mockk:1.13.9") } tasks.test { useJUnitPlatform() }
Type-Safe Config Builder
@ConfigDsl class ServerConfig private constructor(val host: String, val port: Int) { class Builder { var host = "localhost" var port = 8080 fun build() = ServerConfig(host, port) } } fun serverConfig(block: ServerConfig.Builder.() -> Unit) = ServerConfig.Builder().apply(block).build() // Usage val config = serverConfig { host = "api.example.com"; port = 443 }
Troubleshooting
| Issue | Resolution |
|---|---|
| Scope pollution | Add @DslMarker annotation |
| Gradle cache stale | Run ./gradlew --stop |
Usage
Skill("kotlin-dsl")