界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

compose

compose

【开发与工程】Use this skill first for any Jetpack Compose or Compose Multiplatform task: a new feature or screen, a change to existing code, a bug fix, a review, making code follow the kit, project or build setup, or a question. It picks the task path and the exact kit files to read. Not for Kotlin work outside a Compose or CMP app.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: compose description: >- Use this skill first for any Jetpack Compose or Compose Multiplatform task: a new feature or screen, a change to existing code, a bug fix, a review, making code follow the kit, project or build setup, or a question. It picks the task path and the exact kit files to read. Not for Kotlin work outside a Compose or CMP app.

Compose

Every task

  • Verify before claiming done: run the checks named by the task path and report their result.
  • Make the smallest correct change; keep what works.
  • Explain the result in plain engineering reasons.
  • Build from the context you have; state assumptions.
  • Open only the files the tree names for your task kind and areas; open another reference only when a check fails or a named file sends you there.

Question 0: Is the task clear enough to act?

  • Look in the prompt, then the code.
    • Clear enough: continue to Question 1.
    • A missing answer changes what gets built: ask at most 3 questions, each with a stated default.
    • No human can answer (CI or headless): proceed and list the assumptions.
  • In a kit project, never ask how the architecture should look.

Question 1: What kind of task is it?

  • New feature or screen → 1. If adding to an existing project, use the ../compose-architecture/references/existing-projects.md Choose tree; 2. read ../compose-feature/SKILL.md as the main area; 3. scaffold with its new-feature script when applicable; 4. choose each area in Question 2; 5. run the feature checks and tests.
  • Change to existing code → 1. Find the affected code; 2. use the ../compose-architecture/references/existing-projects.md Choose tree and keep its coherent pattern; 3. read the owning topic skill from Question 2; 4. make the smallest change; 5. run its checks and affected tests. Change only what the request names; list related gaps as follow-ups.
  • Bug fix → 1. Use the ../compose-architecture/references/existing-projects.md Choose tree; 2. write a failing test that reproduces the bug using ../compose-feature/references/testing.md; 3. read only the affected area in Question 2; 4. make the smallest fix; 5. show the test passing and run affected checks.
  • Review only → 1. Use the ../compose-architecture/references/existing-projects.md Choose tree; 2. read ../compose-feature/references/review-mode.md for severity; 3. inspect only the relevant area in Question 2; 4. report findings and what is sound; 5. make no edits.
  • Conform or fix after review → 1. Restructure only: keep behaviour, visible UI, navigation, persistence and public APIs exactly as they are; 2. do not add screens, controls, wiring, saved state or features the existing code lacks; list them as follow-ups in the answer; 3. when changing a constructor or signature, update every caller and test in the same change; 4. run the existing tests before and after; both runs must pass; 5. run the guards. Use the ../compose-architecture/references/existing-projects.md Choose tree and ../compose-feature/references/review-mode.md for severity.
  • Project, module or build setup → 1. For existing code, use the ../compose-architecture/references/existing-projects.md Choose tree; 2. read ../compose-project/SKILL.md; 3. choose the build area in Question 2; 4. make the change; 5. run project checks and affected build/tests.
  • Question or explanation → 1. For existing code, use the ../compose-architecture/references/existing-projects.md Choose tree; 2. identify the area in Question 2; 3. read only the file holding the fact; 4. answer with evidence and state any uncertainty.

Question 2: Which area does it touch?

Read the area's SKILL.md only for the task's main area; for every other area, read only its one reference.

  • UI → ../compose-ui/references/ux-states.md; if this is the task's main area, also ../compose-ui/SKILL.md.
  • State and lifetime → ../compose-architecture/references/state-ownership.md; if this is the task's main area, also ../compose-architecture/SKILL.md.
  • Errors → ../compose-architecture/references/error-handling.md; if this is the task's main area, also ../compose-architecture/SKILL.md.
  • Navigation → ../compose-architecture/references/navigation.md; if this is the task's main area, also ../compose-architecture/SKILL.md.
  • Data storage → ../compose-data/references/datastore.md; if this is the task's main area, also ../compose-data/SKILL.md.
  • Network → ../compose-data/references/networking-ktor.md; if this is the task's main area, also ../compose-data/SKILL.md.
  • Paging → ../compose-data/references/paging.md; if this is the task's main area, also ../compose-data/SKILL.md.
  • DI and modules → ../compose-architecture/references/dependency-injection.md; if this is the task's main area, also ../compose-architecture/SKILL.md.
  • Platform / iOS / desktop → ../compose-platform/references/sharing-and-bridges.md; if this is the task's main area, also ../compose-platform/SKILL.md.
  • Notifications and background work → ../compose-platform/references/notifications-and-background-work.md; if this is the task's main area, also ../compose-platform/SKILL.md.
  • Build and Gradle → ../compose-project/references/convention-plugins.md; if this is the task's main area, also ../compose-project/SKILL.md.
  • Testing → ../compose-feature/references/testing.md; if this is the task's main area, also ../compose-feature/SKILL.md.

Not covered here → use judgement and state the assumption.

我的收藏