code-simplifier
Review changes in the current branch, or in the scope the user specifies. Apply these criteria without changing behavior:
1. Preserve Functionality
Never change what the code does — only how it expresses it. All original features, outputs, and behaviors must remain intact. If a simplification risks altering behavior, skip it.
2. Names
Shorten verbose names while keeping them clear. Prefer human-readable concepts (baseline) over compound phrases that feel mechanical or academic (lastObservedDiskContent). Names should communicate intent at a glance.
3. Combine Related Concepts
If two types, functions, or constants overlap significantly, merge them. The fewer distinct concepts a reader must hold in their head, the better.
Example: two union types sharing 3 of 4 values can become one type with shorter value names.
4. Derivability
If a value can be computed from other values already in scope, don't pass or store it separately. Removing derivable state often simplifies signatures, types, and control flow in one move.