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.
SKILL.md
| 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. |
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
Exact Lookup (with FQN)
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "fully.qualified.TypeName"
Fuzzy Lookup (without FQN)
NEW! You don't need to know the fully-qualified name!
# Just use the simple name - it will auto-search
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "User" # Finds com.example.User
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "Flow" # Finds kotlinx.coroutines.flow.Flow
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "String" # Finds kotlin.String
Search for All Matches
# Find all types containing "Flow"
.claude/skills/scripts/kotlin-autocomplete-search.sh "Flow"
Examples:
# Exact lookup
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlin.String"
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow"
# Fuzzy lookup (no FQN needed!)
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "User"
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "TestClass"
# Search all matches
.claude/skills/scripts/kotlin-autocomplete-search.sh "Flow" # Shows all 27 Flow-related types
.claude/skills/scripts/kotlin-autocomplete-search.sh "State" # All State types
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
- Fuzzy search now supported: Can use simple names like
Userinstead ofcom.example.User - Auto-detection: If exact match fails, automatically searches by simple name
- Multiple matches handled: Shows all options when multiple types match
- Only public members included: Internal and private members are excluded
- Extensions on Any/Any? 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!