Files
jepa-fx-risk/Taskfile.yml
T
mathias 308f71b566
CD / Build & Import (push) Failing after 10s
CD / Deploy via GitOps (push) Has been skipped
CD / Lint / Test / Vet (push) Successful in 7s
fix(ci): Taskfile YAML syntax error + staticcheck tagged-switch (jepa-fx-risk#19)
Taskfile.yml line 46 had an unquoted Go-template `{{.VAR}}` inside a YAML
flow sequence (`cmds: [...]`) -- the literal braces broke YAML parsing
outright ("did not find expected ',' or ']'"), so `task check` (and thus
CI's push-triggered check job) failed before running a single command.
A manual `workflow_dispatch` re-run passed because the autoresearch
workflow never calls `task check` at all -- unrelated path, not an
env/secret difference as first suspected. Quoted the string.

Also fixed a staticcheck QF1002 in internal/eval/var.go: a boolean
switch comparing the same variable (n1) in every case is a tagged
switch in disguise -- converted to `switch n1 { case 0: ... case n: ...
}`.
2026-07-24 15:26:01 +02:00

85 lines
2.9 KiB
YAML

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]
train:multipair:
desc: "Train 5-pair G10 HEPA (D=256, best config, phase1_r2≈0.44)"
cmds: [JEPA_USE_MULTIPAIR=1 JEPA_D_MODEL=256 .venv/bin/python train.py]
data:fetch:multipair:
desc: "Download G10 M1 data (GBPUSD/USDJPY/USDCHF/AUDUSD) 2008-2023 from histdata"
cmds: [.venv/bin/python scripts/fetch_multipair.py]
data:prepare:pair:
desc: "Build {PAIR}_hourly.parquet from data/raw/{PAIR}/ (e.g. PAIR=gbpusd)"
cmds: ["PAIR={{.PAIR}} .venv/bin/python scripts/prepare_hourly.py {{.EXTRA_ARGS}}"]
vars:
PAIR: '{{default "eurusd" .PAIR}}'
data:prepare:multipair:
desc: "Merge 5-pair hourly parquets into eurusd_multipair.parquet"
cmds: [.venv/bin/python scripts/prepare_multipair.py]
data:test:
desc: "Run Python data pipeline tests"
cmds: [.venv/bin/python -m pytest tests/test_prepare_hourly.py tests/test_hepa.py tests/test_multipair.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]