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

# =====================================================================
# THIS IS A PUBLIC REPO (github.com/giladfeldman/docpluck, MIT).
#
# Only the docpluck LIBRARY and its PUBLIC documentation belong here.
# Internal working material — session logs, cross-project correspondence,
# agent/skill definitions, backlogs, plans, specs — must NEVER be
# committed. It leaks local filesystem paths, private-repo internals,
# unreleased plans, and other projects' architecture to the whole world.
#
# Purged from the full history on 2026-08-06 (259 files). Do not
# re-introduce. See LESSONS.md L-006 and /docpluck-cleanup check 0.
#
# The PUBLIC doc surface is exactly:
#   README.md  docs/README.md  docs/NORMALIZATION.md
#   docs/DESIGN.md  docs/BENCHMARKS*.md  CHANGELOG.md  LICENSE
# Anything else under docs/ is internal by default.
# =====================================================================

# --- Agent / skill working directories (never public) ---
.claude/
.worktrees/
.codex/
.cursor/

# --- Internal session logs, plans, specs, backlogs ---
docs/superpowers/
docs/HANDOFF_*
docs/FINDINGS_*
docs/TRIAGE_*
docs/PROMPTS_*
docs/ITERATION_*
docs/LIBRARY_*
HANDOFF_*
HANDOVER_*
FINDINGS_*
TRIAGE_*
TODO.md
todo.md

# --- Cross-project / cross-team correspondence (never public) ---
# Requests from and replies to ESCImate, MetaESCI, Scimeto, CitationGuard,
# and the private docpluckapp repo.
REQUEST_*
REQUESTS_*
REPLY_*
REPLIES_*
CUSTOMER_UPDATE_*
# 2026-08-07: INBOX_*/OUTBOX_* were MISSING from this block, and
# INBOX_FROM_METAESCI_2026-08-07.md was committed to this public repo across
# two (fortunately unpushed) commits before it was caught. A denylist of
# prefixes only covers the naming conventions someone thought of — see
# LESSONS.md L-011 and the allowlist gate in /docpluck-cleanup Section 0,
# which is the actual guard. These entries are the belt, not the braces.
INBOX_*
OUTBOX_*

# --- Private benchmark suite (real-corpus results + hardcoded local paths) ---
benchmarks/

# --- Archive of internal design specs and cross-team handoff drafts ---
archive/

# PDFs are never committed to this public MIT repo. Test fixtures use the
# manifest-with-skip pattern via tests/conftest.py and tests/fixtures/structured/MANIFEST.json
# referencing PDFs in the local corpus ($VIBE_ROOT, default ~/Vibe).
*.pdf

# Verifier-output artifacts from scripts/verify_corpus.py + ad-hoc test
# captures. Useful locally during iteration but not committed.
verify_*.txt
verify_*.err
verify_*.log
pytest_run.txt
pytest_err.txt
tmp/
# Ad-hoc one-shot diagnostic scripts dropped at the repo root during
# iteration (worktree-aware verify runners, scratch reproducers, etc.).
tmp_*.py

# Verification harness outputs (scripts/harness) — extraction artifacts, not committed.
verify_out/

# NOTE: the whole of .claude/ is ignored above (public-repo rule), which
# covers the project skills, canary.json, and the machine-local
# canary-findings-ledger.json written by canary-audit.sh. Those files
# still live on disk and the skills still run — they are simply never
# committed to this public repo.
