Enforcing Stability In CI
rosuH/EasyWatermark
A skill your agent uses to set up a CI gate that fails the build when Compose stability silently regresses, using the skydoves/compose-stability-analyzer Gradle plugin (primary) or the…
Debug and optimize Android/Gradle build performance. An agent skill from Moustachauve/WLED-Android.
$ npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Moustachauve/WLED-Android gradle-build-performance --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Moustachauve/WLED-Android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/gradle-build-performance .claude/skills/gradle-build-performance && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gradle-build-performance" agent skill from https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performance into .claude/skills/gradle-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradle-build-performance", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performanceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Moustachauve/WLED-Android gradle-build-performance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Moustachauve/WLED-Android.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/gradle-build-performance .agents/skills/gradle-build-performance && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gradle-build-performance" agent skill from https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performance into .agents/skills/gradle-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradle-build-performance", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Moustachauve/WLED-Android gradle-build-performance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Moustachauve/WLED-Android.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/gradle-build-performance .cursor/skills/gradle-build-performance && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gradle-build-performance" agent skill from https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performance into .cursor/skills/gradle-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradle-build-performance", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Moustachauve/WLED-Android.git --path .github/skills/gradle-build-performance--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Moustachauve/WLED-Android gradle-build-performance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Moustachauve/WLED-Android.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/gradle-build-performance .gemini/skills/gradle-build-performance && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gradle-build-performance" agent skill from https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performance into .gemini/skills/gradle-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradle-build-performance", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Moustachauve/WLED-Android gradle-build-performanceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Moustachauve/WLED-Android.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/gradle-build-performance .github/skills/gradle-build-performance && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gradle-build-performance" agent skill from https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performance into .github/skills/gradle-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradle-build-performance", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Moustachauve/WLED-Android gradle-build-performance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Moustachauve/WLED-Android.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/gradle-build-performance .opencode/skills/gradle-build-performance && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gradle-build-performance" agent skill from https://github.com/Moustachauve/WLED-Android/tree/main/.github/skills/gradle-build-performance into .opencode/skills/gradle-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradle-build-performance", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gradle-build-performanceDebug and optimize Android/Gradle build performance. An agent skill from Moustachauve/WLED-Android.
Gradle Build Performance is an agent skill from Moustachauve/WLED-Android. Debug and optimize Android/Gradle build performance. Use when builds are slow, investigating CI/CD performance, analyzing build scans, or identifying compilation bottlenecks.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering CI/CD. It works with Gradle and Android. The repository describes itself as: Native Android application for WLED. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7e164a8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are kotlin, properties and bash).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gradle.comAlso links to:
developer.android.comdocs.gradle.orgscans.gradle.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Gradle Build Performance loads about 2k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 575 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Moustachauve/WLED-Android at commit 7e164a8, republished under its Apache-2.0 licence (© Moustachauve). 575 words, ~2,033 tokens.
.claude/skills/gradle-build-performance/SKILL.md (or your agent's skills folder)../gradlew assembleDebug --scan./gradlew assembleDebug --scan./gradlew assembleDebug --profile
# Opens report in build/reports/profile/./gradlew assembleDebug --info | grep -E "^\:.*"
# Or view in Android Studio: Build > Analyze APK Build| Phase | What Happens | Common Issues |
|---|---|---|
| Initialization | settings.gradle.kts evaluated | Too many include() statements |
| Configuration | All build.gradle.kts files evaluated | Expensive plugins, eager task creation |
| Execution | Tasks run based on inputs/outputs | Cache misses, non-incremental tasks |
Build scan → Performance → Build timelineCaches configuration phase across builds (AGP 8.0+):
# gradle.properties
org.gradle.configuration-cache=true
org.gradle.configuration-cache.problems=warnReuses task outputs across builds and machines:
# gradle.properties
org.gradle.caching=trueBuild independent modules simultaneously:
# gradle.properties
org.gradle.parallel=trueAllocate more memory for large projects:
# gradle.properties
org.gradle.jvmargs=-Xmx4g -XX:+UseParallelGCReduces R class size and compilation (AGP 8.0+ default):
# gradle.properties
android.nonTransitiveRClass=trueKSP is 2x faster than kapt for Kotlin:
// Before (slow)
kapt("com.google.dagger:hilt-compiler:2.51.1")
// After (fast)
ksp("com.google.dagger:hilt-compiler:2.51.1")Pin dependency versions:
// BAD: Forces resolution every build
implementation("com.example:lib:+")
implementation("com.example:lib:1.0.+")
// GOOD: Fixed version
implementation("com.example:lib:1.2.3")Put most-used repositories first:
// settings.gradle.kts
dependencyResolutionManagement {
repositories {
google() // First: Android dependencies
mavenCentral() // Second: Most libraries
// Third-party repos last
}
}Composite builds are faster than project() for large monorepos:
// settings.gradle.kts
includeBuild("shared-library") {
dependencySubstitution {
substitute(module("com.example:shared")).using(project(":"))
}
}# gradle.properties
kapt.incremental.apt=true
kapt.use.worker.api=trueDon't read files or make network calls during configuration:
// BAD: Runs during configuration
val version = file("version.txt").readText()
// GOOD: Defer to execution
val version = providers.fileContents(file("version.txt")).asTextAvoid create(), use register():
// BAD: Eagerly configured
tasks.create("myTask") { ... }
// GOOD: Lazily configured
tasks.register("myTask") { ... }Symptoms: Build scan shows long "Configuring build" time
Causes & Fixes:
| Cause | Fix |
|---|---|
| Eager task creation | Use tasks.register() instead of tasks.create() |
| buildSrc with many dependencies | Migrate to Convention Plugins with includeBuild |
| File I/O in build scripts | Use providers.fileContents() |
| Network calls in plugins | Cache results or use offline mode |
Symptoms: :app:compileDebugKotlin takes too long
Causes & Fixes:
| Cause | Fix |
|---|---|
| Non-incremental changes | Avoid build.gradle.kts changes that invalidate cache |
| Large modules | Break into smaller feature modules |
| Excessive kapt usage | Migrate to KSP |
| Kotlin compiler memory | Increase kotlin.daemon.jvmargs |
Symptoms: Tasks always rerun despite no changes
Causes & Fixes:
| Cause | Fix |
|---|---|
| Unstable task inputs | Use @PathSensitive, @NormalizeLineEndings |
| Absolute paths in outputs | Use relative paths |
Missing @CacheableTask | Add annotation to custom tasks |
| Different JDK versions | Standardize JDK across environments |
// settings.gradle.kts
buildCache {
local { isEnabled = true }
remote<HttpBuildCache> {
url = uri("https://cache.example.com/")
isPush = System.getenv("CI") == "true"
credentials {
username = System.getenv("CACHE_USER")
password = System.getenv("CACHE_PASS")
}
}
}For advanced build analytics:
// settings.gradle.kts
plugins {
id("com.gradle.develocity") version "3.17"
}
develocity {
buildScan {
termsOfUseUrl.set("https://gradle.com/help/legal-terms-of-use")
termsOfUseAgree.set("yes")
publishing.onlyIf { System.getenv("CI") != null }
}
}# Skip tests for UI-only changes
./gradlew assembleDebug -x test -x lint
# Only run affected module tests
./gradlew :feature:login:testAfter optimizations, verify:
© Moustachauve, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/gradle-build-performance of Moustachauve/WLED-Android.
Open the folder on GitHubat commit 7e164a8
We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in Moustachauve/WLED-Android, which our catalogue first saw on October 7, 2026.
Gradle Build Performance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gradle Build Performance this skillMoustachauve/WLED-Android | 169 | 3 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Enforcing Stability In CIrosuH/EasyWatermark | 1.9k | 1 repos | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Gradle Build Performancercosteira79/android-skills | 153 | — | ~720 | Automated safety check: Pass | MIT | |
| Gplay Gradle Buildhanamizuki/solopreneur | 152 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Android Cicddavila7/claude-code-templates | 33k | — | ~2.2k | Automated safety check: Pass | MIT | |
| GitHub Workflowsamirisback/automated-build-android-app-with-github-action | 346 | — | ~550 | Automated safety check: Pass | Apache-2.0 |
rosuH/EasyWatermark
A skill your agent uses to set up a CI gate that fails the build when Compose stability silently regresses, using the skydoves/compose-stability-analyzer Gradle plugin (primary) or the…
rcosteira79/android-skills
A skill your agent uses when Android/Gradle builds are slow — diagnosing bottlenecks with build scans, enabling configuration cache, migrating kapt to KSP, fixing cache misses, and optimizing CI/CD…
hanamizuki/solopreneur
Build, sign, and package Android apps with Gradle before uploading to Google Play.
davila7/claude-code-templates
Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.
amirisback/automated-build-android-app-with-github-action
Manage and automate Android CI/CD workflows using GitHub Actions in this repository.
skydoves/android-testing-skills
A skill your agent uses to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI.
Moustachauve/WLED-Android
Audit and improve Jetpack Compose runtime performance from code review and architecture.
Moustachauve/WLED-Android
Best practices for building UI with Jetpack Compose, focusing on state hoisting, detailed performance optimizations, and theming.
Moustachauve/WLED-Android
Kotlin Coroutines review and remediation for Android. An agent skill from Moustachauve/WLED-Android.
Moustachauve/WLED-Android
Expert guidance on using Coil for image loading in Jetpack Compose.
Moustachauve/WLED-Android
Convert Android XML layouts to Jetpack Compose. An agent skill from Moustachauve/WLED-Android.
Moustachauve/WLED-Android
Production-ready scripts for Android app testing, building, and automation.
Categories
Debug and optimize Android/Gradle build performance. An agent skill from Moustachauve/WLED-Android. Gradle Build Performance is an agent skill from Moustachauve/WLED-Android. Debug and optimize Android/Gradle build performance.
Gradle Build Performance fits situations like: builds are slow; investigating CI/CD performance; analyzing build scans; identifying compilation bottlenecks.
Run `npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a claude-code`. Or copy the skill folder (.github/skills/gradle-build-performance in Moustachauve/WLED-Android) into .claude/skills/gradle-build-performance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a codex`. Or copy the skill folder (.github/skills/gradle-build-performance in Moustachauve/WLED-Android) into .agents/skills/gradle-build-performance in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Moustachauve/WLED-Android --skill gradle-build-performance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gradle-build-performance, .gemini/skills/gradle-build-performance, .github/skills/gradle-build-performance and .opencode/skills/gradle-build-performance in your project.
SKILL.md names no scripts, command-line tools or credentials: Gradle Build Performance is instructions for the agent only.
SKILL.md names 4 domains. In commands or code: gradle.com; the agent is likely to contact it when it follows the instructions. As links in the text: developer.android.com, docs.gradle.org and scans.gradle.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Gradle Build Performance is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Gradle Build Performance: Enforcing Stability In CI (rosuH/EasyWatermark, 1.9k stars), Gradle Build Performance (rcosteira79/android-skills, 153 stars), Gplay Gradle Build (hanamizuki/solopreneur, 152 stars) and Android Cicd (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Moustachauve (a GitHub user) maintains it in Moustachauve/WLED-Android, which has 169 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 10, 2026.
Source: Moustachauve/WLED-Android on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.