К основному содержанию
скилл CX Codex

m03-mutability — скилл для Claude Code: разбор ошибок изменяемости

Скилл для Rust-кода: помогает разобраться с ошибками изменяемости и заимствования, когда компилятор ругается на mut или RefCell.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add actionbook/rust-skills --skill m03-mutability -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/m03-mutability/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/m03-mutability/

По шагам, с командами для каждой платформы: Как установить скилл в 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.

Похожие скиллы

Все скиллы по теме «Языки программирования» →
migrate-to-shoehorn Matt Pocock Переводит type assertions с as в тестах на функции из @total-typescript/shoehorn. Нужен для частичных объектов и намеренно неверных данных в проверках. 475 388установок write-swift emilkowalski Скилл помогает писать, проверять и переносить код на Swift с учётом модели языка. Подойдёт, когда нужно разобраться с конкурентностью, ошибкой или циклом удержания объектов. CX Codex +1 119 300установок megacave JuliusBrussee Переводит ответы ассистента на классический китайский язык (вэньянь) для экономии места на экране. Активируется командами /megacave или /caveman wenyan. CX Codex +1 25 400установок find-docs upstash Тянет актуальную документацию, справочники API и примеры кода для любой библиотеки через Context7 CLI. Пригодится, когда агент отвечает по устаревшим данным обучения. CX Codex +1 9 400установок typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. CX Codex 92 169установок smart-explore thedotmack Структурно ищет функции и классы через tree-sitter. Пригодится, когда нужно разобраться в кодовой базе без чтения всех файлов. CX Codex +1 7 300установок

Из того же набора33

m13-domain-error Скилл помогает проектировать иерархию доменных ошибок, правила восстановления и контекст для диагностики. Нужен при разработке Rust-кода с retry и fallback. CX Codex +1 3 300установок m14-mental-model Скилл объясняет владение, заимствование и времена жизни в Rust через аналогии и разбор типичных ошибок компилятора. Пригодится, когда непонятно, почему код не собирается. CX Codex +1 3 300установок m09-domain Свод правил по предметно-ориентированному проектированию на Rust. Помогает ИИ моделировать сущности, агрегаты и объекты-значения с учётом системы владения. CX Codex +1 3 300установок m12-lifecycle Помогает проектировать жизненный цикл ресурсов в Rust: создание, область действия, очистку и поведение при ошибках. CX Codex +1 3 300установок rust-call-graph Строит граф вызовов функций Rust через LSP: кто вызывает функцию и что вызывает она. Пригодится при разборе чужого кода и оценке последствий правок. CX Codex +1 3 200установок unsafe-checker Проверяет блоки unsafe и вызовы FFI в коде на Rust, следит за комментариями SAFETY и поиском причин неопределённого поведения. CX Codex +1 3 200установок rust-learner Скилл находит актуальные версии крейтов, разбирает документацию docs.rs, списки изменений Rust и правила Clippy прямо во время сессии с агентом. CX Codex +1 3 100установок domain-web Скилл задаёт правила проектирования веб-сервисов на Rust: от async-обработчиков до состояния, ошибок и middleware. Нужен при работе с Cargo-проектом. CX Codex +1 3 100установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой