Skip to content

Chameleon

v2.57.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-coding-assistant archetype ast-analysis claude-code claude-plugin code-conventions
+12 more
code-review code-style developer-tools javascript linter mcp mcp-server prompt-engineering python ruby rails typescript

Summary

AI summary

Turn‑end VERIFY stage adds automatic refutation of findings before they are shown.

Full changelog

Added

  • Turn-end VERIFY stage: the automatic review now refutes its own findings
    before you see them.
    The turn-end pipeline ran SCOPE -> EVIDENCE -> ATTACK
    -> REPORT with no VERIFY: the correctness judge's findings surfaced
    unchallenged, while the fully-built independent refuter (refuter.py) was
    wired only to the interactive pr-review / receiving skills — the plugin's
    most-used review surface had no independent verification at all. A new
    stop_verify.py module closes the gap on all three turn-end paths: the
    default multi-lens pass (lone-correctness-lens findings only; cross-lens
    agreement is already an independent signal and duplication findings' evidence
    spans two locations a one-file excerpt cannot show, so those are exempt), the
    single-lens correctness gate, and the async-detached judge child. A refuted
    finding is dropped, a confirmed one is tagged [confirmed], the rest surface
    labeled unverified, and the advisory carries a grounding banner
    (N refuted and dropped, M confirmed). Strictly raise-precision by contract:
    only an actively-refuted finding is ever removed; any failure (no budget, CLI
    absent, spawn error) passes everything through unverified; and a finding
    whose excerpt cannot be safely fetched is never spawned, because the refuter
    prompt commands refutation on cannot-tell and a zero-evidence spawn would
    kill anchorless findings on engine-side data absence. Budget-honest under the
    55s Stop wrapper: refuter spawns are retry-free (run_one(retry=False), new
    parameter) so a slot costs exactly one timeout window, and the sync path
    anchors its remaining-budget math to process start — the same clock as the
    wrapper's SIGKILL — spawning only when a full window fits. Excerpts are
    containment-checked through safe_read_text (the finding's file field is
    model output inlined into a prompt; an absolute or ..-escaping path reads
    nothing). Raw findings still shadow-log pre-VERIFY so precision sampling
    keeps seeing the refuted rows; only survivors persist to the finding ledger.
    Default-ON with the CHAMELEON_STOP_VERIFY=0 kill switch; no repo-code
    execution and no network (the refuter is a hardened no-tools claude -p).
    Verified live end-to-end: a deliberately false claim came back refuted and
    dropped, a real defect came back confirmed and kept, ~8-10s per spawn.

  • The five-phase review discipline is now explicit in /chameleon-pr-review.
    The skill already ran all five phases; a new "The five-phase discipline"
    section names them (SCOPE -> EVIDENCE -> ATTACK -> VERIFY -> REPORT) and maps
    each existing step to its phase, so the skill and the engine's turn-end
    pipeline now describe the same contract in the same terms.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Chameleon

Get notified when new releases ship.

Sign up free

About Chameleon

All releases →

Related context

Earlier breaking changes

  • v3.0.0 MCP surface folded from 48 tools to 19; remaining 32 operator tools become actions on three dispatchers.

Beta — feedback welcome: [email protected]