1.1 KiB
1.1 KiB
Architecture and contributor guidance for idea115-taxalpha-studio-declarative
Overview
- Phase-0 skeleton for TaxAlpha Studio: canonical IR, a tiny DSL parser, a deterministic greedy optimizer (warm-start), and two simple adapters (custodian mock and CSV reader).
Tech stack
- Python 3.8+
- Packaging: setuptools (pyproject.toml)
- Testing: pytest
Repository layout
- idea115_taxalpha_studio_declarative/: package source
- ir.py: canonical dataclasses (TaxLot, Account, HarvestAction, PlanDelta, AuditLog)
- dsl.py: very small line-oriented DSL parser
- solver.py: deterministic greedy warm-start optimizer (Phase-0)
- adapters/: simple adapters (custodian mock, CSV reader)
- tests/: pytest tests
- pyproject.toml: package metadata and build-system
- README.md: project description
- AGENTS.md: this file
Developer rules
- Make minimal, well-scoped changes. Prefer small, correct edits.
- Use apply_patch for modifications.
- Add tests for new behavior and ensure pytest passes.
- test.sh must run
pytestandpython3 -m buildsuccessfully.
How to run tests
- Install requirements if needed (Phase-0 uses stdlib only)
- Run:
bash test.sh