# Virtual environment
.venv/
venv/
env/

# Python cache
__pycache__/
*.pyc
*.pyo
*.pyd
.Python

# Build/egg info
*.egg-info/
dist/
build/

# IDEs
.vscode/
.idea/

# OS
.DS_Store
Thumbs.db

# Logs locales
*.log
.aider*
.env

# Output y release
vigia_output/
vigia_final.zip
*.zip

# Logs de ejecución
data/logs/
*.jsonl

# Basura de pip/instalación
=*

# Backups y temporales
*.bak
*.backup.*
*~
*.swp
__pycache__/
*.pyc

# Casos sintéticos deprecados — no commitear
.deprecated/
.vigia_experimental/
vigia/core/carnegie_education_detector.py

# Casos narrativos de desarrollo — no son parte del corpus público
casos.md
casos2.md
casosfinales.md
nuevoscasos.md
casosfinal.md

# Outputs de auditoría C3 fallidos — sin valor forense
c3_audit_*.json

# Directorio cases/ raíz — duplicado de data/cases/, versiones legacy
/cases/
.deprecated/

# Archivos de trabajo temporales
vigia_batch_*.py
vigia_clean*.py
vigia_find*.py
vigia_inspect*.py
vigia_restore*.py
vigia_rewrite*.py
vigia_surgical*.py
vigia_thinking*.py
vigia_recover*.py
vigia_fill*.py
vigia_merge*.py
vigia_real_audit.py
vigia_normalize*.py
vigia_identify*.py
vigia_incomplete*.json
vigia_lost*.json
batch_checkpoint.json
docs_clean/
docs_academic_backup*/
vigia_backup*.tar.gz
*.backup
*.backup_v*
*.backup_final*
*.backup_manual
patch_bridge_*.py

# SANS corpus — evidencia binaria (no distribuir con el repo)
data/raw/

# Raw evidence artifacts — never commit
evidence/rocba_artifacts/
*.E01
*.img
*.vmem
*.raw
*.mem
*.dmp
*.evtx
*.tar

# Memory analysis bundles (generated artifacts — not part of source)


# Versiones intermedias de docs académicos
docs_clean/
docs_generados/

.mcp.json

# Working notes / drafts
casos.md
casos2.md
casosfinal.md
nuevoscasos.md

# Runtime artifacts
batch_checkpoint.json
stress_report.json
vigia_incomplete_*.json

# Execution logs for SANS submission — explicitly tracked
evidence/
launch_vigia_mcp.sh
*.bak

# Test run outputs — never commit
scratch/
*.bak2
results/srl2018/RD02-CDRIVE-001_bundle.json
results/srl2018/RD02-CDRIVE-001_bundle.json.sha256


# Coverage artifacts — regenerated every pytest run
.coverage
.coverage.*
htmlcov/
labestia.dd.gz
*.dd.gz
results/agent_batch/
skill-evals/
results/agent_batch/

# Benchmark script (not a real test): rewrites forensic_technical_detector.py
# in place to compare _m4_floor values. It served its purpose (2 is correct);
# untracked so pytest-time source mutation can never be committed. See session
# 2026-07-17 investigation.
tests/unit/test_m4_floor.py

# Mutation testing (mutmut) sandbox + result cache. mutants/ holds a full
# copy of the source with deliberate defects injected — committing it would
# put mutated verdict-path code in the repo. Same hazard class as the
# test_m4_floor.py benchmark above, so same treatment: never tracked.
mutants/
.mutmut-cache
mutmut-stats.json
html/
