ios-memgraph-leaks — скилл для Codex: что делает и как установить
Скилл захватывает и разбирает утечки памяти iOS из симулятора или .memgraph. Нужен для поиска удерживающих связей и проверки исправлений.
npx skills add openai/plugins --skill ios-memgraph-leaks -a codexЧто делает ios-memgraph-leaks
Скилл помогает доказать утечку в живом процессе симулятора или в готовом .memgraph. Он предлагает повторить сценарий, снять снимок памяти через scripts/capture_sim_memgraph.sh, свести утечки с помощью scripts/summarize_memgraph_leaks.py, а затем проверить владение объектами через leaks --traceTree и группировку по типам.
После исправления тот же сценарий запускают на том же симуляторе, когда это возможно, и сравнивают типы, пути и количество утечек. Одного уменьшения размера .memgraph недостаточно: нужно показать путь удержания, который исчез. Это повод проверить идентификатор симулятора, bundle identifier и пути к сохранённым графам до начала анализа. Для сборки, установки, запуска приложения и управления интерфейсом скилл предлагают использовать вместе с ../ios-debugger-agent/SKILL.md.
Какие задачи решает
- захватить
.memgraphиз запущенного процесса симулятора - свести найденные утечки в отчёт
- найти путь владения удерживаемым объектом
- сравнить утечки до и после исправления
Примеры запросов агенту
- «Сними `.memgraph` с запущенного приложения на симуляторе и сведи найденные утечки в отчёт».
- «Проанализируй `/path/to/app.memgraph` с `--trace-limit 5` и сохрани результат в `/path/to/leak-summary.md`».
- «Сравни утечки до и после исправления на том же сценарии и покажи исчезнувшие типы и пути удержания».
Как установить ios-memgraph-leaks
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill ios-memgraph-leaks -a codex2Вручную: положить файлы
.agents/skills/ios-memgraph-leaks/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill ios-memgraph-leaks -a claude-code2Вручную: положить файлы
~/.claude/skills/ios-memgraph-leaks/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/ios-memgraph-leaks/
Вручную: положить файлы
.cursor/skills/ios-memgraph-leaks/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install openai/plugins ios-memgraph-leaks2Вручную: положить файлы
.github/skills/ios-memgraph-leaks/SKILL.mdКомандой платформы
gemini skills install https://github.com/openai/plugins --path plugins/build-ios-apps/skills/ios-memgraph-leaksВручную: положить файлы
.devin/skills/ios-memgraph-leaks/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора201
Весь набор →Похожие
Вопросы о ios-memgraph-leaks
Как установить ios-memgraph-leaks в Codex?
Выполните npx skills add openai/plugins --skill ios-memgraph-leaks -a codex, затем используйте файл .agents/skills/ios-memgraph-leaks/SKILL.md.
Что делает ios-memgraph-leaks?
Скилл захватывает memgraph из процесса iOS-симулятора, суммирует утечки и помогает найти путь владения, который удерживает объект. После исправления он задаёт сравнение до и после.
Нужен ли ios-debugger-agent для работы скилла?
Он нужен для задач, где вместе с анализом утечки требуется собрать, установить и запустить приложение, управлять интерфейсом, получить логи или сделать скриншоты. В таких случаях скилл используют вместе с ../ios-debugger-agent/SKILL.md.
Исходный текст
SKILL.md · MIT
---
name: ios-memgraph-leaks
description: Capture and inspect iOS leaks and memgraphs. Use when debugging leaked objects, retain cycles, memory growth, or before/after leak evidence.
---
# iOS Memgraph Leaks
Use this skill to prove iOS leaks from a live simulator process or an existing `.memgraph`. Pair it with `../ios-debugger-agent/SKILL.md` when the task also needs simulator build, install, launch, UI driving, logs, or screenshots.
## Core Workflow
1. Build, launch, and drive the exact flow that should release objects.
2. Capture a memgraph from the running simulator process with `scripts/capture_sim_memgraph.sh`.
3. Summarize leaks with `scripts/summarize_memgraph_leaks.py`.
4. For each app-owned leaked type, inspect ownership with `leaks --traceTree=<address> <file.memgraph>` and grouped leak evidence.
5. Make the smallest root-cause patch, then recapture the same flow on the same simulator when possible.
6. Report proof: before/after leak counts, disappeared root types, remaining leaks, memgraph paths, and test/build results.
Do not claim a leak fix from a smaller memgraph alone. A credible fix explains the ownership path that kept the object alive and shows that the same path or type disappears after the patch.
## Capture
Prefer capturing from the simulator already used for the reproduction. Resolve the simulator UDID and app bundle identifier, then capture the running app:
```bash
SKILL_DIR="<absolute path to this loaded skill folder>"
SIM="<simulator-udid>"
BUNDLE_ID="<app.bundle.identifier>"
MEMGRAPH_DIR="$(mktemp -d "${TMPDIR:-/tmp}/codex-ios-memgraph.XXXXXX")"
"$SKILL_DIR/scripts/capture_sim_memgraph.sh" \
--udid "$SIM" \
--bundle-id "$BUNDLE_ID" \
--out-dir "$MEMGRAPH_DIR"
```
Do not derive `SKILL_DIR` from the target app repo's `pwd`; installed plugins usually live outside the app being debugged. Store captures in a run-specific temp or user-chosen folder, not under `SKILL_DIR`.
If the process cannot be found, confirm the bundle identifier and use `xcrun simctl spawn "$SIM" launchctl list` to inspect running labels.
## Summarize
Summarize an existing memgraph:
```bash
"$SKILL_DIR/scripts/summarize_memgraph_leaks.py" \
/path/to/app.memgraph \
--trace-limit 5 \
--out /path/to/leak-summary.md
```
Use `--trace-limit` sparingly. Trace trees are useful root-cause evidence, but large memgraphs can produce noisy output. If a trace tree says `Found 0 roots referencing`, treat it as an unreachable/self-retained leak candidate and use the summary's grouped leak tree or `leaks --groupByType <file.memgraph>` to identify the retained fields and payload chain.
## Root Cause Rules
- Identify the first app-owned leaked type in the leak output or trace.
- Determine the intended lifetime: process, session, account, view, request, or task.
- Treat lazy or deferred allocation as a scope reduction, not a leak fix, unless the original eager allocation itself violated the intended lifetime.
- Prove retain-cycle claims with either a `traceTree` ownership path or an isolated reproduction.
- For unreachable/self-cycle leaks, `traceTree` may have no root path; use `leaks --groupByType` plus source verification to find the self-retaining edge.
- Do not claim success just because total leak count went down; prove the specific type or path disappeared.
- Separate real root-cause branches from candidate/noise branches.
- Prefer deleting the retaining edge over adding broad cleanup code.
## Report
A useful leak report includes:
- the exact flow and simulator/app build
- the memgraph and summary paths
- app-owned leaked types and counts
- at least one ownership path, or grouped leak tree evidence when the object is unreachable from roots
- the smallest proposed or applied retaining-edge fix
- before/after evidence when a fix was made
If the memgraph shows only framework/runtime noise, say that and recommend the next narrower capture rather than inventing an app leak.
© OpenAI · MIT · openai/plugins