bama
BAMA: 모든 Mac 앱을 만들 수 있습니다
Compose Skill (Compose Kit): agent skills for Jetpack Compose & Compose Multiplatform. Makes Claude Code, Codex, Cursor, Copilot, Gemini CLI and OpenCode write better Compose: MVI, Koin, Navigation 3, Ktor, Room. Tested blind on 5 models in 120 agentic runs.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A Compose skill for AI coding agents: seven agent skills that make Claude Code, Codex, Cursor, Copilot and Gemini
write better Jetpack Compose and Compose Multiplatform code.
One consistent house style, measured on five models in real agent CLIs.
+25.6 points for Gemini 3.8 Flash with the kit
+18.6 points for Sonnet 5.5 with the kit
120 agentic runs on 8 never-seen tasks
2 blind graders from other vendors must agree on every itemREADME 전문 보기 ↗A Compose skill for AI coding agents: seven agent skills that make Claude Code, Codex, Cursor, Copilot and Gemini write better Jetpack Compose and Compose Multiplatform code. One consistent house style, measured on seven models in real agent CLIs.
Works with Claude Code · Codex · Cursor · OpenCode · Copilot · Gemini CLI · Antigravity
Website: compose.avinya.dev · Install guides per agent · Results
AI agents write Compose that compiles and then drifts: state ends up in the wrong place, every screen gets its own pattern, error handling changes from file to file, and reviews flag perfectly fine code as blocking. Compose Kit gives the agent one house style plus the reasoning behind it, and only loads the parts the current task needs.
BaseViewModel contract, Koin annotations, Navigation 3,
feature-owned data/domain/presentation layers, and typed error handling.| Skill | What it owns |
|---|---|
compose | The entry decision tree (~1.3k tokens): task kind → affected area → exact reference files |
compose-architecture | Module graph, MVI/BaseViewModel contract, error tiers, state ownership, naming, Koin DI, Navigation 3, coroutines |
compose-feature | A screen or feature slice end to end: contract, ViewModel, UI, navigation, DI and tests; review mode |
compose-ui | Composables: Route/Screen split, stability, loading/empty/error states, lists, animation, accessibility, resources, adaptive layouts |
compose-data | Repositories, Ktor, Room, DataStore, Paging 3, offline-first, data-layer tests |
compose-project | New projects, adopting the kit, modules, convention plugins, version catalog, CI and agent hooks |
compose-platform | commonMain vs expect/actual, iOS/Swift interop, desktop and web targets, platform lifecycle |
Also included: project and feature templates, and the guard scripts (compose-architecture/scripts/).
flowchart TD
P["Your prompt"] --> E["compose entry tree · ~1.3k tokens"]
E --> K{"What kind of task?<br/>new feature · change · bug fix · review<br/>conform · setup · question"}
K --> A{"Which areas does it touch?<br/>architecture · feature · ui<br/>data · project · platform"}
A --> F["Load one reference file per affected area"]
F --> C["Code in the house style"]
Install all seven skills. compose is the entry point, and it hands each task to the other six. Step-by-step pages
for each agent are on the website: Claude Code,
Codex, Cursor,
GitHub Copilot,
Gemini CLI and Antigravity,
OpenCode.
Every option below can install for one project (lives in the repo, so your team gets it too) or globally (for you, in every project on your machine).
Needs Node 22.20+. Works with Claude Code, Codex, Cursor, OpenCode, Copilot, Gemini CLI, Antigravity and 70+ other agents.
# This project only (run it in the repo root)
npx skills add Meet-Miyani/compose-skill --skill '*' -a claude-code
# Globally, for every project
npx skills add Meet-Miyani/compose-skill --skill '*' -a claude-code -g
Swap claude-code for your agent: codex, cursor, opencode, github-copilot, gemini-cli, antigravity. Repeat
-a to install for several at once. Leave it out and you get an interactive picker.
| Agent | This project | Global |
|---|---|---|
| Claude Code | .claude/skills/ | ~/.claude/skills/ |
| Codex, Cursor, OpenCode, Copilot, Gemini CLI, Antigravity | .agents/skills/ | the agent's own folder, e.g. ~/.codex/skills/ |
Update later with npx skills update.
Needs GitHub CLI 2.90+. It installs the latest stable release. Pass --agent too: without it, a non-interactive run
installs for GitHub Copilot.
for s in compose compose-architecture compose-feature compose-ui compose-data compose-project compose-platform; do
gh skill install Meet-Miyani/compose-skill "$s" --agent claude-code --scope project
done
Update later with gh skill update --all. Installed with --pin before? Run gh skill update --unpin --all once:
gh skill update skips pinned skills.
Use --scope user to install globally. Agent IDs: claude-code, codex, cursor, opencode, gemini-cli,
antigravity, github-copilot.
/plugin marketplace add Meet-Miyani/compose-skill
/plugin install compose-kit@compose-kit
From a terminal, the same with a scope: user (the default, every project), project (shared through the repo) or
local (this project, just you).
claude plugin marketplace add Meet-Miyani/compose-skill
claude plugin install compose-kit@compose-kit --scope project
Update later from a terminal: claude plugin marketplace update compose-kit, then
claude plugin update compose-kit@compose-kit, then restart Claude Code.
codex plugin marketplace add Meet-Miyani/compose-skill
codex plugin add compose-kit@compose-kit
Codex plugins install for your user, so they're available in every project.
Update later with codex plugin marketplace upgrade: it refreshes the marketplace and the installed plugin.
Add this line to the project's AGENTS.md or CLAUDE.md:
Compose/CMP work: load the compose skill first; it picks the path and the files to read.
The skills also trigger on their own; the line just makes sure the entry tree loads first.
Coming from the old single compose skill (v5.x or the composekit CLI)? Delete the old compose folder from
your agent's skills directory, then install with any option above. The old CLI's update can't fetch v6.
Optional: install the guard scripts into a project to catch drift in CI:
bash <skills dir>/compose-architecture/scripts/install-guards.sh <project>
The v6.1 test: 5 models × 6 new tasks × 3 arms (no kit, v6.0 kit, v6.1 kit) = 90 agentic runs in the real CLIs. Each answer was graded blind by the two vendors other than its own, and an item passes only when both graders pass it.
Items passed of 39 (27 [eng] items written by the independent task author, 12 [kit] items written by the
moderator):
| Model | No kit | v6.0 kit | v6.1 kit | v6.1 − no kit |
|---|---|---|---|---|
| Sonnet 5.5 | 31 (79.5%) | 35 (89.7%) | 34 (87.2%) | +3 (+7.7 pts) |
| GPT-6-Luna | 28 (71.8%) | 35 (89.7%) | 37 (94.9%) | +9 (+23.1 pts) |
| GPT-6-Sol | 30 (76.9%) | 34 (87.2%) | 34 (87.2%) | +4 (+10.3 pts) |
| Gemini 3.8 Flash | 22 (56.4%) | 33 (84.6%) | 34 (87.2%) | +12 (+30.8 pts) |
| Muse Spark 1.3 | 27 (69.2%) | 27 (69.2%) | 29 (74.4%) | +2 (+5.1 pts) |
By task type, all five models together (both graders agree):
| Tasks | No kit | v6.0 kit | v6.1 kit |
|---|---|---|---|
| Conform (2 tasks, 60 items) | 73.3% | 75.0% | 80.0% |
| Review (2 tasks, 75 items) | 78.7% | 94.7% | 94.7% |
| New feature (2 tasks, 60 items) | 58.3% | 80.0% | 81.7% |
All pre-registered rules held, and no model scored below its own no-kit result, so v6.1.0 is the stable release.
Details: VERDICT.md · score output · kit tokens
The same 6 tasks and 3 arms on two cheap models through OpenCode (36 runs, graded blind by Claude and GPT, both must pass). Reported separately; they did not decide the release.
| Model | No kit | v6.0 kit | v6.1 kit | v6.1 − no kit | Plan cost, 18 runs |
|---|---|---|---|---|---|
| DeepSeek V4.1 Flash | 32 (82.1%) | 35 (89.7%) | 38 (97.4%) | +6 (+15.4 pts) | $0.65 |
| DeepSeek V4 Pro | 29 (74.4%) | 30 (76.9%) | 34 (87.2%) | +5 (+12.8 pts) | $2.12 |
Details: ADDONS.md (run record: two provider content-filter blocks, one disk-full discard, five hidden-test adaptations)
This is the earlier test, the one v6.0.0-preview.1 shipped on. Five models got 8 tasks they had never seen, in a fresh app, inside their own agent CLIs. Each task ran three times: with no kit, with a short generic "senior engineer" prompt, and with the kit. That's 120 runs. Two models from the other vendors graded every answer blind, and an item only counts if both of them pass it. The rules were written down before the tasks existed, and the grades were frozen before anything was scored.
| Model | No kit | Generic prompt | With the kit | Kit − no kit | Verdict |
|---|---|---|---|---|---|
| Gemini 3.8 Flash | 51.2% | 46.5% | 76.7% | +25.6 | ✅ Recommended |
| Sonnet 5.5 | 55.8% | 60.5% | 74.4% | +18.6 | ✅ Recommended |
| Opus 5.5 | 65.1% | 62.8% | 74.4% | +9.3 | ✅ Recommended (see erratum) |
| GPT-6-Sol | 72.1% | 74.4% | 76.7% | +4.6 | ➖ Neutral: within noise |
| GPT-6-Luna | 65.1% | 60.5% | 67.4% | +2.3 | ❌ Not yet: engineering items fell (−11.1) |
| Muse Spark 1.3 (add-on) | 58.1% | 62.8% | 60.5% | +2.4 | No lift |
By task type, all five panel models together (both graders agree):
| Task type | No kit | Generic prompt | With the kit | |
|---|---|---|---|---|
| New features (3 tasks) | 43.5% | 47.1% | 70.6% | The biggest win: where data lives, navigation results, background work |
| Bug fixes (2) | 80.0% | 88.6% | 82.9% | Every setup fixed the bugs; the kit adds little here |
| Reviews (2) | 72.9% | 64.3% | 84.3% | These two tasks had flawed setups, see the erratum below |
| "Match our conventions" (1) | 68.0% | 60.0% | 44.0% | Worse with the kit: models restructured too much. v6.1 mostly fixed this |
Computed from the frozen grades by v5-by-task-type.py.
Erratum (2026-10-01). Two review tasks had flawed setups. No pre-registered outcome changes, but Opus's +9.3 depends on those two tasks (+3.4 without them). The Claude model was Sonnet 5.5, first published as "Sonnet 5". Details: VERDICT.md.
Every panel model opened compose first on every task. Kit context is an upper bound (the full size of every kit
file opened). Details: kit-tokens.txt.
Method and tools: evals-v2/method · Results: evals-v2/results-v5 · Tasks and base app: evals-v2/heldout-v5
| Round | Domain | Format | What it showed |
|---|---|---|---|
| v1-v2 | Habits, expenses | Single-shot scenarios | The early kit made models lecture and over-escalate reviews, and engineering on new tasks fell (83% → 72%). Fixed. |
| v3 | Workout log | 8 single-shot scenarios, 2 graders | Muse Spark 1.3: 54% → 91% with the kit; DeepSeek V4.1 Flash: 57% → 77% (earlier candidate) |
| v4 | Plant care | 12 scenarios | Fed the redesign into 7 skills with an entry tree (results not published) |
| v5 | Workout log | 8 agentic tasks, 150 runs incl. add-ons | The results above: release evidence for v6.0 |
| v6 | Reading log | 6 agentic tasks, 90 runs | v6.0 vs v6.1 vs no kit: v6.1 released as stable (results) |
Checks on the kit itself:
.composekit.conf is read as data, never run as
shell code, and a config line the guards cannot use fails the run (released 2026-10-11)check-file-level-state finds lateinit and annotated vars, mutable top-level vals and mutable object
members in every source set; check-contract-shape reads same-line annotations (released 2026-10-23)After the cheap-model add-ons, new benchmark rounds start only for a concrete reason: a reported problem, a major new model, or a large change to the kit.
Found a problem, or want a model benchmarked? Open an issue. A reported problem is exactly what kicks off the next test round.
MIT, see LICENSE. Attribution for the external sources used in the kit is in NOTICE.md.