*
!tests/
!tests/**
!README.md
!AGENTS.md
!DEVELOPMENT.md
!QUICKGUIDE.md
!MILESTONE*.md
!TESTS*.md
!CHANGELOG.md
!AUDIT*.md
!REF*.md
!AUDIT*.json
!LICENSE
!conftest.py
!CONTRIBUTING.md
!CODE_OF_CONDUCT.md
!SECURITY.md
!GOVERNANCE.md
!pyproject.toml
!uv.lock
!docker-compose.yml
!.env.example
!.env.full.example
!.importlinter
!.superpowers/
!.superpowers/**
!Makefile
!docker-compose.test.yml
!oridecon.yaml.example
!.github/
!.github/workflows/
!.github/workflows/**
!.github/dependabot.yml
!.devcontainer/
!.devcontainer/**
!tools/
!tools/**
!*example.yaml

# Oridecon Packages
!oridecon*/
!oridecon*/pyproject.toml
!oridecon*/CHANGELOG.md
!oridecon*/README.md
!oridecon*/alembic.ini
!oridecon*/mypy.ini
!oridecon*/*.yaml.example
!oridecon*/src/
!oridecon*/src/**
!oridecon*/docs/
!oridecon*/docs/**
!oridecon*/tests/
!oridecon*/tests/**

# Keep oridecon docs
!/docs/
!docs/**

# Keep example files for README examples
!/examples/
!/examples/**

# Re-ignore these AFTER negations (last match wins)
*.tape
examples/*/runs/
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/
.eggs/
*.egg
.pytest_cache/
.mypy_cache/
.ruff_cache/
htmlcov/
.coverage
coverage.xml
test.db
!oridecon*/tests/fixtures/test.db
*.log
*.tmp

# Company-specific files (keep private, do not commit)
.company/
COMPANY_*.md
company-config/
internal-docs/
# Editor swap files
*.swp

# Tiered package layout (core/, packages/, experimental/<family>/)
!core/
!packages/
!experimental/
!experimental/*/
!core/oridecon*/
!packages/oridecon*/
!experimental/*/oridecon*/
!core/oridecon*/pyproject.toml
!packages/oridecon*/pyproject.toml
!experimental/*/oridecon*/pyproject.toml
!core/oridecon*/CHANGELOG.md
!packages/oridecon*/CHANGELOG.md
!experimental/*/oridecon*/CHANGELOG.md
!core/oridecon*/README.md
!packages/oridecon*/README.md
!experimental/*/oridecon*/README.md
!core/oridecon*/alembic.ini
!packages/oridecon*/alembic.ini
!experimental/*/oridecon*/alembic.ini
!core/oridecon*/mypy.ini
!packages/oridecon*/mypy.ini
!experimental/*/oridecon*/mypy.ini
!core/oridecon*/*.yaml.example
!packages/oridecon*/*.yaml.example
!experimental/*/oridecon*/*.yaml.example
!core/oridecon*/src/
!core/oridecon*/src/**
!packages/oridecon*/src/
!packages/oridecon*/src/**
!experimental/*/oridecon*/src/
!experimental/*/oridecon*/src/**
!core/oridecon*/tests/
!core/oridecon*/tests/**
!packages/oridecon*/tests/
!packages/oridecon*/tests/**
!experimental/*/oridecon*/tests/
!experimental/*/oridecon*/tests/**
!core/oridecon*/docs/
!core/oridecon*/docs/**
!packages/oridecon*/docs/
!packages/oridecon*/docs/**
!experimental/*/oridecon*/docs/
!experimental/*/oridecon*/docs/**

# dev/
!dev/
!dev/**

# Admin dev playground (committed dev asset; local SQLite files stay ignored)
!experimental/*/oridecon*/playground/
!experimental/*/oridecon*/playground/**
experimental/*/oridecon*/playground/*.db
experimental/*/oridecon*/playground/*.db-*

# Re-exclude private content under the tiered paths.
# MUST come after the !...docs/** negations above — last match wins.
core/oridecon*/docs/plans/
packages/oridecon*/docs/plans/
experimental/*/oridecon*/docs/plans/
core/oridecon*/docs/**/
packages/oridecon*/docs/**/
experimental/*/oridecon*/docs/**/

# Re-exclude tooling artifacts under the tiered paths
__pycache__/
*.pyc
*.pyo
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
htmlcov/
.coverage
coverage.xml
test.db
*.tmp
*.log
!core/oridecon*/tests/fixtures/test.db
!packages/oridecon*/tests/fixtures/test.db
!experimental/*/oridecon*/tests/fixtures/test.db

# Allow the generated example gifs to be tracked (README hero images).
!core/oridecon*/docs/gifs/
!core/oridecon*/docs/gifs/**
!packages/*/oridecon*/docs/gifs/
!packages/*/oridecon*/docs/gifs/**
!experimental/*/oridecon*/docs/gifs/
!experimental/*/oridecon*/docs/gifs/**
