# Data hygiene: no raw store content ever enters this repo (charter §6).
# Root-anchored on purpose: a bare "data/" pattern would also ignore
# src/cortex/data/ — the fingerprints/holdout CONTRACT code (A3a lesson).
/data/
*.db
/datasets/*
# Layer A frozen eval sets (eval-methodology §3; ADR 0003 R2: synthetic
# probe content is committable — no store lines, fingerprinted). The
# corpus-v4 authored batches ride the same rule (wave D4-1: synthetic,
# fingerprinted, disjointness-tested). The rest of datasets/ stays closed.
# Negations sit AFTER the blocking pattern (same idiom as models/ below).
!/datasets/evalsets/
!/datasets/evalsets/**
!/datasets/corpus-v4/
!/datasets/corpus-v4/**
# Near-miss watchlist registry (la4: synthetic eval-surface provenance
# summaries only — no store lines, same ADR 0003 R2 rule as evalsets).
!/datasets/watchlist/
!/datasets/watchlist/**
/artifacts/weights/
*.pt
*.onnx
*.safetensors

# Model registry (ADR 0003): weights of ARTIFACT revisions are tracked
# under models/ — the canonical artifact lives in git (HF-style, ~98 KB,
# no LFS needed). Training-side weights above stay ignored. Negations sit
# AFTER the blocking patterns to re-include the registry bundles.
!models/
!models/**

# Python
__pycache__/
*.pyc
.venv/
.pytest_cache/
.ruff_cache/

# Local env / scratch
.local/
.env
