memory-safety-patterns — скилл для Claude Code: установка
Скилл помогает писать код на Rust, C++ и C с учётом владения памятью, RAII и управления ресурсами. Подойдёт для системного кода и поиска ошибок памяти.
/plugin marketplace add wshobson/agents
/plugin install systems-programming@claude-code-workflowsЧто делает memory-safety-patterns
memory-safety-patterns разбирает владение ресурсами, время жизни объектов, умные указатели и RAII в Rust, C++ и C. Он помогает находить причины use-after-free, двойного освобождения, утечек, переполнений буфера и гонок данных, а также выбирать подходящий уровень контроля над памятью.
В скилле есть отдельная документация в references/details.md и примеры команд для AddressSanitizer, Valgrind, Rust Miri и ThreadSanitizer. Для C++ рекомендуется избегать сырых указателей, а для Rust осторожно использовать unsafe; при работе с потоками нужно явно учитывать синхронизацию. Ставьте его для системного кода и отладки ошибок памяти, а для задач без ручного управления ресурсами он избыточен.
Какие задачи решает
- предотвратить use-after-free и двойное освобождение
- связать время жизни файлов, сокетов и памяти с областью видимости
- выбрать между ручным управлением, умными указателями и владением
- проверить переполнения буфера и гонки данных
- запустить AddressSanitizer, Valgrind или Miri для поиска ошибок
Примеры запросов агенту
- Проверь этот C++ код на use-after-free и предложи вариант с RAII.
- Сравни владение ресурсами в этом модуле на Rust и C.
- Подготовь команды для проверки программы через AddressSanitizer и Valgrind.
Как установить memory-safety-patterns
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install systems-programming@claude-code-workflows2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill memory-safety-patterns -a claude-code3Вручную: положить файлы
~/.claude/skills/memory-safety-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/memory-safety-patterns/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill memory-safety-patterns -a codex2Вручную: положить файлы
.agents/skills/memory-safety-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill memory-safety-patterns -a cursor2Вручную: положить файлы
.cursor/skills/memory-safety-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents memory-safety-patterns2Вручную: положить файлы
.github/skills/memory-safety-patterns/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/systems-programming/skills/memory-safety-patternsВручную: положить файлы
.devin/skills/memory-safety-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о memory-safety-patterns
Как установить memory-safety-patterns в Claude Code?
Выполните npx skills add wshobson/agents --skill memory-safety-patterns -a claude-code. Файл скилла появится по пути ~/.claude/skills/memory-safety-patterns/SKILL.md.
Что делает memory-safety-patterns?
Скилл помогает применять RAII, владение и умные указатели в Rust, C++ и C. Он также подсказывает, как искать утечки, обращение к освобождённой памяти и другие ошибки.
С какими языками работает memory-safety-patterns?
Скилл рассчитан на Rust, C++ и C. Для диагностики он использует AddressSanitizer, Valgrind, Rust Miri и ThreadSanitizer.
Исходный текст
SKILL.md · MIT
--- name: memory-safety-patterns description: Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory bugs. --- # Memory Safety Patterns Cross-language patterns for memory-safe programming including RAII, ownership, smart pointers, and resource management. ## When to Use This Skill - Writing memory-safe systems code - Managing resources (files, sockets, memory) - Preventing use-after-free and leaks - Implementing RAII patterns - Choosing between languages for safety - Debugging memory issues ## Core Concepts ### 1. Memory Bug Categories | Bug Type | Description | Prevention | | -------------------- | -------------------------------- | ----------------- | | **Use-after-free** | Access freed memory | Ownership, RAII | | **Double-free** | Free same memory twice | Smart pointers | | **Memory leak** | Never free memory | RAII, GC | | **Buffer overflow** | Write past buffer end | Bounds checking | | **Dangling pointer** | Pointer to freed memory | Lifetime tracking | | **Data race** | Concurrent unsynchronized access | Ownership, Sync | ### 2. Safety Spectrum ``` Manual (C) → Smart Pointers (C++) → Ownership (Rust) → GC (Go, Java) Less safe More safe More control Less control ``` ## Detailed patterns and worked examples Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient. ## Best Practices ### Do's - **Prefer RAII** - Tie resource lifetime to scope - **Use smart pointers** - Avoid raw pointers in C++ - **Understand ownership** - Know who owns what - **Check bounds** - Use safe access methods - **Use tools** - AddressSanitizer, Valgrind, Miri ### Don'ts - **Don't use raw pointers** - Unless interfacing with C - **Don't return local references** - Dangling pointer - **Don't ignore compiler warnings** - They catch bugs - **Don't use `unsafe` carelessly** - In Rust, minimize it - **Don't assume thread safety** - Be explicit ## Debugging Tools ```bash # AddressSanitizer (Clang/GCC) clang++ -fsanitize=address -g source.cpp # Valgrind valgrind --leak-check=full ./program # Rust Miri (undefined behavior detector) cargo +nightly miri run # ThreadSanitizer clang++ -fsanitize=thread -g source.cpp ```
© Seth Hobson · MIT · wshobson/agents