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¶
Phase 1 — Shadow build¶
Materialises before/ and after/ copies of the project. Applies the catalog edit on AFTER.
Phase 2 — Static analysis¶
Tree-sitter Kotlin parser, symbol graph, BFS, source-set tagging, expect/actual scan.
Phase 3 — Dynamic analysis¶
Builds APKs, runs DroidBot, diffs the resulting UI Transition Graphs.
Phase 4 — Consolidation¶
Merges static and dynamic evidence into the canonical artifact and computes the risk label.