# Byte-compiled / optimized / DLL files
__pycache__/
**/__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
!agents/lib/
!agents/lib/**
!src/omniclaude/lib/
!src/omniclaude/lib/**
!src/omniclaude/hooks/lib/
!src/omniclaude/hooks/lib/**
!plugins/onex/hooks/lib/
!plugins/onex/hooks/lib/**
!plugins/onex/lib/
!plugins/onex/lib/**
!tests/lib/
!tests/lib/**
# Re-exclude __pycache__ within excepted lib directories
agents/lib/__pycache__/
agents/lib/**/__pycache__/
src/omniclaude/lib/__pycache__/
src/omniclaude/lib/**/__pycache__/
src/omniclaude/hooks/lib/__pycache__/
src/omniclaude/hooks/lib/**/__pycache__/
plugins/onex/hooks/lib/__pycache__/
tests/lib/__pycache__/
tests/lib/**/__pycache__/
plugins/onex/hooks/lib/**/__pycache__/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/

# ONEX cache directories
.onex_cache/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
#   For a library or package, you might want to ignore these files since the code is
#   intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# UV
#   Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
#   This is especially recommended for binary packages to ensure reproducibility, and is more
#   commonly ignored for libraries.
#uv.lock

# poetry
#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
#   This is especially recommended for binary packages to ensure reproducibility, and is more
#   commonly ignored for libraries.
#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
poetry.lock

# pdm
#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
#   in version control.
#   https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.env.*
!.env.example
.venv/
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#  and can be added to the global gitignore or merged into this file.  For a more nuclear
#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/

# ONEX Quality Reports and Metrics
.github/quality_*.json
.github/quality_*.md
.github/last_quality_scan.json
.github/quality_metrics.json
code_quality_report.json
code_quality_report.md

# Validation and test result files (should not be committed)
*_validation_results.json
*_go_no_go_results.json
container_security_validation.json
phase*_*.json
PHASE*_*.md
DESIGN_*.md
MANIFEST_*.md
PR_DESCRIPTION.md

# Ruff stuff:
.ruff_cache/

# PyPI configuration file
.pypirc

# Project-specific
/backups
*_report*.json
*_analysis*.json
*_errors*.txt
mypy_*.txt

# Security scan outputs (ephemeral, should not be committed)
bandit*.json
bandit-*.json
safety*.json
trivy*.json
*security-scan.*

# OmniBase / ONEX .gitignore

# VS Code
.vscode/

# MacOS
.DS_Store

# Hook system logs (auto-generated, should not be committed)
claude_hooks/logs/
**/logs/

# OmniBase/ONEX specific
# (add any project-specific ignores here)

# Docker runtime data directories
data/
generated/
generated_nodes/
reports/
secrets/

# Ignore sensitive and legacy files
.cursor/mcp.json
legacy/

#ignore private docs
docs_private/

# Optimization cache files
.onex_cache/
docs_archived/

# Codanna index files (tool-generated, should not be committed)
.codanna/
.serena/cache/*

# AI Tools and Generated Content
.hive-mind/
.swarm/
.claude-flow/
claude-flow.config.json

# Claude Code settings (personal/local configuration)
.claude/*
!.claude/architecture-handshake.md
*.db
*.sqlite
*.db-wal
*.db-shm
*.sqlite-journal
*system-metrics.json
*-metrics.json
session-*.json
*auto-save*.json

# Development and Analysis Documents (temporary files in root)
/*_ANALYSIS.md
/*_SUMMARY.md
/*_GUIDE.md
TEMP_*IMPLEMENTATION*.md
REFACTORING_EXAMPLE.py
examples_*.py
factory_pattern_analysis.md
migration_guide_*.md
coverage.json

# Backup files
*.bak
*.backup
*.old
*.orig

# Repository scratch/temporary directory (for local development)
tmp/
tmp/*

# Test and validation output files
*_output.txt
*_results.txt
*_validation*.txt

# Machine Learning Models (auto-generated)
*.pkl
agents/models/
test_results.txt

# Temporary Documentation Files (auto-generated guides, reports, and cheatsheets)
*_IMPROVEMENTS.md
*_RECOMMENDATIONS.md
*_QUICKSTART.md
*_EXAMPLE.md
*_TEST_RESULTS.md
*_CHEATSHEET.md
*_CHECKLIST.md
*_REPORT.md
CLEANUP_*.md
**/traces/
*observability_report.txt
SYSTEM_DASHBOARD.md
db_dumps/

# Skills - Ignore third-party/bloated skills (only track our custom skills)
# Keep: pr-review, agent-observability, agent-tracking, intelligence, log-execution, routing, _shared
skills/skill-writer/
skills/research/
skills/claude-code-analyzer/
skills/PDF Processing Pro/
skills/tailwindcss/
skills/shadcn-ui/
skills/nextjs/
skills/prompt-engineering-patterns/
skills/git-advanced-workflows/
skills/async-python-patterns/
skills/api-design-principles/
skills/architecture-patterns/
skills/brainstorming/
skills/remembering-conversations/
skills/senior-architect/
skills/systematic-debugging/
.fastembed_cache/

# ============================================
# Root Directory Cleanliness
# Prevent clutter in the project root
# See: scripts/validate-clean-root.sh
# ============================================

# Test artifacts (root only - tests/ has its own patterns)
/junit-*.xml
/benchmark_results.json
/collection_output.txt
/COVERAGE_SUMMARY.txt

# Coverage artifacts (root-specific)
/.coverage.json

# Audit reports
/audit_*.json
/*_audit_report.json
/security_audit_*.json

# Temporary verification scripts (should be in scripts/)
/verify_*.py
/show_*.py
/migrate_*.py

# One-off test scripts (should be in tests/)
/test_*.py

# Handoff documents (should be in docs/)
/HANDOFF*.md
/FIX_SUMMARY*.md
/*_MIGRATION.md
/*_AUDIT.md

# Editor/OS artifacts (root-specific)
*.swp
*.swo
*~
Thumbs.db

# Temporary files (root-specific)
*.tmp
*.temp
