Skip to content

Chameleon

v3.0.3 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

✓ 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

Fixed docs/config‑only turns from incorrectly triggering Stop idiom review and added language‑scoped filtering.

Changes in this release

Feature Low

Durable off‑switch for idiom_review added to .chameleon/config.json.

Durable off‑switch for idiom_review added to .chameleon/config.json.

Source: llm_adapter@2026-07-13

Confidence: high

Bugfix Medium

Docs/config‑only turns no longer trigger the Stop idiom review.

Docs/config‑only turns no longer trigger the Stop idiom review.

Source: llm_adapter@2026-07-13

Confidence: high

Bugfix Medium

Language‑scoped idiom filtering now drops idioms for unrecognized languages during Stop review.

Language‑scoped idiom filtering now drops idioms for unrecognized languages during Stop review.

Source: llm_adapter@2026-07-13

Confidence: low

Bugfix Low

Language‑scoped filtering drops idioms whose language does not match edited files during Stop review.

Language‑scoped filtering drops idioms whose language does not match edited files during Stop review.

Source: granite4.1:30b@2026-07-13-audit

Confidence: low

Full changelog

Field feedback: the turn-end Stop idiom self-review read as a recurring "hook
flood" — it re-fired in every new chat, and a docs-only turn (the
/chameleon-init CLAUDE.local.md consent edit itself) dumped EVERY team idiom
at full text because nothing scoped it.

Fixed

  • Docs/config-only turns no longer trigger the Stop idiom review. The gate
    treated every recorded edited file as idiom-governed, so a turn that touched
    only CLAUDE.local.md (or any markdown/config file) resolved zero archetypes
    and the renderer's cannot-scope fallback dumped the full text of every
    not-yet-seen idiom — including a Language: ruby service idiom for a
    markdown edit. A file now counts as idiom-governed only when
    detect_language recognizes it, with a notebook .ipynb counting as python
    source (it keeps its review and now participates in the test-run nudge like
    any python file); a turn with no governed file skips the review (check-event
    reason no_governed_files) without burning the once-per-session marker.
    _idiom_review_gate in hook_helper.py.
  • Language-scoped idiom filtering at the Stop review. An idiom whose
    Language: tag names a recognized language (typescript/ruby/python)
    the turn did not edit is dropped from the review; untagged, Language: any,
    and unrecognized tags fail open to shown, and only the metadata region
    before the first fence is sniffed (a Language: line inside a fenced
    example is example code). Composes with the existing archetype filter, so a
    mixed-language repo's review no longer dumps other-language idioms when
    archetype resolution comes up empty. In a single-profile repo with a
    declared secondary language (language_hint.secondary_detected, the
    rails-with-frontend shape) the primary-language tag cannot discriminate —
    teach stamps every idiom with the profile's primary language — so
    primary-tagged idioms are never language-dropped there.
    _render_stop_idioms in tools.py, _idiom_review_gate in
    hook_helper.py.

Changed

  • The durable off-switch is now discoverable where the pain is. The
    enforce-mode block message names .chameleon/config.json
    "enforcement": {"idiom_review": false} (per-repo, committed → team-wide,
    survives new chats) alongside the existing inline-ignore hint; the
    /chameleon-disable skill gained a "Silencing ONE surface durably" section
    (idiom_review: false, stop_backstop: false, stop_block_cap: 0) and
    routes the recurring-Stop-text complaint to the config key instead of a
    session-only disable; architecture.md and the env-vars reference document
    the same path.

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]