rechecker-plugin

A Claude Code plugin that reviews and fixes code after git commits using a blocking /recheck skill with multiple review passes.
The Problem
Claude Code often introduces bugs, incomplete implementations, or subtle regressions when making code changes. Without this plugin, you'd manually ask Claude to "check your changes for errors, then fix them" — sometimes repeating this multiple times before all issues are resolved.
The Solution
This plugin adds a /recheck skill that runs a structured review-fix pipeline on committed code. A rule tells Claude to invoke it automatically after significant commits (5+ files or 50KB+). The pipeline runs inline and blocking — no worktrees, no background processes.
Installation
From the Emasoft Marketplace (recommended)
claude plugin marketplace add emasoft-plugins
claude plugin install rechecker-plugin@emasoft-plugins
From GitHub (direct)
claude plugin install --source github Emasoft/rechecker-plugin
Requirements
Usage
Automatic Mode (default)
A rule instructs Claude to run /recheck after any commit with 5 or more files or 50 KB+ total size. Commits with [rechecker: skip] in the message are ignored (recursion guard).
Manual Mode
Run the review pipeline on demand:
/rechecker-plugin:recheck
How It Works
You commit code
|
v
Claude checks the rule: >=5 files or >=50KB?
|
v (yes)
/recheck skill runs (blocking)
|
v
triage.py (one script does all mechanical work)
|- Recursion guard check
|- Detect changed files, filter non-code, classify by size
|- Split into groups (max 10 files each, by extension family)
|- Run linters (ruff/mypy/eslint/tsc/shellcheck/etc.)
|- Filter lint errors (Python, no haiku agent needed)
|- Detect security-relevant groups
|- Write per-group JSON files + token snapshot
|- Output compact manifest with ---GROUP:id--- markers
|
v
Orchestrator reads manifest, dispatches:
|- Lint fix: sonnet-code-fixer per group with errors
|- Pass 1-3: one code_task call with GROUP markers → per-group reports
|- Pass 4 (security): only security-relevant groups
|- Large files (>250KB): opus agent per file
|- Each pass: sonnet-code-fixer for groups with issues
|
v
Commit fixes with [rechecker: skip] marker
|
v
finalize-session.py → count tokens, write history, move reports
|
v
Done. Summary reported to user.
Components
| Component | What It Does |
|---|
/recheck skill | The full pipeline — triage, lint, 3+1 review passes, commit, finalize |
triage.py | Detects files, lints, classifies, splits into groups, outputs manifest |
sonnet-code-fixer | Sonnet agent that fixes reported issues using Serena MCP |
| LLM Externalizer | External LLM (grok/gemini) reviews code for bugs — not Claude tokens |
finalize-session.py | Automates: token counting, session history, report cleanup |
count-tokens.py | Parses JSONL transcripts for per-model token breakdown (snapshot/delta/transcripts modes) |
log-subagent-tokens.py | SubagentStop hook — logs isolated token usage per subagent/worktree |
log-stop-failure.py | Logs API errors (rate limits, server errors, auth failures) |
recheck-after-commit rule | Tells Claude when to trigger /recheck |
Review Pass Details
| Pass | Focus | Checks |
|---|
| Lint | Static analysis | Syntax errors, type errors, import errors |
| 1 | Code correctness | Logic bugs, off-by-one, race conditions, deprecated APIs |
| 2 | Functional correctness | Edge cases, return values, async handling, API contracts |
| 3 | Adversarial | Injection, resource exhaustion, state corruption, type confusion |
| 4 | Security (conditional) | SQL/XSS/command injection, auth, secrets, crypto |
File Size Routing
| Size | Reviewer |
|---|
| <=250KB | LLM Externalizer (cheap, fast) |
| 250-500KB | Opus[1m] agent (large context) |
| >500KB | Skipped |
Session Tracking