Featured R&D

ChangeProfiler

Git Diff Semantic Change Classifier

ChangeProfiler characterizes the semantic nature of software changes to help reviewers identify where deeper analysis may be warranted.

Capability
Developer Engineering & Automation · AI & Intelligent Systems
Maturity
Architecture

Overview

ChangeProfiler characterizes the semantic nature of software changes to help reviewers identify where deeper analysis may be warranted.

A source-control diff precisely describes what text changed. It does not necessarily explain what kind of engineering change those edits represent.

ChangeProfiler investigates whether an additional analytical layer can transform low-level change evidence into an interpretable semantic characterization that gives reviewers better context for deciding where to focus their attention.

The project is currently at Architecture maturity. Its evidence is the developing analytical architecture and the design decisions that define how semantic classification should be investigated---not a validated classifier or production system.

The Problem

Textual change does not necessarily communicate semantic significance.

Git provides an exact and indispensable representation of source-control change. A diff can identify affected files, additions, deletions, modified lines, changed hunks, and surrounding textual context.

That is the evidence Git is designed to provide.

But two patches with similar textual characteristics can represent very different engineering changes.

A small patch might alter control flow, change an external interface, modify data handling, or affect only formatting. Conversely, a large textual patch may represent a comparatively mechanical transformation.

Textual diff evidence and possible semantic change categories
Textual diff evidence and possible semantic change categories
The problem is not that Git fails to describe the patch.

Git is performing its intended role.

The R&D problem is whether additional analysis can derive useful semantic characterization from that technically correct but lower-level evidence.

A reviewer ultimately needs context for questions closer to:

  • What kind of change is this?
  • Does it alter behavior?
  • Does it affect interfaces, data flow, or control flow?
  • Is it primarily structural, documentary, or formatting?
  • Where does deeper analysis appear warranted?

ChangeProfiler investigates the analytical layer between the diff and those higher-level review questions.

Research Question

Can the changes represented by a source-control diff be classified according to their semantic nature in a way that provides useful additional context for software review?

That question immediately creates a second architectural problem:

What combination of deterministic analysis, software structure, contextual reasoning, and AI-assisted interpretation is appropriate for distinguishing different classes of software change?

The project deliberately does not begin with the assumption that every diff should simply be submitted to an LLM.

Instead, the architecture asks a more fundamental question:

What analytical mechanism is appropriate for determining each kind of evidence?

Evidence-driven semantic characterization for reviewer context
Evidence-driven semantic characterization for reviewer context
That framing leaves room for conventional software analysis, deterministic rules, repository context, AI-assisted interpretation, or combinations of these mechanisms according to the problem being solved.

The technology choice follows the evidence requirement rather than defining it.

The Approach

Treat the diff as evidence to characterize, not merely as text to summarize.

ChangeProfiler separates the source-control representation from the semantic interpretation built on top of it.

Proposed pipeline from source-control diff to review-oriented classification
Proposed pipeline from source-control diff to review-oriented classification
This is intentionally different from a generic patch-explanation workflow.

The target is not:

diff
 ↓
"Explain this patch"

The intended analytical path is:

diff
 ↓
collect evidence
 ↓
reason about change semantics
 ↓
classify characteristics
 ↓
support review attention

That distinction gives ChangeProfiler its technical identity.

The architecture separates:

  • source-control representation;
  • evidence extraction;
  • contextual analysis;
  • semantic reasoning;
  • classification; and
  • review-oriented presentation.

Each layer exists because the evidence available in the diff is not necessarily the same as the meaning a reviewer ultimately needs.

System Architecture

At Architecture maturity, the system design is the evidence-bearing work.

ChangeProfiler does not yet claim a validated semantic classifier.

The current work defines how such a classifier could acquire evidence, reason about it, and expose its conclusions without conflating architectural intent with experimentally demonstrated behavior.

The developing architecture is:

Developing architecture from Git diff to review-oriented characterization
Developing architecture from Git diff to review-oriented characterization
A central design principle is the separation between:

evidence acquisition

and:

semantic interpretation.

Those are related activities, but they are not the same technical problem.

Evidence Acquisition

Different semantic questions may require different evidence.

Potential evidence sources and analysis mechanisms may include:

  • textual diff analysis;
  • syntax or AST analysis;
  • structural relationships;
  • deterministic rules;
  • repository context;
  • conventional program analysis; and
  • AI-assisted interpretation.

These are architectural possibilities rather than a finalized implementation stack.

Candidate mechanisms for acquiring evidence from diff and repository context
Candidate mechanisms for acquiring evidence from diff and repository context
The research must determine which evidence is actually required and which mechanism is appropriate for obtaining it.

Semantic Interpretation

Once evidence has been acquired, the system must determine what that evidence supports about the nature of the change.

That creates a separate reasoning layer:

Semantic reasoning, classification, and supporting reviewer evidence
Semantic reasoning, classification, and supporting reviewer evidence
This separation allows the architecture to avoid requiring AI where deterministic or conventional software-analysis techniques provide a more appropriate solution.

It also creates a path toward explainability: classifications can remain connected to the evidence that contributed to them.

Technical Deep Dive

Syntactic Change Is Not Semantic Change

What text changed and what engineering change occurred are related questions---not identical ones.

A line-oriented diff is fundamentally concerned with textual modification.

ChangeProfiler is investigating whether additional evidence can support reasoning at progressively higher levels.

Progression from textual edits to software structure and reviewer context
Progression from textual edits to software structure and reviewer context
The difficulty lies in the transitions.

A textual edit does not carry a universal semantic meaning independent of its software context.

The same apparent operation may have very different consequences depending on where it occurs and what software structures it affects.

A small modification might:

  • alter control flow;
  • modify an external interface;
  • change data handling;
  • restructure implementation without changing intended behavior; or
  • affect only formatting or documentation.

Likewise, patch size does not necessarily indicate semantic importance. A large mechanical transformation may be less behaviorally significant than a one-line change to a condition.

The implication is important:

Semantic classification cannot be assumed to follow directly from line count, patch size, patch syntax, or isolated textual content.

The research must determine what additional structural and contextual evidence is necessary to make each classification useful and defensible.

Current Findings & Design Decisions

At Architecture maturity, reasoned design decisions are evidence---but they are not classifier-performance results.

The current work has established several boundaries that shape the next stage of investigation.

The Diff Is Evidence, Not the Classification

A Git diff is the starting representation from which semantic characteristics may be inferred.

The relationship is:

Git diff as evidence for semantic characterization
Git diff as evidence for semantic characterization
The diff should not be confused with the semantic model itself.

This distinction prevents the architecture from treating textual properties as if they were already higher-level engineering conclusions.

Classification Is Not Correctness Judgment

ChangeProfiler should characterize a change, not pronounce it correct or safe.

The intended relationship is:

Human engineering judgment informed by semantic characterization
Human engineering judgment informed by semantic characterization
The reviewer remains responsible for determining:
  • correctness;
  • risk;
  • appropriateness;
  • security significance; and
  • whether additional review or testing is required.

The classification is evidence for review---not a replacement for review.

Review Attention Is the Target

The useful outcome is better context for deciding where deeper analysis may be warranted.

That is deliberately narrower than claiming that ChangeProfiler can predict exact review effort or determine all risky changes automatically.

The project should not assume or claim:

  • exact review-time reductions;
  • guaranteed review-effort savings;
  • automatic identification of every risky change; or
  • replacement of human review.

The architectural objective is to improve the context available to the reviewer.

Classification Should Be Evidence-Driven

Different semantic questions may require different forms of evidence and different analytical mechanisms.

Selection of an analysis mechanism according to required evidence
Selection of an analysis mechanism according to required evidence
Potential mechanisms include deterministic rules, syntax or AST analysis, repository context, structural relationships, conventional program analysis, AI-assisted reasoning, or combinations of these approaches.

No single mechanism should be assumed to solve every classification problem.

That includes AI.

The architecture should use AI where it adds meaningful analytical value, not merely because the project includes an AI capability.

Explainability Matters

A classification is more useful when the reviewer can understand why it was produced.

An opaque label forces the reviewer to decide whether to trust a conclusion without seeing the evidence behind it.

The preferred model is:

Supporting evidence and classification contributing to reviewer understanding
Supporting evidence and classification contributing to reviewer understanding
Supporting evidence may therefore become part of the eventual classification model rather than merely an implementation detail.

The research must determine how much evidence is useful to expose without overwhelming the reviewer.

Evidence Boundary

The architecture establishes a direction for investigation. It does not yet validate the classifier.

The current work does not yet establish:

  • a validated semantic change ontology;
  • a validated classifier;
  • classification accuracy;
  • the optimal analysis mechanism for each class;
  • the appropriate classification granularity;
  • reliable reduction in review effort;
  • automatic correctness determination; or
  • production readiness.

Those questions belong to the experimental stage.

Making this boundary explicit is important because a detailed architecture can look deceptively close to an implemented system.

The current evidence demonstrates how the problem has been decomposed and how the investigation can proceed. It does not demonstrate how accurately the eventual classifier will perform.

Next Investigation

The next step is to turn the architectural model into an experimentally testable classifier.

The semantic change ontology is deliberately not frozen.

The research should establish the taxonomy through investigation rather than having the website prematurely define one.

A likely progression is:

Proposed experimental progression from ontology to human assessment and refinement
Proposed experimental progression from ontology to human assessment and refinement
Important questions include:
  • What semantic change classes are genuinely useful to reviewers?
  • Should classifications be mutually exclusive or multi-label?
  • At what granularity should changes be classified?
  • Should classification occur at the hunk, file, commit, merge-request, or multiple levels?
  • What evidence is necessary for each classification?
  • Which classifications can be determined reliably using deterministic analysis?
  • Where is repository context required?
  • Where does AI-assisted interpretation provide meaningful additional value?
  • How should ambiguous changes be represented?
  • How should supporting evidence be exposed?
  • How should classifier quality be evaluated?
  • What human assessment should serve as evaluation evidence?
  • What evidence would justify progression from Architecture to Experiment?

The next maturity transition depends on evidence, not simply on implementing the architecture.

Where This Applies

ChangeProfiler addresses situations where technically correct low-level change data does not directly expose the higher-level meaning needed for human decision-making.

Potential application areas include:

  • merge-request review;
  • pull-request review;
  • change-risk investigation;
  • review prioritization;
  • large-patch comprehension;
  • software-maintenance workflows;
  • CI/CD review assistance;
  • automated change documentation; and
  • engineering governance.

At Architecture maturity, these are potential application areas for the analytical approach---not claims of complete capabilities already delivered.

The transferable concept is broader:

Derive semantic characterization from low-level technical evidence to help humans determine where deeper analysis may be warranted.

That pattern can apply beyond source-control diffs wherever an existing engineering system produces precise low-level evidence but leaves humans to reconstruct the higher-level meaning needed for a decision.

Project Status

The analytical architecture is defined. The ontology and classifier still require experimental validation.

Maturity: Architecture / Experiment
Domain: Software change analysis and code-review assistance
Primary input: Source-control diff and associated software context
Current focus: Architecture for semantic characterization of software changes
Intended output: Interpretable semantic classification with supporting evidence
Human role: Reviewer determines correctness, risk, and appropriate review action
Architectural direction: Combine analysis mechanisms according to the evidence required rather than defaulting to a single AI mechanism
Current unresolved problem: Define and validate a useful semantic change ontology
Evidence-bearing work: System architecture, analytical boundaries, and reasoned design decisions
Next maturity question: Can a useful semantic change ontology and evidence model support an experimentally viable classifier?

Bring Us a Difficult Problem

Sometimes the engineering system already provides accurate data.

The missing piece is meaning.

ChangeProfiler demonstrates an Applied Software R&D pattern in which the investigation begins with technically correct low-level evidence, identifies the higher-level context humans actually need, and designs an analytical layer to bridge the gap.

Applied R&D progression from existing workflow evidence to experimental evaluation
Applied R&D progression from existing workflow evidence to experimental evaluation
The goal is not to replace engineering judgment.

It is to determine whether better analytical context can help engineers apply that judgment where it matters most.

Have a technical problem where the right analytical approach isn't obvious?

Bring Us a Difficult Problem