Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/kelvinkosbab/appbootstrapai/android-compose-pronpx skills add kelvinkosbab/AppBootstrapAI --skill android-compose-progit clone --depth 1 https://github.com/kelvinkosbab/AppBootstrapAIWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kelvinkosbab/appbootstrapai/android-compose-pro)<a href="https://agentmods.dev/skills/kelvinkosbab/appbootstrapai/android-compose-pro"><img src="https://agentmods.dev/badge/skills/kelvinkosbab/appbootstrapai/android-compose-pro.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00056 | $0.00883 |
| Opus 5 | $0.00028 | $0.00441 |
| Sonnet 5 | $0.00011 | $0.00177 |
| Haiku 4.5 | $0.00006 | $0.00088 |
Grade A, and why
android-compose-pro scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 56 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Review Jetpack Compose code for correctness and performance. This is the deep-review companion to the always-on android-compose-best-practices.md rule — the rule steers while writing; this skill audits what was written. Report only genuine problems; don't nitpick or invent issues.
Review process:
- Check state modeling and hoisting using
references/state-modeling.md— where state lives, who owns it, how it flows. - Check recomposition stability using
references/stability.md— unstable parameters, lambda churn, skippability. - Audit every side effect using
references/side-effects.md— keys, teardown, stale captures. - Check lazy-layout performance using
references/lazy-performance.md— keys, contentType, scroll-driven state. - Spot-check semantics against the
android-accessibility-best-practices.mdrule (merged nodes, roles, contentDescription) — don't duplicate a full a11y audit here.
If doing a partial review, load only the relevant reference files.
Core Instructions
- Target Kotlin 2.x with the Compose Compiler Gradle plugin; assume Material 3.
- Recomposition is the lens. Most Compose bugs and jank reduce to "this runs more often than the author thinks" — composition, effect launch, or lambda allocation. Trace the actual invalidation, don't guess.
- Don't recommend
@Stable/@Immutableas a reflex. First check whether strong skipping (default under Kotlin 2.0.20+ Compose compilers) already covers the case; annotations are for genuine contracts, not cargo cult. - Side effects are guilty until proven keyed correctly. Every
LaunchedEffect/DisposableEffectgets the question: what restarts you, and is that the author's intent? - Business state never lives in
remember { }. ViewModel +StateFlow+collectAsStateWithLifecycle()is the boundary; flag exceptions. - Performance claims need a mechanism. When flagging a perf issue, name the mechanism (per-frame recomposition, missing keys forcing re-layout, unstable lambda defeating skipping) — not just "this could be slow."
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 56 lines · 56 tokens per session scan A df847a2e5933
android-compose-pro is a skill published in the GitHub repository kelvinkosbab/AppBootstrapAI (5 stars, last pushed 14d ago), licensed MIT. It adds 56 tokens to every session and 883 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
kmp-glassmorphism-ui
Implements a production-grade Glassmorphism design system for Kotlin Multiplatform (KMP) Compose Multiplatform projects. Use when the user asks for glass UI, frosted glass effects, glassmorphism theme, translucent/transparent UI components, liquid/blob animated backgrounds, or premium modern dark-mode design in a…
flutter-cherry-pick
How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel. Only use for flutter/flutter landed pull requests. Only use when the cherry pick request is into "stable", "beta" or a branch that has the format with flutter- . -candidate.0.
updating-android-sdk
Upgrades Flutter's Android SDK dependency to a new Android API version (or preview/canary release) in packages.txt, verifies CIPD tag uniqueness, and packages/uploads the binaries using createcipdpackages.sh across macOS, Linux, and Windows. Use whenever a user wants to pick up a new version of Android or upload…
analyze-github-flake
Expertise in analyzing flake github issues in the flutter/flutter repository. Use when a user wants to analyze the flakiness of a specific link to a flutter github issue.
upgrade-browser
Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests. Use when asked to roll or upgrade Chrome or Firefox to a newer version.
run-devicelab-with-led
Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool. Use when asked to run, launch, try, or deflake a post-submit or devicelab test against a PR using led.