| name | Kotlin Autocomplete |
| description | 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. |
| version | 1.0.0 |
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:plugins { 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!