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 skills add Meet-Miyani/compose-skill --skill compose-architecturegit clone --depth 1 https://github.com/Meet-Miyani/compose-skillWrote 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/meet-miyani/compose-skill/compose-architecture)<a href="https://agentmods.dev/skills/meet-miyani/compose-skill/compose-architecture"><img src="https://agentmods.dev/badge/skills/meet-miyani/compose-skill/compose-architecture/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/meet-miyani/compose-skill/compose-architecture"><img src="https://agentmods.dev/badge/skills/meet-miyani/compose-skill/compose-architecture.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00106 | $0.03809 |
| Opus 5.5 | $0.00042 | $0.01524 |
| Sonnet 5.5 | $0.00021 | $0.00762 |
| Haiku 4.5 | $0.00011 | $0.00381 |
Grade A, and why
compose-architecture 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 16d 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 — 132 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Compose Architecture
Operating stance
You are acting as a senior staff mobile engineer who owns this codebase's architecture. You are accountable for how it looks in two years, not for pleasing the requester today.
The compose skill selects the task path first. Satisfying the wording of a rule while defeating its purpose is a violation.
Each rule serves its Prevents line. When following it would cause that harm, or block a correct solution the task needs, follow the reason and state the deviation in one line. Build from the context you have. When a file or fact is missing, state the assumption and continue; ask only when the answer changes what gets built.
Validate-before-you-answer contract
- Verify, do not recall. Every API, helper, component and file you reference has been seen in this project during this task, or in current official docs. A plausible name is not a verified one. The kit's own contract is known: the
templates/coreshapes (BaseViewModel,launchGuarded,AppError) and every type or file the task context names count as seen. A missing detail never blocks an implementation task. Write the complete implementation against the kit contract and the given context. List each assumption as a seam at the end. When a needed helper, method or API is not visible in the project or current docs, name it as an open gap ("needs X; not found in the visible code"). Never call an invented third-party method, and never ship a no-op body that looks like real logic. - Check the question before answering it. Read the code, check the non-negotiables, answer yes or no first with evidence.
- Say no when the answer is no. When the implementation differs from an explicit user instruction, the reply's first sentence names the instruction declined and the concrete risk, in plain words, before anything else; a clarifying question about a different topic is not a substitute for that sentence. State the correct approach and, when the task asks for an implementation, deliver the correct implementation in the same answer. A refusal without it is incomplete. If the user insists, restate the consequence once, follow the decision, record the deviation.
- Unverifiable means say so. Say what you would need to check. Never present a guess as a fact.
- Challenge the request, not just the code. Raise a weak or conflicting request before building.
- Fresh docs before new library code. Before new library code: read
gradle/libs.versions.tomland the current official docs, then write. Unreachable docs means marking the code unverified.
What ships with it
37 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.
- references/code-craft.md 8.1 KB
- references/coroutines-flow.md 12 KB
- references/dependency-injection.md 13 KB
- references/error-handling.md 13 KB
- references/existing-projects.md 6.4 KB
- references/modern-kotlin.md 9.8 KB
- references/module-graph.md 11 KB
- references/mvi-contract.md 11 KB
- references/naming-and-packages.md 14 KB
- references/navigation.md 11 KB
- references/state-ownership.md 12 KB
- scripts/check-commonmain-imports.sh 1.9 KB runs code
- scripts/check-contract-shape.sh 3.2 KB runs code
- scripts/check-data-boundary.sh 3.5 KB runs code
- scripts/check-error-handling.sh 12 KB runs code
- scripts/check-file-level-state.sh 5.3 KB runs code
- scripts/check-hardcoded-colors.sh 2.5 KB runs code
- scripts/check-layering.sh 5.8 KB runs code
- scripts/check-locale-parity.sh 4.9 KB runs code
- scripts/check-nav-keys.sh 5.5 KB runs code
- scripts/check-packages.sh 2.2 KB runs code
- scripts/check-placeholders.sh 5.1 KB runs code
- scripts/composekit.conf.example 2.6 KB
- scripts/install-guards.sh 2.5 KB runs code
- scripts/lib/composekit-conf.sh 5.5 KB runs code
- scripts/lib/composekit-skip.sh 1.2 KB runs code
- scripts/run-checks.sh 2.3 KB runs code
- templates/core/error/AppError.kt 741 B
- templates/core/error/AppErrorType.kt 579 B
- templates/core/error/NetworkException.kt 3.4 KB
- templates/core/error/StorageException.kt 363 B
- templates/core/mvi/BaseViewModel.kt 5.1 KB
- templates/core/mvi/CollectEffect.kt 1.1 KB
- templates/core/mvi/UiAction.kt 499 B
- templates/core/mvi/UiEffect.kt 477 B
- templates/core/mvi/UiState.kt 517 B
- templates/core/README.md 3.1 KB
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.
- 16d ago Changed · +1 lines 25d1e726939b
- 20d ago First seen · 131 lines · 106 tokens per session scan A efcd849970cf
compose-architecture is a skill published in the GitHub repository Meet-Miyani/compose-skill (304 stars, last pushed 3d ago), licensed MIT. It adds 106 tokens to every session and 3,809 once invoked, about $0.0004 per session on Opus 5.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-10-02.
Other skills, from other repositories
compose-animations
Use when writing or reviewing Jetpack Compose motion: visibility enter/exit, animating one property toward a target, color or size transitions, multiple properties from one state, switching composable content, or choosing between AnimatedVisibility, animateAsState, rememberTransition, AnimatedContent, and Crossfade.
compose-focus-navigation
Use when writing or reviewing Jetpack Compose UI for TV, keyboard, desktop, accessibility focus, D-pad navigation, FocusRequester, focusProperties, key events, or initial focus behavior.
compose-state-and-effects
Use when writing or reviewing Jetpack Compose state ownership, remember state, state hoisting, screen state holders, LaunchedEffect, DisposableEffect, SideEffect, Flow collection, navigation, snackbar, analytics, or focus requests.
android-benchmark-comparison
Use when comparing physical Android benchmark configurations, investigating inconsistent rankings, or selecting an Android default from measured results. Do not use for code-level Compose performance diagnosis without a configuration comparison.
roborazzi
Use when working with Roborazzi screenshot tests on Android/JVM — setting up the Roborazzi Gradle plugin, running record/compare/verify tasks, writing tests with captureRoboImage or RoborazziRule, Compose Preview screenshot testing (ComposablePreviewScanner), Compose Multiplatform (iOS/desktop) screenshots, AI-powered…
compose-component-design
Use when designing or reviewing reusable Jetpack Compose component APIs with modifier parameters, root layout placement, caller-provided variable content, primitive content parameters, optional content, or boolean shape flags.