Agent Skills
› chrisbanes/skills
› using-chrisbanes-skills
using-chrisbanes-skills
GitHub作为路由技能,用于处理广泛的 Kotlin、Android 或 Jetpack Compose 任务。通过识别任务信号,智能选择并加载对应的专注型技能(如状态管理、性能优化、UI 设计等),再提供具体建议或代码编辑。
触发场景
Kotlin/Android/Jetpack Compose 任务过于宽泛,无法直接匹配单一技能
需要进行通用审查、重构、架构设计、状态管理、性能优化或 UI API 设计
安装
npx skills add chrisbanes/skills --skill using-chrisbanes-skills -g -y
SKILL.md
Frontmatter
{
"name": "using-chrisbanes-skills",
"description": "Use when a Kotlin, Android, or Jetpack Compose task is too broad for any single focused skill to obviously apply, especially for general review, refactor, architecture, state, performance, testing, or UI API design work."
}
Using chrisbanes skills
Router only. Use this skill to choose the focused skill or skills for the task, then load those focused skills before giving detailed advice or editing code.
If a request already clearly matches a focused skill, use that skill directly. If several areas affect the work, load each relevant focused skill before acting on that area.
Common routes
| Task signal | Start with |
|---|---|
| Broad Compose screen review or refactor | compose-state-holder-ui-split, then add state, effects, layout, testing, or performance skills as needed |
Local Compose state, bare local var, remember { mutableStateOf(...) }, mutableStateListOf, or @ReadOnlyComposable |
compose-state-authoring |
| Deciding whether state belongs locally, hoisted, in a plain state holder, or in a screen state holder | compose-state-hoisting |
| ViewModel, component, controller, navigation, Flow collection, or dependency wiring mixed with UI layout | compose-state-holder-ui-split |
LaunchedEffect, DisposableEffect, SideEffect, rememberCoroutineScope, rememberUpdatedState, navigation, snackbar, analytics, focus requests, or event Flow collection |
compose-side-effects |
| Recomposition, jank, compiler reports, Layout Inspector counts, unstable params, scroll reads, animation reads, or back-writing state across phases | compose-recomposition-performance |
Known Compose stability or skippability question, compiler classes.txt / composables.txt, collection parameters, or strong skipping |
compose-stability-diagnostics |
| Frame-rate state reads from scroll, animation, gestures, layout, or draw; value-form layout/draw modifiers; measurement state back-writing | compose-state-deferred-reads |
| Modifier parameters, root layout placement, hardcoded layout decisions, or modifier chain style | compose-modifier-and-layout-style |
| Reusable Compose component API with variable visual content, primitive content params, optional content params, or boolean shape flags | compose-slot-api-pattern |
| Compose visibility, value, color, size, transition, content swap, or choosing an animation API | compose-animations |
Keyboard, TV, desktop, D-pad, FocusRequester, focusProperties, key events, or initial focus behavior |
compose-focus-navigation |
| Compose UI tests, screenshot tests, previews, semantics, fake image loading, keyboard input, focus assertions, or interaction state tests | compose-ui-testing-patterns |
Coroutine scope ownership, init { launch }, non-suspending APIs that launch work, runBlocking, or cancellation handling |
kotlin-coroutines-structured-concurrency |
Kotlin branching, when expressions, guard conditions, sealed type exhaustiveness, smart casts, nullable branching, or complex if/else chains |
kotlin-control-flow |
StateFlow, SharedFlow, Channel, stateIn, SharingStarted, .value, one-shot events, sentinel initial values, or expensive update blocks |
kotlin-flow-state-event-modeling |
Kotlin Multiplatform platform APIs, source set boundaries, expect/actual, interfaces for platform services, permissions, files, sensors, native SDKs, or Compose Multiplatform interop |
kotlin-multiplatform-expect-actual |
| Kotlin function placement, member vs top-level function, extension functions, factories, primitive receivers, or extensions on String, collections, Flow, framework, or third-party types | kotlin-functions |
Single-field domain types, primitive obsession, or choosing @JvmInline value class vs data class |
kotlin-types-value-class |
| Polling or shepherding PRs/MRs, triaging review comments, fixing CI failures, or keeping reviews moving | shepherd |
Combining skills
- For Compose event handling from a ViewModel or component, use
compose-state-holder-ui-split,compose-side-effects, and, if the event primitive matters,kotlin-flow-state-event-modeling. - For performance work, start with
compose-recomposition-performance. It routes deeper to stability or deferred-read fixes. - For animations triggered by state, use
compose-animationstogether withcompose-state-holder-ui-split; for frame-rate-driven animation values, also loadcompose-state-deferred-reads. - For reusable UI components, pair
compose-modifier-and-layout-stylewithcompose-slot-api-patternwhen both placement and content flexibility are in play. - For tests around focus behavior, use
compose-focus-navigationfirst, thencompose-ui-testing-patternsfor test shape. - For Kotlin state or platform-boundary work that also changes branching shape, combine the domain skill with
kotlin-control-flow.
版本历史
- 2026.7.21 当前 2026-07-24 12:25


