用途:作为 Compose Multiplatform 项目的平台架构角色,决定共享代码放在哪里、如何桥接平台差异,并保证项目声明的每个目标平台都能编译。
主要能力:先确定共享层级(整屏共享 UI 加 ViewModel、共享 ViewModel 加原生 UI、或仅共享仓库层,每个功能只选一级);用 sharing-and-bridges.md 决策表为每个声明选定 commonMain、接口加 DI 或 expect/actual;为多平台服务编写语义端口并在平台 Koin 模块中绑定;用 check-commonmain-imports.sh 机械检查 commonMain 中是否出现 java.、javax.、android.*、LocalContext 或 R 导入;验证所有 expect 在各目标都有 actual。
必要用法:按工作流先建待办,确定共享层级,再放置声明,然后读取 gradle/libs.versions.toml 中版本与对应官方文档,写出改动并在 Android、iOS、desktop、web 目标上编译验证,最后运行 scripts/composekit/run-checks.sh(或 scripts/run-checks.sh <项目根目录>)并使其退出码为 0。
规则要点:ViewModel、Contract 与仓库接口放 commonMain;有状态或有生命周期的平台服务用接口加 DI,不用 expect/actual;commonMain 不用 withTransaction,改用 useWriterConnection 与 immediateTransaction;每个文件一个 DataStore 实例,路径由平台工厂提供,桌面使用应用目录;生命周期 owner 与作用域来自多平台 androidx.lifecycle 构件,桌面需加 kotlinx-coroutines-swing;commonMain 只暴露 Flow 与 suspend,交由 SKIE 等互操作库桥接;默认保持 iOS 导出面小而具体。项目已有记录决策时,规则 8–9 的默认项以项目决策为准。
限制与未提供:Gradle 目标配置、依赖版本管理、UI 与数据层细节分别属于 compose-project、compose-feature、compose-data、compose-ui 技能;具体命令、安装步骤与检查脚本内容以技能仓库为准,此处暂未提供。