Borrowing it
Nothing to install: this file belongs to arindamxd/camerax-android. 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/arindamxd/camerax-android/master/.agents/skills/r8-analyzer/SKILL.mdgit clone --depth 1 https://github.com/arindamxd/camerax-androidWrote 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/arindamxd/camerax-android/r8-analyzer)<a href="https://agentmods.dev/skills/arindamxd/camerax-android/r8-analyzer"><img src="https://agentmods.dev/badge/skills/arindamxd/camerax-android/r8-analyzer.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.1 | $0.00060 | $0.01149 |
| Opus 5 | $0.00030 | $0.00575 |
| Sonnet 5 | $0.00012 | $0.00230 |
| Haiku 4.5 | $0.00006 | $0.00115 |
Grade A, and why
r8-analyzer 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 8d 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.
This is a copy
97% identical to r8-analyzer — 5 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Step 1. Setup and configuration check
- Inspect
build.gradle,build.gradle.kts, andgradle.properties. - Use references/CONFIGURATION.md to identify missing optimizations.
- AGP : If version is lower than 9.0, suggest migration to 9.0 for build-time performance improvement.
- Full Mode : Verify
android.enableR8.fullMode=falseis removed from gradle.properties.
Step 2. Analysis path selection
-
Inspect
build.gradle,build.gradle.kts, andgradle.propertiesandlibs.versions.tomlto get the AGP and R8 versions. -
If AGP >= 9.3.0 : Proceed to Path A (Standalone Task).
-
If AGP < 9.3.0 and R8 >= 9.3.7-dev : Proceed to Path B (Quantitative).
-
If none of the conditions are met, proceed to Path C (Heuristic).
Path A: Standalone Gradle task (AGP >= 9.3.0)
- Step 1: Run standalone task : Run
./gradlew :app:analyzeReleaseR8Configto evaluate the R8 configuration. You MUST wait for this command to finish before proceeding. - Step 2: Convert to JSON : The report is generated at
app/build/reports/r8/r8-config-analyzer-release.pb. You MUST explicitly run the conversion script by executing:python3 .agents/skills/r8-analyzer/scripts/convert_pb_to_json.py. Wait for this command to finish. - Step 3: Analyze : You MUST explicitly run the analysis script by executing:
python3 .agents/skills/r8-analyzer/scripts/analyze.py. This outputstmp/keepradius/analysis_result.txt. Wait for this command to finish.
Path B: Quantitative data generation (R8 >= 9.3.7-dev and AGP < 9.3.0)
- Step 1: Check requirements : Python and
protobufpackage are mandatory. - Step 2: Generate and analyze : You MUST run the shell commands described in references/CONFIGURATION-ANALYZER.md to generate the proto file using R8 configuration analyzer, convert it to JSON and analyze the result.
- Step 3: Analyze : You MUST ensure the analysis produces
tmp/keepradius/analysis_result.txtfor scores and rule impact metrics.
What ships with it
8 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/android/topic/performance/app-optimization/enable-app-optimization.md 16 KB
- references/android/training/testing/other-components/ui-automator.md 14 KB
- references/CONFIGURATION-ANALYZER.md 17 KB
- references/CONFIGURATION.md 1.5 KB
- references/KEEP-RULES-IMPACT-HIERARCHY.md 3.1 KB
- references/REDUNDANT-RULES.md 8.5 KB
- references/REFLECTION-GUIDE.md 4.2 KB
- references/REPORT_FORMAT.md 2.0 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.
- 8d ago First seen · 69 lines · 60 tokens per session scan A 0578f4f75159
r8-analyzer is a skill published in the GitHub repository arindamxd/camerax-android (132 stars, last pushed 9d ago), licensed Apache-2.0. It adds 60 tokens to every session and 1,149 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 97% identical to r8-analyzer, differing in 5 lines, and is treated as a copy.
Other skills, from other repositories
sceneview-ios
Build 3D and AR apps on Apple platforms (iOS, macOS, visionOS) with SceneViewSwift — the SwiftUI wrapper around RealityKit. Use whenever the user asks for "3D in SwiftUI", "AR with ARKit in SwiftUI", a model viewer for iOS, or any Apple-platform 3D/AR app where the dependency is the SceneViewSwift Swift Package from…
sceneview
Build 3D and AR apps with the SceneView SDK in Jetpack Compose, SwiftUI (iOS/macOS/visionOS via SceneViewSwift), Web (Filament.js), Flutter and React Native. Use whenever the user asks for "3D in Compose", "AR with ARCore in Compose", a model viewer, or any cross-platform 3D/AR app where the dependency is…
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.
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.