eda-and-validation
Skill0 starsChanged 42 days agoMITView on GitHub
Use ao organizar, estruturar, planejar ou definir o ciclo de descoberta e verificacao em projetos de dados -- QUANDO criar EDA vs validacao, ONDE colocar (estrutura de pastas dedicadas para investigacoes vs validacoes), COMO registrar o fluxo completo (ACHADO -> DECISAO -> CODIGO -> VALIDACAO), COMO conectar etapas no arquivo de evolucao do projeto, COMO lidar com investigacoes inconclusivas. Time Travel e mecanismo auxiliar de auditoria, NAO evidencia principal (que e o output do notebook commitado). NAO use para definir nomenclatura de notebooks EDA/validacao (naming-conventions cobre), implementar codigo de guardrails (data-quality-guardrails cobre), definir estrutura interna de notebooks (notebook-structure cobre), ou escrever documentacao (technical-writing cobre).
In this repository13 other files it gives its agents.
- artifact-documentationSkill
- asset-placementSkill
- code-reviewSkill
- data-quality-guardrailsSkill
- docs-syncSkill
- git-workflowSkill
- medallion-architectureSkill
- naming-conventionsSkill
- notebook-structureSkill
- project-contextSkill
- skill-patternsSkill
- technical-writingSkill
- unity-catalog-namingSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 461
Registrar a conclusao: no proprio notebook:
- Distinctive: line 488
Considere transformar em guardrail automatico: no codigo do pipeline.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ciclo EDA-Validacao: Organizacao da Descoberta e Verificacao
Versão: 1.0.1 | Data: 2026-08-18 | Domínio: data-quality | Autor: Pedro O. Silva
Principio Orientador
Os itens abaixo sao o minimo obrigatorio, nao a lista completa. Identifique as verificacoes especificas do dominio dos dados em questao e inclua-as junto com as obrigatorias, seguindo a mesma estrutura de registro.
Quando Usar Esta Skill
USAR ao organizar o ciclo de descoberta e verificacao em projetos de dados:
- Usuario quer estruturar pastas de analises exploratorias vs validacoes
- Usuario pergunta onde registrar achados de investigacao
- Usuario quer conectar descobertas com decisoes tecnicas implementadas
- Usuario esta desenhando fluxo de trabalho para projetos de portfolio
- Usuario precisa decidir quando criar notebook de EDA vs validacao
NAO USAR para:
- Definir nomenclatura de notebooks EDA/validacao (usar
naming-conventions) - Implementar codigo de guardrails ou validacoes (usar
data-quality-guardrails) - Definir estrutura interna de notebooks (usar
notebook-structure) - Escrever documentacao tecnica (usar
technical-writing) - Decisoes arquiteturais de pipeline (usar
medallion-architecture)
Principio Fundamental
EDA nao e camada de pipeline — e superficie de investigacao do pipeline.
Bronze/Silver/Gold sao camadas de transformacao progressiva. EDA e camada de inteligencia sobre as transformacoes.
MODELO ERRADO (EDA como camada de dados):
Bronze → Silver → Gold → EDA → BI
MODELO CORRETO (EDA como investigacao):
┌─────────────┐
│ EDA │ ← investiga qualquer ponto
│ (ortogonal) │
└─────────────┘
│
descobre
↓
Bronze → Silver → Gold → BI
↑ ↑ ↑
└────────┴───────┘
implementa decisoesDistincao Critica: EDA vs Validacao
EDA (Exploratory Data Analysis)
Proposito: Descoberta
Caracteristicas:
- Investigacao que GERA decisoes tecnicas
- Snapshot historico de um estado especifico do pipeline
- Pode quebrar depois que o pipeline evolui (comportamento normal)
- Registro do contexto que motivou uma mudanca
Ciclo de vida:
- Criada para investigar problema ou hipotese
- Produz evidencias e achados
- Gera decisao tecnica
- Torna-se registro historico (pode ficar desatualizada)
Exemplo:
EDA_002_duplicidades_dre.py
├─ Dataset analisado: 201_dre_silver v1 (10M linhas)
├─ Data: 2026-08-16
├─ Achado: 12,4% das chaves possuem duplicidade
├─ Hipotese: ORDEM_EXERC mantem registros conflitantes
├─ Evidencia: [consultas SQL, graficos, exemplos]
└─ Decisao: filtrar ORDEM_EXERC = 'ULTIMO' na transformacao SilverValidacao
Proposito: Verificacao
Caracteristicas:
- VERIFICA que decisao tecnica foi implementada corretamente
- Executavel permanente sobre estado atual do pipeline
- Deve passar sempre (se quebrar = regressao ou nova condicao)
- Teste de conformidade com regras de negocio
Ciclo de vida:
- Criada apos implementacao de uma regra
- Verifica continuamente que regra funciona
- Integra-se ao processo de qualidade
- Pode evoluir para guardrail automatico no pipeline
Exemplo:
VAL_002_deduplicacao_dre.py
├─ Valida: duplicidade CNPJ+DT_REFER+CD_CONTA = 0
├─ Origem: implementacao da decisao do EDA_002
├─ Resultado esperado: 0 duplicatas
├─ Status: PASS
└─ Se falhar: alerta de regressao ou nova condicao a investigarCiclo Completo: ACHADO → DECISAO → CODIGO → VALIDACAO
Etapa 1: ACHADO (EDA)
Onde: Pasta dedicada para investigacoes (ex: investigacoes/, eda/, analises_exploratorias/), nomenclatura tipo EDA_nnn_descricao
O que registrar no notebook:
## Contexto
Dataset analisado: [catalog.schema.table]
Data: [YYYY-MM-DD]
Estado: [quantidade de registros, versao]
## Investigacao
[Pergunta ou problema que motivou a analise]
## Resultado
[Metricas, graficos, exemplos concretos]
## Hipotese
[Explicacao proposta para o achado]
## Decisao
[O que sera implementado no pipeline]Etapa 2: DECISAO (evolucao_projeto.md)
Onde: evolucao_projeto.md do projeto
O que registrar:
## YYYY-MM-DD — [Titulo da Decisao]
**Contexto**: EDA_nnn revelou [achado]
**Decisao**: [O que sera implementado]
**Implementado em**: [arquivo/linha onde foi aplicado]
**Impacto**: [volumetria, qualidade, ou outro efeito mensuravel]Etapa 3: CODIGO (Pipeline)
Onde: Notebook de transformacao (Bronze/Silver/Gold)
O que fazer:
- Implementar a regra decidida
- Adicionar comentario referenciando a origem da decisao
- Exemplo:
# Decisao: EDA_002 (2026-08-16) - manter apenas ORDEM_EXERC='ULTIMO'
df_filtrado = df.filter(col("ORDEM_EXERC") == "ULTIMO")Etapa 4: VALIDACAO (Verificacao)
Onde: 05_validacoes/VAL_nnn_descricao.py
O que registrar no notebook:
## Validacao
Regra validada: [descricao da regra]
Origem: [referencia ao EDA que gerou a decisao]
## Resultado Esperado
[Metrica ou condicao que deve ser atendida]
## Resultado Obtido
[Resultado da execucao atual]
## Status
PASS | FAILEstrutura do codigo:
# Executar validacao
resultado = spark.sql("""
SELECT COUNT(*) as duplicatas
FROM catalog.schema.table
GROUP BY chave_1, chave_2
HAVING COUNT(*) > 1
""").collect()[0]['duplicatas']
# Avaliar
status = "PASS" if resultado == 0 else "FAIL"
print(f"Status: {status}")
print(f"Duplicatas encontradas: {resultado}")
if status == "FAIL":
raise ValueError(f"Validacao falhou: {resultado} duplicatas encontradas")Validacao Hierarquica: Dois Niveis de Rigor
Contexto
Dados hierarquicos (DRE, BPA, BPP, plano de contas) possuem relacionamentos estruturais entre contas pai e contas filhas. Validacoes hierarquicas devem distinguir dois tipos de relacionamento, cada um exigindo estrategia de validacao diferente.
Classificacao de Relacionamentos Hierarquicos
Tipo 1: Contas Aditivas (Soma Vertical)
Definicao: Conta pai = soma das contas filhas
Exemplo:
3.01 (Receita) = 100.000
├─ 3.01.01 (Receita Produto A) = 60.000
└─ 3.01.02 (Receita Produto B) = 40.000
Validacao: 3.01 = SUM(3.01.01, 3.01.02) ✓Validacao: Soma matematica (vertical) das filhas deve igualar o pai
Tipo 2: Contas Derivadas (Formula Horizontal)
Definicao: Conta = formula entre contas irmas (mesmo nivel hierarquico)
Exemplo:
3.01 (Receita) = 100.000
3.02 (Custo) = -60.000
3.03 (Resultado Bruto) = 40.000
Validacao: 3.03 = 3.01 - 3.02 ✓Validacao: Formula matematica (horizontal) entre contas do mesmo nivel
Dois Niveis de Rigor na Validacao
Nivel 1: Interpretacao (Qualitativa)
Proposito: Compreender a estrutura e propor hipoteses
Metodo:
- Observar padroes na estrutura hierarquica
- Consultar documentacao de dominio (ex: estrutura padrao de DRE)
- Propor formulas plausíveis baseadas em conhecimento do dominio
Limitacao: Nao prova que os valores reais seguem a interpretacao proposta
Registro no notebook:
## Classificacao de Contas Totalizadoras
| Tipo | Quantidade | Interpretacao |
| --- | --- | --- |
| Aditivas | 6 | Soma das filhas (estrutura observada) |
| Derivadas | 6 | Formulas interpretadas (nao validadas) |
**Observacao**: Contas derivadas baseiam-se em estrutura padrao de DRE.
Validacao numerica pendente.Nivel 2: Verificacao Numerica (Quantitativa)
Proposito: Provar com dados reais que a hipotese esta correta
Metodo:
- Para contas aditivas: SQL testando
pai = SUM(filhas), divergencia < tolerancia - Para contas derivadas: SQL testando formula proposta, divergencia < tolerancia
Validacao concreta: Executar sobre amostra representativa e medir divergencias
Exemplo SQL (contas aditivas):
WITH pai AS (
SELECT VL_CONTA as vl_pai
FROM tabela
WHERE CD_CONTA = '3.01'
),
filhas AS (
SELECT SUM(VL_CONTA) as vl_soma_filhas
FROM tabela
WHERE CD_CONTA LIKE '3.01.%'
AND LENGTH(CD_CONTA) - LENGTH(REPLACE(CD_CONTA, '.', '')) + 1 = 3
)
SELECT
vl_pai,
vl_soma_filhas,
ABS(vl_pai - vl_soma_filhas) as divergencia,
CASE WHEN ABS(vl_pai - vl_soma_filhas) < 0.01 THEN 'PASS' ELSE 'FAIL' END as status
FROM pai, filhasExemplo SQL (contas derivadas):
WITH valores AS (
SELECT
MAX(CASE WHEN CD_CONTA = '3.01' THEN VL_CONTA END) as receita,
MAX(CASE WHEN CD_CONTA = '3.02' THEN VL_CONTA END) as custo,
MAX(CASE WHEN CD_CONTA = '3.03' THEN VL_CONTA END) as resultado_bruto_real
FROM tabela
)
SELECT
receita,
custo,
resultado_bruto_real,
(receita - custo) as resultado_bruto_calculado,
ABS(resultado_bruto_real - (receita - custo)) as divergencia,
CASE WHEN ABS(resultado_bruto_real - (receita - custo)) < 0.01 THEN 'PASS' ELSE 'FAIL' END as status
FROM valoresRegistro no notebook:
## Validacao Numerica de Contas Derivadas
### Amostra: WLM, Q4/2025, PENULTIMO
| Conta | Formula Testada | Status | Divergencia |
| --- | --- | --- | --- |
| 3.03 | 3.01 - 3.02 | PASS | < 0,01 |
| 3.05 | 3.03 + 3.04 | PASS | < 0,01 |
| 3.07 | 3.05 + 3.06 | PASS | < 0,01 |
**Conclusao**: Formulas derivadas validadas numericamente na amostra.Transparencia de Escopo nos Achados
Problema comum: Numeros contraditorios sem explicacao de escopo
Exemplo:
❌ CONFUSO:
"A tabela tem 14 contas totalizadoras."
[10 celulas depois]
"As 12 contas totalizadoras foram validadas."Solucao: Explicitar escopo sempre que o numero mudar
✓ CLARO:
"A tabela tem 14 contas totalizadoras (escopo: dataset completo, todas as empresas)."
[10 celulas depois]
"Das 14 contas totalizadoras globais, 12 aparecem no reporte da empresa WLM (escopo: amostra especifica).
As 12 contas da amostra foram validadas numericamente."Principio: Cada metrica deve identificar o escopo que a gerou
Documentacao de Gaps Pendentes
Principio: "Ainda nao verificado" e informacao tao importante quanto "validado"
Registro no notebook:
## Status da Validacao Hierarquica
### Validado
- [x] 6 contas aditivas: validadas por SQL, divergencia < 0,01
- [x] Escopo: amostra WLM, Q4/2025, PENULTIMO
### Pendente
- [ ] 6 contas derivadas: interpretadas, mas nao validadas numericamente
- [ ] Validacao: criar celula SQL testando formulas propostas
- [ ] Generalizacao: validar em amostra maior (outras empresas/periodos)
**Proxima acao**: Adicionar celula SQL para validacao numerica de contas derivadas.Por que documentar gaps:
- Demonstra honestidade intelectual
- Facilita continuidade do trabalho
- Evita interpretar "interpretacao" como "validacao"
- Recrutadores valorizam rigor tecnico e transparencia
Checklist de Validacao Hierarquica
Ao validar estruturas hierarquicas em EDA:
- Classificar relacionamentos (aditivas vs derivadas)
- Nivel 1: Interpretar estrutura (documentar como hipotese)
- Nivel 2: Validar numericamente (SQL sobre amostra)
- Explicitar escopo de cada metrica reportada
- Documentar gaps pendentes explicitamente
- Registrar tolerancia de divergencia aceitavel (ex: < 0,01)
- Amostras pequenas: suficientes para validacao, explicitar limitacao
Integracao com Ciclo EDA-Validacao
EDA hierarquico:
- Investiga estrutura hierarquica
- Classifica relacionamentos (aditivas/derivadas)
- Valida numericamente em amostra
- Documenta achados e gaps pendentes
Validacao hierarquica:
- Verifica integridade hierarquica em escopo completo
- Testa continuamente pos-implementacao
- Pode evoluir para guardrail automatico
Exemplo de progressao:
EDA_001_hierarquia_dre
↓ descobre e valida em amostra
Decisao: sem correcao necessaria, estrutura integra
↓ validacao continua opcional
VAL_001_integridade_hierarquica_dre
↓ testa em todo dataset periodicamenteEstrutura de Pastas
Estrutura Recomendada
projeto/
├── 01_bronze/
├── 02_silver/
├── 03_gold/
├── 04_investigacoes/ ← DESCOBERTA (pode ficar desatualizada)
│ ├── EDA_001_qualidade_dados_bronze.py
│ ├── EDA_002_duplicidades_dre.py
│ └── EDA_003_estrutura_contas_plano.py
├── 05_validacoes/ ← VERIFICACAO (deve passar sempre)
│ ├── VAL_001_integridade_bronze.py
│ ├── VAL_002_deduplicacao_dre.py
│ └── VAL_003_conformidade_contas.py
└── 00_documentacao/
└── evolucao_projeto.md ← CONTEXTO (por que foi feito)Criterio de Classificacao
Pergunta: Este notebook investiga um problema/hipotese OU verifica uma regra implementada?
Resposta "investiga" → 04_investigacoes/
- Analise exploratoria de dados brutos
- Investigacao de anomalias
- Teste de hipoteses sobre estrutura/qualidade
- Descoberta de padroes
Resposta "verifica" → 05_validacoes/
- Testa se regra de negocio esta implementada
- Verifica se transformacao produziu resultado esperado
- Confirma que guardrail esta funcionando
- Mede conformidade com requisitos
Investigacoes Inconclusivas
Situacao: EDA que nao gera decisao tecnica (hipotese refutada, exploracao sem achado relevante).
O que fazer:
- Manter o notebook em
04_investigacoes/ - Registrar a conclusao no proprio notebook:
## Conclusao
Hipotese refutada: [explicacao]
Nenhuma acao necessaria no pipeline.
Investigacao arquivada para referencia futura.- Documentar em evolucao_projeto.md:
## YYYY-MM-DD — Investigacao: [Titulo]
**Contexto**: [O que motivou a investigacao]
**Resultado**: Hipotese refutada / Nenhuma evidencia encontrada
**Decisao**: Nenhuma alteracao no pipeline necessaria
**Aprendizado**: [O que foi descoberto sobre os dados, mesmo sem acao]Por que manter: Demonstra rigor cientifico e evita re-investigar a mesma hipotese no futuro.
Progressao: Validacao → Guardrail Automatico
Quando uma validacao se torna:
- Repetitiva (executada frequentemente)
- Estavel (sempre passa, regra consolidada)
- Critica (falha representa problema grave)
Considere transformar em guardrail automatico no codigo do pipeline.
Consultar: Skill data-quality-guardrails para implementacao.
Exemplo de progressao:
EDA_002 (investigacao)
↓ gera decisao
VAL_002 (validacao manual)
↓ executa 20+ vezes, sempre passa
Guardrail automatico no codigo Silver
↓ integrado ao pipeline
- Valida automaticamente a cada execucao
- Falha rapido se condicao violada
- Documentado inline no codigoTime Travel: Mecanismo Auxiliar, Nao Fundamento
Hierarquia de Evidencias
1. Evidencia Primaria: Output do notebook (consultas, graficos, metricas) commitado no Git 2. Evidencia Secundaria: Registro em evolucao_projeto.md 3. Evidencia Auxiliar: Time Travel para auditoria pontual
Time Travel E Adequado Para
- Auditoria regulatoria: recuperar estado especifico para compliance
- Debug de regressao: "quando esta tabela quebrou?"
- Comparacao antes/depois: medir impacto de mudanca estrutural
- Recuperacao: reverter para versao anterior
Time Travel NAO Deve Ser Usado Para
- Definir estrutura da camada de analises
- Tornar EDAs permanentemente reproduziveis sobre tabelas vivas
- Criar dependencias
VERSION AS OF 17, 18, 21...nos notebooks - Fundamentar a arquitetura do ciclo EDA-validacao
Uso Correto em Notebook de EDA
BOM (contexto historico):
# Estado analisado em 2026-08-16
# Dataset: catalog.schema.table
# Registros: 10.234.567
# Versao Delta: informacao registrada para auditoria futuraRUIM (dependencia operacional):
# Este notebook REQUER VERSION AS OF 17 para funcionar
df = spark.sql("SELECT * FROM catalog.schema.table VERSION AS OF 17")Nomenclatura
Para convencoes de nomenclatura de notebooks EDA/validacao, consultar skill naming-conventions.
Padroes gerais:
- Prefixo:
EDA_ouVAL_ - Numeracao sequencial:
001,002,003 - Descricao: snake_case, especifica
- Exemplos:
EDA_002_duplicidades_dre.pyVAL_002_deduplicacao_dre.py
Estrutura Interna dos Notebooks
Para ordem de celulas e organizacao interna de cada notebook EDA/validacao, consultar skill notebook-structure.
Principios gerais:
- Celula inicial: documentacao (contexto, objetivo)
- Celulas intermediarias: analise/validacao
- Celula final: conclusao/status
Conexao com evolucao_projeto.md
Formato Recomendado
Cada entrada documenta o ciclo completo:
## YYYY-MM-DD — [Titulo da Decisao]
**Contexto**: EDA_nnn revelou [achado especifico com metricas]
**Decisao**: [O que sera implementado - regra clara]
**Implementado em**: [arquivo/linha - rastreabilidade]
**Validado por**: VAL_nnn - [resultado da validacao]
**Impacto**: [volumetria, qualidade, ou outro efeito mensuravel]
**Aprendizado**: [Insight sobre os dados ou processo]Rastreabilidade Completa
O registro cria cadeia rastreavel:
- EDA_nnn aponta para evolucao_projeto.md (entrada de data especifica)
- evolucao_projeto.md aponta para codigo de transformacao (arquivo/linha)
- VAL_nnn aponta para evolucao_projeto.md (mesma entrada)
- Git preserva todas as versoes historicas
Valor Para Portfolio
Este ciclo demonstra para recrutadores:
- Pensamento estruturado: distincao clara entre investigacao vs verificacao
- Rastreabilidade tecnica: cada decisao nasce de evidencia, cada implementacao gera validacao
- Maturidade profissional: ciclo completo de engenharia, nao apenas "codigo que funciona"
- Documentacao tecnica: conexao entre descoberta, decisao, implementacao e verificacao
- Rigor cientifico: investigacoes inconclusivas tambem sao documentadas
Checklist de Aplicacao
Ao receber solicitacao relacionada ao ciclo EDA-validacao:
- Notebook proposto e investigacao (EDA) ou verificacao (validacao)?
- Pasta correta identificada (
04_investigacoes/vs05_validacoes/)? - Ciclo completo esta sendo considerado (ACHADO → DECISAO → CODIGO → VALIDACAO)?
- Conexao com evolucao_projeto.md foi planejada?
- Investigacoes inconclusivas tem tratamento adequado?
- Time Travel esta sendo usado como auxiliar (nao fundamento)?
- Referencias cruzadas com outras skills foram feitas quando necessario?
Integracao com Outras Skills
- naming-conventions: Convencoes de nomenclatura EDA_nnn vs VAL_nnn
- notebook-structure: Ordem de celulas e organizacao interna
- data-quality-guardrails: Progressao de validacao para guardrail automatico
- technical-writing: Tom e formato de documentacao em notebooks e evolucao_projeto.md
- docs-sync: Quais documentacoes atualizar apos decisao tecnica
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

