# ============================================================
# .gitignore (ALL)
# ============================================================
# Updated: 2026-06-06
#
# REQ: All professional GitHub project repositories MUST include .gitignore.
# WHY: Keep generated artifacts, local state, secrets, and OS-specific files
# out of the repository.
# ALT: Repository may customize ignores, but MUST preserve universal safety rules.
# CUSTOM: Logs may be temporarily committed for verification; keep ignored for
# production use and security.


# === Private notes and local-only files ===

PRIVATE-NOTES.md
PRIVATE_NOTES.md


# === Environment variables and secrets ===

# WHY: Never commit credentials or environment-specific configuration.
*.env
.env
.env.*


# === Operating-system files ===

# WHY: OS-generated metadata files should never be tracked.
.AppleDouble
.DS_Store
.LSOverride
.Spotlight-V100/
.Trashes
._*
Icon\r
Thumbs.db
desktop.ini
ehthumbs.db


# === Editors and IDEs ===

# WHY: IDE metadata is machine-local and should not be tracked.
*.code-workspace
.idea/


# === VS Code ===

# WHY: Ignore editor state while allowing a shared baseline configuration.
.vscode/

# WHY: Commit shared VS Code project files for consistent extension development.
# NOTE: Share project configuration, not personal editor state or preferences.
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/settings.json
!.vscode/tasks.json


# === Temporary and swap files ===

# WHY: Temporary and swap files are machine-local noise and create meaningless diffs.
*.swo
*.swp
*.tmp
*~


# === Markup and documentation ===

# WHY: Static site build output is generated.
site/


# === Generic caches ===

# WHY: Generic caches are machine-local and should not be tracked.
.cache/


# === Node dependencies ===

# WHY: Node dependencies are restored from package-lock.json with npm ci.
node_modules/

# REQ.NODE: Do NOT git ignore package-lock.json. Commit it and use it in CI/CD pipelines.


# === Node package-manager caches ===

# WHY: Package-manager caches are machine-local and should not be tracked.
.npm/
.pnpm-store/
.yarn/cache/
.yarn/unplugged/
.yarn/build-state.yml
.yarn/install-state.gz


# === TypeScript and JavaScript build output ===

# WHY: Compiled JavaScript output is generated from TypeScript source.
out/

# WHY: Distribution/build output is generated.
build/
dist/

# WHY: TypeScript incremental build metadata is generated.
*.tsbuildinfo


# === TypeScript and JavaScript tooling caches ===

# WHY: Tooling caches are generated and machine-local.
.eslintcache
.nyc_output/
coverage/


# === VS Code extension test and package output ===

# WHY: VS Code extension test host files are generated by @vscode/test-electron.
.vscode-test/

# WHY: VSIX packages are generated release artifacts.
*.vsix


# === Python environments ===

# WHY: Virtual environments are machine-local and reproducible.
.venv/
venv/


# === Python version files ===

# REQ.PYTHON: Do NOT git ignore uv.lock. Commit it and use it in CI/CD pipelines.

# WHY: Python version when using scm matches any repo depth and any package name.
**/src/**/_version.py


# === Python bytecode ===

# WHY: Python bytecode is generated.
*.pyc
*.pyd
*.pyo
__pycache__/


# === Python build and packaging artifacts ===

# WHY: Build and packaging artifacts are generated.
*.egg
*.egg-info/
*.whl
.eggs/


# === Python tooling caches ===

# WHY: Tooling caches should not be tracked.
.coverage
.coverage.*
.mypy_cache/
.pytest_cache/
.pytype/
.ruff_cache/
.tox/


# === Notebooks ===

# WHY: Notebook checkpoint state is generated.
.ipynb_checkpoints/


# === Logs and generated runtime output ===

# WHY: Logs are useful during debugging and verification.
# ALT: Comment if logs must be inspected or validated.
*.log
logs/
