# --- Phase 0 evaluation harness: authorized-only, LOCAL data ---
# The real target set, hand-verified truth labels, and scorecards contain
# third-party PII and live findings. Keep them out of git. Only the harness
# code, schema, docs, and the *.example templates are committed.
/eval/targets.yaml
# Filled truth labels live directly in eval/truth/ as *.yaml — ignore those.
# README.md (not yaml) and the _schema/ subdir stay tracked.
/eval/truth/*.yaml
/eval/scorecards/*
!/eval/scorecards/.gitkeep
# Phase 0D frozen baseline: real run data, raw outputs, and report contain
# third-party PII. LOCAL ONLY — never committed (user decision, 2026-09-05).
/baseline/

# Local read-only reference material and scratch clones kept outside the shipped
# codebase. Never committed and never linted/tested as our code.
native/

# Python
__pycache__/
*.pyc
*.pyo
*.pyd
.Python
*.egg-info/
dist/
build/
.venv/
venv/
venv-ner/
.env

# Node
node_modules/
dist/
.next/
*.local

# OS
.DS_Store
Thumbs.db

# Logs
*.log
logs/

# Runtime data.
# data/ is ignore-by-default; ONLY the shipped runtime files below are tracked
# (each is also wheel/sdist-bundled in pyproject.toml). Everything else in data/
# — local *.db scratch, caches, and the corpus/pattern-index BUILD INPUTS (which
# live in the maintainer's private email-pattern-index/ folder, out of the repo:
# pattern_pipeline.sql, the reference impl, validation_sample.csv, *.mx.json.gz,
# assemble.py) — stays ignored. If you add a runtime data file, allowlist it here
# AND add it to the wheel + sdist force-include lists.
*.db
data/
!data/
data/*
# --- shipped runtime data (tracked + packaged) ---
!data/mailaccess-extra-sites.json    # supplemental platform site definitions
!data/mailaccess_sites.json          # native username-platform corpus (~5,365 sites)
!data/breach_aliases.json            # breach-source alias map
!data/common_names.json              # common-name false-positive corpus
!data/disposable_domains.json        # disposable-email domain corpus
!data/fediverse_instances.json       # known fediverse instances
!data/harvester_sources.json         # domain-harvest source registry
!data/reset_signals.json             # multi-language password-reset phrases
!data/role_prefixes.json             # role-account localpart prefixes
!data/service_categories.yaml        # credential-risk service categories
!data/subdomain_wordlist.txt         # subdomain brute wordlist (text)
!data/subdomain_wordlist.json        # subdomain brute wordlist (structured)
!data/industry_vocabulary.json       # industry-vocabulary technographic corpus
!data/company_patterns.json.gz       # 0.16.0 offline company email-pattern index (377K domains)
maltego/*.mtz

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

# Secrets (never commit)
.env
.env.local
.env.*.local

# Test artifacts
test_*.py
!tests/test_smtp_verify_default.py
!tests/test_live_progress.py
!tests/test_persona_email_pivot.py
!tests/test_name_consensus.py
!tests/test_account_probe.py
!tests/test_timeline.py
!tests/test_username_platforms.py
!tests/test_probe_detector.py
!tests/test_profile_extractor.py
!tests/test_disposable_domains.py
!tests/test_reset_prober.py
!tests/test_avatar_hasher.py
!tests/test_avatar_clusters.py
!tests/test_identity_graph.py
!tests/test_bio_similarity.py
!tests/test_bio_clusters.py
!tests/test_rate_limiter.py
!tests/test_breach_corpus.py
!tests/test_breach_deep.py
!tests/test_proxy.py
!tests/test_github_domain_commits.py
!tests/test_harvest_pivot_boundaries.py
!tests/test_brave_dorker.py
!tests/test_public_surface_batch.py
!tests/test_subdomain_surface.py
!tests/test_historical_diff.py
!tests/test_wayback_historical_selection.py
!tests/test_identity_enrichment_batch.py
!tests/test_shadow_profile_harvest_report.py
!tests/test_harvest_diff.py
!tests/test_harvest_history.py
!tests/test_harvest_runtime_controls.py
!tests/test_yield_prediction.py
!tests/test_harvest_telemetry.py
!tests/test_concurrent_fetch_cache_cancellation.py
!tests/test_cache_exception_consumption.py
!tests/test_low_email_validator.py
!tests/test_aggregator.py
!tests/test_no_live_network.py
!tests/test_company_pattern_index.py
!tests/test_company_pattern_wiring.py
!tests/test_pattern_candidate.py
!tests/test_pattern_oracle_verify.py
!tests/test_fixpass_boundaries.py
verify_*.py
.pytest_cache/
.pytest-tmp/
coverage/
.coverage

# Agents
.agents/
.codex/

# Local verification / scratch artifacts
.tmp/
live-verification-*/
inspect_structure.py

# Investigation outputs (never commit personal investigation data)
results/
/*.json
/debug*.json
/report.*
/report-*.md
/emails.*
/*.txt
.last_inv.json

# Internal audit / eval artifacts — never publish (authorized-test target data +
# internal review methodology). The one already-tracked audit doc is kept.
docs/audit/
!docs/audit/email-osint-audit-2026-07-29.md

# SQLite databases in root
/mailaccess*.db
/data.db
/test-sqlite.db
/*.db

# Documentation
!.env.example

# Subdomain Intelligence source data and regression suite
!data/subdomain_wordlist.json
!tests/test_subdomain_intel.py
!tests/test_harvest_cache.py
!tests/test_parallel_sources.py
!tests/test_new_sources.py
!tests/test_doctor_command.py
!tests/test_auto_export.py
!tests/test_live_log.py
!tests/test_keys_test_command.py
!tests/test_toolchain_output.py
!tests/test_budget_regression.py
!tests/test_cross_domain_filter.py

# Brand identity kit source bundle (design file, not a shipped asset)
/assets/mailaccess Identity Kit.html

!tests/test_pattern_remediation_boundaries.py
!tests/test_pattern_normalization_differential.py
