# 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: `majiayu000/kotlin-autocomplete` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/kotlin-autocomplete`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/kotlin-autocomplete/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/kotlin-autocomplete

---


# 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:

```bash
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "fully.qualified.TypeName"
```

**Examples:**
```bash
# 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:
1. Applied the plugin in `build.gradle.kts`:
   ```kotlin
   plugins {
       id("com.lightningkite.kotlin-autocomplete") version "0.0.1-1"
   }
   ```
2. Generated metadata: `./gradlew buildAutocomplete`
3. Metadata exists in `build/autocomplete/` directory

## Important Notes

- **Type names must be fully qualified**: Use `kotlin.String` not `String`
- **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:
1. Suggest running `./gradlew buildAutocomplete`
2. Verify the plugin is applied
3. Check if the type name is correct
4. 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?"

1. Run: `.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow"`
2. Parse the output
3. Present available operations in a clear format
4. Suggest common patterns based on the available members

This ensures you provide accurate, project-specific Kotlin guidance!

