version: '3' tasks: generate: desc: Run templ generate cmds: [templ generate] build: desc: Build all binaries deps: [generate] cmds: - go build -o bin/jepa-fx-risk ./cmd/jepa-fx-risk - go build -o bin/eval ./cmd/eval run: deps: [build] cmds: [./bin/jepa-fx-risk] test: desc: Run all tests deps: [generate] cmds: [go test ./... -race] data:fetch: desc: "Download EUR/USD M1 from histdata (set YEARS env var)" cmds: [.venv/bin/python scripts/fetch_data.py] data:fetch:historical: desc: "Download EUR/USD M1 2008-2018 from histdata" cmds: - YEARS=2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018 .venv/bin/python scripts/fetch_data.py data:prepare:daily: desc: "Rebuild eurusd_daily.parquet from all M1 zips" cmds: [.venv/bin/python scripts/prepare_data.py] data:prepare:hourly: desc: "Build eurusd_hourly.parquet from all M1 zips" cmds: [.venv/bin/python scripts/prepare_hourly.py] data:prepare:all: desc: "Build both daily and hourly parquets" deps: [data:prepare:daily, data:prepare:hourly] data:test: desc: "Run Python data pipeline tests" cmds: [.venv/bin/python -m pytest tests/test_prepare_hourly.py tests/test_hepa.py -v] eval:probe: desc: "Run linear-probe (val_vol_r2) on embeddings from metrics.json" cmds: [./bin/eval -metric probe] eval:silhouette: desc: "Run silhouette on embeddings vs binary HV labels" cmds: [./bin/eval -metric silhouette] eval:collapse: desc: "Run effective-rank collapse diagnostic" cmds: [./bin/eval -metric erank] lint: cmds: [golangci-lint run ./...] check: desc: Lint, vet, and test (used by CI) deps: [generate] cmds: - golangci-lint run ./... - go vet ./... - go test ./... -race -count=1 context:sync: desc: Regenerate all harness-specific context files cmds: - bash scripts/context-sync.sh context:sync:claude: cmds: [bash scripts/context-sync.sh claude] context:sync:agents: cmds: [bash scripts/context-sync.sh agents] context:sync:cursor: cmds: [bash scripts/context-sync.sh cursor]