m03-mutability — скилл для Claude Code: разбор ошибок изменяемости
Скилл для Rust-кода: помогает разобраться с ошибками изменяемости и заимствования, когда компилятор ругается на mut или RefCell.
npx skills add actionbook/rust-skills --skill m03-mutability -a claude-codeЧто делает m03-mutability
Скилл включается, когда в коде Rust появляются ошибки E0596, E0499, E0502, сообщения вида «cannot borrow as mutable» или паника RefCell. Вместо совета «просто добавь mut» он задаёт вопрос: должно ли это значение вообще меняться, и кто им управляет.
Внутри — таблицы решений. Для интерьерной изменяемости выбор идёт по признакам: тип Copy или нет, один поток или несколько. Cell<T> для Copy в одном потоке, RefCell<T> для остальных однопоточных случаев, Mutex<T> или RwLock<T> для многопоточных. Отдельная таблица разбирает антипаттерны: RefCell везде, мьютекс в однопоточном коде, блокировка внутри горячего цикла.
Если конфликты заимствования повторяются, скилл отправляет дальше — к соседним темам набора про структуру данных и многопоточность. Смысл в том, что часть таких ошибок лечится не аннотацией, а переделкой структуры. Скилл не вызывается вручную: он срабатывает по описанию, поэтому нужен доступ к файлу SKILL.md в каталоге скиллов вашей платформы.
Какие задачи решает
- разобрать ошибку E0596 без слепого добавления
mut - выбрать между
Cell,RefCellиMutexпод конкретный случай - понять причину паники
RefCellво время выполнения - развести конфликтующие заимствования в E0499 и E0502
- найти антипаттерны вроде блокировки внутри горячего цикла
Примеры запросов агенту
- У меня ошибка E0502:
&mutпри живом&. Что переделать в коде? - Нужно менять поле из
&self, тип неCopy.RefCellили что-то другое? - Падает
RefCellс already borrowed. Как найти место, где заимствование не отпустили?
Как установить m03-mutability
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m03-mutability -a claude-code2Вручную: положить файлы
~/.claude/skills/m03-mutability/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/m03-mutability/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m03-mutability -a codex2Вручную: положить файлы
.agents/skills/m03-mutability/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m03-mutability -a cursor2Вручную: положить файлы
.cursor/skills/m03-mutability/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills m03-mutability2Вручную: положить файлы
.github/skills/m03-mutability/SKILL.md1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m03-mutability -a gemini-cli2Командой платформы
gemini skills install https://github.com/actionbook/rust-skills --path skills/m03-mutabilityВручную: положить файлы
.devin/skills/m03-mutability/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m03-mutability -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о m03-mutability
Как установить m03-mutability в Claude Code?
Выполните npx skills add actionbook/rust-skills --skill m03-mutability -a claude-code. Файл скилла окажется по пути ~/.claude/skills/m03-mutability/SKILL.md.
Что делает m03-mutability?
Помогает разбирать ошибки изменяемости и заимствования в Rust. Ведёт от кода ошибки к вопросу об устройстве данных, а не к быстрой правке аннотацией.
Скилл вызывается вручную?
Нет, у него стоит user-invocable: false. Он подключается по описанию и триггерам, когда в работе всплывают ошибки вроде E0596 или RefCell.