1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | kotlin-tooling-agp9-migration |
| 作者/维护者 | JetBrains(Kotlin 语言团队) |
| 来源链接 | https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-agp9-migration |
| 许可证 | Apache-2.0(GitHub API,明确) |
| GitHub Stars | 合集仓库整体 975★(GitHub API,2026-07-31);该数字属整个 kotlin-agent-skills 合集,不代表本技能自身热度 |
| Forks | 合集仓库整体 37(GitHub API) |
| 最新版本 | 1.0.0(SKILL.md metadata) |
| 安装方式 | npx skills add / claude plugin marketplace add / 手动复制目录 |
2. 功能介绍与亮点
Android Gradle Plugin(AGP)9.0 起,com.android.application/com.android.library 插件与 Kotlin Multiplatform(KMP)插件不能再共存于同一模块——这是一次结构性的破坏性升级。本技能引导 agent 完成迁移:
- 先分析项目结构,判定每个模块该走哪条迁移路径:库模块插件替换(Path A)、KMP+应用插件模块强制拆分为独立
androidApp(Path B,AGP 9.0 下强制要求)、或对齐 JetBrains 新默认工程结构的整体重构(Path C) - 每条路径均配有分步骤操作说明与前后代码对比(存于
references/目录),覆盖插件替换、DSL 迁移、源集重命名、依赖迁移等具体改动 - 附带一个纯本地的 Bash 分析脚本
scripts/analyze-project.sh,可在改动前扫描 Gradle 文件并输出每个模块的迁移建议 - 提供插件兼容性表、AGP/Gradle/Kotlin 版本对照矩阵、已知问题清单与迁移后验证清单
- 发布后由 2 位不同的 JetBrains 工程师持续打磨(多次提交修正测试源集命名、依赖解析等细节)
3. 适用场景
所属分类:工程效率与代码质量。
面向已经使用 Kotlin Multiplatform 开发 Android/iOS/Desktop 应用、且需要升级到 Android Gradle Plugin 9.0 及以上版本的开发团队。由于 AGP 9.0 让 KMP 与 Android 插件的组合方式发生结构性变化,团队原本要逐个模块排查该走哪条迁移路径、手动比对新旧 DSL 写法;本技能把这套排查与改写流程交给 agent,减少人工翻阅迁移文档的时间。
4. 跨 Agent 兼容性
- Claude Code:原生支持——Kotlin 官方文档(kotlinlang.org)明确将 Claude Code 列为受支持 agent,仓库 README 提供
claude plugin marketplace add安装步骤 - Codex:原生支持——同一官方文档列出 OpenAI Codex,仓库 README 提供 Codex 插件市场安装步骤
- OpenClaw:未验证——官方材料未提及
- Hermes Agent:未验证——官方材料未提及
5. 推荐理由
这是 Kotlin 语言官方团队(JetBrains)针对一个真实、当下正在发生的破坏性升级给出的权威迁移指南,被收录进 kotlinlang.org 官方文档并列为三大重点工作流之一。相比通用的“帮我改代码”式提示,它把 AGP 9.0 迁移拆成可判定的路径分支,并用本地脚本先做只读分析再动手改,兼顾了效率与可控性。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 8 | 官方 JetBrains/Kotlin 语言团队出品,被 kotlinlang.org 官方文档专页收录并列为三大重点工作流之一,独立技术媒体(The Agent Times)与第三方 Claude 技能市场也有收录报道;因所属仓库是多技能合集,不采信合集整体 star 数代表本技能热度,改以该子目录自身 12 次提交、2 位独立工程师参与迭代作为佐证 |
| 可用性 | 9 | 复制目录或一条命令(npx skills add / claude plugin marketplace add)即可安装;SKILL.md 含分步骤指南、多份参考文档与验证清单;附带纯本地项目分析脚本;所属仓库近期仍有新提交,维护活跃;无付费依赖 |
| 安全性 | 8 | 见下方检查清单 |
安全检查清单:
① Shell 执行——脚本 analyze-project.sh 仅用 grep/find 只读扫描本地 Gradle 与属性文件、打印迁移建议,不修改任何文件;② 联网外发——脚本不含任何网络请求;③ 凭据——不需要 API Key 或任何凭据;④ 可疑指令——SKILL.md 与脚本中未发现提示词注入或隐蔽外发迹象;⑤ 作者信誉——JetBrains,Kotlin 语言的官方维护方,身份可查证;⑥ License——Apache-2.0,明确;⑦ 维护时间——所属仓库近期仍有提交,本技能最近一次代码变更距今约 4 个月。
7. 跟同类 Skills 相比的优势
| 对比对象 | 定位 | 与本技能的差异 |
|---|---|---|
| kotlin-tooling-java-to-kotlin(同仓库) | 把 .java 源文件转换为惯用 Kotlin,覆盖 Spring/Lombok/Hibernate 等框架的转换规则 |
解决“语言迁移”问题,不涉及 Gradle 构建插件层面的改动 |
| kotlin-tooling-cocoapods-spm-migration(同仓库) | 把 KMP 项目的 iOS 依赖从 CocoaPods 迁移到 Swift Package Manager | 解决“iOS 依赖管理”问题,与 AGP/Android 构建插件无关 |
| kotlin-backend-jpa-entity-mapping(同仓库) | 指导 Kotlin data class 在 Spring Data JPA/Hibernate 场景下的正确建模 |
解决“持久化层建模”问题,属运行时代码规范而非构建配置迁移 |
四者同属 JetBrains 官方 Kotlin 技能集合,分别对应语言迁移、构建插件迁移、依赖管理迁移、持久化建模四个互不重叠的具体场景,可按团队实际痛点单独安装。
8. 用户评价
该技能目前在第三方平台(Reddit、Hacker News)尚无具名用户评价;技术媒体账号 The Agent Times 在 X 上报道了 JetBrains 发布整个 kotlin-agent-skills 集合一事,第三方 Claude 技能索引站 claudemarketplaces.com 已收录本技能条目。
9. 其他补充
所属仓库的 GitHub Issues 中有多个开放请求,社区正在提议扩展 Kotest、Kotlin Coroutines、Kotlin DataFrame 等新技能,以及发布到 Cursor、JetBrains Junie 等更多渠道,显示该集合仍在持续生长。
10. 安装使用方式
- npx:
npx skills add Kotlin/kotlin-agent-skills,按提示选择安装kotlin-tooling-agp9-migration - Claude Code:
claude plugin marketplace add Kotlin/kotlin-agent-skills后claude plugin install kotlin-agent-skills@Kotlin - Codex:
codex plugin marketplace add Kotlin/kotlin-agent-skills,在codex内执行/plugins搜索并安装 - 手动安装:将仓库中的
skills/kotlin-tooling-agp9-migration目录复制到自己 agent 的 skills 目录,如cp -r skills/kotlin-tooling-agp9-migration .claude/skills/ - 安装后注意:无需重启,agent 提到 “AGP 9.0”、“KMP+AGP 不兼容”、“android multiplatform plugin migration” 等关键词时会自动激活;由于会改动 Gradle 文件与目录结构,建议在版本控制的分支下让 agent 执行,完成后人工检查 diff 再提交
11. 注意事项
- 本技能专注于 KMP 项目升级到 AGP 9.0 的路径判断与改写,纯 Android(非 KMP)项目升级 AGP 的通用改动只是附带覆盖,非设计重点
- 附带的本地分析脚本依赖 Bash 环境(
grep/find),Windows 用户若无 WSL 或 Git Bash 需要手动比对指南自行判断 - kotlin-agent-skills 是一个仍在扩张中的年轻合集(2026 年 3 月创建),各子技能维护深度不一;本报告仅针对 kotlin-tooling-agp9-migration 本身评估,同仓库内的其他技能(如上文提到的三个)是各自独立的技能,未包含在本次评分范围内