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

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
# Exception: the Next.js web app's source lib dir (beat-state, funnel helpers)
# is real source, NOT a Python build artifact — the `lib/` rule above
# over-matches it and silently excluded it from the #21 import. Keep tracked.
!web/app/lib/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
*.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/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# PEP 582
__pypackages__/

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

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# Ruff
.ruff_cache/

# PyPI configuration file
.pypirc

# IDE
.idea/
.vscode/
*.swp
*.swo
*~

# Cursor
.cursorignore
.cursorindexingignore

# Claude Code local state (agent memory must NOT live in repo — canonical location is
# flatland-business/agents/memory/<agent>/; see agents/AGENTS.md Memory & Persistence)
.claude/

# Stray agent-memory backstop. If an agent's cwd is inside this subrepo and it
# resolves a bare `memory/<role>/` path relative to cwd, the write lands here
# instead of the canonical `flatland-business/agents/memory/<role>/`. Drift
# incident 2026-05-16 (CAO log) is the precedent. Ignore so any accidental
# write stays local and never commits. Migrate to canonical and delete the dir.
/memory/

# OS
.DS_Store
Thumbs.db

# Flatland local data
*.xlsx
models/
exports/
results.tsv
run.log
__pycache__/
*.pyc
