m06-error-handling — скилл для Claude Code: что делает
Помогает ИИ-агенту выбирать правильный способ обработки ошибок в Rust. Пригодится, когда нужно решить между Result, Option, panic!, thiserror и anyhow.
npx skills add actionbook/rust-skills --skill m06-error-handling -a claude-codeЧто делает m06-error-handling
Скилл задаёт чёткую дисциплину работы со сбоями в коде на Rust. Вместо бездумного вызова unwrap() или заворачивания всего подряд в anyhow агент анализирует причину сбоя. Для библиотек он предлагает типизированные ошибки через thiserror, а для прикладных сервисов выбирает anyhow.
Внутри заложены деревья решений и правила контекста. Скилл заставляет проверять, является ли проблема ожидаемой или это нарушение инварианта, требующее паники. Он также напоминает добавлять контекст вызова через .context() при пробросе оператором ?.
Скилл помечен как системный через user-invocable: false. Агент активирует его сам при вопросах об ошибках и типах возврата.
Какие задачи решает
- выбрать между
Result,Optionиpanic! - разделить обработку ошибок в библиотеке (
thiserror) и приложении (anyhow) - заменить рискованные
.unwrap()на безопасный проброс через? - добавить контекст к цепочке вызовов с помощью
.context()
Примеры запросов агенту
- Помоги переписать эту функцию без unwrap и добавить понятный тип ошибки.
- Что выбрать для этого модуля: thiserror или anyhow?
- Как правильно пробросить ошибку чтения файла и сохранить контекст?
Как установить m06-error-handling
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m06-error-handling -a claude-code2Вручную: положить файлы
~/.claude/skills/m06-error-handling/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/m06-error-handling/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m06-error-handling -a codex2Вручную: положить файлы
.agents/skills/m06-error-handling/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m06-error-handling -a cursor2Вручную: положить файлы
.cursor/skills/m06-error-handling/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills m06-error-handling2Вручную: положить файлы
.github/skills/m06-error-handling/SKILL.md1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m06-error-handling -a gemini-cli2Командой платформы
gemini skills install https://github.com/actionbook/rust-skills --path skills/m06-error-handlingВручную: положить файлы
.devin/skills/m06-error-handling/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m06-error-handling -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о m06-error-handling
Как установить m06-error-handling в Claude Code?
Выполните команду npx skills add actionbook/rust-skills --skill m06-error-handling -a claude-code. Файл навыка сохранится по пути ~/.claude/skills/m06-error-handling/SKILL.md.
Что делает скилл m06-error-handling?
Он направляет ИИ в выборе стратегии обработки ошибок в Rust: разделяет штатное отсутствие значения (Option), ожидаемые сбои (Result) и баги инвариантов (panic!).
В каких случаях скилл рекомендует thiserror, а когда anyhow?
Для библиотечного кода скилл требует типизированные ошибки через thiserror, чтобы вызывающий код мог делать матчинг. Для приложений он рекомендует anyhow ради удобного добавления контекста.