# Go
/vendor/
*.exe
*.test
*.prof
*.out
/bin/

# Generated SBOM artifacts
sbom-*.json

# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
dist/
.mypy_cache/
.ruff_cache/
.pytest_cache/
coverage.xml
coverage-html/
.coverage

# Secrets
.env.local
.env.*.local
# Local observability stack credentials — keep the .example template tracked.
.env.observability
*secrets*
*credentials*

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

# AI assistant tool configuration — local only, never committed
# These contain personal settings, hooks, and credentials for AI coding tools.
# Engineering contracts (AGENTS.md) ARE committed — see docs/ai-assistant-setup.md
.claude/
!.claude/commands/
!.claude/agents/
.cursor/
.copilot/
.codeium/
.aider*

# Pipeline working files — local scratch, never committed
pr-body.md

# Generated proto stubs ARE committed — do not add protos/generated/ here
docs/spdd/**/canvas.private.md

# DevAuto orchestrator decision logs — CI artifact, never committed
.automation/decision-logs/

# Built Helm subchart dependencies (#1521). First-party file:// subcharts are
# rebuilt from source by `helm dependency build` at every install/lint path, so
# vendoring the built .tgz in VCS only invites silent drift from source (the
# #1488 nodePort regression). Upstream third-party tgz under helm/charts/*/charts/
# ARE vendored intentionally (offline/pinned installs) and are NOT ignored here.
helm/zynax-umbrella/charts/*.tgz
# Stamp written by cluster-up.sh to skip `helm dependency build` when nothing
# under helm/ changed since the previous build (content hash of helm/**).
helm/zynax-umbrella/charts/.dep-hash
