unsafe-checker — скилл для Claude Code: что делает и как установить
Проверяет блоки unsafe и вызовы FFI в коде на Rust, следит за комментариями SAFETY и поиском причин неопределённого поведения.
npx skills add actionbook/rust-skills --skill unsafe-checker -a claude-codeЧто делает unsafe-checker
Скилл анализирует файлы с расширением .rs, используя инструменты Read, Grep и Glob. Он находит блоки unsafe, сырые указатели, структуры union, атрибуты #[repr(C)] и вызовы через FFI, чтобы оценить корректность работы с памятью.
Внутри заданы правила аудита для разыменования указателей, преобразований через transmute и многопоточных маркеров Send или Sync. Ассистент требует обязательных пояснений // SAFETY: перед опасным кодом и документирования контрактов через /// # Safety. Попытка обойти borrow checker без понимания причин считается ошибкой и бракуется при проверке.
Скилл указывает на устаревшие приёмы и предлагает безопасные замены. Вместо вызова mem::uninitialized() он требует переходить на MaybeUninit, предлагает NonNull для арифметики указателей и предостерегает от висячих указателей при вызове .as_ptr() у временного CString.
Какие задачи решает
- найти причины неопределённого поведения в блоках
unsafe - проверить корректность сигнатур FFI и внешних C-функций
- проконтролировать наличие обязательных комментариев
// SAFETY: - заменить устаревшие методы вроде
mem::uninitialized()наMaybeUninit
Примеры запросов агенту
- Проверь блоки unsafe в файле
src/ffi.rsна выравнивание и комментарии SAFETY - Найди в проекте вызовы
mem::zeroedи помоги переписать их наMaybeUninit - Проведи аудит интерфейса C в модуле
src/bindings.rsна корректность типов
Как установить unsafe-checker
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill unsafe-checker -a claude-code2Вручную: положить файлы
~/.claude/skills/unsafe-checker/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/unsafe-checker/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill unsafe-checker -a codex2Вручную: положить файлы
.agents/skills/unsafe-checker/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill unsafe-checker -a cursor2Вручную: положить файлы
.cursor/skills/unsafe-checker/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills unsafe-checker2Вручную: положить файлы
.github/skills/unsafe-checker/SKILL.md1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill unsafe-checker -a gemini-cli2Командой платформы
gemini skills install https://github.com/actionbook/rust-skills --path skills/unsafe-checkerВручную: положить файлы
.devin/skills/unsafe-checker/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill unsafe-checker -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о unsafe-checker
Как установить unsafe-checker в Claude Code?
Выполните команду npx skills add actionbook/rust-skills --skill unsafe-checker -a claude-code. Также можно поместить файл в каталог ~/.claude/skills/unsafe-checker/SKILL.md.
Что проверяет скилл unsafe-checker?
Он проверяет корректность разыменования сырых указателей, отсутствие гонок данных, выравнивание структур в памяти и наличие обязательных описаний безопасности.
Какие крейты скилл предлагает для интеграции через FFI?
Для связи C и Rust рекомендуется bindgen, для экспорта в C — cbindgen, а для взаимодействия с Python и Node.js используются PyO3 и napi-rs.