| name | verify |
| description | Run the tiered build verification ladder (cheapest first) for Android, iOS, or both. Use before claiming any change works, before pushing, and after KMP source edits. Argument: android | ios | all (default all). |
Verify
Run checks cheapest-first and stop at the first failure — report it rather than continuing to more expensive steps. All commands run from the repo root.
Android ladder
./gradlew :composeApp:compileDebugKotlinAndroid
./gradlew :composeApp:testDebugUnitTest
./gradlew :composeApp:lintDebug
./gradlew :composeApp:assembleDebug
iOS ladder
./gradlew :composeApp:compileKotlinIosSimulatorArm64
./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64
xcodebuild -project iosApp/iosApp.xcodeproj -scheme iosApp -configuration Debug \
-destination 'platform=iOS Simulator,name=iPhone 16 Pro' build CODE_SIGNING_ALLOWED=NO
Style (run for any non-trivial diff)
./gradlew ktlintCheck
./gradlew detekt
Fix style with ./gradlew ktlintFormat. Never edit or regenerate the baselines (composeApp/config/ktlint/baseline.xml, composeApp/detekt-baseline.xml) to make a check pass.
Guidance
all (default): Android ladder steps 1–3, iOS steps 1–2, then style.
- Any edit in
commonMain/iosMain requires the iOS ladder step 1 minimum; run step 2 before pushing KMP changes.
- Quote the failing output when reporting a failure; do not summarize it away.