---
name: hdd-storage-cleaning
description: "Audit a full disk and free space safely: measure first, prove a restore path, show exact objects, delete only what the user approved. Use when the disk is full, free up space, what is eating my storage, or before a risky cleanup on Mac or Windows."
license: MIT
metadata:
  version: "1.0.0"
---

# HDD storage cleaning

Найди, что занимает место, сохрани нужное и освободи только проверенный объём. Скилл не даёт разрешения удалять данные, менять синхронизацию или включать автоматическую чистку.

Для текущей ОС прочитай [Mac](references/mac.md) или [Windows](references/windows.md). При переносе между ОС прочитай оба документа.

## Сначала замер

- Подними прежние решения по чистке/миграции, актуальные правила среды и текущих владельцев данных. Не повторяй уже сделанное и не мешай другому писателю.
- Определи настоящие корни из переменных среды/конфига и фактические диски. Не угадывай пути другой машины. Сначала свободное место на томе, затем верхние папки, затем крупные ветви.
- Раздели логический размер, занятые блоки, общие блоки/снимки и облачные заглушки. Отмечай ошибки доступа и неполный охват; отсутствие доступа не означает нулевой размер.
- Не складывай вложенные папки дважды. Дай таблицу: объект, размер и метод замера, зачем нужен, предлагаемое действие, восстановление, статус разрешения.

Большие деревья обрабатывай потоково: манифест на диске, счётчики и хэши по файлу/пакету, возобновляемые checkpoints. Не загружай миллионный список целиком в память/JSON и не выводи его в tool output. В stdout только сводка, ограниченная выборка и путь к манифесту; во время долгого обхода показывай статус и возраст checkpoint.

## Что сохранять

По умолчанию исключай кошельки и их хранилища, seed/ключи/пароли, SSH/Keychain, фотографии, резервные копии, `_originals`, `.stversions`, sync-conflict-файлы и канон. Читай только безопасные метаданные; не выводи содержимое секретов и не считай их хэши для обычного аудита. Сильнее действуют правила конкретной среды и исключения пользователя.

Имя `cache`, `tmp`, `old` или большой размер не доказывают ненужность. Внутри могут быть единственные документы, состояния приложений, модели или кошельки. Удаление приложения и его данных — разные решения. Удаление значка из Dock тоже не удаляет приложение.

Для репозитория проверь dirty/untracked, stash, локальные ветки, теги, коммиты вне remote refs и достижимые только через reflog. Проверь linked worktrees и общий git-dir, незавершённые merge/rebase/bisect, уникальные данные submodules и локальные LFS-объекты. Обычный bundle веток не гарантирует сохранность reflog-only коммитов, рабочего дерева и LFS. Устаревшие remote refs не доказывают наличие копии на сервере. Без проверки доступности удалённой версии и сохранения уникального состояния репозиторий нельзя считать восстановимым через clone. Зависимости пригодны к пересозданию лишь при наличии исходников, lockfile, доступного источника и нужной версии.

## Проверка восстановления

1. Назови источник восстановления и проверь доступность. Ещё одна копия на переполненном томе может ухудшить ситуацию; выбери проверенную копию или разрешённый другой диск.
2. Для обычных файлов проверь полный перечень, размер и SHA-256. Для архива проверь чтение и пробное извлечение в отдельную папку. Секретные хранилища требуют отдельного согласованного способа проверки.
3. Для SQLite получи согласованный снимок через backup API или корректно остановленного владельца. Не копируй только `.db`, игнорируя непустой WAL. Зафиксируй значимые таблицы/счётчики из того же согласованного снимка, из которого сделан бэкап; не сравнивай его с более поздней живой БД. На отдельном восстановленном экземпляре выполни `integrity_check` и сравни эти показатели. Наличие файла бэкапа — недостаточное доказательство.
4. Для кэша докажи, как владелец пересоздаёт именно этот кэш. Закрой приложение штатно; не удаляй живую БД и не гаси сервисы без соответствующего разрешения.

## Незавершённая миграция

Сравни старую staging-копию с актуальным источником и назначением. Размер/mtime помогают отбору, но не доказывают равенство или полезность. Составь точный манифест обычных файлов; отдельно сохрани уникальные документы и изменения кода. Кэши, зависимости и старые профили не копируй автоматически.

Копируй добавочно: только отсутствующие обычные файлы, без перехода через symlink/junction и без перезаписи. Проверь корни и все компоненты пути; исключи выход за корень, секреты, защищённые ветви и активные файлы. Создавай назначение с режимом «только новый файл», сравни SHA-256 и перечитай результат. При расхождении оставь источник и пометь конфликт. Не используй mirror/delete-режимы rsync/robocopy.

Перенос профиля браузера допустим только по явному запросу владельца между его устройствами. Ключи передавай через защищённый канал из памяти в штатное защищённое хранилище ОС, без аргументов команд, файлов, вывода и логов. Не копируй весь Keychain или хранилища расширений с кошельками. Совпадение файлов не доказывает работоспособность входов; проверь запуск и укажи, какие входы реально проверены.

Не удаляй staging целиком. После копирования отдельно решается судьба каждого остатка. Папки очистки при запуске могут содержать пользовательские данные: не перезагружай машину ради их автоматического удаления.

## Чистка и результат

Перед действием покажи точные объекты, число затронутых файлов включая вложенные, ожидаемый эффект, доказательство восстановления и способ отката. Существующее разрешение используй в его конкретных границах. Массовое удаление/перемещение более пяти файлов, очистка корзины и необратимое действие требуют явного согласования согласно местным правилам. Уточняй конкретный подготовленный пакет, а не проси повторно общее разрешение на аудит.

Непосредственно перед каждой чисткой заново проверь манифест, покрытие восстановления всех выбранных объектов и отсутствие активного использования/чужого писателя. Повторяй проверку перед очередным пакетом длинной операции. Изменились исходник, назначение, набор файлов, владелец/процесс или состояние восстановления — останови затронутую операцию, сохрани остаток и пересобери доказательства. Если изменился согласованный объём действий, получи новое разрешение на конкретный новый пакет; старое разрешение на него не распространяется.

Не выполняй `rm -rf`, не обходи сторожи, не очищай корзину целиком и не меняй расписания/политику хранения по ходу разовой чистки. Синхронизируемое удаление может уйти на все устройства; сначала проверь эту связь.

После согласованного пакета измерь тот же том тем же способом, проверь приложение/восстановленные данные и запиши exit-коды. Перемещение в корзину на том же диске обычно не освобождает место. Отдельно сообщи объём удалённых файлов и изменение свободного места; фоновую чистку, снимки и новые записи не приписывай своей работе. Не обещай равенство этих чисел.

Отчёт содержит время, устройство/том, до→после, действия, пропуски, доказательства и ограничения. Вердикт «проверено» требует фактического прогона; проверку на Mac не называй проверкой Windows. При необходимом независимом ревью результат остаётся предложенным до его получения.

## Паспорт и счётчик

Вход: запрос пользователя и измеряемые диски. Выход: манифест и отчёт без секретов. Вызывает пользователь или агент по запросу о хранении. Рельса: местные команды ОС/приложений, без платного API. Ошибка доступа → неполный аудит; неизвестное восстановление → сохранять объект; ошибка копирования → источник остаётся целым.

Если доступен существующий `a local usage-log script, if you keep one`, после реального применения запиши один вызов `--log hdd-storage-cleaning --outcome ok` либо `--outcome fail` подходящим локальным Python. `ok` относится к выполненному объёму задачи, а не к обещанию, что весь диск очищен. Уважай его правила записи; недоступность счётчика отрази в отчёте и не создавай новый механизм. При доработке скилла меняй только то, что подтвердил реальный случай или независимая проверка.

<!--kit-footer-->

---

**Like this skill?** It is part of [second-brain-starter-kit](https://github.com/tonydzi/second-brain-starter-kit): the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with `npx skills add tonydzi/second-brain-starter-kit`. Everything is open source and free, so take what you need.

Flagships worth a look on their own: [secondop-panel](https://github.com/tonydzi/secondop-panel) (a second opinion from a panel of external models), [claude-memory-tidy](https://github.com/tonydzi/claude-memory-tidy) (stop your agent's memory from rotting), [telegram-mcp-kit](https://github.com/tonydzi/telegram-mcp-kit) (your own Telegram over MCP in about 15 minutes).

Author: **Anton Dziatkovskii**, Palo Alto AI Research Lab. Telegram [@tonydzi](https://t.me/tonydzi) - WhatsApp [+1 341 222 9178](https://wa.me/13412229178) - X [@Tony_Stef_](https://x.com/Tony_Stef_)

**Engineers: want to test-drive this setup?** Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.
