Inspiration

I was inspired by a common challenge in software development: even a small code change can affect multiple functions, modules, and tests. Developers may struggle to identify these ripple effects, leading to unnecessary testing or missed issues. I wanted to build a tool that makes code dependencies easier to understand and helps developers make more informed testing decisions.

What it does

ChangeImpact AI analyzes a codebase to identify potentially affected functions when a function changes. It traces dependency relationships, recommends relevant tests, and uses Git co-change history to highlight files that have changed together in the past.

The platform includes an interactive Streamlit dashboard, an MCP server that exposes code-analysis capabilities as reusable tools, and a prototype voice assistant for exploring the codebase using typed or spoken requests.

How we built it

I built the project using Python, FalkorDB, Streamlit, and the Model Context Protocol (MCP). An AST-based parser extracts functions and relationships from source code, while FalkorDB stores the dependency graph. Graph traversal helps identify potentially affected functions and connected tests.

I also incorporated Git co-change analysis to surface historical relationships between files. The MCP server provides tools for searching functions, analyzing change impact, and retrieving historical co-changes. Streamlit brings these capabilities together in an interactive interface with tables, metrics, and visualizations.

Challenges we ran into

One major challenge was extracting reliable relationships from a real-world Python repository. Resolving function calls across modules and building a useful dependency graph required careful handling of imports and function references.

Integrating FalkorDB, the Python backend, MCP tools, and the dashboard was another challenge. I also faced dependency and deployment issues while trying to make the project accessible and reliable. These challenges taught me the importance of testing individual components before integrating the entire system.

Accomplishments that we're proud of

I'm proud of building a working code-impact analysis pipeline that goes beyond simple text searching. I analyzed a real Python codebase, built a graph of its functions and relationships, and combined dependency-based impact analysis with historical co-change information.

I'm also proud of integrating MCP tools and developing a dashboard with a prototype voice interface. As a solo project, ChangeImpact AI helped me bring several technologies together into one practical developer-assistance platform.

What we learned

Through this project, I gained practical experience with graph databases, AST parsing, dependency analysis, Git history, Streamlit, and MCP tool integration. I learned how graph traversal can reveal indirect dependencies and how historical co-change patterns can complement static code analysis.

I also learned that historical correlations and dependency relationships are signals, not guarantees of failure. The system identifies potential risks and recommends tests, leaving final decisions to the developer.

What's next for ChangeImpact AI

Next, I want to improve cross-module and dynamic dependency detection, support additional programming languages, and make test recommendations more precise. I also plan to strengthen the voice assistant with natural-language reasoning and spoken responses, improve deployment reliability, and evaluate recommendations against real code changes and test outcomes.

My long-term goal is to evolve ChangeImpact AI into a developer tool that helps teams understand code-change risks earlier, prioritize testing, and release software with greater confidence.

ChangeImpact AI — Know the ripple before the release.

Built With

Share this project:

Updates

Submission history