# CascadeFlow Code Owners
# =======================
#
# This file defines who is responsible for reviewing code changes in specific
# parts of the repository. Code owners are automatically requested for review
# when someone opens a pull request that modifies code they own.
#
# Learn more: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

# ============================================================================
# GLOBAL OWNER (All files)
# ============================================================================
# The repository owner must approve ALL pull requests
* @saschabuehrle

# ============================================================================
# CRITICAL FILES (Extra protection for package distribution)
# ============================================================================

# Python package configuration
/pyproject.toml @saschabuehrle
/setup.py @saschabuehrle
/setup.cfg @saschabuehrle
/requirements*.txt @saschabuehrle
/MANIFEST.in @saschabuehrle

# TypeScript/JavaScript package configuration
/packages/*/package.json @saschabuehrle
/package.json @saschabuehrle
/pnpm-workspace.yaml @saschabuehrle
/pnpm-lock.yaml @saschabuehrle
/tsconfig*.json @saschabuehrle

# GitHub workflows, actions, and settings
/.github/workflows/ @saschabuehrle
/.github/actions/ @saschabuehrle
/.github/CODEOWNERS @saschabuehrle

# Security
/SECURITY.md @saschabuehrle
/.env.example @saschabuehrle

# ============================================================================
# CORE LIBRARY CODE (Python)
# ============================================================================

# Core agent and orchestration
/cascadeflow/agent.py @saschabuehrle
/cascadeflow/config.py @saschabuehrle
/cascadeflow/schema/ @saschabuehrle

# Provider implementations - critical for integrations
/cascadeflow/providers/ @saschabuehrle

# Quality validation and routing systems
/cascadeflow/quality/ @saschabuehrle
/cascadeflow/routing/ @saschabuehrle

# Utilities and helpers
/cascadeflow/utils/ @saschabuehrle

# All other cascadeflow code
/cascadeflow/ @saschabuehrle

# ============================================================================
# CORE LIBRARY CODE (TypeScript)
# ============================================================================
/packages/core/src/ @saschabuehrle
/packages/integrations/ @saschabuehrle
/packages/ml/ @saschabuehrle

# ============================================================================
# TESTS
# ============================================================================
/tests/ @saschabuehrle
/packages/*/tests/ @saschabuehrle
/packages/*/__tests__/ @saschabuehrle

# ============================================================================
# DOCUMENTATION
# ============================================================================
/docs/ @saschabuehrle
/README.md @saschabuehrle
/CHANGELOG.md @saschabuehrle
/CONTRIBUTING.md @saschabuehrle
/LICENSE @saschabuehrle

# ============================================================================
# EXAMPLES
# ============================================================================
/examples/ @saschabuehrle
/packages/*/examples/ @saschabuehrle

# ============================================================================
# NOTES FOR CONTRIBUTORS
# ============================================================================
# - All PRs require approval from @saschabuehrle (enforced by branch protection)
# - Direct commits to main are blocked (enforced by branch protection)
# - All changes must go through feature branches and PRs
# - Even repository admins cannot bypass these rules (enforce_admins: true)