Agent skill
Kotlin Autocomplete
This skill should be used when you need to know what members, methods, or extensions are available on Kotlin types. It queries autocomplete metadata generated by the kotlin-autocomplete-gradle-plugin.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/kotlin-autocomplete
SKILL.md
Kotlin Autocomplete Skill
You have access to accurate, project-specific Kotlin type information through autocomplete metadata generated by the kotlin-autocomplete-gradle-plugin.
When to Use This Skill
Use this skill when:
- Writing Kotlin code and need to know what methods/properties are available on a type
- The user asks "what can I do with X type?" or "what methods does X have?"
- Verifying if a specific member exists on a type
- Exploring Kotlin APIs (stdlib, coroutines, or project-specific)
- You're unsure about method signatures or available extensions
How It Works
The autocomplete metadata is generated by running ./gradlew buildAutocomplete in a Kotlin project. This creates JSON files in build/autocomplete/ containing:
- All public properties and methods with full signatures
- Extension functions and properties
- Both standard library and project-specific types
Querying Type Information
Use the helper script to query type information:
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "fully.qualified.TypeName"
Examples:
# Standard library types
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlin.String"
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlin.collections.List"
# Coroutines types
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow"
# Project types
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "com.example.User"
Response Format
When presenting autocomplete information, format it clearly:
Type: kotlin.String
Members:
- val length: kotlin.Int
- fun substring(startIndex: kotlin.Int): kotlin.String
- fun lowercase(): kotlin.String
Extensions:
- fun toSnakeCase(): kotlin.String
- val firstChar: kotlin.Char?
Total: 3 members, 2 extensions
Prerequisites
The Kotlin project must have:
- Applied the plugin in
build.gradle.kts:kotlinplugins { id("com.lightningkite.kotlin-autocomplete") version "0.0.1-1" } - Generated metadata:
./gradlew buildAutocomplete - Metadata exists in
build/autocomplete/directory
Important Notes
- Type names must be fully qualified: Use
kotlin.StringnotString - Only public members are included: Internal and private members are excluded
- Extensions on Any/Any? are filtered: Too generic to be useful
- Fast lookups: Index-based queries are nearly instant
If Metadata Not Found
If autocomplete metadata doesn't exist:
- Suggest running
./gradlew buildAutocomplete - Verify the plugin is applied
- Check if the type name is correct
- Fall back to general Kotlin knowledge, but note it may not be project-specific
Benefits
- No hallucinations: All information comes from actual compiled code
- Project-aware: Includes custom extensions and project types
- Always up-to-date: Regenerate when code changes
- Complete signatures: Full parameter types and return types
Example Workflow
User: "What can I do with a Flow?"
- Run:
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow" - Parse the output
- Present available operations in a clear format
- Suggest common patterns based on the available members
This ensures you provide accurate, project-specific Kotlin guidance!
Didn't find tool you were looking for?