Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,39 @@ GauntletCI analyzes what changed.
GauntletCI highlights where behavior may have changed without
validation.

## How GauntletCI Compares to Other Tools

Most tools answer one question well. GauntletCI answers a different one.

| Tool Type | What It Does | What It Misses | GauntletCI’s Advantage |
|-----------|--------------|----------------|-------------------------|
| **Unit / Integration Tests** | Verifies expected outcomes for specific scenarios | Behavior changes outside tested paths; untested edge cases | Flags when behavior changed but no new test covers that change |
| **Linters (ESLint, RuboCop, etc.)** | Enforces style, syntax, and basic code quality | Behavioral risk; semantic changes; logic flow | Catches *what* changed, not just *how it looks* |
| **Static Analysis (SonarQube, Roslyn)** | Finds code smells, potential bugs in the whole codebase | Diff‑specific behavioral changes; assumes current code is the baseline | Analyzes the *difference* – what’s new or removed |
| **AI Code Review (Copilot, Cursor, etc.)** | Suggests improvements, explains code, finds obvious bugs | Often misses validation gaps; focuses on style or known patterns | Specifically looks for behavior changes without proof of validation |
| **Test Coverage (Coverlet, JaCoCo)** | Measures which lines are executed by tests | 100% coverage doesn’t mean behavior is correct; doesn’t analyze *changes* | Points to changed lines that lack any test covering them |
| **Performance Profilers** | Measures speed, memory, resource usage | Requires runtime data; doesn’t run pre‑commit | Works from diff alone – no execution needed |
| **GauntletCI** | **Evaluates the diff to find unvalidated behavioral changes** | Does not prove correctness; may have false positives | Fills the gap *between* “tests pass” and “behavior is still correct” |

### One‑Line Summary

| Tool | The Gap It Leaves |
|------|-------------------|
| Tests | “You only test what you think to test.” |
| Linters | “You can follow style and still break behavior.” |
| Static Analysis | “The code is clean, but the change is risky.” |
| AI Review | “Suggests improvements, but doesn’t ask if you validated the change.” |
Comment on lines +99 to +116
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section introduces several non-ASCII punctuation characters (smart quotes “”, curly apostrophe ’, en dash – / non-breaking hyphen ‑). These can be hard to search/grep and sometimes render inconsistently in terminals or some markdown pipelines. Consider replacing them with plain ASCII equivalents (" ", ', -, etc.) for consistency and portability.

Suggested change
| Tool Type | What It Does | What It Misses | GauntletCIs Advantage |
|-----------|--------------|----------------|-------------------------|
| **Unit / Integration Tests** | Verifies expected outcomes for specific scenarios | Behavior changes outside tested paths; untested edge cases | Flags when behavior changed but no new test covers that change |
| **Linters (ESLint, RuboCop, etc.)** | Enforces style, syntax, and basic code quality | Behavioral risk; semantic changes; logic flow | Catches *what* changed, not just *how it looks* |
| **Static Analysis (SonarQube, Roslyn)** | Finds code smells, potential bugs in the whole codebase | Diffspecific behavioral changes; assumes current code is the baseline | Analyzes the *difference* whats new or removed |
| **AI Code Review (Copilot, Cursor, etc.)** | Suggests improvements, explains code, finds obvious bugs | Often misses validation gaps; focuses on style or known patterns | Specifically looks for behavior changes without proof of validation |
| **Test Coverage (Coverlet, JaCoCo)** | Measures which lines are executed by tests | 100% coverage doesnt mean behavior is correct; doesnt analyze *changes* | Points to changed lines that lack any test covering them |
| **Performance Profilers** | Measures speed, memory, resource usage | Requires runtime data; doesnt run precommit | Works from diff alone no execution needed |
| **GauntletCI** | **Evaluates the diff to find unvalidated behavioral changes** | Does not prove correctness; may have false positives | Fills the gap *between* tests pass and behavior is still correct |
### OneLine Summary
| Tool | The Gap It Leaves |
|------|-------------------|
| Tests | You only test what you think to test. |
| Linters | You can follow style and still break behavior. |
| Static Analysis | The code is clean, but the change is risky. |
| AI Review | Suggests improvements, but doesnt ask if you validated the change. |
| Tool Type | What It Does | What It Misses | GauntletCI's Advantage |
|-----------|--------------|----------------|-------------------------|
| **Unit / Integration Tests** | Verifies expected outcomes for specific scenarios | Behavior changes outside tested paths; untested edge cases | Flags when behavior changed but no new test covers that change |
| **Linters (ESLint, RuboCop, etc.)** | Enforces style, syntax, and basic code quality | Behavioral risk; semantic changes; logic flow | Catches *what* changed, not just *how it looks* |
| **Static Analysis (SonarQube, Roslyn)** | Finds code smells, potential bugs in the whole codebase | Diff-specific behavioral changes; assumes current code is the baseline | Analyzes the *difference* - what's new or removed |
| **AI Code Review (Copilot, Cursor, etc.)** | Suggests improvements, explains code, finds obvious bugs | Often misses validation gaps; focuses on style or known patterns | Specifically looks for behavior changes without proof of validation |
| **Test Coverage (Coverlet, JaCoCo)** | Measures which lines are executed by tests | 100% coverage doesn't mean behavior is correct; doesn't analyze *changes* | Points to changed lines that lack any test covering them |
| **Performance Profilers** | Measures speed, memory, resource usage | Requires runtime data; doesn't run pre-commit | Works from diff alone - no execution needed |
| **GauntletCI** | **Evaluates the diff to find unvalidated behavioral changes** | Does not prove correctness; may have false positives | Fills the gap *between* "tests pass" and "behavior is still correct" |
### One-Line Summary
| Tool | The Gap It Leaves |
|------|-------------------|
| Tests | "You only test what you think to test." |
| Linters | "You can follow style and still break behavior." |
| Static Analysis | "The code is clean, but the change is risky." |
| AI Review | "Suggests improvements, but doesn't ask if you validated the change." |

Copilot uses AI. Check for mistakes.
| Coverage | “Every line runs, but does it do the right thing?” |
| **GauntletCI** | **“You changed what the code does. Nothing proves it still works.”** |

### Where GauntletCI Sits

- **Correctness (Tests)** ← → **Behavioral Risk (GauntletCI)**
- **Quality (Linters/SAST)** ← → **Validation Gaps (GauntletCI)**
- **What the code IS** ← → **What CHANGED (GauntletCI)**
Comment on lines +122 to +124
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These list items use multiple spaces to try to visually align the left/right sides (e.g., around the arrows). Markdown collapses consecutive spaces in normal text, so the alignment won’t be reliable across renderers. Consider using a small table or a code block if alignment is important.

Suggested change
- **Correctness (Tests)** ← → **Behavioral Risk (GauntletCI)**
- **Quality (Linters/SAST)** ← → **Validation Gaps (GauntletCI)**
- **What the code IS** ← → **What CHANGED (GauntletCI)**
| Left | | Right |
|------|-|-------|
| **Correctness (Tests)** | ← → | **Behavioral Risk (GauntletCI)** |
| **Quality (Linters/SAST)** | ← → | **Validation Gaps (GauntletCI)** |
| **What the code IS** | ← → | **What CHANGED (GauntletCI)** |

Copilot uses AI. Check for mistakes.

GauntletCI answers a question no other tool asks:
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two trailing spaces after the colon here, which forces a hard line break in Markdown. If the hard break isn’t intentional, remove the trailing spaces; if it is, consider using an explicit <br/> to make the intent clearer.

Suggested change
GauntletCI answers a question no other tool asks:
GauntletCI answers a question no other tool asks:<br/>

Copilot uses AI. Check for mistakes.
*“Did this change introduce behavior that is not properly validated?”*
------------------------------------------------------------------------

## What it returns
Expand Down
Loading