Skip to content
Back to skills

Ml Checkpoints

ASecurity

Conduz o desenvolvimento de um pipeline preditivo em saúde por checkpoints interativos, um de cada vez, perguntando qual caminho seguir e oferecendo apenas as estratégias que os dados carregados permitem. Roda um diagnóstico da base (missing, cardinalidade, sentinelas, desbalanceamento, repetição de paciente, suspeita de vazamento) e usa esses números para montar as opções de cada decisão: separação dos dados, tratamento de faltantes, pré-processamento, desbalanceamento, modelos candidatos, s...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 26, 2026
datapythongobash

Works with

  • claude code
  • cli

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add labdaps/labskills --skill ml-checkpoints --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ml Checkpoints?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ml Checkpoints
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/labdaps-ml-checkpoints/badge)](https://www.skillsdirectory.com/skills/labdaps-ml-checkpoints)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ml-checkpoints
description: Conduz o desenvolvimento de um pipeline preditivo em saúde por checkpoints interativos, um de cada vez, perguntando qual caminho seguir e oferecendo apenas as estratégias que os dados carregados permitem. Roda um diagnóstico da base (missing, cardinalidade, sentinelas, desbalanceamento, repetição de paciente, suspeita de vazamento) e usa esses números para montar as opções de cada decisão: separação dos dados, tratamento de faltantes, pré-processamento, desbalanceamento, modelos candidatos, seleção de features, métrica principal, calibração e interpretabilidade, até a predição final. Cada escolha fica registrada com o motivo. Use SEMPRE que o usuário pedir "/ml-checkpoints", "me guia no pipeline", "vamos passo a passo no modelo", "que estratégia uso para separar os dados", "como trato o missing aqui", "qual modelo uso para esses dados", "qual métrica escolher", "me ajuda a montar o modelo com esses dados", "checkpoints do pipeline", ou quando alguém chegar com uma base e não souber qual decisão tomar em alguma etapa da modelagem. Acionar também quando o usuário estiver em dúvida entre duas estratégias concretas (holdout ou validação cruzada, SMOTE ou class_weight, AUROC ou AUPRC, one-hot ou target encoding).
---

# Skill: ml-checkpoints

Conduz o pipeline preditivo por checkpoints. Em cada um, você pergunta o caminho, oferece só o que os dados permitem, registra a escolha com o motivo e segue.

A skill existe porque a decisão errada em ML de saúde quase nunca é a do modelo. É separar por linha quando o mesmo paciente tem três internações, imputar sem indicador uma variável que falta mais em quem tem menos acesso, usar AUROC com desfecho de 3%, ou tratar código de município como quantidade. Nenhum desses erros aparece na métrica: todos aparecem na validação externa, quando já não dá para voltar.

Por isso a regra que organiza tudo: **as opções de cada checkpoint saem do diagnóstico da base, não de um menu fixo.** Se os dados bloqueiam uma estratégia, ela não é oferecida.

## Fluxo

```
CP0 diagnóstico -> CP1 desfecho -> CP2 separação -> CP3 faltantes -> CP4 pré-processamento
 -> CP5 desbalanceamento -> CP6 modelos -> CP7 features -> CP8 métrica -> CP9 calibração
 -> CP10 interpretabilidade -> CP11 predição e empacotamento
```

Um checkpoint por vez. Não adiante decisão futura nem peça tudo de uma vez: o valor está em cada escolha chegar com o número que a sustenta.

## CP0: diagnóstico (sempre primeiro, sem perguntar antes)

Peça o caminho da base e a coluna do desfecho, e rode:

```bash
python "${CLAUDE_SKILL_DIR}/scripts/diagnose_data.py" <arquivo> --target <desfecho> [--id <coluna>] [--date <coluna>]
```

O Claude Code já entrega o caminho entre aspas resolvido para a pasta desta skill, venha ela do plugin `ml` do marketplace `labdaps` ou do `install.sh`. Se aparecer o nome da variável no lugar de um caminho, use `~/.claude/skills/ml-checkpoints/`, a pasta da instalação pelo `install.sh`. Aceita CSV, TSV, Parquet e Excel. Com `--json`, devolve o mesmo diagnóstico em formato de máquina.

O que ele mede e por que cada coisa importa está em `references/checkpoints.md`. O essencial: N e colunas, tipo e prevalência do desfecho, missing por coluna, cardinalidade, sentinelas de saúde (9, 99, 999) distinguidas de código legítimo, colunas numéricas que na verdade são código, repetição por identificador, colunas de data e suspeita de vazamento por AUC univariada.

Apresente ao usuário só o que exige decisão, não o relatório inteiro. E leve a sério o que aparecer:

- **Suspeita de vazamento é parada obrigatória.** Uma variável com AUC univariada acima de 0,95 quase sempre é consequência do desfecho, não preditora. Resolva antes do CP1.
- **Missing no próprio desfecho** muda a definição da coorte, não é problema de imputação.
- **Repetição por identificador** já elimina o split aleatório, e isso precisa ser dito no CP2 com o número de linhas por grupo.

## Como conduzir cada checkpoint

1. **Nunca ofereça opção marcada BLOQUEADO** pelo diagnóstico. Ela não é uma escolha ruim, é uma escolha que os dados impedem. Se o usuário pedir mesmo assim, mostre o número que a bloqueia e peça confirmação explícita antes de registrar como aceite consciente.
2. **Duas a quatro opções**, cada uma com o que ela custa. A recomendada vem primeiro, marcada, e o motivo é sempre um número medido na base, nunca "é boa prática".
3. **Registre a decisão em `pipeline-decisions.md` assim que ela for tomada**, a partir de `templates/pipeline-decisions.template.md`. Esse arquivo vira a seção de Métodos do artigo: se a decisão não estiver escrita com o motivo, ela não existe daqui a três meses.
4. **Propague a restrição.** Toda escolha fecha portas adiante, e isso precisa ser dito na hora, não descoberto depois.

### Restrições que uma escolha impõe às seguintes

| Escolha no checkpoint | O que ela obriga depois |
|---|---|
| split por grupo (CP2) | a CV do CP6 usa o mesmo agrupamento, e o tuning também |
| split temporal (CP2) | nenhuma feature pode usar informação posterior ao corte, e o resultado sai por período |
| imputação (CP3) | o imputador é aprendido dentro do fold, e o CP9 reporta calibração com e sem |
| indicador de missing (CP3) | os indicadores entram como features e aparecem no SHAP do CP10 |
| target encoding (CP4) | encoding dentro do fold, obrigatoriamente; fora dele é vazamento |
| class_weight, SMOTE ou reamostragem (CP5) | CP9 deixa de ser opcional: reportar Brier e slope antes e depois, e recalibrar |
| modelo nativo a NaN (CP3, CP6) | trocar de família de modelo reabre o CP3 inteiro |
| família de modelo (CP6) | reabre o CP4: árvore dispensa escalonamento, linear e SVM exigem |
| seleção de features (CP7) | a seleção acontece dentro do fold, e o N de features entra no cálculo de casos por variável |
| ponto de corte (CP8) | o corte é fixado no treino, nunca escolhido olhando o teste |

Quando uma escolha reabre um checkpoint anterior, volte, refaça e anote no registro. Seguir em frente com a decisão velha é o caminho mais curto para um resultado que não reproduz.

## Os checkpoints

O catálogo completo de opções, com o critério que muda o status de cada uma, está em `references/checkpoints.md`. Resumo do que se decide:

| Checkpoint | Decisão |
|---|---|
| CP1 desfecho e unidade | qual coluna é o alvo, qual é a unidade de análise, qual é o momento da predição |
| CP2 separação | holdout, CV repetida ou aninhada, split por grupo, split temporal, validação externa |
| CP3 faltantes | modelo nativo a NaN, imputação simples com indicador, MICE, descarte de coluna, sentinelas |
| CP4 pré-processamento | confirmar códigos numéricos, encoding, escalonamento, outliers |
| CP5 desbalanceamento | não balancear, class_weight, reamostragem |
| CP6 modelos | baseline obrigatória, boosting, linear regularizado, rede neural |
| CP7 features | manter todas, conhecimento clínico, importância dentro do fold, RFE |
| CP8 métrica | AUROC, AUPRC, sensibilidade em especificidade fixa, decision curve, ponto de corte |
| CP9 calibração | só reportar, Platt, isotônica |
| CP10 interpretabilidade | SHAP com direção, coeficientes, partial dependence, permutação |
| CP11 predição | treinar no conjunto final, prever em dado novo, empacotar e registrar |

### CP11: fechar o ciclo

Com todas as decisões tomadas, gere o código do pipeline refletindo exatamente o que foi escolhido, rode, e entregue quatro coisas:

1. **A predição no dado que o usuário quer prever**, com a probabilidade calibrada, não só a classe.
2. **A métrica principal com intervalo de confiança**, comparada com a baseline do CP6. Sem a baseline ao lado, o número não significa nada.
3. **O SHAP com a direção de cada variável**, com as divergências do esperado clinicamente marcadas.
4. **O `pipeline-decisions.md` completo**, que já é o rascunho da seção de Métodos.

Se o modelo não bater a baseline, diga isso na primeira linha. Resultado negativo fecha o ciclo, não reabre a busca por um número melhor.

## Regras que não dependem do checkpoint

- **Separar antes de ajustar qualquer coisa, e todo pré-processamento aprendido dentro do fold.** Imputação, encoding, escalonamento, seleção, balanceamento e busca de hiperparâmetros só veem a partição de treino. Aprender no dado completo infla a métrica de um jeito indistinguível de sucesso.
- **Dado bruto nunca no repositório.** O registro de decisões referencia o caminho, jamais o conteúdo.
- **Nada de escolher o corte olhando o teste.**
- **Métrica sem incerteza não é resultado.** Reporte IC, por bootstrap ou pela variação entre folds.

## Relação com as outras skills do laboratório

Esta skill decide, as outras executam. Ela é o passo a passo interativo; a `graph-lab` é o planejamento do experimento inteiro como grafo antes de começar, e a `ml-pipeline` é a implementação padrão do laboratório.

Esta skill é a norma de método do laboratório: as outras apontam para ela em vez de repetir regra própria. A evidência por trás das regras, o que já deu errado em projeto e por quê, está em `docs/aprendizados-pipeline-agentes.md`, no ai-lab-hub.

| Momento | Skill |
|---|---|
| planejar o experimento todo antes de rodar | `graph-lab` |
| decidir cada etapa com os dados na mão | `ml-checkpoints` (esta) |
| implementar treino, CV e calibração | `ml-pipeline` |
| avaliação, ROC, SHAP, subgrupos | `ml-eval-report` |
| desfecho novo no pipeline DataSUS | `datasus-outcome` |
| série temporal | `ml-timeseries` |

## Referências

- `scripts/diagnose_data.py`: o diagnóstico que alimenta as opções (pandas e numpy)
- `references/checkpoints.md`: catálogo de opções por checkpoint, com o critério de cada status
- `templates/pipeline-decisions.template.md`: registro das decisões, que vira a seção de Métodos

Files in this skill

  • SKILL.md9.6 KB
  • references/checkpoints.md11.1 KB
  • scripts/diagnose_data.py27.8 KB
  • templates/pipeline-decisions.template.md2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…