Skip to content

Architecture

KMP-IMPACT is structured as a 5-phase pipeline. Each phase reads a typed JSON contract from the previous one and writes its own. There is no implicit shared state: every artifact is on disk under output/phaseN/, which makes the pipeline reproducible, debuggable and trivially parallelizable.

Mental model. Static and dynamic are complementary, not redundant: static is complete-but-conservative; dynamic is small-but-observed. The consolidator combines them rather than trying to resolve disagreements.

In this section

Pipeline overview

The five phases at a glance, with the data flow and design principles.

Open →

Phase 1 — Shadow build

Materialises before/ and after/ copies of the project. Applies the catalog edit on AFTER.

Open →

Phase 2 — Static analysis

Tree-sitter Kotlin parser, symbol graph, BFS, source-set tagging, expect/actual scan.

Open →

Phase 3 — Dynamic analysis

Builds APKs, runs DroidBot, diffs the resulting UI Transition Graphs.

Open →

Phase 4 — Consolidation

Merges static and dynamic evidence into the canonical artifact and computes the risk label.

Open →

Phase 5 — Visualization

CodeCharta JSON, HTML report, PR-comment payload.

Open →