# ios-memgraph-analysis

Скилл для анализа .memgraph из симулятора: ищет утечки и рост кучи по следам аллокаций и цепочкам владения.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1200 установок · ★ 1237
- Автор: dpearson2699
- Лицензия: LicenseRef-Unknown · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/ios-memgraph-analysis/SKILL.md
- Обновлён: 2026-07-31
- HTML: https://affpapa.org/nevibecode/skills/ios-memgraph-analysis

## Что делает

Скилл работает с графами памяти iOS-приложений и помогает доказать, почему объект переживает момент, когда должен был освободиться. Он разводит недостижимые утечки и достижимый рост, сохраняет сырой вывод инструментов и требует повторной проверки того же типа и той же цепочки владения после правки.

Внутри два скрипта на Python. `scripts/capture_sim_memgraph.py` снимает граф с запущенного приложения в симуляторе: принимает `--bundle-id`, `--output-dir` и `--pretty`, запускает `leaks --outputGraph` и пишет манифест. `scripts/summarize_memgraph.py` разбирает граф, складывает сырые артефакты в отдельную папку и умеет `--app-image`, `--trace-limit`, `--group-by-type` и `--reference-tree`. Если запущено несколько симуляторов, нужен `--udid`: скрипт сопоставляет ровно одну метку launchd и один PID, а при нуле или нескольких совпадениях останавливается с ошибкой. Съёмка графа приостанавливает процесс, поэтому замеры задержки на ней не строят.

Порядок такой: сначала назвать объект и событие, которое завершает его жизнь, затем прогнать одну и ту же последовательность шагов до и после снятия графа. Настройку Malloc Stack Logging, сборку и данные между прогонами не меняют, иначе сравнение теряет смысл. Apple не публикует эти текстовые форматы как стабильные схемы, так что предупреждения парсера — повод посмотреть сырые артефакты, а не ослаблять разбор. Для интерактивного Memory Graph Debugger, Instruments или работы в LLDB есть отдельный скилл `debugging-instruments`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill ios-memgraph-analysis -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/ios-memgraph-analysis/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/ios-memgraph-analysis/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill ios-memgraph-analysis -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/ios-memgraph-analysis/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill ios-memgraph-analysis -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/ios-memgraph-analysis/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dpearson2699/swift-ios-skills ios-memgraph-analysis
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/ios-memgraph-analysis/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill ios-memgraph-analysis -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/ios-memgraph-analysis
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/ios-memgraph-analysis/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill ios-memgraph-analysis -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/ios-memgraph-analysis/SKILL.md

## Когда брать
- доказать, что объект переживает границу своей жизни
- отличить недостижимую утечку от достижимого роста кучи
- снять граф памяти с запущенного приложения в симуляторе
- найти первую управляемую приложением сильную ссылку в цепочке владения
- сравнить графы до и после правки на одном и том же сценарии

## Примеры запросов агенту
- Сними граф памяти с запущенного приложения по `--bundle-id` и сохрани сырые артефакты
- Разбери `.memgraph` и покажи, какие типы приложения держат память после закрытия редактора
- У `leaks` пусто, а куча растёт — сравни базовый и пост-граф и найди растущий участок

## Похожие
- [vercel-react-native-skills](https://affpapa.org/nevibecode/skills/vercel-react-native-skills.md) — скилл · 255200 установок
- [animate-expo](https://affpapa.org/nevibecode/skills/animate-expo.md) — скилл · 137900 установок
- [mobile-native](https://affpapa.org/nevibecode/skills/mobile-native.md) — скилл · 86600 установок
- [aso](https://affpapa.org/nevibecode/skills/aso.md) — скилл · 75400 установок
- [swiftui-pro](https://affpapa.org/nevibecode/skills/swiftui-pro.md) — скилл · 35200 установок
- [orca-emulator](https://affpapa.org/nevibecode/skills/orca-emulator.md) — скилл · 5800 установок

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
