# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/
.venv/
venv/
*.egg

# IDE
.vscode/
.idea/
*.swp
*.swo

# Test / pytest
.pytest_cache/
htmlcov/
.coverage

# Output artifacts (generated, not source)
output/

# Scratch / profiling (regenerable; conclusoes consolidadas em docs/theory/)
tmp/

# Cython acelerador compilado (gerado; fonte versionada e' o .pyx)
src/tcf/_core/*.c
src/tcf/_core/*.pyd
src/tcf/_core/*.so
src/tcf/_core/*.html

# Experiment results (large, regenerable)
# EXCECAO (T-QA-8 F1-3, 2026-07-10): evidencia-0.8/ e' MATERIAL COMPROBATORIO
# versionado (outputs visiveis pra auditoria — regra do material). O resto de
# results/ segue ignorado ('/*' + negacao porque dir excluido nao re-inclui filho).
experiments/results/*
!experiments/results/evidencia-0.8/
experiments/scratch/
experiments/data/
experiments/images/
experiments/models_local.json
experiments/eval_plan.json

# OS
Thumbs.db
.DS_Store
output*
# EXCECAO (2026-07-13, convencao de labs): pastas outputs/ dos labs DIRTY (novos) sao
# EVIDENCIA versionada. Escopo so' em dirty/ p/ nao expor outputs regeneraveis de labs
# antigos (clean/EXP-*, dirty/old/, baseline) que precedem a convencao.
!experiments/lab/dirty/**/outputs/
!experiments/lab/dirty/**/outputs/**
# re-ignora os PRE-convencao (regeneraveis, ficam como estavam):
experiments/lab/dirty/old/**/outputs/
experiments/lab/dirty/2026-05-27-baseline-consolidado/outputs/
# EXCECAO (2026-08-07): labs CLEAN que ja' nascem sob a convencao de 2026-07-13. Escopo
# nomeado, um por linha, para nao arrastar os clean/EXP-* pre-convencao.
!experiments/lab/clean/EXP-016-bn-familia-bits/outputs/
!experiments/lab/clean/EXP-016-bn-familia-bits/outputs/**
!experiments/lab/clean/EXP-018-int-pad-e-rota-tipada/outputs/
!experiments/lab/clean/EXP-018-int-pad-e-rota-tipada/outputs/**
!experiments/lab/clean/EXP-018-int-pad-e-rota-tipada/intermediates/
!experiments/lab/clean/EXP-018-int-pad-e-rota-tipada/intermediates/**
!experiments/lab/clean/EXP-017-data-alvos-mensais/outputs/
!experiments/lab/clean/EXP-017-data-alvos-mensais/outputs/**
!experiments/lab/clean/EXP-017-data-alvos-mensais/intermediates/
!experiments/lab/clean/EXP-017-data-alvos-mensais/intermediates/**
restored*/
*.tcf
# EXCECAO (2026-07-13, convencao de labs): wire TCF de lab dirty (inputs/outputs) com extensao real
!experiments/lab/dirty/**/inputs/**/*.tcf
!experiments/lab/dirty/**/outputs/**/*.tcf
# LACUNA FECHADA (2026-08-10): a convencao manda TRES estagios (inputs/intermediates/
# outputs), mas a excecao cobria so' dois — 6 wires de `intermediates/` estavam invisiveis.
!experiments/lab/dirty/**/intermediates/**/*.tcf
!experiments/lab/clean/EXP-016-bn-familia-bits/outputs/**/*.tcf
!experiments/lab/clean/EXP-017-data-alvos-mensais/outputs/**/*.tcf
!experiments/lab/clean/EXP-018-int-pad-e-rota-tipada/outputs/**/*.tcf

# Archive (legacy materials kept locally for history, not for public repo)
archive/legacy_results/
archive/old_tokenizer/
archive/rascunhos/
archive/tickets_v01/
archive/v01/src/
archive/v01/tests/
# Note: archive/v01/experiments/ and archive/misc/ are tracked (referenced by docs)

# === Datasets storage (Phase 1+) ===
# Config local with user-specific paths
config/storage.json
config/*.local.json
config/.env
config/.env.*

# Fallback local storage (data-local/) — only README and .gitkeep are tracked
data-local/**
!data-local/.gitkeep
!data-local/README.md

# Raw downloaded datasets (live in data_root/external/, not in project)
# Belt-and-suspenders: if someone drops CSVs in datasets/canonical/, ignore
datasets/canonical/*/*.csv
datasets/canonical/*/*.tsv
datasets/canonical/*/*.db
datasets/canonical/*/*.parquet
datasets/canonical/*/*.jsonl

# SQLite hub and derivations (live in data_root/interim/ and processed/)
datasets/sqlite/
datasets/derivations/

# Whitelist small files we DO want to track
!datasets/canonical/*/metadata.json
!datasets/canonical/*/README.md
!datasets/canonical/*/schema.sql
!datasets/samples/**/*.csv
!datasets/samples/**/*.md
!datasets/samples/**/.gitkeep
!datasets/quality-reports/*.md
!datasets/questions/*.json

pergunta.md

# Dev-efemero: scripts de orquestracao da ferramenta Workflow (produto durável
# vive nos .md/edicoes; git preserva historico). Politica: API estavel, dev efemero.
experiments/lab/dirty/notas/**/_wf_*.js

# Copias locais do legado #TCF.6/.7 pra comparativo (ADR-0032; git-as-compat)
legacy-snapshots/

# ---------------------------------------------------------------------------
# Material de trabalho INTERNO — fora da superficie publicada (2026-08-22)
# ---------------------------------------------------------------------------
# Decisao do owner: o repo publica a LOGICA (src, docs, ADRs, testes, spec do
# formato) e a EVIDENCIA que sustenta as afirmacoes (experiments/results/ e os
# experimentos clean). O caderno de trabalho — labs dirty, notas de direcao,
# diarios de sessao — fica reservado.
#
# `git rm --cached` + ignore: some da versao ATUAL e para de subir; o que ja'
# foi publicado PERMANECE no historico. Nada e' reescrito: o traco e' o git
# (Strata §3). Os arquivos continuam no disco, so' nao sao mais rastreados.
#
# Estas regras vem por ULTIMO de proposito: as excecoes `!experiments/lab/dirty/...`
# mais acima (outputs/inputs de lab) deixam de ter efeito — o diretorio inteiro
# esta' fora agora. Ficam onde estao como registro de quando o dirty era publicado.
# O git nao reentra em diretorio excluido: pra abrir excecao e' preciso
# des-excluir o CAMINHO nivel a nivel, e so' entao permitir os arquivos.
# A fronteira e' por FUNCAO, nao por pasta: os REGISTRIES de direcao
# (roadmap-hipoteses, futuras-otimizacoes-formato, historia-dirty-lab) sao
# insumo do time e alimentam o proximo ciclo — separar por pasta tirou 2.008
# linhas deles do repo. Diario e notas por sessao seguem FORA.
experiments/lab/dirty/*
!experiments/lab/dirty/notas/
experiments/lab/dirty/notas/*
!experiments/lab/dirty/notas/2026-05/
experiments/lab/dirty/notas/2026-05/*
!experiments/lab/dirty/notas/2026-05/roadmap-hipoteses.md
!experiments/lab/dirty/notas/2026-05/futuras-otimizacoes-formato.md
!experiments/lab/dirty/notas/2026-05/historia-dirty-lab.md
experiments/lab/archive/
.claude/
