generated from mathias/template-go-web
80 lines
3.3 KiB
YAML
80 lines
3.3 KiB
YAML
version: '3'
|
||
|
||
tasks:
|
||
|
||
# ── Quality gate ──────────────────────────────────────────────────────────
|
||
|
||
check:
|
||
desc: "Full quality gate: lint + vet + test (run before every commit)"
|
||
cmds:
|
||
- golangci-lint run ./src/...
|
||
- go vet ./src/...
|
||
- go test ./src/... -race -count=1
|
||
- cd model && python -m pytest tests/ -q
|
||
|
||
test:
|
||
desc: Run Go tests only
|
||
cmds: [go test ./src/... -race]
|
||
|
||
lint:
|
||
desc: Lint Go code
|
||
cmds: [golangci-lint run ./src/...]
|
||
|
||
# ── Data ─────────────────────────────────────────────────────────────────
|
||
|
||
data:fetch:
|
||
desc: "Download G10 tick data from DUKASCopy (2003–2022)"
|
||
cmds: [go run ./src/cmd/fetch --config data/config.yaml]
|
||
|
||
data:process:
|
||
desc: "Resample ticks → hourly OHLCV + features (log-return, rolling HV)"
|
||
cmds: [go run ./src/cmd/process --input data/raw --output data/processed]
|
||
|
||
data:validate:
|
||
desc: "Validate processed data: gap detection, outlier report, regime coverage"
|
||
cmds: [go run ./src/cmd/validate --input data/processed]
|
||
|
||
# ── Experiment ───────────────────────────────────────────────────────────
|
||
|
||
experiment:run:
|
||
desc: "Run an experiment from a spec file. Usage: task experiment:run -- --spec specs/phase-0-ssl-feasibility.md"
|
||
cmds: [go run ./src/cmd/experiment {{.CLI_ARGS}}]
|
||
|
||
experiment:list:
|
||
desc: List all recorded experiment runs
|
||
cmds: [ls -lt experiments/ | head -20]
|
||
|
||
# ── Evaluation ───────────────────────────────────────────────────────────
|
||
|
||
eval:silhouette:
|
||
desc: "Compute silhouette score on embedding output. Usage: task eval:silhouette -- --run experiments/RUNID"
|
||
cmds: [go run ./src/cmd/eval silhouette {{.CLI_ARGS}}]
|
||
|
||
eval:probe:
|
||
desc: "Run linear probe on frozen embeddings vs. realised-vol decile"
|
||
cmds: [go run ./src/cmd/eval probe {{.CLI_ARGS}}]
|
||
|
||
eval:collapse:
|
||
desc: "Check collapse diagnostic: PC1 correlation with rolling HV"
|
||
cmds: [go run ./src/cmd/eval collapse {{.CLI_ARGS}}]
|
||
|
||
# ── Model (Python) ───────────────────────────────────────────────────────
|
||
|
||
model:train:
|
||
desc: "Train TS-JEPA model. Usage: task model:train -- --config model/configs/phase0.yaml"
|
||
dir: model
|
||
cmds: [python train.py {{.CLI_ARGS}}]
|
||
|
||
model:setup:
|
||
desc: "Create Python venv and install model dependencies (uv)"
|
||
dir: model
|
||
cmds:
|
||
- uv venv .venv
|
||
- uv pip install -r requirements.txt
|
||
|
||
# ── Context ──────────────────────────────────────────────────────────────
|
||
|
||
context:sync:
|
||
desc: "Regenerate CLAUDE.md and AGENTS.md from .context/PROJECT.md"
|
||
cmds: [bash scripts/context-sync.sh]
|