v0.3.1 — naming as a mechanism, tiered gate, background review, convergence
Naming: crystallized skills get readable semantic names and descriptions that say what they actually do (this is what deferred loading matches on), with chain-of-thought stripped. findSkillByTag locates a skill through its state block, so renaming no longer breaks lookup.
Tiered approval gate: not every model write needs a human. A deterministic gate auto-confirms only reversible, user-anchored, non-conflicting writes — and deliberately ignores the model-supplied kind, since a self-reported label must not grant its own exemption.
Background review: after a turn (throttled), an isolated LLM pass replays the conversation snapshot and proposes what to remember. It carries no tools and never touches the main prompt cache, so side effects are structurally impossible.
Skill convergence: detect near-duplicate and refinement-bloated skills; merge into umbrella skills or fold refinements back into clean prose. Detection is free; mutations are opt-in.