Introduction¶
KMP-IMPACT is a PR-native dependency-impact analyzer for Kotlin Multiplatform projects. It runs as a GitHub Actions workflow on every pull request that modifies gradle/libs.versions.toml and turns the version-catalog diff into source-set-aware review evidence: direct and transitive Kotlin files, detected expect/actual pairs, optional Android UI-transition diffs, and a navigable HTML report linked from the PR comment.
New here? Start with Installation, then run a first analysis from the Quickstart. Wiring it into an existing KMP repo? Start with the Preparing an existing KMP project checklist, then run the Configuring GitHub Actions install.
Documentation map¶
Guides¶
Task-oriented walkthroughs: analyzing locally, wiring GitHub Actions, biasing Dependabot, reading the report, diagnosing failures.
API Reference¶
Every CLI command, every data contract, and the GitHub Action inputs and outputs.
Presets¶
Drop-in integrations for Pokedex, Confetti, DroidconKotlin, KMP-App-Template, and kmp-production-sample.
At a glance¶
- Single workflow. One
impact-analysis.ymlfile in.github/workflows/. No external services to run. - Source-set aware. Reports impacted files by
commonMain,androidMain,iosMain,desktopMain,commonTest. expect/actualdetection. Surfaces detected pairs as review targets — not compatibility proofs.- Optional Android UI diff. DroidBot UTGs of the BEFORE and AFTER APKs when an emulator is available.
- CodeCharta export. Per-file JSON with
area=rloc,height=mcc,color=impact_level. - Explicit
BLOCKED. No silent green builds; failed phases carry ablocked_reason.
Where the code lives¶
| Concern | Path |
|---|---|
| CLI entry point | src/kmp_impact_analyzer/cli.py |
| Orchestrator | src/kmp_impact_analyzer/pipeline.py |
| Cross-phase models | src/kmp_impact_analyzer/contracts.py |
| Phase modules | src/kmp_impact_analyzer/phase{1..5}_*/ |
| Reporting | src/kmp_impact_analyzer/reporting/ |
| Tests | tests/ |
| Docs site | docs/, mkdocs.yml |
| Example GitHub Action | examples/github-action/ |