CASE STUDY · GOOGLE SUMMER OF CODE 2025 · ECLIPSE FOUNDATION

VitAI & GlitchWitcher: Repository analysis and defect prediction

Two tools developed during Google Summer of Code: VitAI supports repository exploration and test triage, while GlitchWitcher applies reconstruction-error modelling to file-level defect prediction.

GSoC '25
Eclipse Foundation
Developed under Google Summer of Code 2025 mentorship
MCP
Model Context Protocol
FastMCP interface for repository exploration and test triage
REPD
Defect Modelling
Reconstruction Error Probability Distribution baseline implementation
Upstream
Merged Contributions
Contributions integrated into Eclipse Adoptium repositories
01 / Challenge & Context

01 / Problem & ownership

Context retrieval for repository investigation and ML-based defect assessment.

My GSoC work addressed two related engineering tasks: helping developers find the context needed to investigate a repository, and applying machine learning to assess potentially defect-prone files.

I contributed the repository-analysis and retrieval components of VitAI, alongside REPD implementation and analysis workflows for GlitchWitcher. These were separate workstreams within the Eclipse Adoptium ecosystem, not successive stages of one prediction pipeline.

PROJECT SCOPE
Two Complementary Tooling Workstreams
Repository ExplorationVitAI
VitAI combines live GitHub tools and vector search for context retrieval.
Defect Risk AssessmentGlitchWitcher
GlitchWitcher extracts code metrics and evaluates reconstruction error fit.
Syntax-Aware ChunkingVitAI
Tree-sitter-based parsing extracts AST structures rather than raw text.
CI IntegrationGlitchWitcher
GitHub Actions workflow triggers analysis and reports to PR discussions.
02 / System Architecture

02 / How it works

MCP repository intelligence and automated PR defect analysis.

VitAI: An MCP interface exposes repository-analysis capabilities to compatible clients. A ReAct agent can explore repository structure, search GitHub, retrieve file contents, and query indexed code before answering a question. Live GitHub exploration and vector retrieval serve different purposes: live tools inspect repository content and discussions; the retrieval layer searches pre-indexed chunks for relevant context.

GlitchWitcher: The workflow extracts software metrics from changed C/C++ files and uses a trained REPD model to compare base and head predictions. Analysis can be triggered through a pull-request or issue comment, with results returned to the discussion.

Architecture Flow
01Tree-sitter · FAISS
Tree-sitter Parsing
Extracts code structures, classes, and functions with fallback strategies.
02FastMCP · Python
MCP Tool Server
FastMCP exposes live GitHub exploration and semantic chunk retrieval.
03aqa-test-tools
Metric Extraction
Extracts software engineering metrics from modified C/C++ source files.
04TensorFlow · CI/CD
REPD Assessment
Autoencoder evaluates reconstruction error distributions across base and head revisions.
03 / Algorithmic Deep-Dive

03 / Engineering decisions

Structural chunking and research implementation with workflow integration.

Syntax-aware retrieval: VitAI’s indexing layer uses Tree-sitter-based chunking with fallback strategies, FAISS storage, and incremental change detection. This supports retrieval around code structure rather than treating a repository as an undifferentiated text document.

Research implementation with workflow integration: GlitchWitcher implements REPD from published research. Reconstruction errors are compared against fitted distributions for historically defective and non-defective examples.

File-level comparisons: The reported output helps inspect changes between a pull request’s base and head. It is not a claim that individual faulty lines have been located or that a file has a calibrated percentage probability of containing a bug.

VitAI & GlitchWitcher Repository Intelligence Architecture
Simplified pseudocodepython
# Simplified pseudocode
from fastmcp import FastMCP
from agent import create_agent

mcp = FastMCP("VitAI MCP Server")

@mcp.tool
def query(input: str) -> str:
    """Ask VitAI questions related to Adoptium repositories."""
    agent = get_agent()
    return agent.query(input)

@mcp.tool
def query_vector_store(query: str, repository: str, top_k: int = 5) -> str:
    """Query pre-indexed vector stores for semantic code search across repositories."""
    store = get_vector_store()
    return store.search_repo(query, repository, top_k=top_k)
04 / Production & Reliability

04 / Evidence & limitations

Upstream contributions and model assessment boundaries.

The work produced upstream contributions, including VitAI’s initial retrieval components and GlitchWitcher’s GitHub Actions workflow.

Prediction outputs are model assessments, not proof that a file is defective or defect-free. GlitchWitcher reports probability-density values, not calibrated bug probabilities. I do not present the implementation as an independently measured reduction in production defects.

VitAI Stack
PythonFastMCPGemini APIGitHub APIFAISSTree-sitter
GlitchWitcher Stack
PythonTensorFlowscikit-learnNumPypandasSciPyGitHub Actions
Upstream Repositories
Eclipse Adoptiumaqa-test-toolsApache License 2.0
Mentorship
Google Summer of Code 2025Adoptium Technical Steering