#822 by GitHub stars
Kotlin/kotlin-agent-skills
A collection of AI agent skills useful for projects using Kotlin language
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/kotlin-backend-jpa-entity-mapping/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-agp9-migration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-cocoapods-spm-migration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-gradle-to-kotlin-toolchain-plugin/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-gradle-to-kotlin-toolchain-project/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-immutable-collections-0-5-x-migration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-java-to-kotlin/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-kotlin-toolchain/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/kotlin-tooling-native-build-performance/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c2f90697bf71 → 087f5689c193
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Verified commit 087f5689c1934135ed58718cdf524525e452b7e9
git clone --filter=blob:none --no-checkout https://github.com/Kotlin/kotlin-agent-skills.git .hotskills/kotlin-kotlin-agent-skills && git -C .hotskills/kotlin-kotlin-agent-skills checkout --detach 087f5689c1934135ed58718cdf524525e452b7e9
# Copy each selected skill directory from .hotskills/kotlin-kotlin-agent-skills into .claude/skills/<skill-name>/Heat
5.2- Star growth, last 7 daysAhead of 79% of tracked repositories
- Star growth, last 24 hoursAhead of 70% of tracked repositories
- Rank movement, last 7 daysAhead of 11% of tracked repositories
- Commits, last 30 daysAhead of 54% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- kotlin-backend-jpa-entity-mapping
skills/kotlin-backend-jpa-entity-mapping - kotlin-tooling-agp9-migration
skills/kotlin-tooling-agp9-migration - kotlin-tooling-cocoapods-spm-migration
skills/kotlin-tooling-cocoapods-spm-migration - kotlin-tooling-gradle-to-kotlin-toolchain-plugin
skills/kotlin-tooling-gradle-to-kotlin-toolchain-plugin - kotlin-tooling-gradle-to-kotlin-toolchain-project
skills/kotlin-tooling-gradle-to-kotlin-toolchain-project - kotlin-tooling-immutable-collections-0-5-x-migration
skills/kotlin-tooling-immutable-collections-0-5-x-migration - kotlin-tooling-java-to-kotlin
skills/kotlin-tooling-java-to-kotlin - kotlin-tooling-kotlin-toolchain
skills/kotlin-tooling-kotlin-toolchain - kotlin-tooling-kotlin-toolchain-plugin-authoring
skills/kotlin-tooling-kotlin-toolchain-plugin-authoring - kotlin-tooling-native-build-performance
skills/kotlin-tooling-native-build-performance
How it works
kotlin-backend-jpa-entity-mapping
When your agent uses it
Model Kotlin persistence code correctly for Spring Data JPA and Hibernate. Covers entity design, identity and equality, uniqueness constraints, relationships, fetch plans, and common ORM (Object-Relational Mapping) traps specific to Kotlin. Use when creating or reviewing JPA (Java Persistence API) entities, diagnosing N+1 or LazyInitializationException, placing indexes and uniqueness rules, or preventing Kotlin-specific bugs such as data class entities and broken equals/hashCode.
What it loads into context
Frontmatter
141 tokensAlways available to the agent
SKILL.md
1,633 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Entity Design Rules
- Identity and Equality
- Uniqueness Constraints
- Query and Fetch Rules
- Common ORM Traps
- Guardrails
Files
../../.claude-plugin/marketplace.jsonasset269 bytes../../plugins/kotlin-agent-skills/.claude-plugin/plugin.jsonasset323 bytesSKILL.mdcore7,439 bytes
Read SKILL.md
# JPA Entity Mapping for Kotlin
Kotlin's `data class` is natural for DTOs but dangerous for JPA entities. Hibernate relies on
identity semantics that `data class` breaks: `equals`/`hashCode` over all fields corrupts
`Set`/`Map` membership after state changes, and auto-generated `copy()` creates detached
duplicates of managed entities.
This skill teaches correct entity design, identity strategies, and uniqueness constraints
for Kotlin + Spring Data JPA projects.
## Entity Design Rules
- **Never use `data class` for JPA entities.** Use a regular `class`. Keep `data class` for DTOs.
- Keep transport DTOs and persistence entities separate unless the project clearly uses a shared model.View the complete source on GitHubkotlin-tooling-agp9-migration
When your agent uses it
Migrates Kotlin Multiplatform (KMP) projects to Android Gradle Plugin 9.0+. Handles plugin replacement (com.android.kotlin.multiplatform.library), module splitting, DSL migration, and the new default project structure. Use when upgrading AGP, when build fails due to KMP+AGP incompatibility, or when the user mentions AGP 9.0, android multiplatform plugin, KMP migration, or com.android.kotlin.multiplatform.library.
What it loads into context
Frontmatter
146 tokensAlways available to the agent
SKILL.md
5,112 tokensWhen the skill is activated
Reference documents
20,489 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 0: Analyze the Project
- Path A: Library Module Migration
- Path B: Android App + Shared Module Split
- Path C: Full Restructure (Recommended)
- Version Updates
- Built-in Kotlin Migration
- Plugin Compatibility
- Gradle Properties Default Changes
- Pure Android Tips
- Verification
- Common Issues
- Reference Files
Scripts executed separately
scripts/analyze-project.sh
Files
SKILL.mdcore21,755 bytesSKILL.mdcore21,755 bytesSKILL.mdcore21,755 bytesassets/checklist.mddoc3,386 bytesreferences/DSL-REFERENCE.mddoc15,974 bytesreferences/KNOWN-ISSUES.mddoc18,509 bytesreferences/MIGRATION-APP-SPLIT.mddoc14,419 bytesreferences/MIGRATION-FULL-RESTRUCTURE.mddoc12,514 bytesreferences/MIGRATION-LIBRARY.mddoc14,695 bytesreferences/PLUGIN-COMPATIBILITY.mddoc5,443 bytesreferences/VERSION-MATRIX.mddoc10,341 bytesscripts/analyze-project.shruns8,329 bytes
Read SKILL.md
# KMP AGP 9.0 Migration
Android Gradle Plugin 9.0 makes the Android application and library plugins incompatible
with the Kotlin Multiplatform plugin in the same module. This skill guides you through the
migration.
## Step 0: Analyze the Project
Before making any changes, understand the project structure:
1. Read `settings.gradle.kts` (or `.gradle`) to find all modules
2. For each module, read its `build.gradle.kts` to identify which plugins are applied
3. Check if the project uses a Gradle version catalog (`gradle/libs.versions.toml`). If it exists,
read it for current AGP/Gradle/Kotlin versions. If not, find versions directly in `build.gradle.kts`
files (typically in the root `buildscript {}` or `plugins {}` block). **Adapt all examples in thisView the complete source on GitHubkotlin-tooling-cocoapods-spm-migration
When your agent uses it
Migrate KMP projects from CocoaPods (kotlin("native.cocoapods")) to Swift Package Manager (swiftPMDependencies DSL) — replaces pod() with swiftPackage(), transforms cocoapods.* imports to swiftPMImport.*, and reconfigures the Xcode project.
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
8,107 tokensWhen the skill is activated
Reference documents
15,236 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Requirements
- Migration Overview
- Phase 1: Pre-Migration Analysis
- Phase 2: Gradle Configuration
- Phase 3: Add swiftPMDependencies (Keep CocoaPods)
- Phase 4: Kotlin Source Updates
- Phase 5: iOS Project Reconfiguration
- Phase 6: Remove CocoaPods from Gradle
- Phase 7: Verification
- Phase 8: Migration Report
- Additional Resources
Files
SKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesSKILL.mdcore33,297 bytesreferences/cocoapods-extras-patterns.mddoc3,964 bytesreferences/common-pods-mapping.mddoc22,151 bytesreferences/dsl-reference.mddoc8,546 bytesreferences/migration-report-template.mddoc4,822 bytesreferences/troubleshooting.mddoc23,123 bytes
Read SKILL.md
# CocoaPods to SwiftPM Migration for KMP
Migrate Kotlin Multiplatform projects from `kotlin("native.cocoapods")` to `swiftPMDependencies {}` DSL.
## Requirements
- **Kotlin**: 2.4.0-Beta2 or later (first public release with `swiftPMDependencies` support, available on Maven Central)
- **Xcode**: 16.4 or 26.0+
- **iOS Deployment Target**: 16.0+ recommended
## Migration Overview
**IMPORTANT**: Keep the `cocoapods {}` block and plugin active until Phase 6. The migration adds `swiftPMDependencies {}` alongside the existing CocoaPods setup first, reconfigures Xcode, and only then removes CocoaPods.
View the complete source on GitHubkotlin-tooling-gradle-to-kotlin-toolchain-plugin
When your agent uses it
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 properties, afterEvaluate) to Toolchain analogs. Skip for migrating a whole Gradle project or authoring a plugin from scratch.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
3,055 tokensWhen the skill is activated
Reference documents
925 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Concept mapping
- The mapped constructs
- Redesigns, not ports
- README contents
Files
SKILL.mdcore12,696 bytesSKILL.mdcore12,696 bytesSKILL.mdcore12,696 bytesSKILL.mdcore12,696 bytesSKILL.mdcore12,696 bytesreferences/examples.mddoc3,715 bytes
Read SKILL.md
# Gradle → Kotlin Toolchain Plugin Conversion
Mostly a mapping exercise: the concepts overlap, but a few Gradle features have no analog and need redesign.
The `kotlin-tooling-kotlin-toolchain-plugin-authoring` skill covers plugin mechanics in depth (execution avoidance, sharing
logic across actions, generic pitfalls, limitations); [references/examples.md](references/examples.md) has
the concrete plugin `module.yaml` and the version-publication code from a real port.
## Workflow
### 1. Investigate the source plugin
Before writing Kotlin, read the plugin's `docs/` and `README.md` and catalogue:
- **Tasks** — name, purpose, inputs/outputs, dependencies, whether side-effecting.View the complete source on GitHubkotlin-tooling-gradle-to-kotlin-toolchain-project
When your agent uses it
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 plugins that have no native Toolchain equivalent. Skip for porting one Gradle plugin or general Toolchain work once Gradle is gone.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
5,963 tokensWhen the skill is activated
Reference documents
3,778 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Principles
- Workflow
- Mismatches to watch
- Common pitfalls
Files
SKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesSKILL.mdcore24,168 bytesreferences/examples.mddoc14,504 bytes
Read SKILL.md
# Gradle → Kotlin Toolchain Project Migration
Two jobs at once: a mechanical translation of dependencies and configuration, plus a replacement for every
Gradle plugin the Toolchain has no native answer for. Templates to adapt are in
[references/examples.md](references/examples.md), drawn from one real migration.
Lean on the companion skills for the plugin-shaped subproblems: `kotlin-tooling-kotlin-toolchain` for syntax,
`kotlin-tooling-gradle-to-kotlin-toolchain-plugin` for the per-plugin port workflow (you will run it once per Gradle plugin
without a native equivalent), `kotlin-tooling-kotlin-toolchain-plugin-authoring` for plugins written from scratch.
## Principles
1. **Preserve source code.** If the migration forces edits to business logic, a local plugin can probably
fill the gap instead. Code reading `release.properties` off the classpath should keep working — publishView the complete source on GitHubkotlin-tooling-immutable-collections-0-5-x-migration
When your agent uses it
Migrate Kotlin (and Java) code from kotlinx.collections.immutable 0.3.x / 0.4.x to the latest 0.5.x. The 0.5.x line renames every copy-returning method on PersistentList / PersistentMap / PersistentSet / PersistentCollection to a participial form per KEEP-0459 (add→adding, removeAt→removingAt, set→replacingAt, put→putting, clear→cleared, …) and deprecates the old names (WARNING, with ReplaceWith). Driven by the compiler: bump the version, recompile, and apply the rename each deprecation warning names. Use when the user mentions kotlinx.collections.immutable 0.5.x, PersistentList migration, "Use adding() instead", KEEP-0459, or sees deprecation warnings from kotlinx.collections.immutable.
What it loads into context
Frontmatter
235 tokensAlways available to the agent
SKILL.md
2,415 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When it applies
- Migration
- Rename reference
- Links
Files
SKILL.mdcore9,441 bytesSKILL.mdcore9,441 bytesSKILL.mdcore9,441 bytesSKILL.mdcore9,441 bytes
Read SKILL.md
# kotlinx.collections.immutable 0.5.x Migration
The 0.5.x line renames every copy-returning method on the persistent collections to a
participial form (per [KEEP-0459]) and deprecates the old names at `WARNING` level with a
`ReplaceWith` hint. Migrating is a mechanical, binary-compatible, semantics-preserving
call-site rename — same parameters, order, and return type; only the name changes.
Drive it from the compiler: bump the version, recompile, and fix each deprecation warning —
the warning names the replacement. Source of truth: [`0.5.0-MIGRATION.md`].
## When it applies
Check the version the project currently uses:
View the complete source on GitHubkotlin-tooling-java-to-kotlin
When your agent uses it
Use when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files that need to become .kt files. Handles framework-aware conversion for Spring, Lombok, Hibernate, Jackson, Micronaut, Quarkus, Dagger/Hilt, RxJava, JUnit, Guice, Retrofit, and Mockito.
What it loads into context
Frontmatter
138 tokensAlways available to the agent
SKILL.md
1,476 tokensWhen the skill is activated
Reference documents
20,817 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Step 0: Scan & Detect Frameworks
- Step 1: Convert
- Step 2: Write Output
- Step 3: Preserve Git History
- Step 4: Verify
- Batch Conversion
- Common Pitfalls
Files
SKILL.mdcore5,535 bytesSKILL.mdcore5,535 bytesSKILL.mdcore5,535 bytesSKILL.mdcore5,535 bytesSKILL.mdcore5,535 bytesSKILL.mdcore5,535 bytesassets/checklist.mddoc2,591 bytesreferences/CONVERSION-METHODOLOGY.mddoc10,048 bytesreferences/KNOWN-ISSUES.mddoc9,689 bytesreferences/frameworks/DAGGER-HILT.mddoc4,443 bytesreferences/frameworks/GUICE.mddoc4,577 bytesreferences/frameworks/HIBERNATE.mddoc6,020 bytesreferences/frameworks/JACKSON.mddoc7,262 bytesreferences/frameworks/JUNIT.mddoc5,448 bytesreferences/frameworks/LOMBOK.mddoc6,489 bytesreferences/frameworks/MICRONAUT.mddoc3,332 bytesreferences/frameworks/MOCKITO.mddoc7,846 bytesreferences/frameworks/QUARKUS.mddoc3,853 bytesreferences/frameworks/RETROFIT.mddoc4,547 bytesreferences/frameworks/RXJAVA.mddoc5,688 bytesreferences/frameworks/SPRING.mddoc6,480 bytes
Read SKILL.md
# Java to Kotlin Conversion
Convert Java source files to idiomatic Kotlin using a disciplined 4-step conversion
methodology with 5 invariants checked at each step. Supports framework-aware conversion
that handles annotation site targets, library idioms, and API preservation.
## Workflow
```dot
digraph j2k_workflow {
rankdir=TB;
"User specifies files" -> "Step 0: Scan & Detect";
"Step 0: Scan & Detect" -> "Load framework guides";
"Load framework guides" -> "Step 1: Convert";View the complete source on GitHubkotlin-tooling-kotlin-toolchain
When your agent uses it
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 greenfield Kotlin project, or when the repo has project.yaml, module.yaml, or a ./kotlin wrapper. Skip for existing Gradle/Maven projects.
What it loads into context
Frontmatter
175 tokensAlways available to the agent
SKILL.md
2,448 tokensWhen the skill is activated
Reference documents
3,869 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Installation
- CLI commands
- Project structure
- module.yaml
- Templates
- Checks and linters
- Multiplatform
- iOS apps
- Plugins and build-tool policy
- Untrusted project input
- Conventions and pitfalls
- References
Files
../kotlin-tooling-gradle-to-kotlin-toolchain-plugin/SKILL.mddoc12,696 bytesSKILL.mdcore9,874 bytesSKILL.mdcore9,874 bytesevals/EVALUATION.mddoc1,864 bytesevals/evals.jsonasset1,753 bytesreferences/examples.mddoc1,189 bytes
Read SKILL.md
# Kotlin Toolchain
JetBrains' unified CLI for Kotlin (JVM, Android, iOS, multiplatform) and Java projects, in Alpha.
Configuration is declarative YAML instead of Gradle build scripts.
## Installation
Prefer the project's checked-in wrapper: `./kotlin build` needs nothing installed — the wrapper downloads
the CLI itself. Install a global CLI only when there is no wrapper (e.g. before `kotlin init`):
```sh
sdk install kotlintoolchain # SDKMAN (macOS / Linux / WSL)
```
View the complete source on GitHubkotlin-tooling-kotlin-toolchain-plugin-authoring
When your agent uses it
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.
What it loads into context
Frontmatter
123 tokensAlways available to the agent
SKILL.md
2,182 tokensWhen the skill is activated
Reference documents
1,551 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to write a plugin
- Layout
- `project.yaml`
- `module.yaml` — the plugin module
- `@Configurable interface Settings`
- `@TaskAction`
- `plugin.yaml`
- File-based task communication
- Runtime overrides via environment variables
- Sharing logic across task actions
- Limitations to design around
- Validate against a consumer
Files
SKILL.mdcore9,343 bytesSKILL.mdcore9,343 bytesSKILL.mdcore9,343 bytesreferences/examples.mddoc6,400 bytes
Read SKILL.md
# Kotlin Toolchain Plugin Authoring
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](references/examples.md).
## When to write a plugin
Write one when you need:
- A build-time step a library's workflow expects (code generation, schema compilation, resource
transformation, version stamping).
- Custom verification wired into the build (pre-release checks, schema validation, contract tests).
- A build-time value published into the JAR classpath or downstream tasks — the closest analog to Gradle'sView the complete source on GitHubkotlin-tooling-native-build-performance
When your agent uses it
Diagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS. Use when the user reports slow iOS or shared-framework builds, long linkDebug*/linkRelease* or XCFramework tasks, cold CI builds that re-download the Kotlin/Native toolchain, KSP or other generated code on the native path, transitiveExport usage, or asks for a local-development versus CI build performance plan.
What it loads into context
Frontmatter
172 tokensAlways available to the agent
SKILL.md
1,875 tokensWhen the skill is activated
Reference documents
2,153 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 0: Classify the Slow Scenario
- Step 1: Audit and Measure
- Step 2: Fix in Safe Order
- Worked Example
- Verify
- Report Your Changes
- Official Documentation
Scripts executed separately
scripts/audit-native-build.sh
Files
SKILL.mdcore7,954 bytesSKILL.mdcore7,954 bytesevals/EVALUATION.mddoc1,562 bytesreferences/artifacts-and-targets.mddoc2,143 bytesreferences/caching-and-gradle.mddoc2,682 bytesreferences/experimental.mddoc1,193 bytesreferences/exports-and-generated-code.mddoc1,553 bytesscripts/audit-native-build.shruns6,155 bytes
Read SKILL.md
# Kotlin/Native Build Performance
Turn "the iOS build is slow" into a measured diagnosis and a small set of safe
fixes. Two rules apply throughout:
1. Never trade away required release behavior. A faster local loop must not
change what CI publishes.
2. Measure before and after with the same command and the same build state.
An unmeasured fix is a guess.
## Step 0: Classify the Slow Scenario
Establish four facts before editing anything: **where** (local or CI),
**what** (debug feedback loop or release/distribution artifact), **state**View the complete source on GitHubSkills included
- kotlin-backend-jpa-entity-mapping
- kotlin-tooling-agp9-migration
- kotlin-tooling-cocoapods-spm-migration
- kotlin-tooling-gradle-to-kotlin-toolchain-plugin
- kotlin-tooling-gradle-to-kotlin-toolchain-project
- kotlin-tooling-immutable-collections-0-5-x-migration
- kotlin-tooling-java-to-kotlin
- kotlin-tooling-kotlin-toolchain
- kotlin-tooling-kotlin-toolchain-plugin-authoring
- kotlin-tooling-native-build-performance
Repository facts
- License
- Apache-2.0
- Created
- Mar 13, 2026
- Last pushed
- Oct 30, 2026
- Forks
- 45
- Open issues
- 10
- Project activity
- Active
Rank over the last 12 weeks
Now #822 · best #545 · down 159 in 30 days
- #809 on Nov 1
- #817 on Nov 2
- #821 on Nov 3
- #822 on Nov 4
- #820 on Nov 5
- #822 since Nov 6
61 earlier periods
- #599 on Aug 1
- #539 on Aug 7
- #561 on Aug 10
- #563 on Aug 11
- #559 on Aug 12
- #564 on Aug 13
- #562 on Aug 14
- #545 on Aug 15
- #559 on Aug 16
- #563 on Aug 17
- #571 on Aug 20
- #586 from Aug 23 to Aug 24
- #604 on Aug 25
- #598 on Aug 27
- #611 on Aug 28
- #571 on Aug 29
- #592 on Aug 31
- #608 on Sep 1
- #602 on Sep 2
- #604 on Sep 3
- #583 on Sep 5
- #593 on Sep 6
- #602 on Sep 7
- #619 on Sep 8
- #608 on Sep 9
- #613 on Sep 10
- #600 on Sep 11
- #602 on Sep 12
- #621 on Sep 14
- #632 on Sep 16
- #630 on Sep 18
- #607 on Sep 19
- #624 on Sep 20
- #640 on Sep 21
- #649 on Sep 23
- #626 on Sep 24
- #617 on Sep 26
- #641 on Sep 27
- #647 on Sep 28
- #684 on Sep 29
- #665 on Sep 30
- #633 on Oct 1
- #621 on Oct 3
- #644 on Oct 4
- #651 on Oct 5
- #663 on Oct 7
- #701 on Oct 8
- #667 on Oct 10
- #681 on Oct 13
- #695 on Oct 14
- #689 on Oct 15
- #698 on Oct 16
- #671 on Oct 18
- #709 on Oct 19
- #717 on Oct 20
- #678 on Oct 24
- #792 on Oct 25
- #798 on Oct 28
- #802 on Oct 29
- #804 on Oct 30
- #808 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 41 notes
skills/kotlin-tooling-agp9-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-agp9-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-cocoapods-spm-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-gradle-to-kotlin-toolchain-plugin/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-gradle-to-kotlin-toolchain-plugin/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kotlin-tooling-gradle-to-kotlin-toolchain-plugin/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 3 dangerous shell commandsin 1 file: kotlin-tooling-cocoapods-spm-migration/SKILL.md:376
- No hidden or obfuscated text
- No instruction overrides
- 2 executable scriptsin 2 files: kotlin-tooling-agp9-migration/scripts/analyze-project.sh:1 kotlin-tooling-native-build-performance/scripts/audit-native-build.sh:1
- 1 reference to secretsin 1 file: kotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:274
- No requests to vote in Hot
Show all 161 signals by file
plugins/kotlin-agent-skills/.claude-plugin/plugin.json
skills/kotlin-tooling-agp9-migration/SKILL.md
- Network accessline 477
### KMP Library Plugin Issues - **BuildConfig unavailable** in library modules — use DI/`AppConfiguration` interface, or use [BuildKonfig](https://github.com/yshrsmz/BuildKonfig) or [gradle-buildconfig-plugin](https://github.com/gmazzo/grad - Network accessline 478
- **BuildConfig unavailable** in library modules — use DI/`AppConfiguration` interface, or use [BuildKonfig](https://github.com/yshrsmz/BuildKonfig) or [gradle-buildconfig-plugin](https://github.com/gmazzo/gradle-buildconfig-plugin) for com
skills/kotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md
- Network accessline 26
actual val versionName: String = context.packageManager .getPackageInfo(context.packageName, 0).versionName ?: "unknown" actual val apiBaseUrl: String = if (isDebug) "https://dev.api.example.com" else "https://api.example.com" - Network accessline 27
.getPackageInfo(context.packageName, 0).versionName ?: "unknown" actual val apiBaseUrl: String = if (isDebug) "https://dev.api.example.com" else "https://api.example.com" } - Network accessline 28
actual val apiBaseUrl: String = if (isDebug) "https://dev.api.example.com" else "https://api.example.com" - Network accessline 33
actual val isDebug: Boolean = Platform.isDebugBinary actual val versionName: String = NSBundle.mainBundle.objectForInfoDictionaryKey("CFBundleShortVersionString") as? String ?: "unknown" actual val apiBaseUrl: String = if (isDebug) - Network accessline 34
actual val versionName: String = NSBundle.mainBundle.objectForInfoDictionaryKey("CFBundleShortVersionString") as? String ?: "unknown" actual val apiBaseUrl: String = if (isDebug) "https://dev.api.example.com" else "https://api.example.c - Network accessline 35
actual val apiBaseUrl: String = if (isDebug) "https://dev.api.example.com" else "https://api.example.com" - Network accessline 41
**Alternative A — BuildKonfig plugin** ([github.com/yshrsmz/BuildKonfig](https://github.com/yshrsmz/BuildKonfig)): - Network accessline 55
defaultConfigs { buildConfigField(STRING, "API_BASE_URL", "https://api.example.com") - Network accessline 56
buildConfigField(STRING, "API_BASE_URL", "https://api.example.com") - Network accessline 77
defaultConfigs("dev") { buildConfigField(STRING, "API_BASE_URL", "https://dev.api.example.com") - Network accessline 78
buildConfigField(STRING, "API_BASE_URL", "https://dev.api.example.com") - Network accessline 80
} defaultConfigs("release") { buildConfigField(STRING, "API_BASE_URL", "https://api.example.com") - Network accessline 81
defaultConfigs("release") { buildConfigField(STRING, "API_BASE_URL", "https://api.example.com") buildConfigField(BOOLEAN, "IS_DEBUG", "false") - Network accessline 82
buildConfigField(STRING, "API_BASE_URL", "https://api.example.com") - Network accessline 87
**Alternative B — gradle-buildconfig-plugin** ([github.com/gmazzo/gradle-buildconfig-plugin](https://github.com/gmazzo/gradle-buildconfig-plugin)):
skills/kotlin-tooling-agp9-migration/scripts/analyze-project.sh
- Executable scriptline 1
#!/bin/sh
skills/kotlin-tooling-cocoapods-spm-migration/SKILL.md
- Network accessline 87
This property was a workaround (see [KT-64096](https://youtrack.jetbrains.com/issue/KT-64096)) for projects using `embedAndSign` alongside CocoaPods dependencies. It suppresses an error about unsupported configurations that can cause runtim - Network accessline 99
| Library | Maven artifact | Bundled klib namespace | Classes provided | |---------|---------------|----------------------|-----------------| | [KMPNotifier](https://github.com/mirzemehdi/KMPNotifier) | `io.github.mirzemehdi:kmpnotifier` | - Network accessline 101
| [KMPNotifier](https://github.com/mirzemehdi/KMPNotifier) | `io.github.mirzemehdi:kmpnotifier` | `cocoapods.FirebaseMessaging` | `FIRMessaging`, `FIRMessagingAPNSTokenType`, etc. | - Network accessline 177
swiftPackage(url = "https://github.com/owner/repo.git", version = "1.0.0", products = listOf("ProductName")) - Network accessline 199
swiftPackage( url = "https://github.com/owner/repo.git", - Network accessline 200
url = "https://github.com/owner/repo.git", - Network accessline 309
**Example** (project using [KMPNotifier](https://github.com/mirzemehdi/KMPNotifier)): - Dangerous shell operationline 376
rm -rf Podfile Podfile.lock Pods/ - Dangerous shell operationline 379
rm -rf "${XCODEPROJ_NAME}.xcworkspace" - Dangerous shell operationline 385
# rm -f shared.podspec
skills/kotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md
- Network accessline 7
All Firebase products come from a single repository: `https://github.com/firebase/firebase-ios-sdk.git` - Network accessline 47
// SwiftPM — use same version as pod swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 48
swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", version = "12.5.0", - Network accessline 49
url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 67
// SwiftPM — use same version as pod swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 68
swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", version = "12.5.0", - Network accessline 69
url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 89
// SwiftPM - Note the importedClangModules parameter (typed API required) swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 90
swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), version = from("12.5.0"), - Network accessline 91
url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 112
// SwiftPM - Note the importedClangModules parameter (typed API required) swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 113
swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), version = from("12.5.0"), - Network accessline 114
url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 135
// SwiftPM — use same version as pod swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 136
swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", version = "12.5.0", - Network accessline 137
url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 168
// Combined Firebase requires typed API for importedClangModules control swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 169
swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), version = from("12.5.0"), - Network accessline 170
url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 239
Repository: `https://github.com/googlemaps/ios-maps-sdk.git` - Network accessline 246
- CocoaPods subspec `GoogleMaps/Maps` maps to the single `GoogleMaps` SPM product - Requires a Google Maps Platform API key configured in the iOS app - Check [releases](https://github.com/googlemaps/ios-maps-sdk/releases) for available SPM - Network accessline 248
- Check [releases](https://github.com/googlemaps/ios-maps-sdk/releases) for available SPM versions - Network accessline 254
// SwiftPM — use the exact same version as the pod swiftPackage( url = "https://github.com/googlemaps/ios-maps-sdk.git", - Network accessline 255
swiftPackage( url = "https://github.com/googlemaps/ios-maps-sdk.git", version = "10.10.0", - Network accessline 256
url = "https://github.com/googlemaps/ios-maps-sdk.git", - Access to secretsline 274
[Credential-related source omitted] - Network accessline 281
Repository: `https://github.com/google/GoogleSignIn-iOS.git` - Network accessline 293
// SwiftPM — use same version as pod swiftPackage( url = "https://github.com/google/GoogleSignIn-iOS.git", - Network accessline 294
swiftPackage( url = "https://github.com/google/GoogleSignIn-iOS.git", version = "8.0.0", - Network accessline 295
url = "https://github.com/google/GoogleSignIn-iOS.git", - Network accessline 307
**iOS project requirement:** Add `GIDClientID` to `Info.plist` and configure the URL scheme for OAuth redirect. See [Google Sign-In iOS docs](https://developers.google.com/identity/sign-in/ios/start-integrating). - Network accessline 319
// SwiftPM — use same version as pod swiftPackage( url = "https://github.com/lukaskubanek/LoremIpsum.git", - Network accessline 320
swiftPackage( url = "https://github.com/lukaskubanek/LoremIpsum.git", version = "2.0.1", - Network accessline 321
url = "https://github.com/lukaskubanek/LoremIpsum.git", - Network accessline 366
Repository: [https://github.com/mirzemehdi/KMPNotifier](https://github.com/mirzemehdi/KMPNotifier) - Network accessline 376
**Verifying bundled klib contents:** Use `klib dump-metadata-signatures` to inspect what a library's klib provides ([docs](https://kotlinlang.org/docs/native-libraries.html#using-kotlin-native-compiler)): - Network accessline 394
Repository: [https://github.com/GitLiveApp/firebase-kotlin-sdk](https://github.com/GitLiveApp/firebase-kotlin-sdk) - Network accessline 434
1. **Check GitHub repository** - Look for a `Package.swift` file in the repo 2. **Check CocoaPods spec** - The `source` field often points to the Git URL 3. **Search Swift Package Index** - https://swiftpackageindex.com/ - Network accessline 435
2. **Check CocoaPods spec** - The `source` field often points to the Git URL 3. **Search Swift Package Index** - https://swiftpackageindex.com/ 4. **Check library documentation** - Many libraries document SPM installation - Network accessline 436
3. **Search Swift Package Index** - https://swiftpackageindex.com/ - Network accessline 450
If you suspect a KMP library bundles its own cinterop klibs (common for libraries wrapping iOS SDKs), use the `klib` tool to inspect them ([docs](https://kotlinlang.org/docs/native-libraries.html#using-kotlin-native-compiler)):
skills/kotlin-tooling-cocoapods-spm-migration/references/dsl-reference.md
- Network accessline 46
swiftPackage( url = "https://github.com/owner/repo.git", - Network accessline 47
url = "https://github.com/owner/repo.git", - Network accessline 58
swiftPackage( url = url("https://github.com/owner/repo.git"), - Network accessline 59
url = url("https://github.com/owner/repo.git"), - Network accessline 175
swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 176
url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 242
// Simple API — most packages swiftPackage( url = "https://github.com/lukaskubanek/LoremIpsum.git", - Network accessline 243
swiftPackage( url = "https://github.com/lukaskubanek/LoremIpsum.git", version = "2.0.1", - Network accessline 244
url = "https://github.com/lukaskubanek/LoremIpsum.git", - Network accessline 249
// Simple API — Google Maps swiftPackage( url = "https://github.com/googlemaps/ios-maps-sdk.git", - Network accessline 250
swiftPackage( url = "https://github.com/googlemaps/ios-maps-sdk.git", version = "10.3.0", - Network accessline 251
url = "https://github.com/googlemaps/ios-maps-sdk.git", - Network accessline 279
// Main dependency swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 280
swiftPackage( url = "https://github.com/firebase/firebase-ios-sdk.git", version = "12.5.0", - Network accessline 281
url = "https://github.com/firebase/firebase-ios-sdk.git", - Network accessline 286
// Transitive dependency with explicit version pin swiftPackage( url = url("https://github.com/apple/swift-protobuf.git"), - Network accessline 287
swiftPackage( url = url("https://github.com/apple/swift-protobuf.git"), version = exact("1.32.0"), - Network accessline 288
url = url("https://github.com/apple/swift-protobuf.git"),
skills/kotlin-tooling-cocoapods-spm-migration/references/troubleshooting.md
- Network accessline 169
**Cause:** A third-party KMP library (e.g., [KMPNotifier](https://github.com/mirzemehdi/KMPNotifier) — `io.github.mirzemehdi:kmpnotifier`) bundles its own pre-built cinterop klib with the `cocoapods.FirebaseMessaging` namespace. The swiftPM - Network accessline 181
**How to identify bundled klibs in advance:** Check if the project depends on KMP libraries that wrap iOS SDKs. Known libraries: [KMPNotifier](https://github.com/mirzemehdi/KMPNotifier) (bundles `cocoapods.FirebaseMessaging`). Also check fo - Network accessline 183
**Inspecting klib contents:** Use `klib dump-metadata-signatures` to verify which classes a klib provides ([docs](https://kotlinlang.org/docs/native-libraries.html#using-kotlin-native-compiler)): - Network accessline 216
**Cause:** [firebase-kotlin-sdk](https://github.com/GitLiveApp/firebase-kotlin-sdk) (`dev.gitlive:firebase-*`) was published with CocoaPods-era cinterop klibs. These klibs have `-framework FirebaseCore`, `-framework FirebaseAuth`, etc. bake - Network accessline 297
swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 298
url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 336
swiftPackage( url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 337
url = url("https://github.com/firebase/firebase-ios-sdk.git"), - Network accessline 431
swiftPackage( url = url("https://github.com/googlemaps/ios-maps-sdk.git"), - Network accessline 432
url = url("https://github.com/googlemaps/ios-maps-sdk.git"), - Network accessline 440
Check [releases page](https://github.com/googlemaps/ios-maps-sdk/releases) for valid versions. - Network accessline 582
1. **Check sample projects:** - [kmp-with-cocoapods-compose-sample (spm_import branch)](https://github.com/Kotlin/kmp-with-cocoapods-compose-sample/tree/spm_import) - Network accessline 583
- [kmp-with-cocoapods-compose-sample (spm_import branch)](https://github.com/Kotlin/kmp-with-cocoapods-compose-sample/tree/spm_import) - Network accessline 584
- [kmp-with-cocoapods-firebase-sample (spm_import branch)](https://github.com/Kotlin/kmp-with-cocoapods-firebase-sample/tree/spm_import) - Network accessline 594
4. **Inspect klib contents** using the `klib` tool ([docs](https://kotlinlang.org/docs/native-libraries.html#using-kotlin-native-compiler)):
skills/kotlin-tooling-gradle-to-kotlin-toolchain-plugin/SKILL.md
skills/kotlin-tooling-gradle-to-kotlin-toolchain-project/SKILL.md
- Network accessline 95
1. `JetBrains/kotlin-toolchain` → [`build-sources/`](https://github.com/JetBrains/kotlin-toolchain/tree/main/build-sources) - Network accessline 113
1. Copy `kotlin` / `kotlin.bat` from a reference Toolchain project (for example [this one](https://github.com/JetBrains/kotlin-toolchain)) or `kotlin init` in a scratch dir. Pin - Network accessline 265
} kotlin { jvmToolchain(21) } repositories { maven("https://jitpack.io") } - Network accessline 266
kotlin { jvmToolchain(21) } repositories { maven("https://jitpack.io") } dependencies { - Network accessline 267
repositories { maven("https://jitpack.io") } - Network accessline 283
repositories: - id: jitpack url: https://jitpack.io - Network accessline 285
url: https://jitpack.io - Network accessline 422
Kotlin Toolchain docs: <https://kotlin-toolchain.org/dev/>
skills/kotlin-tooling-gradle-to-kotlin-toolchain-project/references/examples.md
- Network accessline 36
repositories: - id: jitpack url: https://jitpack.io - Network accessline 38
url: https://jitpack.io - Network accessline 99
Dependabot gates on `SUPPORTED_BUILD_FILE_NAMES = %w(build.gradle build.gradle.kts)` — <https://github.com/dependabot/dependabot-core/blob/main/gradle/lib/dependabot/gradle/file_fetcher.rb>. - Network accessline 100
<https://github.com/dependabot/dependabot-core/blob/main/gradle/lib/dependabot/gradle/file_fetcher.rb>.
skills/kotlin-tooling-immutable-collections-0-5-x-migration/SKILL.md
- Network accessline 170
[KEEP-0459]: https://github.com/Kotlin/KEEP/blob/main/proposals/KEEP-0459-naming-conventions-for-copy-returning-operations.md - Network accessline 171
[`0.5.0-MIGRATION.md`]: https://github.com/Kotlin/kotlinx.collections.immutable/blob/master/docs/0.5.0-MIGRATION.md - Network accessline 172
[Maven Central]: https://central.sonatype.com/artifact/org.jetbrains.kotlinx/kotlinx-collections-immutable/versions
skills/kotlin-tooling-kotlin-toolchain-plugin-authoring/SKILL.md
- Network accessline 251
Plugin docs: <https://kotlin-toolchain.org/dev/user-guide/plugins/>
skills/kotlin-tooling-kotlin-toolchain/SKILL.md
- Network accessline 33
The `kotlin` command then auto-provisions its JDK on first use. Other install options (installer scripts, IntelliJ IDEA plugin) live at <https://kotlin-toolchain.org/>. - Network accessline 34
IntelliJ IDEA plugin) live at <https://kotlin-toolchain.org/>. - Network accessline 100
paths are relative to the module root. Interpolation works only in `plugin.yaml`. - The module name is the basename of the directory holding `module.yaml`. There is no `name:` field. - Tests use [kotlin.test](https://kotlinlang.org/api/late - Network accessline 102
- Tests use [kotlin.test](https://kotlinlang.org/api/latest/kotlin.test/) by default, no dependency needed. - Network accessline 224
- Docs: <https://kotlin-toolchain.org/> - Network accessline 225
- Source: <https://github.com/JetBrains/kotlin-toolchain>
skills/kotlin-tooling-kotlin-toolchain/evals/EVALUATION.md
- Network accessline 4
Kotlin project with Android and iOS platforms *without* the skill, and **arm B** runs the identical prompt *with* the `kotlin-tooling-kotlin-toolchain` skill mounted. Both arms run the [Kotlin Toolchain](https://kotlin-toolchain.org/) `0.11 - Network accessline 5
runs the identical prompt *with* the `kotlin-tooling-kotlin-toolchain` skill mounted. Both arms run the [Kotlin Toolchain](https://kotlin-toolchain.org/) `0.11.1` CLI, and the verifier scores whether the result is a working Toolchain projec - Network accessline 6
Both arms run the [Kotlin Toolchain](https://kotlin-toolchain.org/) `0.11.1`
skills/kotlin-tooling-native-build-performance/SKILL.md
- Network accessline 146
| Topic | Link | |---|---| | Improving Kotlin/Native compilation time | https://kotlinlang.org/docs/native-improving-compilation-time.html | - Network accessline 147
|---|---| | Improving Kotlin/Native compilation time | https://kotlinlang.org/docs/native-improving-compilation-time.html | | Kotlin Gradle plugin compilation and caches | https://kotlinlang.org/docs/gradle-compilation-and-caches.html | - Network accessline 148
| Improving Kotlin/Native compilation time | https://kotlinlang.org/docs/native-improving-compilation-time.html | - Network accessline 149
| Kotlin Gradle plugin compilation and caches | https://kotlinlang.org/docs/gradle-compilation-and-caches.html | - Network accessline 150
| iOS integration methods | https://kotlinlang.org/docs/multiplatform-ios-integration-overview.html | - Network accessline 151
| Direct integration with Xcode | https://kotlinlang.org/docs/multiplatform/multiplatform-direct-integration.html | - Network accessline 152
| Building final native binaries and XCFrameworks | https://kotlinlang.org/docs/multiplatform/multiplatform-build-native-binaries.html | - Network accessline 153
| Kotlin/Native binary options | https://kotlinlang.org/docs/native-binary-options.html | - Network accessline 154
| KSP with Kotlin Multiplatform | https://kotlinlang.org/docs/ksp-multiplatform.html |
skills/kotlin-tooling-native-build-performance/evals/EVALUATION.md
- Network accessline 3
This skill is A/B evaluated with the JetBrains [`skills-ab-eval`](https://github.com/JetBrains/skills-ab-eval-cookbook) tool. - Network accessline 4
The suite lives at [`kotlin-tooling-native-build-performance`](https://github.com/JetBrains/skills-ab-eval-cookbook/tree/main/kotlin-tooling-native-build-performance) and contains two tasks: - Network accessline 5
[`kotlin-tooling-native-build-performance`](https://github.com/JetBrains/skills-ab-eval-cookbook/tree/main/kotlin-tooling-native-build-performance)
skills/kotlin-tooling-native-build-performance/references/artifacts-and-targets.md
- Network accessline 41
Docs: https://kotlinlang.org/docs/multiplatform-ios-integration-overview.html, - Network accessline 42
https://kotlinlang.org/docs/multiplatform-ios-integration-overview.html, - Network accessline 43
https://kotlinlang.org/docs/multiplatform/multiplatform-direct-integration.html, - Network accessline 44
https://kotlinlang.org/docs/multiplatform/multiplatform-build-native-binaries.html
skills/kotlin-tooling-native-build-performance/references/caching-and-gradle.md
- Network accessline 10
if the project is behind. Read the compatibility guide for the target release before upgrading; for example, use the [Kotlin 2.4 compatibility guide](https://kotlinlang.org/docs/compatibility-guide-24.html) - Network accessline 11
before upgrading; for example, use the [Kotlin 2.4 compatibility guide](https://kotlinlang.org/docs/compatibility-guide-24.html) when moving to Kotlin 2.4.x. Each target release has a corresponding - Network accessline 12
[Kotlin 2.4 compatibility guide](https://kotlinlang.org/docs/compatibility-guide-24.html) - Network accessline 13
when moving to Kotlin 2.4.x. Each target release has a corresponding compatibility guide. See the [Kotlin 2.3.20 release notes](https://kotlinlang.org/docs/whatsnew2320.html#new-dsl-for-disabling-compilation-cache) - Network accessline 14
compatibility guide. See the [Kotlin 2.3.20 release notes](https://kotlinlang.org/docs/whatsnew2320.html#new-dsl-for-disabling-compilation-cache) for the related cache change. - Network accessline 15
[Kotlin 2.3.20 release notes](https://kotlinlang.org/docs/whatsnew2320.html#new-dsl-for-disabling-compilation-cache) - Network accessline 67
Docs: https://kotlinlang.org/docs/native-improving-compilation-time.html and - Network accessline 68
https://kotlinlang.org/docs/gradle-compilation-and-caches.html
skills/kotlin-tooling-native-build-performance/references/experimental.md
skills/kotlin-tooling-native-build-performance/references/exports-and-generated-code.md
skills/kotlin-tooling-native-build-performance/scripts/audit-native-build.sh
- Executable scriptline 1
#!/usr/bin/env bash
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 158 facts
- Network access in prose of the SKILL.mdkotlin-tooling-agp9-migration/SKILL.md:477Low confidence
- Network access in prose of the SKILL.mdkotlin-tooling-agp9-migration/SKILL.md:478Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:26Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:27Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:28Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:33Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:34Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:35Low confidence
- Network access in prose of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:41Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:55Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:56Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:77Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:78Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:80Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:81Low confidence
- Network access in code of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:82Low confidence
- Network access in prose of documentationkotlin-tooling-agp9-migration/references/KNOWN-ISSUES.md:87Low confidence
- Executable script in code of a file that runskotlin-tooling-agp9-migration/scripts/analyze-project.sh:1High confidence
- Network access in prose of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:87Low confidence
- Network access in prose of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:99Low confidence
- Network access in prose of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:101Low confidence
- Network access in code of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:177High confidence
- Network access in code of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:199High confidence
- Network access in code of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:200High confidence
- Network access in prose of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:309Low confidence
- Dangerous shell operation in code of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:376High confidence
- Dangerous shell operation in code of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:379High confidence
- Dangerous shell operation in code of the SKILL.mdkotlin-tooling-cocoapods-spm-migration/SKILL.md:385High confidence
- Network access in prose of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:7Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:47Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:48Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:49Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:67Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:68Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:69Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:89Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:90Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:91Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:112Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:113Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:114Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:135Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:136Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:137Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:168Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:169Low confidence
- Network access in code of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:170Low confidence
- Network access in prose of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:239Low confidence
- Network access in prose of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:246Low confidence
- Network access in prose of documentationkotlin-tooling-cocoapods-spm-migration/references/common-pods-mapping.md:248Low confidence
and 108 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/kotlin-backend-jpa-entity-mapping/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/kotlin-backend-jpa-entity-mapping/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/kotlin-backend-jpa-entity-mapping/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/kotlin-backend-jpa-entity-mapping/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/kotlin-backend-jpa-entity-mapping/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/kotlin-kotlin-agent-skills/)