Android Development
dpconde/claude-android-skill
Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
Load when authoring, writing, or designing a Kotlin Toolchain local plugin to extend the declarative build with code generation, build-time processing, custom verification, or packaging that…
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-kotlin-toolchain-plugin-authoring --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring .claude/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "kotlin-tooling-kotlin-toolchain-plugin-authoring" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring into .claude/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-kotlin-toolchain-plugin-authoring", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoringType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-kotlin-toolchain-plugin-authoring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring .agents/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "kotlin-tooling-kotlin-toolchain-plugin-authoring" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring into .agents/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-kotlin-toolchain-plugin-authoring", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-kotlin-toolchain-plugin-authoring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring .cursor/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "kotlin-tooling-kotlin-toolchain-plugin-authoring" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring into .cursor/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-kotlin-toolchain-plugin-authoring", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Kotlin/kotlin-agent-skills.git --path skills/kotlin-tooling-kotlin-toolchain-plugin-authoring--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-kotlin-toolchain-plugin-authoring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring .gemini/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "kotlin-tooling-kotlin-toolchain-plugin-authoring" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring into .gemini/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-kotlin-toolchain-plugin-authoring", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-kotlin-toolchain-plugin-authoringInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring .github/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "kotlin-tooling-kotlin-toolchain-plugin-authoring" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring into .github/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-kotlin-toolchain-plugin-authoring", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-kotlin-toolchain-plugin-authoring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring .opencode/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "kotlin-tooling-kotlin-toolchain-plugin-authoring" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring into .opencode/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-kotlin-toolchain-plugin-authoring", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
kotlin-tooling-kotlin-toolchain-plugin-authoringLoad when authoring, writing, or designing a Kotlin Toolchain local plugin to extend the declarative build with code generation, build-time processing, custom verification, or packaging that…
Kotlin Tooling Kotlin Toolchain Plugin Authoring is an agent skill from Kotlin/kotlin-agent-skills. Load when authoring, writing, or designing a Kotlin Toolchain local plugin to extend the declarative build with code generation, build-time processing, custom verification, or packaging that module.yaml cannot express, or when referencing @TaskAction, @Configurable, plugin.yaml, or jvm/amper-plugin. Skip for porting an existing Gradle plugin.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/examples.md`).
It sits in Mobile, covering Android development. It works with Kotlin and Gradle. The repository describes itself as: A collection of AI agent skills useful for projects using Kotlin language. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c2f9069. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml and kotlin).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
kotlin-toolchain.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Kotlin Tooling Kotlin Toolchain Plugin Authoring loads about 2.3k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 98 tokens; SKILL.md has 814 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Kotlin/kotlin-agent-skills at commit c2f9069, republished under its Apache-2.0 licence (© Kotlin). 814 words, ~2,302 tokens.
.claude/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Local plugins are the official escape hatch from declarative YAML: a jvm/amper-plugin module shipping
task actions, settings, and generated sources/resources alongside your project. Code patterns to adapt are
in references/examples.md.
Write one when you need:
project.version../kotlin do release).Don't write one when module.yaml already covers it (dependencies, JDK provisioning, source layouts,
basic packaging), and never to reuse a Gradle plugin — the Kotlin Toolchain cannot consume them.
repo-root/
├── kotlin, kotlin.bat # wrappers (from `kotlin init`)
├── project.yaml # registers the plugin
├── plugins/<name>/
│ ├── module.yaml # product: jvm/amper-plugin
│ ├── plugin.yaml # tasks: + commands: + generated:
│ └── src/
│ ├── Settings.kt # @Configurable interface
│ ├── tasks/ # one @TaskAction per file
│ │ ├── Foo.kt
│ │ └── FooSteps.kt # internal shared helpers (not @TaskAction)
│ └── <domain logic>/
└── <consumer-module>/
└── module.yaml # plugins: { <name>: enabled: true, ... }Keep at least one consumer module in the repo — it is the only way to exercise the plugin end-to-end, and plugins cannot be published to any public registry yet.
project.yamlmodules:
- consumer-app
- plugins/<name>
plugins:
- ./plugins/<name>Without the top-level plugins: block the plugin id is unresolvable from any consumer.
module.yaml — the plugin moduleproduct: jvm/amper-plugin # marks the module as a plugin
dependencies:
- <coordinate>:<version>
- <coordinate>:<version>: runtime-only # required only at runtime
- <coordinate>:<version>: compile-only
pluginInfo:
id: <plugin-id> # what consumers write under `plugins:`
settingsClass: <fully.qualified.Settings> # the @Configurable interface
settings:
jvm:
jdk:
version: 21
kotlin:
languageVersion: 2.1@Configurable interface SettingsDefaults go in interface property getters; nested blocks become nested @Configurable interfaces.
@Configurable
interface Settings {
val someValue: String get() = "default"
val checks: ChecksSettings
}
@Configurable
interface ChecksSettings {
val strict: Boolean get() = true
}Consumers override what they need in module.yaml; omitted values fall back to the getter default:
plugins:
<plugin-id>:
enabled: true
someValue: "override"
checks:
strict: false@TaskActionTask actions are top-level funs, called when the matching plugin.yaml entry executes.
@TaskAction
fun foo(
@Input moduleRootDir: Path,
@Output outputDir: Path,
settings: Settings,
) {
// body
}@Input path: Path — declared input; Kotlin Toolchain snapshots its contents for execution avoidance.@Output path: Path — declared output directory; Kotlin Toolchain creates it and passes the path in. Write
to the exact Path you received, or downstream references won't find the result.settings: Settings (or any @Configurable) — typed configuration, wired in plugin.yaml.Path / primitives — passed literally from plugin.yaml.println(...) is the output channel; Kotlin Toolchain captures stdout.A @TaskAction is skipped when its declared inputs are unchanged. Tasks whose real inputs are Git history,
the network, or environment variables cannot be fingerprinted, so opt out:
@TaskAction(executionAvoidance = ExecutionAvoidance.Disabled)
fun foo(@Output outputDir: Path, settings: Settings) { /* ... */ }Tasks with no @Output are never cached and always re-run — correct for purely side-effecting tasks
(releases, deployments, pushes).
plugin.yamltasks:
foo:
action: !<fully.qualified.foo>
moduleRootDir: ${module.rootDir}
outputDir: ${taskOutputDir}
settings: ${pluginSettings}
bar:
action: !<fully.qualified.bar>
input: ${tasks.foo.action.outputDir}/result.txt
settings: ${pluginSettings}
generated:
resources:
- directory: ${tasks.foo.action.outputDir}
commands:
- foo| Reference | Resolves to |
|---|---|
${module.rootDir} | Directory containing the consumer's module.yaml. Pass as @Input to inspect the consumer's tree. |
${taskOutputDir} | Toolchain-managed per-task output directory. Pass as @Output. |
${pluginSettings} | The @Configurable object built from the consumer's module.yaml. |
${tasks.<task>.action.<param>} | Another task's parameter — used in generated.* and to wire one task's @Input to another's @Output. |
generated.resources / generated.sourcesBoth register a directory (usually a task's @Output) as a contribution to the consumer's build, and both
auto-wire the producing task to run first:
generated.resources — added to the JAR classpath, reachable via getResourceAsStream("/path/in/jar").generated.sources — added as a Kotlin source root and compiled with the consumer's src/.Tasks are the implementation, addressed as ./kotlin task :<module>:<task>@<plugin-id> — the docs advise
against relying on that mangled name. Commands are the public API: ./kotlin do <command-name>, listed via
./kotlin show commands (-m <module> to scope).
@Output feeds generated.resources/generated.sources is a build-graph contributor. Keep
it out of commands:; it runs automatically and exposing it invites users to run it by hand.commands:.There is no shared mutable build state — no project.version, no extension property maps. Tasks talk
through matched paths:
@Output outputDir: Path and writes files into it.plugin.yaml points a consumer task's @Input at ${tasks.<producer>.action.outputDir}/<file>.dependsOn API needed.The same @Output directory can serve build-time consumers (via @Input) and runtime consumers
(registered under generated.resources, read via getResourceAsStream) simultaneously.
There is no -Pkey=value. Read env vars inside the action for ephemeral overrides:
val forced = System.getenv("MYPLUGIN_FORCE_VALUE")?.takeIf { it.isNotBlank() }
val skipChecks = System.getenv("MYPLUGIN_SKIP_CHECKS")?.equals("true", ignoreCase = true) == truePass the env map in as a constructor parameter rather than calling System.getenv() deep in the call stack,
so logic stays unit-testable. Document every recognised variable in the plugin's README. Env vars are
ephemeral overrides, not a trust boundary — validate a value before using it in a file path or process
argument.
Tasks often share steps (verify → create → push). Don't compose an atomic user-facing task from a chain of build-graph tasks: separate invocations re-open shared resources and open a window where another process observes intermediate state.
plugins:, and cross-module effects flow through files.${...} interpolation in module.yaml (as of 0.11) — consumer settings are literal values.Project.afterEvaluate, no lazy Provider/Property graph. Compute derived values in the action body.-h/--help does not list plugin commands; use ./kotlin show commands.demo-app/, sample/) enabling the plugin with realistic settings.main.kt or a test read whatever the plugin publishes.Plugin docs: https://kotlin-toolchain.org/dev/user-guide/plugins/
© Kotlin, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/kotlin-tooling-kotlin-toolchain-plugin-authoring of Kotlin/kotlin-agent-skills.
Open the folder on GitHubat commit c2f9069
Kotlin Tooling Kotlin Toolchain Plugin Authoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Kotlin Tooling Kotlin Toolchain Plugin Authoring this skillKotlin/kotlin-agent-skills | 1.1k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Android Developmentdpconde/claude-android-skill | 336 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Diagnosing Compose StabilityrosuH/EasyWatermark | 1.9k | 1 repos | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Claude Android NinjaDrjacky/claude-android-ninja | 124 | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Expo Brownfield Integrationmweinbach/agent-coworker | 156 | 2 repos | ~900 | Automated safety check: Notes | Custom licence | |
| Jugg Android Dev Loopniki914/zafiro | 241 | — | ~2k | Automated safety check: Pass | MIT |
dpconde/claude-android-skill
Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.
rosuH/EasyWatermark
A skill your agent uses to diagnose Jetpack Compose stability problems by enabling and reading the Compose Compiler Reports (classes.txt, composables.txt, composables.csv, module.json).
Drjacky/claude-android-ninja
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
mweinbach/agent-coworker
Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.
niki914/zafiro
A skill your agent uses when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app.
nekomangaorg/Neko
Optimizes Gradle build scripts, compilation times, and Android Studio sync performance.
Kotlin/kotlin-agent-skills
Diagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS.
Kotlin/kotlin-agent-skills
Migrate Kotlin (and Java) code from kotlinx.collections.immutable 0.3.x / 0.4.x to the latest 0.5.x.
Kotlin/kotlin-agent-skills
Load when porting, converting, or reimplementing a single Gradle plugin as a Kotlin Toolchain local plugin, or when mapping Gradle plugin concepts (Task, Extension, project.version, dependsOn, -P…
Kotlin/kotlin-agent-skills
Load when building, running, testing, packaging, linting, or configuring a Kotlin/Java project with the Kotlin Toolchain (JetBrains' unified CLI, formerly Amper), when scaffolding a new or…
Kotlin/kotlin-agent-skills
Load when migrating or converting an entire Gradle Kotlin project (build.gradle(.kts), wrapper, libs.versions.toml, buildSrc) to the Kotlin Toolchain, including rewriting CI and replacing Gradle…
Categories
Load when authoring, writing, or designing a Kotlin Toolchain local plugin to extend the declarative build with code generation, build-time processing, custom verification, or packaging that…. Kotlin Tooling Kotlin Toolchain Plugin Authoring is an agent skill from Kotlin/kotlin-agent-skills.yaml, or jvm/amper-plugin.
Kotlin Tooling Kotlin Toolchain Plugin Authoring fits situations like: tasks that involve Android development.
Run `npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a claude-code`. Or copy the skill folder (skills/kotlin-tooling-kotlin-toolchain-plugin-authoring in Kotlin/kotlin-agent-skills) into .claude/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a codex`. Or copy the skill folder (skills/kotlin-tooling-kotlin-toolchain-plugin-authoring in Kotlin/kotlin-agent-skills) into .agents/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-kotlin-toolchain-plugin-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring, .gemini/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring, .github/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring and .opencode/skills/kotlin-tooling-kotlin-toolchain-plugin-authoring in your project.
SKILL.md names no scripts, command-line tools or credentials: Kotlin Tooling Kotlin Toolchain Plugin Authoring is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: kotlin-toolchain.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Kotlin Tooling Kotlin Toolchain Plugin Authoring is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Kotlin Tooling Kotlin Toolchain Plugin Authoring: Android Development (dpconde/claude-android-skill, 336 stars), Diagnosing Compose Stability (rosuH/EasyWatermark, 1.9k stars), Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars) and Expo Brownfield Integration (mweinbach/agent-coworker, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Kotlin (a GitHub organization) maintains it in Kotlin/kotlin-agent-skills, which has 1,072 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.
Source: Kotlin/kotlin-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.