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

memory-safety-patterns — скилл для Claude Code: установка

Скилл помогает писать код на Rust, C++ и C с учётом владения памятью, RAII и управления ресурсами. Подойдёт для системного кода и поиска ошибок памяти.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add wshobson/agents
/plugin install systems-programming@claude-code-workflows
Открыть на GitHub

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

2Через Skills CLI (Vercel)

npx skills add wshobson/agents --skill memory-safety-patterns -a claude-code

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

~/.claude/skills/memory-safety-patterns/SKILL.md

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

Похожие

migrate-to-shoehorn Matt Pocock Переводит type assertions с as в тестах на функции из @total-typescript/shoehorn. Нужен для частичных объектов и намеренно неверных данных в проверках. Claude Code 475 388установок typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. Claude Code CX Codex Cursor 92 169установок dotnet-best-practices официальный github Проверяет выделенный .NET/C# код по правилам проекта: от структуры и DI до тестов, логирования и безопасности. Нужен при ревью или доработке решения. GitHub Copilot 15 752установок nuget-manager официальный github Управляет NuGet-пакетами в .NET-проектах через dotnet CLI. Нужен при добавлении, удалении и обновлении зависимостей. GitHub Copilot 14 360установок typescript-mcp-server-generator официальный github Генерирует TypeScript-проект MCP-сервера с инструментами, ресурсами и конфигурацией. Пригодится, когда нужно быстро заложить сервер на MCP TypeScript SDK v2. GitHub Copilot 12 050установок java-junit официальный github Пишет, проверяет и исправляет Java-тесты на JUnit, AssertJ и Mockito. Нужен при добавлении, рефакторинге или разборе падений тестов в Maven и Gradle. GitHub Copilot 11 632установок

Вопросы о 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

Смотрите также

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

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