Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Onboard gplay authentication from zero with the `auth` namespace. Use when setting up gplay auth for the first time, switching or rotating service accounts, managing stored accounts, or diagnosing why an authenticated gplay command fails with an auth error (exit 10/11).
.claude/skills/pollyglot-gplay-setup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -52% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -57% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -52% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -40% | 0% |
Covers the auth namespace. Shared conventions are in gplay-cli-usage.
gplay authenticates as a Google Cloud service account with the Android Publisher role, invited to your Play Console. Supply its JSON key via gplay auth login (a stored Account in the OS keystore, with a file fallback in CI containers), GPLAY_SERVICE_ACCOUNT, or --service-account; precedence in gplay-cli-usage.
bash# 1. Register the service account as the active Account. --developer-id records # the Play Console developer account id that `gplay team` and `customapps` address. gplay auth login --service-account ./service_account.json --developer-id <id> # 2. Confirm what gplay will use, and where the credential lives. gplay auth status # 3. Ordered diagnostics; --package adds the "is the SA invited on this app" round-trip. gplay auth doctor --package com.example.app
auth doctor is the first move when an authenticated command fails: it stops at the first failing check, so the report says whether the key is bad (exit 10) or valid but not invited on the app (exit 11, tested only with --package).
bashgplay auth list # every registered Account gplay auth logout <name> --confirm # remove an Account from the config + keystore
Rotate or switch by running gplay auth login again (the new Account becomes active; --activate=false only adds it), or target one per command with --account <name>.
Once auth doctor is green, move to gplay-apps: gplay apps add <package>, then gplay init to pin it.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | pass→pass | 29,912 | 8,032 | -73% | 1 | 1 | 0% | 2,957 | 761 | -74% | 0 | 0 | — |
case-01 | fail→pass | 13,815 | 24,231 | +75% | 1 | 1 | 0% | 2,333 | 1,116 | -52% | 0 | 0 | — |
case-02 | fail→pass | 14,827 | 5,512 | -63% | 1 | 1 | 0% | 2,739 | 1,172 | -57% | 0 | 0 | — |
case-03 | fail→pass | 17,351 | 4,419 | -75% | 1 | 1 | 0% | 1,968 | 951 | -52% | 0 | 0 | — |
case-04 | fail→pass | 36,362 | 4,536 | -88% | 1 | 1 | 0% | 1,348 | 1,072 | -20% | 0 | 0 | — |
case-05 | fail→fail | 22,035 | 3,322 | -85% | 1 | 1 | 0% | 2,658 | 734 | -72% | 0 | 0 | — |
case-06 | fail→pass | 16,666 | 9,811 | -41% | 1 | 1 | 0% | 1,777 | 1,065 | -40% | 0 | 0 | — |
case-07 | fail→pass | 17,116 | 6,615 | -61% | 1 | 1 | 0% | 1,923 | 1,025 | -47% | 0 | 0 | — |
case-08 | fail→pass | 19,028 | 12,699 | -33% | 1 | 1 | 0% | 1,750 | 1,310 | -25% | 0 | 0 | — |
case-09 | fail→pass | 8,847 | 6,128 | -31% | 1 | 1 | 0% | 1,106 | 825 | -25% | 0 | 0 | — |
case-10 | fail→fail | 12,626 | 3,458 | -73% | 1 | 1 | 0% | 1,852 | 919 | -50% | 0 | 0 | — |
case-12 | fail→pass | 19,109 | 11,458 | -40% | 1 | 1 | 0% | 2,299 | 676 | -71% | 0 | 0 | — |
case-13 | fail→pass | 13,609 | 4,005 | -71% | 1 | 1 | 0% | 1,848 | 858 | -54% | 0 | 0 | — |
case-14 | pass→pass | 19,282 | 8,648 | -55% | 1 | 1 | 0% | 2,049 | 938 | -54% | 0 | 0 | — |
case-15 | fail→pass | 15,722 | 2,418 | -85% | 1 | 1 | 0% | 1,258 | 705 | -44% | 0 | 0 | — |
case-16 | fail→pass | 15,159 | 8,158 | -46% | 1 | 1 | 0% | 1,272 | 820 | -36% | 0 | 0 | — |
case-17 | fail→pass | 14,369 | 3,479 | -76% | 1 | 1 | 0% | 1,325 | 728 | -45% | 0 | 0 | — |
case-18 | pass→pass | 23,400 | 11,039 | -53% | 1 | 1 | 0% | 982 | 951 | -3% | 0 | 0 | — |
case-19 | fail→pass | 14,411 | 3,487 | -76% | 1 | 1 | 0% | 2,113 | 827 | -61% | 0 | 0 | — |
case-20 | pass→pass | 48,073 | 13,728 | -71% | 1 | 1 | 0% | 2,309 | 1,881 | -19% | 0 | 0 | — |
case-21 | pass→pass | 18,936 | 11,607 | -39% | 1 | 1 | 0% | 1,993 | 2,147 | +8% | 0 | 0 | — |
case-22 | pass→pass | 13,956 | 11,506 | -18% | 1 | 1 | 0% | 1,672 | 1,580 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/23/2026 | +64% |
| gemini-3.6-flash | verified | 8/4/2026 | +57% |
Other measured skills in the registry, with their headline benchmark lift.