android-plan-reviewer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited android-plan-reviewer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are about to validate an Android implementation plan by checking every section against the real Android codebase and current Android industry knowledge. The process is iterative: spawn parallel agents to analyze sections, collect findings, apply inline corrections to the plan, and repeat until clean. This skill is Android-only - exit early if the working directory is not an Android project.
Gather two pieces of information (skip any the user already provided):
3), or infinite to keep looping until zero issues remain. Default to 3 if not specified.Once you have both, read the plan file and proceed.
Before reviewing anything, verify this is an Android project. Check for ANY of these signals (use Glob / Bash ls):
android/ directory at repo root (Flutter, React Native, Cordova, Ionic projects)app/build.gradle or app/build.gradle.ktsAndroidManifest.xml anywhere in treepubspec.yaml with a Flutter declaration AND an android/ directoryProjectSettings/AndroidPlayer* or Assets/Plugins/Android/)android/build.gradlecapacitor.config.* referencing android platformIf NONE match, exit immediately with this message and stop:
Not an Android project. This skill (android-plan-reviewer) only validates Android implementation plans. Use a generic plan-review skill instead.Otherwise, continue to Step 1.
Plans come in many formats. Read the file and figure out how THIS plan is organized. Common patterns:
##, ###, or mixed depths)1., 1.1, 2.)**Section Name**)Identify each discrete section:
Tell the user: "Found N sections. Starting review pass 1…"
Launch one Agent per section using subagent_type: "general-purpose". To avoid overwhelming the system, clamp to 10 agents per batch:
Every section gets its own agent regardless of size - don't merge or skip small sections. A 3-line "Scope Check" section gets the same treatment as a 200-line task implementation. Small sections are fast to review and occasionally hide wrong assumptions.
Each agent gets this prompt (fill in the {{placeholders}}):
You are reviewing one section of an implementation plan for accuracy and quality.
## Your Section
**Title:** {{section_title}}
**Content:**
{{section_text}}
## Project Context
Working directory: {{cwd}}
## Phase 1 - Codebase Validation
Verify every factual claim this section makes against the actual Android code. Specifically check:
- **File and directory paths** - do they exist? (use Glob, Read)
- **Function / class / variable names** - do they exist with the described signatures? (use Grep, Read)
- **Architecture claims** - does the code actually work the way the section describes? Read the relevant source files.
- **Gradle dependencies and versions** - do `build.gradle`, `build.gradle.kts`, `libs.versions.toml`, or `settings.gradle*` declare the versions the plan assumes? Check `app/`, root, and any included modules.
- **AndroidManifest** - do declared permissions, activities, services, receivers, providers, intent filters, and `<meta-data>` entries match the plan?
- **ProGuard / R8 rules** - are referenced rules present in `proguard-rules.pro` (or equivalent)? Are keep rules consistent with what the plan describes?
- **Signing config** - do `signingConfigs` blocks in `build.gradle*` match the plan's assumptions about debug/release signing?
- **SDK levels** - do `compileSdk`, `minSdk`, `targetSdk` in `build.gradle*` match the plan?
- **UI stack** - does the project actually use what the plan claims (Jetpack Compose, classic Views, Fragments, Navigation Component, etc.)? Check imports and `setContentView` vs `setContent` usage.
- **Cross-platform layer** - for Flutter / RN / Unity / Capacitor projects, also verify the JS/Dart/C# side matches plan claims about bridges, channels, plugins.
- **Configuration** - do `gradle.properties`, `local.properties`, `google-services.json`, env vars, and project settings match the plan's assumptions?
For every claim, confirm it or flag it as incorrect.
## Phase 2 - Web Research
Use WebSearch and WebFetch to check (Android-focused):
- **Android SDK** - what is the current stable target SDK? Is the plan's `targetSdk` still allowed by current Play Console policy? Are referenced platform APIs deprecated or removed in newer API levels?
- **Jetpack libraries** - current stable versions (androidx.*, Compose BOM, Navigation, Room, Lifecycle, WorkManager, etc.). Compose: stable channel vs alpha/beta - is the plan tracking the right channel?
- **Play Console policy** - recent policy changes (data safety, target SDK requirements, billing, permissions) that affect the plan?
- **Play Billing** - current Billing Library version, breaking changes since the plan's assumed version?
- **Material Design** - Material 3 / Material You guidance changes; deprecated components?
- **Firebase / Play Services** - current SDK versions, deprecated APIs, BoM versions?
- **Android Gradle Plugin (AGP) / Kotlin / Gradle** - current stable AGP, KGP, Gradle versions and known incompatibilities with the plan's versions?
- **Deprecated APIs** - has any framework, Jetpack, or Play Services API the plan references been deprecated, removed, or superseded?
- **Architectural best practices** - is the proposed approach still recommended (e.g., MVI vs MVVM, single-activity vs multi-activity, Hilt vs Koin, Compose Navigation vs Navigation Component, KMP vs platform-only)? Cite official Android Developer docs where possible.
- **Security** - known CVEs or vulnerability patterns (insecure deeplinks, exported components, WebView misuse, weak network configs, key storage, biometric prompt misuse).
- **Community consensus** - check official Android Developers docs, AndroidX release notes, Google I/O sessions, and reputable sources (not just blog posts).
Go deep - don't just confirm the surface claim, check whether the underlying approach is still recommended for Android in 2026.
## Output Format
For each issue you find, return exactly this structure:
ISSUE:
- Section: {{section_title}}
- Location: "{{exact quote from the plan that is wrong or problematic}}"
- Problem: {{what is wrong and why}}
- Correction: "{{the corrected text that should replace the quoted location}}"
- Source: {{how you verified - file path you read, URL you checked, etc.}}
- Severity: {{critical | important | suggestion}}
If you find zero issues, return exactly:
NO_ISSUES: {{section_title}}Wait for all agents to complete, then gather their results.
Group issues by severity:
Tell the user: "Pass N: found X issues (Y critical, Z important, W suggestions) across N sections."
If zero issues were found across all sections, skip to Step 6 (early termination).
Edit the plan file. For each issue, replace the problematic text with the corrected version plus a review annotation.
Replace the wrong text and append a short bracketed note explaining why:
Before:
Set up a PostgreSQL 14 connection pool using `pg-pool` v3.2After:
Set up a PostgreSQL 16 connection pool using `pg-pool` v3.7 [Reviewed: PostgreSQL 16 is the current stable release; pg-pool 3.7 includes critical connection-leak fixes - see https://github.com/brianc/node-postgres/releases]For architectural concerns where the original text isn't factually "wrong" but the approach is problematic, insert a correction note directly after the relevant paragraph:
[Reviewed: This approach creates a new DB connection per request, which is a well-documented anti-pattern under load. Use a connection pool with a max-connections limit instead - see https://node-postgres.com/features/pooling][Reviewed: …] annotation includes why and a source (file path or URL).Increment the iteration counter. Then:
infinite) → go back to Step 1. Re-read the modified plan - corrections might have introduced new inconsistencies, and fresh eyes catch things the first pass missed.Tell the user at each decision point: "Pass N complete. [Continuing… / No issues found - stopping. / Max iterations reached - stopping.]"
When the review is done, report:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.