Prerequisites
Install Python 3.12 and uv. On Apple Silicon, use an ARM64 Python (platform.machine() == "arm64"). The committed uv.lock fixes the supported Python dependency graph.
Install and verify
From the repository root:
uv sync --frozen --extra research --group dev
uv run etf-cash-research --help
uv run python -m pytest tests/etf_cash_research tests/research_data tests/research_group_a
The tests use fixtures; they do not make broker or paid-model requests. Real data acquisition is an explicit command. Record the exact immutable data manifest for every research run.
Reproduce a published study summary
The public catalog contains owner-approved aggregate historical results. Reproduction still requires the exact source revision and private input-manifest binding, plus your own licensed data. Verify every data file’s hash before loading it. The original environment and a portable reproduction are separate claims; a matching result from a new environment does not retroactively verify the original runtime.
Continue to the strategy plugin guide or the product and technical design.