chameleon-teachlisted
Install: claude install-skill crisnahine/chameleon
# /chameleon-teach
Append a captured team idiom to `.chameleon/idioms.md`. The load-bearing tool
for **Tier 2** dimensions — patterns AST analysis fundamentally cannot detect
(prohibitions, mandatory wrappers, domain vocabulary, library version
constraints, etc.).
Supports two capture modes:
- **Free-form** — the user describes the pattern in prose; skill formats it
and calls `teach_profile`. (Original behavior; unchanged.)
- **Structured** — the user supplies discrete fields (`slug:`, `rationale:`,
`example:`, `counterexample:`); skill calls `teach_profile_structured`
which validates each field and renders the canonical idiom layout.
- **Wrapper-preference** — the user states a "use X, not Y" import rule for an
archetype ("import our `http` wrapper, not raw `axios`"); skill calls
`teach_competing_import`, which writes a structured `competing` convention
the lint engine + SessionStart block then enforce (not just a prose idiom).
## When to use
The user identifies a missed pattern, typically after:
- Reviewer feedback on an AI-generated edit ("we don't use `useQuery`
directly; use `useCustomQuery`")
- A noticed banned import (`"never import lodash directly; method-scope only"`)
- A mandatory wrapper not detected by clustering
(`"all DB calls go through withTransaction"`)
- Domain vocabulary preferences (`"we say Listing, not Property"`)
- Library version constraints (`"react-router-dom is locked at v5.x;
do not upgrade"`)
## Choosing the mode
If the u