Skip to content

Chameleon

v4.5.15 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

Chameleon now composes with superpowers via SessionStart routing when both plugins are installed.

Full changelog

Added

  • Chameleon and superpowers compose when both are installed. The two plugins occupy
    complementary layers — superpowers shapes process, chameleon shapes output and supplies facts —
    but neither knew the other existed at runtime, so a session got two independent contracts and no
    rule for sequencing them. The only cross-references lived inside chameleon skill bodies, which
    are read after the skill is already invoked, too late to route. SessionStart now appends a
    ~174-token routing paragraph naming which skill owns review, receiving review, and debugging,
    and stating that /chameleon-deep-work is self-contained so brainstorming is not in its path —
    a contract that was previously undefined, since deep-work forbids questions and brainstorming is
    a gate of nothing but questions. The full version lives in using-chameleon; the digest carries
    its summary. CHAMELEON_PEER_ROUTING=0 disables it.
  • Peer detection answers "will it be active", not "do its files exist." Existence checks only —
    no byte of the peer plugin's content is ever read or rendered. Claude Code's own registry is
    authoritative when readable, so a leftover cache directory cannot keep the block alive after an
    uninstall; a plugin switched off via enabledPlugins in the USER-level ~/.claude/settings.json
    reads as absent. That check is user-level only: a plugin disabled in a project's own
    .claude/settings.json still reads as enabled, so the block can appear in a session where
    superpowers does not load. Both rungs are bounded, because SessionStart's wrapper caps the whole
    Python emission at 3 seconds and loses the entire injection on overrun.
  • The routing block is added only to a digest that survived the budget fit whole, and only if it
    then fits in what remains — so optional prose can never cost curated digest content, and can
    never outlive it either. Both directions are closed by construction rather than by window.

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]