# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Status Flask-based financial management system for FUJ (Frisbee Ultimate Jablonec). Handles attendance-based fee calculation, Fio bank transaction sync, payment reconciliation, and a web dashboard. ## Key Constraints - **PII separation**: Member data (names, emails, payment info) must never be committed to git. Enforce config/data separation from day one. - **Configuration**: External service IDs, credentials, and tunable parameters are centralized in `scripts/config.py`. Domain-specific constants (fees, merged months) stay in their respective modules. ## Development Setup This project uses `uv` for dependency management. ```bash uv venv # Create virtual environment uv sync # Install dependencies from pyproject.toml source .venv/bin/activate ``` Alternatively, use the Makefile: - `make sync` - Sync bank transactions to Google Sheets - `make infer` - Automatically infer Person/Purpose/Amount in the sheet - `make reconcile` - Generate balance report from Google Sheets data - `make fees` - Calculate expected fees from attendance - `make match` - (Legacy) Match bank data directly - `make web` - Start dashboard - `make image` - Build Docker image Requires `.secret/fuj-management-bot-credentials.json` for Google Sheets API access (configurable via `CREDENTIALS_PATH` env var). ## Git Commits When making git commits, always append yourself as co-author trailer to the end of the commit message to indicate AI assistance