# Basic ignores
.idea
.venv
__pycache__
.env
.mypy_cache
.mypy_cache_win32
.pytest_cache
.ruff_cache

# Local workspace
/hub

# Claude specific - Dev internals (root only; fixtures under tests/ and framework/ are tracked)
/.claude/
/.mcp.json
/CLAUDE.md

# Local project backbone (developer-private; documents internal modules,
# specs paths, and toolchain that should not ship in a public repo)
/.ails/backbone.yml

# Rule-harness fixtures stay local-only, whatever the fixture's own file or
# directory name (CLAUDE.md, AGENTS.md, .agents/, .github/, .cursor/, or any
# other sample tree a rule's pass/fail cases plant).
framework/rules/**/tests/**

# Corpus-derived test data and its supporting tooling stay local-only; the
# public suite carries a small synthetic test over the same behaviours instead.
tests/unit/test_prose_split_corpus.py
scripts/verify_canary.py
scripts/canary_manifest.json
tests/unit/test_canary_verify.py

# Bundled lexical assets — fetched by scripts/fetch_bundled_model.py
# (dev-only, not committed; populated on clone and in CI before hatch build).
# Retired ML assets (embedding-free build no longer ships these).
src/reporails_cli/bundled/models
src/reporails_cli/bundled/spacy/

# npm packaging — README.md is copied from the repo root by the prepack
# script in packages/npm/package.json before `npm pack` / `npm publish`.
# Keeping the file gitignored avoids the maintenance drift of two committed
# READMEs while sidestepping the npmjs.com per-version display bug that the
# previous symlink approach hit.
packages/npm/README.md
/tmp/
