Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Manage a Google Play Developer account's members and their permissions with `gplay team`. Use when inviting or off-boarding a member, granting or adjusting per-app access, or looking up which permission alias or role bundle to use in the offline `team permissions` catalog.
.claude/skills/pollyglot-gplay-team/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -38% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -58% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -21% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -31% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -60% | 0% |
Two write surfaces and one offline reference: account-wide membership (team users), per-app access (team grants), and the permission vocabulary (team permissions). Shared conventions are in gplay-cli-usage.
bashgplay team permissions --scope app # offline; account scope by default (team users), app scope for team grants gplay team permissions --output json # marks the admin-conferring alias and bundle
Writes take --role <bundle> XOR --permissions <alias,…> (raw CAN_* enums accepted); team users resolves in account scope, team grants in app scope.
bashgplay team users list gplay team users view alice@example.com # one member: permissions + per-app grants (unknown member: exit 30) gplay team users add alice@example.com --role release-manager gplay team users set bob@example.com --permissions CAN_REPLY_TO_REVIEWS_GLOBAL # declaratively replaces the set gplay team users remove carol@example.com --confirm # off-boarding is destructive: exit 3 without it
add/set have no gate except conferring admin (--role admin, or a set containing the all-permissions enum): --grant-admin, exit 3 without it (ADR-0017). remove needs --confirm.
bashgplay team grants list gplay team grants set alice@example.com --package com.example.app --role reviewer # upsert; admin needs --grant-admin gplay team grants remove alice@example.com --package com.example.app --confirm # drops one app, keeps the membership
grants set --dry-run --output json reports the resolved verb (create/update) and the permission diff beside requires.
Commands address the Developer account id recorded by gplay auth login --developer-id; the override cascade (--developer-id) is in gplay-cli-usage.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,571 | 8,660 | -41% | 1 | 1 | 0% | 1,395 | 869 | -38% | 0 | 0 | — |
case-02 | fail→pass | 56,498 | 9,761 | -83% | 1 | 1 | 0% | 2,293 | 974 | -58% | 0 | 0 | — |
case-03 | fail→pass | 37,097 | 10,826 | -71% | 1 | 1 | 0% | 1,478 | 1,161 | -21% | 0 | 0 | — |
case-04 | fail→pass | 53,317 | 7,621 | -86% | 1 | 1 | 0% | 1,165 | 809 | -31% | 0 | 0 | — |
case-05 | fail→pass | 26,067 | 5,650 | -78% | 1 | 1 | 0% | 1,535 | 621 | -60% | 0 | 0 | — |
case-06 | fail→pass | 52,666 | 8,180 | -84% | 1 | 1 | 0% | 5,501 | 811 | -85% | 0 | 0 | — |
case-07 | fail→pass | 31,171 | 4,752 | -85% | 1 | 1 | 0% | 4,728 | 843 | -82% | 0 | 0 | — |
case-08 | fail→pass | 128,825 | 8,451 | -93% | 1 | 1 | 0% | 2,490 | 730 | -71% | 0 | 0 | — |
case-09 | fail→pass | 15,299 | 9,823 | -36% | 1 | 1 | 0% | 1,333 | 714 | -46% | 0 | 0 | — |
case-10 | fail→pass | 16,981 | 10,315 | -39% | 1 | 1 | 0% | 1,794 | 811 | -55% | 0 | 0 | — |
case-11 | fail→pass | 15,921 | 7,558 | -53% | 1 | 1 | 0% | 1,418 | 743 | -48% | 0 | 0 | — |
case-12 | fail→pass | 24,466 | 8,217 | -66% | 1 | 1 | 0% | 3,543 | 887 | -75% | 0 | 0 | — |
case-13 | fail→pass | 24,132 | 20,268 | -16% | 1 | 1 | 0% | 3,978 | 1,059 | -73% | 0 | 0 | — |
case-14 | fail→pass | 66,414 | 8,019 | -88% | 1 | 1 | 0% | 3,316 | 873 | -74% | 0 | 0 | — |
case-15 | fail→pass | 22,319 | 3,574 | -84% | 1 | 1 | 0% | 2,964 | 788 | -73% | 0 | 0 | — |
case-16 | fail→pass | 28,657 | 8,452 | -71% | 1 | 1 | 0% | 3,883 | 686 | -82% | 0 | 0 | — |
case-17 | fail→pass | 23,747 | 14,894 | -37% | 1 | 1 | 0% | 3,383 | 1,818 | -46% | 0 | 0 | — |
case-18 | fail→pass | 25,408 | 8,270 | -67% | 1 | 1 | 0% | 1,363 | 754 | -45% | 0 | 0 | — |
case-19 | pass→pass | 10,728 | 8,118 | -24% | 1 | 1 | 0% | 1,600 | 886 | -45% | 0 | 0 | — |
case-20 | fail→pass | 19,084 | 8,966 | -53% | 1 | 1 | 0% | 2,814 | 1,001 | -64% | 0 | 0 | — |
case-21 | pass→pass | 16,616 | 14,759 | -11% | 1 | 1 | 0% | 969 | 1,335 | +38% | 0 | 0 | — |
case-22 | pass→pass | 17,394 | 14,174 | -19% | 1 | 1 | 0% | 2,040 | 1,817 | -11% | 0 | 0 | — |
case-23 | pass→fail | 17,912 | 14,929 | -17% | 1 | 1 | 0% | 2,057 | 1,955 | -5% | 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. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 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 +78 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
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/24/2026 | +78% |
| gemini-3.6-flash | verified | 8/4/2026 | +73% |
Other measured skills in the registry, with their headline benchmark lift.