Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Upgrade an Android project to Android Gradle Plugin (AGP) 9. Use when migrating to AGP 9, updating Gradle build files, migrating to built-in Kotlin, or adopting the new AGP DSL.
.claude/skills/hoangnguyen0403-android-agp-upgrade/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -58% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -28% | 0% |
Step-by-step workflow for upgrading an Android project to AGP 9.
com.google.devtools.ksp) is used, ensure version 2.3.6+.AGP 9 includes built-in Kotlin support — the org.jetbrains.kotlin.android plugin is no longer needed.
See migration guide for detailed steps.
AGP 9 introduces a new DSL for android {} blocks. Key changes include namespace handling, build type configuration, and source set declarations.
See DSL migration for before/after examples.
If the project uses kapt:
legacy-kapt as a bridge.If any module uses custom BuildConfig fields, update to the new AGP 9 syntax.
Remove these flags after migration:
android.builtInKotlinandroid.newDslandroid.uniquePackageNamesandroid.enableAppCompileTimeRClassandroid.disallowKotlinSourceSets=false to gradle.properties.clean task when verifying — it wastes time../gradlew help succeeds../gradlew build --dry-run succeeds.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | 17,971 | 13,632 | -24% | 1 | 1 | 0% | 3,451 | 3,509 | +2% | 0 | 0 | — |
case-01 | fail→pass | 17,903 | 14,668 | -18% | 1 | 1 | 0% | 3,238 | 3,500 | +8% | 0 | 0 | — |
case-03 | fail→pass | 17,042 | 7,880 | -54% | 1 | 1 | 0% | 2,915 | 2,179 | -25% | 0 | 0 | — |
case-04 | fail→pass | 12,607 | 2,389 | -81% | 1 | 1 | 0% | 2,374 | 994 | -58% | 0 | 0 | — |
case-05 | fail→pass | 10,469 | 4,678 | -55% | 1 | 1 | 0% | 1,986 | 1,422 | -28% | 0 | 0 | — |
case-06 | pass→pass | 13,215 | 4,291 | -68% | 1 | 1 | 0% | 2,193 | 1,350 | -38% | 0 | 0 | — |
case-07 | fail→pass | 13,513 | 1,613 | -88% | 1 | 1 | 0% | 2,135 | 837 | -61% | 0 | 0 | — |
case-08 | pass→pass | 12,150 | 4,530 | -63% | 1 | 1 | 0% | 2,052 | 1,413 | -31% | 0 | 0 | — |
case-09 | fail→pass | 9,901 | 3,540 | -64% | 1 | 1 | 0% | 1,615 | 1,169 | -28% | 0 | 0 | — |
case-10 | pass→pass | 12,255 | 3,069 | -75% | 1 | 1 | 0% | 2,175 | 1,115 | -49% | 0 | 0 | — |
case-11 | pass→pass | 3,766 | 2,822 | -25% | 1 | 1 | 0% | 574 | 1,088 | +90% | 0 | 0 | — |
case-12 | pass→pass | 11,913 | 3,068 | -74% | 1 | 1 | 0% | 1,884 | 1,055 | -44% | 0 | 0 | — |
case-13 | fail→pass | 11,130 | 7,013 | -37% | 1 | 1 | 0% | 1,964 | 1,887 | -4% | 0 | 0 | — |
case-14 | fail→pass | 12,896 | 2,613 | -80% | 1 | 1 | 0% | 2,087 | 975 | -53% | 0 | 0 | — |
case-15 | fail→pass | 9,637 | 1,983 | -79% | 1 | 1 | 0% | 1,728 | 932 | -46% | 0 | 0 | — |
case-16 | fail→pass | 10,214 | 2,379 | -77% | 1 | 1 | 0% | 1,961 | 907 | -54% | 0 | 0 | — |
case-17 | pass→pass | 12,214 | 2,285 | -81% | 1 | 1 | 0% | 2,077 | 984 | -53% | 0 | 0 | — |
case-18 | pass→pass | 6,519 | 2,203 | -66% | 1 | 1 | 0% | 1,180 | 959 | -19% | 0 | 0 | — |
case-19 | pass→pass | 5,809 | 1,561 | -73% | 1 | 1 | 0% | 1,021 | 838 | -18% | 0 | 0 | — |
case-20 | pass→pass | 15,218 | 4,856 | -68% | 1 | 1 | 0% | 2,560 | 1,457 | -43% | 0 | 0 | — |
case-21 | pass→pass | 11,439 | 5,666 | -50% | 1 | 1 | 0% | 2,088 | 1,700 | -19% | 0 | 0 | — |
case-22 | fail→pass | 16,036 | 6,699 | -58% | 1 | 1 | 0% | 3,354 | 1,702 | -49% | 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. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 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.
Other measured skills in the registry, with their headline benchmark lift.