Red-first repro verifier: runs your repro in clean worktrees of the base and the fix. A fix counts only when it fails on the base and passes on the fix.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
git clone https://github.com/CloudCorpRecords/reprocheckTools overview
# reprocheck
**"Fixed" is a claim. reprocheck makes you prove it, red first.**
Every bug fix makes the same claim: this change fixes that bug. The honest proof has a specific shape, and it is the shape good reviewers ask for: a repro that **fails on the code before the fix** and **passes on the code after it**. A test that passes on both proves nothing. A fix whose repro still fails fixes nothing. And a change that turns a passing repro red broke something.
reprocheck runs that proof for you. Give it a repo, a base ref, a head ref, and a command. It creates clean detached worktrees of both refs, runs the command in each, and classifies the pair of exit codes:
| verdict | base | head | what it means |
| --- | --- | --- | --- |
| `VERIFIED` | fails | passes | The change fixes what the repro demonstrates, and the repro demonstrably covers the bug |
| `NOT-REPRODUCED` | passes | passes | The repro does not demonstrate a bug on the base (already fixed there, or it misses the bug), so the head pass proves nothing |
| `STILL-FAILING` | fails | fails | The change does not fix what the repro demonstrates |
| `BROKEN-BY-HEAD` | passes | fails | The change introduced this failure |
| `ERROR` | n/a | n/a | Setup, git, or the run itself failed or timed out; the report names the stage |
Exit codes are CI-friendly: 0 for VERIFIED, 1 for the other completed verdicts, 2 for ERROR.
## The feature that makes it practical: `--test-file`
The standard red-first setup has an awkward step: the regression test is new, so it does not exist on the base. Copying it into a base checkout by hand is exactly the kind of manual step people skip. reprocheck does it for you: pass `--test-file <path>` and the file, read from your working tree (committed or not), is copied into both worktrees at the same relative path before the command runs.
Your working tree is never modified. Both runs happen in temporary worktrees under the OS temp dir, and they are removed on every exit path.
## Usage
### CLI
```bash
# Verify a fix on the current branch against main, using the new regression test
npx @reneturcios/reprocheck run \
--repo . --base main --head HEAD \
--test-file test/radar.test.ts \
--setup "npm install" \
--cmd "npx tsx --test test/radar.test.ts"
# Simpler: a committed repro script, no setup
npx @reneturcios/reprocheck run --repo . --base HEAD~1 --head HEAD --cmd "node repro.mjs"
# Machine readable output
npx @reneturcios/reprocheck run --repo . --base main --head HEAD --cmd "npm test" --json
```
Example output (real dogfood, verifying Greenlight v0.15.1's radar precision fix, where the regression tests in `test/radar.test.ts` were written against the fixed behavior):
```
reprocheck: VERIFIED
command: npx tsx --test test/radar.test.ts
test file copied into both worktrees: test/radar.test.ts
setup: npm install --no-audit --no-fund
base (a33c55e3 @ a33c55e39010): exit 1 in 18512ms
head (9492844b @ 9492844bf6b6): exit 0 in 12015ms
The repro fails on the base and passes on the head. The change fixes what the repro demonstrates, and the repro demonstrably covers the bug
```
### MCP server
Add to your MCP client config:
```json
{
"mcpServers": {
"reprocheck": {
"command": "npx",
"args": ["-y", "@reneturcios/reprocheck", "mcp"]
}
}
}
```
Tool: `run_repro_check`: repoPath, baseRef, headRef, command, and optional testFile, setupCommand, and timeoutSeconds. Returns the full report as JSON, including per-phase exit codes, durations, and output tails.
### Docker
The CLI works on local git repositories, so mount the repo you want to check:
```bash
docker run -i ghcr.io/cloudcorprecords/reprocheck mcp
docker run --rm -v "$PWD:/repo" ghcr.io/cloudcorprecords/reprocheck \
run --repo /repo --base main --head HEAD --cmd "npm test"
```
## Where reprocheck fits
reprocheck is the verification third of a small triad from the same author:
- [cidiff](https://github.com/CloudCorpRecords/cidiff) tells you which failing checks on a PR are actually the PR's fault.
- reprocheck proves a specific fix fixes a specific bug, red first.
- [shipcheck](https://github.com/CloudCorpRecords/shipcheck) verifies the finished release actually shipped on every surface.
All three come from the same discipline that runs [Greenlight](https://github.com/CloudCorpRecords/greenlight): evidence first, honest verdicts, no invented answers. A verdict reprocheck cannot support, it does not print.
## Development
```bash
npm install
npm run build
npm test # 12 tests: verdict classification plus full runs against a real temp git repo
```
## License
MIT
What people ask about reprocheck
What is CloudCorpRecords/reprocheck?
+
CloudCorpRecords/reprocheck is tools for the Claude AI ecosystem. Red-first repro verifier: runs your repro in clean worktrees of the base and the fix. A fix counts only when it fails on the base and passes on the fix. It has 0 GitHub stars and its last recorded update is dated 2026-10-19.
How do I install reprocheck?
+
You can install reprocheck by cloning the repository (https://github.com/CloudCorpRecords/reprocheck) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is CloudCorpRecords/reprocheck safe to use?
+
Our security agent has analyzed CloudCorpRecords/reprocheck and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains CloudCorpRecords/reprocheck?
+
CloudCorpRecords/reprocheck is maintained by CloudCorpRecords. The last recorded GitHub activity is dated 2026-10-19, with 0 open issues.
Are there alternatives to reprocheck?
+
Yes. On ClaudeWave you can browse similar tools at /categories/tools, sorted by popularity or recent activity.
Deploy reprocheck to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/cloudcorprecords-reprocheck)<a href="https://claudewave.com/repo/cloudcorprecords-reprocheck"><img src="https://claudewave.com/api/badge/cloudcorprecords-reprocheck" alt="Featured on ClaudeWave: CloudCorpRecords/reprocheck" width="320" height="64" /></a>More Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI skill that provides design intelligence for building professional UI/UX across multiple platforms.
🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
Use Claude Code, Codex, VSCode, Pi, and OpenCode (and 6 other harnesses) for free (1.3B+ free tokens) from your terminal, app, IDE, or phone, and now from the browser with native browser sessions (multi-harness + multi-model) like OpenClaw (voice supported + ToS friendly)
The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]
Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build, Muse Code, Devin as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini Series, GPT Series, Grok Series, Claude model through API