该技能的用途是为 Jetpack Compose 和 Compose Multiplatform 应用的“住宅契约”(house contract)把关:当编写、修改或评审涉及模块图、状态管理、错误处理、DI、导航等架构约定的代码时使用。适用对象是承担代码库长期架构责任的资深移动端工程师。
主要能力:一是规定依赖方向,:feature:* 只能指向 :data:、:core: 和设计系统,特性之间不得互相依赖;跨特性共享状态放在 :data:<domain>,跨特性导航以 UiEffect 形式由组合根分发。二是统一 MVI 契约,每个 ViewModel 继承 BaseViewModel<Action, State, Effect>,onAction 为唯一公开入口,每个 Contract.kt 只放 UiState、UiAction、UiEffect。三是规范异步与错误,所有 ViewModel 异步工作走 launchGuarded(onError=…)(协程内用 runGuarded),禁止手写 try/catch 链与 Result 包装,CancellationException 需重抛;失败分内联、弹窗、静默三层,首次加载无内容用内联加 Retry,刷新失败保留内容走弹窗,后台轮询才可静默。四是状态唯一所有者,业务状态归 ViewModel,短暂视觉归 composable,缓存归 repository;草稿类未持久化输入放 SavedStateHandle。此外还规定包结构、仓库读取命名(getX 与 getXStream)、DI 用 Koin 注解、导航仅用 Navigation 3,并要求新引入库前先读 gradle/libs.versions.toml 与官方最新文档。
使用方式:技能会先选择任务路径,再读取相关引用并执行验证门(运行 scripts/composekit/run-checks.sh,未安装时用技能自带脚本并传项目根目录)。面向用户的回答只呈现结果、代码、一句平白的理由和至多一行假设,不暴露规则编号、技能名或引用文件。
限制:它不用于单独编写或评审屏幕、composable、仓库数据层、新项目脚手架或平台共享(这些各有专门技能);Navigation 3 的 API 细节属可选深度。规则 1-16 为不可协商项,规则 17 与 UiModel 触发为默认项;偏离不可协商规则需记录理由,既有可运行代码中的偏离按评审发现处理而非重写。资料未提供具体价格、平台或效果数据。