v0.22.0—Bounded nullability checks and practical .NET migration guidance.See what's new

Refactoring Stability

A static heuristic for structural and reference-preservation signals

Refactoring Stability estimates how well source structure can survive renames, moves, extraction, signature changes, and variable inlining. The historical corpus ratio is loaded from the benchmark data shown on the results page.

See snapshot provenance and limits for the recorded source, corpus, and measurement method.

What the Metric Measures

The automated score is a source heuristic, not an execution of IDE refactorings or a proof that references remained correct.

Calor's score combines:

ComponentWeightSignal
ID preservation potential30%Stable IDs across modules, types, members, fields, and control flow
Reference validity potential25%Calls, typed declarations, properties, fields, and bindings
Diff minimization potential20%Clear indent-delimited structural boundaries
Semantic-equivalence potential25%Explicit contracts and effects that preserve intent

C# receives heuristic credit for stable declarations, namespaces/classes, low nesting, IDE support, and explicit contract/assert patterns.

Scenario Helper

The evaluation library also has before/after helpers for rename, extract, move, signature-change, and inline-variable scenarios. They compare preserved Calor IDs, C# names, and diff size. Those helpers are not the same as running a real editor refactoring over the full benchmark corpus.

Interpretation

A ratio above 1.0 means this heuristic found more stability signals in the Calor fixtures. It does not establish that every Calor refactor is safer than the corresponding C# refactor. Read it alongside Edit Precision and the methodology caveats.