关于 using-chrisbanes-skills
using-chrisbanes-skills 是帮助在 Kotlin、Compose、Gradle 和 Android 基准测试等工作中选择相关技能的路由技能。它依据代码或任务中的具体信号选择专门技能,并限制无依据地加载相邻技能。
主要功能
- 01按代码信号匹配专门技能
- 02区分 Kotlin 与 Compose 路由
- 03提供常见任务路由表
- 04说明技能组合边界
适用场景
- 01确定 Kotlin 并发问题对应的技能
- 02根据 Compose 代码信号选择 UI 技能
- 03为 Gradle 或 Android 基准测试任务选技能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ chrisbanes/ skills --skill using-chrisbanes-skills安装后在 Claude Code 中输入/using-chrisbanes-skills确认已加载。
详细介绍
使用 chrisbanes 技能
核心原则
根据代码需要作出的决策来选择技能,而不是根据提到了多少个 API。 如果某个技能集群的通用流程涵盖了相关问题,就加载该集群;只有当某个专项技能会改变同一项工作中的独立行为时,才额外加载它。
路由流程
- 阅读任务。对于 Kotlin 或 Compose 工作,检查能具体体现相关问题的源代码。对于 Android 基准测试对比,则检查提供的报告、配置和跟踪记录。
- 如果某项专注技能明确匹配,直接加载并停止路由。
- 加载 Compose 技能前,先指出检查过的源代码中具体的 Compose API 或可组合项,或者明确提出的创建或设计 Compose 代码的请求。假设存在 UI 使用方不能作为依据。如果两种依据都不存在,即使任务提到了 UI、路由或导航,也应留在 Kotlin 集群中。
- 将观察到的每个代码信号与下表匹配。
- 只有当第二项技能负责同一项更改中的独立决策时,才加载它;不要凭空猜测并加载相邻技能。例如,Flow 交付缺陷加上对 sealed route 的单独兜底处理,需要同时加载
kotlin-concurrency-and-flow和kotlin-control-flow。之所以加载后者,是因为分支映射需要明确决策,包括数据承载子类型的负载是通过智能转换来使用,还是有意丢弃,而不只是因为文件中出现了when。 - 当每个实质性问题都有一个专注的负责技能,且这些技能已在给出建议或修改代码之前加载后,结束路由。
常见路由
| 任务信号 | 从以下技能开始 |
|---|---|
| 有依据的 Compose 状态、效果、屏幕所有权或 UI 事件收集 | compose-state-and-effects |
重组、稳定性、帧率读取、回写或 @ReadOnlyComposable | compose-performance |
| 组件修饰符、调用方放置位置、插槽或公开内容形态 | compose-component-design |
| 可见性、值、过渡、内容切换或其他动效 API 的选择 | compose-animations |
| 键盘、TV、方向键、焦点目标、自定义遍历或按键事件 | compose-focus-navigation |
| Compose UI、屏幕截图、语义、焦点/按键或交互状态测试 | compose-ui-testing-patterns |
协程所有权、原始 Thread 或 Executor 工作、取消、Flow 状态/事件、共享或重放 | kotlin-concurrency-and-flow |
Kotlin 分类、when、守卫条件、穷尽性、智能转换或 null 分支 | kotlin-control-flow |
| Kotlin 函数所有权、领域类型、expect/actual 或平台边界 | kotlin-api-design |
| 计划执行 Gradle,或以 Gradle 为核心的警告/失败处理流程 | gradle-run |
| 对比实体 Android 基准测试配置、反转排名或 Android 默认值 | android-benchmark-comparison |
| Kotlin 库的发布准备、发布或就绪状态 | release-kotlin-library |
| 有一个明确的 GitHub issue,或聊天中的任务需要结合仓库制定计划 | to-plan |
| 轮询 PR/MR、审查评论、CI 失败或常规跟进 | shepherd |
组合边界
- 只有当交付、重放、共享或取消是一个独立关注点时,才在 Compose 状态相关工作中添加
kotlin-concurrency-and-flow。只有当动画工作也改变了状态归属或性能这一关注点时,才添加状态归属或性能相关内容。 - 如果任务还需要确定测试形式,则将焦点导航与 UI 测试搭配。对于焦点感知的
AnimatedContent切换,还要加载 Compose 动画:根据内容 lambda 的目标渲染每个切出和切入分支,是一个独立于焦点时机和交互测试的身份决策。 - 当 Kotlin 相关问题还涉及独立的分支决策时,例如对密封结果使用涵盖所有情况的
catch-all分支,从而隐藏具体情况或分支载荷,则添加kotlin-control-flow。如果只是简单的路由交付,没有独立的分支问题,则不需要添加。没有第 3 步要求的证据时,不要添加 Compose。 - 将 Compose 快照属性封装在只读公共访问器后,仍然只是一个状态归属决策。不要仅仅因为访问器是公共的就添加
kotlin-api-design;只有当同一项更改还需要独立的函数归属、领域类型、兼容性或平台边界决策时,才添加。 - 仅在计划执行 Gradle 或现有 Gradle 工作流时加载
gradle-run,不要因为附带的 Kotlin 或 Compose 建议而加载。
评论
支持 Markdown