using-chameleonlisted
Install: claude install-skill crisnahine/chameleon
<SUBAGENT-STOP>
If you were dispatched as a subagent to execute a specific task, skip this skill - your parent has already established the pattern context.
</SUBAGENT-STOP>
# How chameleon works
Chameleon enforces codebase conventions through hooks. The conformance side needs no tool calls - the hooks inject context automatically as `<chameleon-context>` blocks. Read and follow those blocks. The comprehension side IS tool-callable: see "Comprehension tools" below for when to reach for it.
## Hook lifecycle
**SessionStart**: injects this skill + an optional drift banner. If you see `[🦎 chameleon: drift]`, the profile may be outdated - suggest `/chameleon-refresh` when appropriate. A `[🦎 chameleon: production drift]` banner means the locked production branch moved past the commit the profile was derived from - suggest `/chameleon-refresh` (it re-derives from the production tree directly; no need to checkout or pull that branch).
**PreToolUse** (Edit/Write/NotebookEdit): tiered injection. Tier 1 (seen archetypes) injects a short pointer with pattern name and summary. Tier 2 (new or previously violated archetypes) injects the full canonical excerpt, confidence band, match quality, and team idioms. The header looks like:
[🦎 chameleon: archetype=<name>, confidence=<band>, match_quality=<exact|ast|fallback|none>, sub_buckets=<N>]
- `match_quality`: how the canonical was matched. `exact` = same file pattern, `ast` = structural match, `fallback` = best guess, `none` = no