Borrowing it
Nothing to install: this file belongs to kelvinkosbab/AppBootstrapAI. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kelvinkosbab/AppBootstrapAI/main/.claude/skills/android-gradle-architecture-pro/SKILL.mdgit 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-gradle-architecture-pro)<a href="https://agentmods.dev/skills/kelvinkosbab/appbootstrapai/android-gradle-architecture-pro"><img src="https://agentmods.dev/badge/skills/kelvinkosbab/appbootstrapai/android-gradle-architecture-pro/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/kelvinkosbab/appbootstrapai/android-gradle-architecture-pro"><img src="https://agentmods.dev/badge/skills/kelvinkosbab/appbootstrapai/android-gradle-architecture-pro.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.00074 | $0.01399 |
| Opus 5 | $0.00037 | $0.00700 |
| Sonnet 5 | $0.00015 | $0.00280 |
| Haiku 4.5 | $0.00007 | $0.00140 |
Grade A, and why
android-gradle-architecture-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 10d 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 — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Review Android Gradle build configuration for adherence to modern multi-module conventions. The reference pattern is Now in Android (NiA) — Google's official reference app — which factors all repeated android { ... } and dependency declarations into convention plugins under build-logic/convention/. Report only genuine problems; don't nitpick.
Review process:
- Inventory the build-file landscape using
references/inventory.md— which files exist, what each is responsible for. - Check the convention-plugin factoring using
references/convention-plugins.md— is repeated config extracted? Where does it live? - Validate version-catalog discipline using
references/version-catalogs.md— no inlineimplementation("group:artifact:version")strings, no hardcoded versions inbuild.gradle.kts. - Validate the multi-module graph using
references/multi-module-graph.md—:app+:feature:*+:data:*+:core:*shape, dependency direction. - Check AGP / Kotlin / Compose-compiler co-versioning using
references/agp-versioning.md. - Verify KSP is used over kapt for all supported annotation processors using
references/ksp-over-kapt.md.
If doing a partial review, load only the relevant reference files.
Core Instructions
- Now in Android is the reference. When in doubt, check what NiA does. Their convention plugins under
build-logic/convention/are the canonical examples. - Convention plugins are non-negotiable past 3 modules. Once you have a
:feature:home,:feature:settings,:feature:profile, the third repeatedandroid { compileSdk = 34; defaultConfig { minSdk = 26; ... } }block is a smell. Factor. - Version catalogs are the single source of truth. Every version literal in a
build.gradle.ktsis a regression — there's always a[versions]entry it should reference. - AGP version is grounded in AGP 8.x for this skill. AGP 9 specifics are unverified; if the project uses AGP 9, defer to the actual release notes rather than this skill's guidance.
- Don't suggest applying convention plugins where they're not warranted. A single-module app doesn't need
build-logic/convention/. Convention plugins are a multi-module concern. - Don't introduce
buildSrc/for new code. Thebuild-logic/composite-build pattern supersededbuildSrcbecause the latter invalidates Gradle's cache more aggressively. NiA usesbuild-logic; new projects should too.
What ships with it
6 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.
- 10d ago First seen · 99 lines · 74 tokens per session scan A d602fba1e2c4
android-gradle-architecture-pro is a skill published in the GitHub repository kelvinkosbab/AppBootstrapAI (5 stars, last pushed 19d ago), licensed MIT. It adds 74 tokens to every session and 1,399 once invoked, about $0.0004 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
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.
ios-slim-bindings
Create iOS slim bindings for MAUI. USE FOR: slim iOS binding, Native Library Interop, Swift/Objective-C wrappers, XcodeGen project.yml, Podfile, CocoaPods static linking, BUILDLIBRARYFORDISTRIBUTION, XcodeProject MSBuild, @objc/[Export] selector crashes, async completion handlers. DO NOT USE FOR: Android bindings…
kotlin-android
Use when building or fixing a native Android app in Kotlin and Jetpack Compose on the UDF layered architecture — ViewModel/StateFlow, Hilt, Room, Retrofit, coroutines, type-safe Navigation, and the Gradle/AGP surface. NOT shared Android and iOS UI from one Kotlin codebase (that is compose-multiplatform).
compose-multiplatform
Use when building one shared Compose UI in Kotlin across Android, iOS, and desktop — commonMain @Composables, expect/actual, source-set placement, native interop, multiplatform ViewModel/navigation/Koin. NOT a single-platform native build (that is kotlin-android / swift-ios), and NOT Dart/Flutter cross-platform UI…
migrating-to-modifier-node
Use this skill to author new custom Jetpack Compose modifiers and migrate legacy ones from Modifier.composed { } to Modifier.Node + ModifierNodeElement . Covers the persistent-node lifecycle (onAttach, onDetach, onReset, coroutineScope), the specialized node interfaces (DrawModifierNode, LayoutModifierNode…