# Hm Docker Clean

> Faxina segura de Docker no padrão Higher Mind (dados sagrados). Use quando o disco do Mac está cheio por causa do Docker, quando o Docker.raw inchou, ou quando o Owner pede pra limpar imagens/cache/containers. Codifica o protocolo de limpeza profunda ASSISTIDA — para antes de tocar qualquer coisa de produto, verifica onde o dado realmente vive, nunca apaga volume. Para o lixo trivial recorrente e…

- **Type:** Skill
- **Install:** `agentstack add skill-rodrigohighermind-highermind-code-skills-hm-docker-clean`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [rodrigohighermind](https://agentstack.voostack.com/s/rodrigohighermind)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [rodrigohighermind](https://github.com/rodrigohighermind)
- **Source:** https://github.com/rodrigohighermind/highermind-code-skills/tree/main/hm-docker-clean

## Install

```sh
agentstack add skill-rodrigohighermind-highermind-code-skills-hm-docker-clean
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /hm-docker-clean — Faxina de Docker Segura

Você está em **modo limpeza de Docker**. Regra mãe: **dados são sagrados**. Disco cheio nunca justifica perder um byte de banco.

## Antes de tudo: existe automação pro lixo trivial

O binário **`docker-gc`** já cuida do lixo recorrente e seguro (build cache órfão + imagens dangling), conservador, agendado no launchd semanal (`com.highermind.docker-gc`). Se o problema é só acúmulo de rotina, rode `docker-gc` e pare aqui. Esta skill é pro caso que **exige julgamento**: imagens grandes de produtos, decidir o que pode sair.

## Proibições absolutas (nunca, em hipótese alguma)

- `docker volume prune` — destrói dados de produtos.
- `docker system prune -a --volumes` — idem, pior.
- `docker volume rm ` sem confirmação explícita do Owner naquela sessão.
- Remover imagem com tag de produto sem antes provar onde o dado vive.

## Protocolo (a ordem importa)

### 1. Diagnóstico, sem tocar em nada
```
docker system df -v      # o que ocupa: imagens, cache, containers, VOLUMES
docker volume ls         # liste e confirme com o Owner quais são os bancos dele
```
Mapeie cada volume ao produto. Os volumes são o ativo sagrado — eles **não saem nunca** nesta faxina.

### 2. Limpe só o descartável puro (sem perguntar)
```
docker builder prune -f  # cache órfão
docker image prune -f    # SÓ dangling ( sem container). Nunca -a sem confirmar.
```

### 3. PARE antes de containers e imagens de produto
- `docker container prune -f` remove containers parados. **Não apaga volume** (o dado fica no volume nomeado, reconecta no `compose up`). Mas todos costumam ser produtos do Owner → **confirme antes**, listando exatamente o que sai.
- Imagens com tag de produto → **prove onde o dado vive antes de remover**. Faces/pessoas, transações, etc. costumam estar em **Supabase/Postgres (volume ou nuvem)**, não na imagem. A imagem é só o ambiente de runtime/build. Remover a imagem ≠ perder dado — mas **só afirme isso depois de checar** (grep no projeto por Dockerfile/compose que a referencie; ver se a tabela vive em volume local ou Supabase).
- Custo real de remover imagem de produto = ter que **rebuildar** depois. Diga isso ao Owner.

### 4. Cache pesado (`builder prune -a`)
Libera o cache de builds vivos também. Custo: próximo build de tudo fica lento (do zero). Vale quando o cache está em muitos GB e é morto. Confirme o trade-off.

### 5. O Docker.raw não encolhe sozinho
Apagar imagem libera espaço **dentro** do `Docker.raw`, mas o arquivo (no `~/Library/Containers/com.docker.docker/...`) não auto-compacta. Pra devolver espaço ao disco do Mac:
> **Quit no Docker Desktop e reabrir**, ou **Settings → Resources → Reclaim space**.
Esse passo é do Owner (mexe no app inteiro). Só vale **depois** de remover as imagens grandes.

### 6. Balanço final
```
docker system df         # mostre o liberado
```
Confirme: contagem de volumes igual à do passo 1 (nenhum perdido), containers de produto vivo ainda UP.

## Padrão de comunicação nesta skill

- Sempre separar "espaço liberado dentro do Docker" de "espaço devolvido ao disco" (só o reclaim faz o segundo).
- Antes de remover qualquer coisa de produto: listar exatamente o que sai, o custo (rebuild), e onde o dado vive.
- Nunca rodar operação destrutiva de volume. Se o Owner pedir, confirmar duas vezes e fazer backup antes.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [rodrigohighermind](https://github.com/rodrigohighermind)
- **Source:** [rodrigohighermind/highermind-code-skills](https://github.com/rodrigohighermind/highermind-code-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-rodrigohighermind-highermind-code-skills-hm-docker-clean
- Seller: https://agentstack.voostack.com/s/rodrigohighermind
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
