Qué falta
Hoy se corre con ./scripts/finance y PYTHONPATH=src. Debería poder hacerse:
pip install -e .
cuadra ingest statements/inbox --period 2026-06
Alcance
pyproject.toml con [project] (nombre cuadra, Python ≥ 3.11, dependencias tomadas de requirements.txt con los mismos rangos) y [project.scripts] cuadra = "finance.cli:main".
- Layout
src/ ya existe; solo hay que declararlo ([tool.setuptools.packages.find] where = ["src"] o el equivalente en hatchling).
requirements.txt y requirements-dev.txt se mantienen por ahora; el README enseña las dos vías.
scripts/finance sigue funcionando (mucha gente lo usa desde el clone).
Cuidado con
config.project_root() sube directorios buscando config/ y src/. Instalado como paquete eso ya no aplica: FINANCE_ROOT pasa a ser obligatorio (o se documenta un default como ~/.cuadra). Decidirlo en el PR y documentarlo.
mcp_server.py hace sys.path.insert relativo. Con el paquete instalado sobra, pero no debe romper el uso desde el clone.
Criterio de cierre
Qué falta
Hoy se corre con
./scripts/financeyPYTHONPATH=src. Debería poder hacerse:pip install -e . cuadra ingest statements/inbox --period 2026-06Alcance
pyproject.tomlcon[project](nombrecuadra, Python ≥ 3.11, dependencias tomadas derequirements.txtcon los mismos rangos) y[project.scripts] cuadra = "finance.cli:main".src/ya existe; solo hay que declararlo ([tool.setuptools.packages.find] where = ["src"]o el equivalente en hatchling).requirements.txtyrequirements-dev.txtse mantienen por ahora; el README enseña las dos vías.scripts/financesigue funcionando (mucha gente lo usa desde el clone).Cuidado con
config.project_root()sube directorios buscandoconfig/ysrc/. Instalado como paquete eso ya no aplica:FINANCE_ROOTpasa a ser obligatorio (o se documenta un default como~/.cuadra). Decidirlo en el PR y documentarlo.mcp_server.pyhacesys.path.insertrelativo. Con el paquete instalado sobra, pero no debe romper el uso desde el clone.Criterio de cierre
pip install -e .en un venv limpio ycuadra --helpfunciona.pip install -e .[dev](o equivalente) y la suite pasa en 3.11–3.13.