# File Filters

Rules for which files and directories to include or skip when scanning a project.

## Excluded Directories

Skip these directories entirely — they contain generated artifacts, dependencies, or non-source content:

**Package managers and virtual environments:**
`.venv`, `venv`, `env`, `virtualenv`, `node_modules`, `bower_components`, `jspm_packages`

**Version control:**
`.git`, `.svn`, `.hg`, `.bzr`

**Cache and compiled output:**
`__pycache__`, `.pytest_cache`, `.mypy_cache`, `.ruff_cache`, `.coverage`, `.tox`, `.nyc_output`, `htmlcov`, `.cache`

**Build and distribution:**
`dist`, `build`, `out`, `target`, `bin`, `obj`, `bld`, `.output`, `.next`, `packages/*/dist`, `packages/*/build`, `lib-cov`, `coverage`

**IDE and editor:**
`.idea`, `.vscode`, `.vs`, `.eclipse`, `.settings`

**Logs and temp:**
`logs`, `log`, `tmp`, `temp`

**Documentation build output (not source docs):**
`_site`, `site-docs`

## Excluded File Patterns

Skip these files — they are lock files, minified bundles, binaries, or editor metadata:

**Lock files:**
`yarn.lock`, `pnpm-lock.yaml`, `npm-shrinkwrap.json`, `poetry.lock`, `Pipfile.lock`, `Cargo.lock`, `composer.lock`, `*.lock`

**OS metadata:**
`.DS_Store`, `Thumbs.db`, `desktop.ini`, `*.lnk`

**Environment and secrets:**
`.env`, `.env.*`, `*.env`, `.flaskenv`

**Minified and bundled:**
`*.min.js`, `*.min.css`, `*.bundle.js`, `*.bundle.css`, `*.map`

**Archives and binaries:**
`*.gz`, `*.zip`, `*.tar`, `*.tgz`, `*.rar`, `*.7z`, `*.iso`, `*.dmg`, `*.exe`, `*.dll`, `*.so`, `*.dylib`, `*.o`, `*.obj`, `*.a`, `*.lib`, `*.lo`, `*.la`, `*.slo`, `*.dSYM`

**Compiled and packaged:**
`*.jar`, `*.war`, `*.ear`, `*.class`, `*.pyc`, `*.pyd`, `*.pyo`, `*.egg`, `*.egg-info`, `*.dist-info`

**Installer packages:**
`*.msi`, `*.deb`, `*.rpm`, `*.ipa`, `*.appx`, `*.msix`, `*.xap`

**Media (binary):**
`*.png`, `*.jpg`, `*.jpeg`, `*.gif`, `*.ico`, `*.bmp`, `*.tiff`, `*.webp`, `*.mp3`, `*.mp4`, `*.wav`, `*.avi`, `*.mov`, `*.woff`, `*.woff2`, `*.ttf`, `*.eot`, `*.otf`

## Code File Extensions

These are the primary source files to analyze:

**High-priority languages:**
`.py`, `.js`, `.ts`, `.tsx`, `.jsx`, `.go`, `.rs`, `.java`, `.cpp`, `.c`, `.h`, `.hpp`, `.cs`, `.swift`, `.php`, `.rb`, `.kt`, `.scala`

**Additional languages:**
`.vue`, `.svelte`, `.dart`, `.lua`, `.r`, `.jl`, `.zig`, `.nim`, `.ex`, `.exs`, `.clj`, `.hs`, `.ml`, `.fs`, `.html`, `.css`, `.scss`, `.sass`, `.less`

## Config and Doc Files

These provide project context (read during exploration but not treated as code):

**Package manifests (high priority — read these first):**
`package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `go.sum`, `pom.xml`, `build.gradle`, `build.gradle.kts`, `Gemfile`, `composer.json`, `mix.exs`, `Package.swift`, `CMakeLists.txt`, `Makefile`

**Documentation:**
`README.md`, `README.rst`, `README.txt`, `CHANGELOG.md`, `CONTRIBUTING.md`, `docs/**/*.md`

**Infrastructure:**
`Dockerfile`, `docker-compose.yml`, `docker-compose.yaml`, `.github/workflows/*.yml`, `.gitlab-ci.yml`, `Jenkinsfile`, `Procfile`

**Config (read selectively for context):**
`*.yml`, `*.yaml`, `*.toml`, `*.json` (only manifest-level, not data files)
