* tools kotlin: add native build performance skill
Add a skill for diagnosing and fixing slow Kotlin/Native compilation and linking in KMP projects that target iOS.
SKILL.md carries the workflow: classify the slow scenario, audit and measure before editing, apply fixes in safe order, verify against the same command, and report changes with their tradeoffs. The detail lives in references/ (caching and Gradle configuration, artifact and target selection, framework exports and generated code, experimental options), each grounded in the official Kotlin documentation. scripts/audit-native-build.sh statically scans a project and prints file:line findings - disabled caches, broad local build tasks, transitive exports, kapt on the native path, missing CI .konan caching - mapped to the reference file with the fix.
Two invariants run through the skill: never trade away required release behavior, and gate destructive or experimental changes (target removal, kotlin.incremental.native, smallBinary) on explicit project policy or user consent.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Add evaluation details and test results
* Remove kapt from Kotlin/Native guidance
* Clarify version-scoped Native cache guidance
* Remove fixed daemon heap and Kotlin daemon advice
* Simplify cache upgrade guidance
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ilya Evtushenko <evt.ilyaa@gmail.com>
- Recommend modeling DB-generated IDs as nullable with a protected setter
- Update examples to avoid using 0L as a sentinel value for IDs
- Correct code comments to reflect proper ID handling conventions and best practices
* Fine-tune CocoaPods to SwiftPM migration skill (KT-85251)
Improvements based on user studies, migration report analysis, and
sample project (kmp-with-cocoapods-compose-sample):
Build verification:
- Replace ./gradlew build with compileKotlinIosSimulatorArm64
- Add optional xcodebuild pre-migration check
DSL correctness (aligned with 2.4.0-Beta2 API):
- Rename importedModules → importedClangModules throughout
- Rename discoverModulesImplicitly → discoverClangModulesImplicitly
- Rename iosDeploymentVersion → iosMinimumDeploymentTarget (and other platforms)
- Remove xcodeProjectPathForKmpIJPlugin (works out of the box now)
- Rename _internal_linkage_SwiftPMImport → KotlinMultiplatformLinkedPackage
- Document simple string API as primary syntax; typed API for advanced use
- Enforce exact same version as pod — do not bump during migration
Multi-module support:
- linkOnly pods: swiftPackage() belongs in child module only
- Consuming module must NOT redeclare packages from child modules
- Phase 6: remove CocoaPods from ALL modules, not just primary
Import namespace (most common agent mistake):
- Namespace uses the DECLARING module's group+name, not the importing module's
- Added concrete multi-module example with annotations
Other:
- Podfile-only dependency migration
- Compose Resources group namespace warning
- Framework export()/transitiveExport preservation
- Podspec cleanup from module directories
- Underscore handling in namespace formula
- Phase 7: iterate until build succeeds, don't stop on errors
- Google Maps mapping updated to current Package.swift
- Version table: CocoaPods exact → exact(), ~> → from()
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* Remove classpath strict-version workaround from SPM migration skill
Swift Import is available in the public 2.4.0-Beta2 release, so the
buildscript constraint with '!!' strict version pin is no longer needed.
Drop Phase 2.2 from SKILL.md and the matching troubleshooting entry.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Adds kotlin-tooling-java-to-kotlin skill that converts Java source files
to idiomatic Kotlin using a 4-step conversion methodology with 5 invariants.
Includes framework-aware guidance for 12 frameworks (Spring, Lombok, Hibernate,
Jackson, Micronaut, Quarkus, Dagger/Hilt, RxJava, JUnit, Guice, Retrofit,
Mockito), each in separate reference files loaded only when matching imports
are detected.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New skill for correct JPA entity design in Kotlin + Spring Data projects.
Covers entity identity (why data class breaks Hibernate), equality
strategies, uniqueness constraints for idempotent operations, fetch
plans, and common ORM traps specific to Kotlin.
Also adds 'backend' category to CATEGORIES.