Files
ECC/pi/core/commands/gradle-build.md
T
Affaan Mustafa c70874fae9 feat(pi): curated pi/core skills+prompts profile, CI load test, and 2.2.2 release sync (#3264)
Adds a curated, Pi-native, skills+prompts-only profile at pi/core/ for downstream packagers that mirror GitHub Releases.

- manifests/pi-core.json: explicit include lists, per-item exclusion reasons, curation rules, safety allowlists; every root skill and command must be classified.
- scripts/build-pi-core.js regenerates pi/core deterministically (package.json from VERSION, LICENSE, README.md, CURATION.md, skills/, commands/); --check fails CI on drift. council is renamed ecc-council inside pi/core only.
- Safety checks: no callable endpoints outside the allowlist, no npx/curl|sh/pip install, no secrets, no absolute home paths, no symlinks, valid frontmatter, no duplicate names.
- CI: build + drift check and an offline Pi CLI load test of pi/core.
- Release: VERSION, package.json and pi/core/package.json at 2.2.2, CHANGELOG, tag-triggered release verification, and a two-week cadence in CONTRIBUTING.md.

pi/core: 123 of 293 skills and 24 of 94 commands; 35,006 characters of skill description text.
2026-09-29 20:24:05 -05:00

2.5 KiB

description
description
Fix Gradle build errors for Android and KMP projects

Gradle Build Fix

Incrementally fix Gradle build and compilation errors for Android and Kotlin Multiplatform projects.

Step 1: Detect Build Configuration

Identify the project type and run the appropriate build:

Indicator Build Command
build.gradle.kts + composeApp/ (KMP) ./gradlew composeApp:compileKotlinMetadata 2>&1
build.gradle.kts + app/ (Android) ./gradlew app:compileDebugKotlin 2>&1
settings.gradle.kts with modules ./gradlew assemble 2>&1
Detekt configured ./gradlew detekt 2>&1

Also check gradle.properties and local.properties for configuration.

Step 2: Parse and Group Errors

  1. Run the build command and capture output
  2. Separate Kotlin compilation errors from Gradle configuration errors
  3. Group by module and file path
  4. Sort: configuration errors first, then compilation errors by dependency order

Step 3: Fix Loop

For each error:

  1. Read the file — Full context around the error line
  2. Diagnose — Common categories:
    • Missing import or unresolved reference
    • Type mismatch or incompatible types
    • Missing dependency in build.gradle.kts
    • Expect/actual mismatch (KMP)
    • Compose compiler error
  3. Fix minimally — Smallest change that resolves the error
  4. Re-run build — Verify fix and check for new errors
  5. Continue — Move to next error

Step 4: Guardrails

Stop and ask the user if:

  • Fix introduces more errors than it resolves
  • Same error persists after 3 attempts
  • Error requires adding new dependencies or changing module structure
  • Gradle sync itself fails (configuration-phase error)
  • Error is in generated code (Room, SQLDelight, KSP)

Step 5: Summary

Report:

  • Errors fixed (module, file, description)
  • Errors remaining
  • New errors introduced (should be zero)
  • Suggested next steps

Common Gradle/KMP Fixes

Error Fix
Unresolved reference in commonMain Check if the dependency is in commonMain.dependencies {}
Expect declaration without actual Add actual implementation in each platform source set
Compose compiler version mismatch Align Kotlin and Compose compiler versions in libs.versions.toml
Duplicate class Check for conflicting dependencies with ./gradlew dependencies
KSP error Run ./gradlew kspCommonMainKotlinMetadata to regenerate
Configuration cache issue Check for non-serializable task inputs