docs(skills): Google android-skills adoption PRD + precedence guard (#139) - #141
Conversation
…edence guard (#139) Owner-approved: all 21 skills via the official plugin (curation overruled). The settings.json enablement itself is harness-gated and applied by the owner; this lands the PRD record and the repo-docs-win precedence section. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UYnJd1K9tbrjaj8DZCStev
…findings Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UYnJd1K9tbrjaj8DZCStev
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UYnJd1K9tbrjaj8DZCStev
PRD plan step 2 (c)/(d) → ✅ 2026-08-22 with the measured evidence: a fresh session lists all 21 android-skills:* skills while ~/.claude/settings.json carries only the extraKnownMarketplaces source, and `claude -p` from a non-repo folder reports 0 android-skills entries. Corrects the now-stale "enabled at user scope" sentence in the Decision section. cspell / markdownlint / markdown-link-check re-run on the final content: 0 issues. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ZsG3UjeuYBU1FbH6NDXnU
PR Review — Google Android Standards ComplianceReviewer: Claude (Automated) PASSThe PR is documentation + agent-harness config, so the review question is Lesson 007: do the docs and config agree with the code, with each other, and with the tools they describe? Every claim below was checked by command, not read.
FAILNone. WARNINGNone. RECOMMENDATIONS
Summary
(The single REC is a documentation-accuracy item about the agent harness; it is counted on the Architecture row because CLAUDE.md/guide govern how agents treat the architecture decisions.) VerdictAPPROVE Docs + config only; no app code changed, so the build / unit / instrumented / emulator gates of |
Description
Google ships 21 agent skills for Android (
android/skills, Apache 2.0). This PR adopts them through the official Claude Code plugin — all 21, uncurated (owner decision;docs/PRD-android-skills.mdrecords the decision, the triage of every skill, the play-policy-insights pilot verdict, and the future-feature mapping) — and adds a precedence guard toCLAUDE.md: where a skill conflicts with a documented repo decision, the repo wins. The known collisions are spelled out there (navigation-3vs the Lesson-014 sealedOpenLoopNavHost,camerax'sMlKitAnalyzerpreference vs the deliberate manualFaceTrackeranalyzer, AGP ceiling = the installed Studio pairing).The plugin is enabled at project scope via the checked-in
.claude/settings.json(extraKnownMarketplacessource +enabledPluginsobject map), never user scope: Claude Code injects every enabled skill's name + description into each turn (~2 k tokens for these 21), so user scope would tax every project on the machine while the guard — which lives in this repo'sCLAUDE.md— protects none of them.docs/guides/android-skills.md(+ its row indocs/guides/README.md) is the how-to: forcing a skill (/android-skills:camerax), project-only scoping and the user→project migration, the r8-analyzer / play-policy-insights cadences, updates..gitignoregains the two skill scratch dirs (.scratch/,tmp/);cspell.jsongains 7 terms.Related Issue
Closes #139
Work that outlives this PR is tracked elsewhere, so closing #139 is honest:
source_labelkey can carry a user-picked file name)docs/hygiene after the skills landedmediaProcessing+dataSync(pilot finding 4) — manual owner action in Play Console, not a repo changeType of Change
CLAUDE.mdprecedence section.claude/settings.jsonplugin enablement,.gitignore,cspell.jsonHow Has This Been Tested?
No app code changed (
app/**untouched, 7 files: 5 Markdown +.claude/settings.json+.gitignore+cspell.json). TheDEFINITION_OF_DONE.mdbuild / unit + instrumented test / 16 KB zipalign / emulator-screenshot gates are therefore N/A and are stated as such rather than ticked.android-skills:<name>entries (agp-9-upgrade … display-glasses-with-jetpack-compose-glimmer).grep -n android-skills ~/.claude/settings.json→39: "android-skills": {— that line is theextraKnownMarketplacessource; the user-levelenabledPluginsmap has no android-skills entry.%LOCALAPPDATA%\Temp\claude\…\scratchpad;git rev-parse --show-toplevel→ "not a git repository"):claude -p "Reply with only the count of skills in your list whose name starts with android-skills:"→0.|| true), so its green check alone proves nothing. Files:docs/PRD-android-skills.md CLAUDE.md docs/guides/android-skills.md docs/guides/README.mdnpx cspell --no-progress→CSpell: Files checked: 4, Issues found: 0 in 0 files.npx markdownlint-cli2→Summary: 0 issues in 0 filesnpx markdown-link-check --config .markdown-link-check.jsonper file → 3 / 12 / 2 / 7 links checked, 0 dead, exit 0 each./gradlew :app:lintDebug) on3768182, local:BUILD SUCCESSFUL, exit 0, and the XML reportapp/build/reports/lint-results-debug.xmlis an empty<issues/>— HTML says No Issues Found (0 errors / 0 warnings; no baseline,abortOnError=false, so the build could not have masked findings). Thepr-reviewerskill's report comment on this PR carries the formal gate.cameraxauto-triggering on a real camera task — is left ☐ (no camera-domain work has happened since the install; no staged task to tick the box). The Play Console FGS declaration is the owner's manual action.Checklist
3768182(above)🤖 Generated with Claude Code
https://claude.ai/code/session_01UYnJd1K9tbrjaj8DZCStev
Note
Low Risk
Documentation and Claude Code plugin settings only; no application, auth, or data-handling code. The main operational risk is auto-triggering skills that conflict with architecture, which this PR mitigates with an explicit precedence guard.
Overview
Adopts Google's official
android/skillsplugin for this repo (all 21 skills, uncurated) and records how agents must treat them.Checks in
.claude/settings.jsonso the marketplace and plugin load at project scope only.CLAUDE.mdnow states that repo docs win over skill guidance, with explicit collisions: do not migrate to Navigation 3, keep the manualFaceTrackeranalyzer, and do not bump AGP past the installed Studio pairing.Adds
docs/PRD-android-skills.md(triage, pilot verdict for play-policy-insights, future-feature mapping) anddocs/guides/android-skills.md(how to force a skill, r8-analyzer / Play-policy cadences, updates). Gitignores skill scratch output (.scratch/,tmp/).Reviewed by Cursor Bugbot for commit 3768182. Bugbot is set up for automated code reviews on this repo. Configure here.