r8-analyzer
Skill1k starsChanged 4 days agoApache-2.0View on GitHub
Analyzes Android build files and R8 keep rules to identify redundancies,
- Installs packages
We split this skill into the rules it gives an agent
8 rules. 2 are common, 1 is distinctive, and 5 are very specific to this project.
2
Common
Most of the 5 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 26
Use references/CONFIGURATION.md to identify missing optimizations.
- Very specific: line 27
AGP: : If the version is lower than 9.3, suggest migration to 9.3 for the simplified optimization {} DSL and the Configuration Analyzer …
- Very specific: line 28
Full mode: : Verify android.enableR8.fullMode=false is removed from the gradle.properties file.
- Very specific: line 53
Step 3: Analyze: : Verify that the analysis outputs tmp/r8analysis/analysis_result.txt for scores and rule impact metrics.
- Very specific: line 57
Format: : Follow references/REPORT_FORMAT.md strictly.
- Distinctive: line 58
Redundant rules: : Check keep rules against references/INSPECT-RULES.md.
- Very specific: line 66
No placeholder scores: : Never print N/A% as a score.
- Common: line 67
No redundancy: Do not explain R8 benefits or reference skill internal files in the report.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Step 1. Setup and configuration check
- Inspect
build.gradle,build.gradle.kts, andgradle.properties. - Use references/CONFIGURATION.md to identify missing optimizations.
- AGP : If the version is lower than 9.3, suggest migration to 9.3 for the simplified
optimization {}DSL and the Configuration Analyzer task. - Full mode : Verify
android.enableR8.fullMode=falseis removed from thegradle.propertiesfile.
Step 2. Analysis path selection
- Inspect
build.gradle,build.gradle.kts,settings.gradle,settings.gradle.kts,gradle.properties, andlibs.versions.tomlto get the AGP and R8 versions. An R8 version pinned insettings.gradle(.kts)replaces the R8 bundled with AGP. - Find the app module (usually
app) and a build variant with R8 enabled (usuallyrelease). The following commands use them as<module>and<Variant>, for example:app:minifyReleaseWithR8. - The helper scripts are in this skill's
scripts/directory. In the following commands,<skill_dir>is this skill's directory. Run every command from the project root. - If AGP >= 9.3.0 : Proceed to Path A (Standalone Task).
- If AGP < 9.3.0 : Proceed to Path B (Quantitative).
Path A: Standalone Gradle task (AGP >= 9.3.0)
- Step 1: Check requirements : Python and the
protobufpackage 6.33.4 or later are mandatory (used byscripts/keep_radius_pb2.py). Install it withpip install "protobuf>=6.33.4"; versions lower than 6.33.4 fail on import with aVersionErrororImportError. - Step 2: Run standalone task on R8-enabled build : For the module and variant you found during path selection, run
./gradlew :<module>:analyze<Variant>R8Config(for example,./gradlew :app:analyzeReleaseR8Config). It generates the report in<module>/build/reports/r8/(for example,app/build/reports/r8/r8-config-analyzer-release.pb). You must wait for this command to finish before proceeding. - Step 3: Convert to JSON : You must explicitly run the conversion script
scripts/convert_pb_to_json.pyaspython3 <skill_dir>/scripts/convert_pb_to_json.pywith arguments<module>/build/reports/r8andtmp/keepradius/keepruleradius.json. Wait for this command to finish. - Step 4: Analyze : You must explicitly run the analysis script
scripts/analyze.pyby executingpython3 <skill_dir>/scripts/analyze.py tmp/keepradius/keepruleradius.json. This outputstmp/keepradius/analysis_result.txt. Wait for this command to finish.
Path B: Invoke R8 release build (AGP < 9.3.0)
- Step 1: Check requirements : Python and the
protobufpackage 6.33.4 or later are mandatory:pip install "protobuf>=6.33.4". - Step 2: Generate and analyze : You must run the shell commands described in references/FULL_BUILD_CONFIG_ANALYZER.md to temporarily update the R8 version in
settings.gradle(.kts)to 9.4.34 or later (so R8 generates the report), generate the proto report intmp/r8analysis/, convert it totmp/r8analysis/keepruleradius.json, analyze the result, and revert the temporarysettings.gradle(.kts)change. - Step 3: Analyze : Verify that the analysis outputs
tmp/r8analysis/analysis_result.txtfor scores and rule impact metrics.
Step 3. Report generation
- Format : Follow references/REPORT_FORMAT.md strictly.
- Redundant rules : Check keep rules against references/INSPECT-RULES.md. If a keep rule matches a pattern in references/INSPECT-RULES.md, include the guidance and remediation from that reference alongside the impact metrics.
- Input : Extract metrics (Scores, Impacts, Example Classes, rule origins) directly from the generated file
tmp/keepradius/analysis_result.txtif using Path A, ortmp/r8analysis/analysis_result.txtif using Path B. - Output : Short progress updates are fine while Gradle runs; the final message is the report only. Output only the raw Markdown report in the chat. Do not output conversational filler (for example, "Here is your report..."). Do not provide recommendations, next steps, or any other text outside of the sections defined in references/REPORT_FORMAT.md. Do not mention the path used for analysis of the configuration.
Constraints
- Strict output limit: The final output must strictly be the Markdown report and nothing else.
- No code changes : Research and suggest only; do not modify project files. Create files only under
tmp/(analysis output, the settings backup, and any scratch scripts), and never write the report to a file. The one exception is the temporary R8classpathinsettings.gradle(.kts)that Path B needs when the project doesn't already pin R8 9.4.34 or later: ask the user first when running interactively, and revert it after the analysis (see references/FULL_BUILD_CONFIG_ANALYZER.md). If that change is needed but the user says no, or asks you not to edit build files, report rule-level and build file findings without scores and say why. - No placeholder scores : Never print
N/A%as a score. - No redundancy: Do not explain R8 benefits or reference skill internal files in the report.
- Focus: Omit sections (for example, Subsumed Rules, Configuration) if no issues or items are found.
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- rosuH/EasyWatermark★ 1.9k45% same
- kid1412621/SummaryExpressive★ 21745% same
- deonmenezes/mobile-app-skill★ 445% same
Wrote their own version · 2
- drewid74/ai_skills★ 8same name
- zyyziyunying/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adaptiveSkill
- android-profilerSkill
- anr-audit-and-fixSkill
- edge-to-edgeSkill
- glance-appwidget-updates-and-memorySkill
- glance-canonical-layoutsSkill
- jetpack-compose-performanceSkill
- litert-lmSkill
- litert-runtimeSkill
- ml-kit-genai-prompt-apiSkill
- navigation-3Skill
- navigation-eventSkill
- testing-setupSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

