# Build artifacts (Rust/Cargo)
target/
**/target/

# Cargo home (hermetic build artifact — should never be committed)
.cargo-home/

# Node.js (for tools like sqry-vscode)
node_modules/
**/node_modules/

# Source maps (defense-in-depth: .vscodeignore already excludes from VSIX)
*.map

# Cargo lock files in sourced documentation (cloned reference repos)
docs/sourced/**/Cargo.lock

# sqry graph index directories (unified graph, v2.0+)
# Ignored everywhere; tracked in test fixtures via git add -f
.sqry/
sqry-cli/.sqry/
sqry-cli/src/.sqry/
sqry-core/.sqry/
sqry-mcp/.sqry/
sqry-lsp/.sqry/
sqry-lang-*/.sqry/

# sqry user-specific index config
.sqry-index.user

# sqry legacy index and cache files
.sqry-cache/
.sqry-index
.sqry-index.trg
.sqry-index.imps
.sqry-index.tis
.sqry-index.refs
**/.sqry-cache/
**/.sqry-index
**/.sqry-index.trg
**/.sqry-index.imps
**/.sqry-index.tis
**/.sqry-index.refs

# sqry analysis output (generated by sqry analyze)
**/.sqry/analysis/

# IDE and editor configs
.cursor/
.vscode/
.idea/
*.swp
*.swo
*~

# Git worktrees (isolated workspaces)
.worktrees/

# AI agent state and orchestration logs
.agent-state/

# AI agent configs and caches
.cache/
.claude/*
!.claude/skills/
!.claude/skills/**
.claude.json
.claude.json.backup
.codex/
.gemini/
!.gemini/
!.gemini/settings.json
!.gemini/skills/
!.gemini/skills/**
.mcp.json
.npm/
claude-code-plugin/

# Performance profiling artifacts
perf.data
perf.data.old
flamegraph.svg
**/perf.data
**/perf.data.old
perf-*.data
flamegraph-*.svg

# Temporary and generated files
*.log
*.tmp
config-provenance.json

# Release evidence: per-DAG fixture replay logs are required artifacts
# (Evidence Matrix EV15 in the public-issue-triage workflow). Whitelist
# the specific paths here.
!docs/development/public-issue-triage/*_fixture_replay.log
!docs/development/release-execution/**/*_replay.log

# OS-specific
.DS_Store
Thumbs.db

# Backup files
*.backup-*
*.bak
*.backup

# User-specific cargo config (uncomment if needed)
# .cargo/config.toml

# Tree-sitter build artifacts (CMake compiler detection)
*detect_compiler_family.o
.intentionally-empty-file.o

# Sourced documentation (cloned reference repos - large)
docs/sourced/cargo/crates/
docs/sourced/cargo/tests/
docs/sourced/cargo/credential/

# Third-party vendored lock files
third-party/**/Cargo.lock

# Heap profiling
dhat-heap.json
**/dhat-heap.json

# Distribution bundles (large binaries)
*.bundle

# Temporary scripts and outputs
rust_out
cleanup_cargo_processes.sh
quick_cleanup_cargo.sh

# Experiments and tools build artifacts (covered by **/target/ but explicit)
experiments/**/target/
tools/**/target/

# Python virtual environments
.venv/
**/.venv/
__pycache__/
**/__pycache__/
*.pyc

# Vendor directory
vendor/
# Release-critical vendored parser sources must remain tracked so sanitized OSS
# tarballs can build from source without relying on local ignored files.
!vendor/tree-sitter-elixir/
!vendor/tree-sitter-elixir/src/
!vendor/tree-sitter-elixir/src/**
!vendor/tree-sitter-kotlin/
!vendor/tree-sitter-kotlin/src/
!vendor/tree-sitter-kotlin/src/**
!vendor/tree-sitter-perl/
!vendor/tree-sitter-perl/src/
!vendor/tree-sitter-perl/src/**

# Benchmark artifacts
benchmarks/structural/repos/
benchmarks/swebench/image/bin/
benchmarks/swebench/results/

# HuggingFace cache (anywhere)
.hf_cache/
**/.hf_cache/
hf_cache/
**/hf_cache/

# ML model files (large binaries - use external storage)
*.onnx
**/models/*.onnx
models/
!sqry-nl/models/
sqry-nl/models/*
!sqry-nl/models/checksums.json
!sqry-nl/models/manifest.json

# SonarQube local dev tooling
.scannerwork/
**/.scannerwork/
.tmp-sonar-javascript-plugin.jar
tools/sonarqube/.env
tools/sonarqube/plugins/*.jar

# Code coverage reports (generated by cargo-tarpaulin)
coverage/
**/coverage/

# Tools lock files (internal dev tools, not published crates)
tools/naming-audit/Cargo.lock

# Slopscan output (generated by cargo run -p slopscan)

# Dependency-update scan output and test worktrees
# (docs/development/dependency-upgrades/RUNBOOK.md)
.sqry-dep-scans/
.sqry-dep-worktrees/
