# List recipes
default:
    @just --list

# Fetch new daily prices from Coinbase
update:
    python -m btcmodel update

# Score models on development data (outcomes up to the dev cutoff)
backtest *args:
    python -m btcmodel {{ args }} backtest

# Score models on held-out outcomes; run sparingly, never while tuning
holdout *args:
    python -m btcmodel {{ args }} backtest --holdout

# Forecast from the latest price
forecast *args:
    python -m btcmodel {{ args }} forecast

test:
    pytest -q

fmt:
    ruff format .
    ruff check --fix --select I .
    nix fmt flake.nix

lint:
    ruff check .
    ruff format --check .

clean:
    rm -rf output

# Run A/B experiments on development data (default: all)
ab *names:
    python -m btcmodel ab {{ names }}
