{"definition_raw":"---\nid: f1-sprint-pick\ntitle: F1 sprint constructor/team pick submission\nschedule: \"0 4,6 * * 6\"\ntimeout: 300\nretry: false\nenabled: true\nnotify_to: f1\nnotify_on: always\nrun_as: shell\ncommand: cd /home/lucienne/workspace/projects/f1-predictor && /usr/bin/python3.12 run_sprint_pick.py\ntags: [f1, prediction, sprint]\nruntime_profile: direct_anthropic_sdk\n---\n\n**OVERRIDES runtime profile:** uses no Claude model \u2014 pure Python Playwright script, no LLM calls.\n\nSaturday 04:00 and 06:00 SAST (02:00/04:00 UTC) sprint pick submission\nguard windows for sprint weekends.\n\nDesigned to run before each sprint weekend's Sprint session start (`sprint_utc`\nin the calendar). Submits the sprint **constructor/team** pick to Superbru via\n`.motorsport-team-option` selector.\n\n**Pool field is team-only.** The current Superbru pool's sprint field is\n\"which team earns most points in the Sprint?\" \u2014 there is NO driver\nsprint-winner picker. The pipeline may still derive a driver sprint-winner\nsignal for analysis (`sprint_prediction[]`), but only the team field is\nsubmitted. If the live Superbru page ever adds a driver field, update the\nselector logic + extend coverage in `tests/test_sprint_winner.py` before\nchanging submission behaviour.\n\nRace picks (Pole, positions 1-10, FL) are submitted separately by the\nSaturday prediction task (`f1-prediction-saturday`) before each race's\n`qualifying_utc`.\n\nThe early 04:00 SAST guard covers sprint deadlines as early as China 03:00 UTC;\nthe 06:00 SAST guard preserves the previous later-Saturday visibility window.\nThe script checks `sprint_window_open()` first \u2014 exits cleanly if no sprint race\nor sprint deadline already passed. Safe to run on non-sprint weekends and noisy-\nsafe because closed-window runs do not submit.\nDry-run / no-submit validation must be used before changing selectors or\nsubmission behaviour; no Superbru writes happen in tests.\n\nRequires: prediction pipeline must have run first (f1-prediction Thursday task).\nIf final_prediction.json is missing, alerts via Telegram and exits 1.\n","id":"f1-sprint-pick","last_run":{"duration_s":0.085562,"log_path":"/home/lucienne/workspace/logs/task-runs/f1-sprint-pick/413829.log","output":"No sprint race with open sprint window this weekend \u2014 self-skipping\n","started_at":"2026-06-13T06:00:07.129229+02:00","status":"warning"},"next_run":"2026-06-20 04:00","next_run_iso":"2026-06-20T04:00:00+02:00","runs":[{"duration_s":0.085562,"finished_at":"2026-06-13T06:00:07.216479+02:00","id":413829,"log_path":"/home/lucienne/workspace/logs/task-runs/f1-sprint-pick/413829.log","output":"No sprint race with open sprint window this weekend \u2014 self-skipping\n","started_at":"2026-06-13T06:00:07.129229+02:00","status":"warning","task_id":"f1-sprint-pick","task_name":"F1 sprint constructor/team pick submission"},{"duration_s":0.08171,"finished_at":"2026-06-13T04:04:08.548390+02:00","id":413484,"log_path":"/home/lucienne/workspace/logs/task-runs/f1-sprint-pick/413484.log","output":"No sprint race with open sprint window this weekend \u2014 self-skipping\n","started_at":"2026-06-13T04:04:08.463895+02:00","status":"warning","task_id":"f1-sprint-pick","task_name":"F1 sprint constructor/team pick submission"},{"duration_s":0.068803,"finished_at":"2026-06-06T07:17:55.563276+02:00","id":383881,"log_path":"/home/lucienne/workspace/logs/task-runs/f1-sprint-pick/383881.log","output":"No sprint race with open sprint window this weekend \u2014 self-skipping\n","started_at":"2026-06-06T07:17:55.490587+02:00","status":"warning","task_id":"f1-sprint-pick","task_name":"F1 sprint constructor/team pick submission"},{"duration_s":0.093472,"finished_at":"2026-06-06T06:00:02.953534+02:00","id":383611,"log_path":"/home/lucienne/workspace/logs/task-runs/f1-sprint-pick/383611.log","output":"No sprint race with open sprint window this weekend \u2014 skipping\n","started_at":"2026-06-06T06:00:02.857904+02:00","status":"completed","task_id":"f1-sprint-pick","task_name":"F1 sprint winner pick submission"}],"runs_limit":20,"schedule":"0 4,6 * * 6","schedule_label":{"description":"Sat at 04:00, 06:00","is_custom":false,"label":"Weekly (Sat)","sort":6,"sort_time":"04:00"},"stats":{"avg_duration":0.08238675000000001,"completed":1,"failed":0,"timeout":0,"total":4},"task":{"_description":"**OVERRIDES runtime profile:** uses no Claude model \u2014 pure Python Playwright script, no LLM calls.\n\nSaturday 04:00 and 06:00 SAST (02:00/04:00 UTC) sprint pick submission\nguard windows for sprint weekends.\n\nDesigned to run before each sprint weekend's Sprint session start (`sprint_utc`\nin the calendar). Submits the sprint **constructor/team** pick to Superbru via\n`.motorsport-team-option` selector.\n\n**Pool field is team-only.** The current Superbru pool's sprint field is\n\"which team earns most points in the Sprint?\" \u2014 there is NO driver\nsprint-winner picker. The pipeline may still derive a driver sprint-winner\nsignal for analysis (`sprint_prediction[]`), but only the team field is\nsubmitted. If the live Superbru page ever adds a driver field, update the\nselector logic + extend coverage in `tests/test_sprint_winner.py` before\nchanging submission behaviour.\n\nRace picks (Pole, positions 1-10, FL) are submitted separately by the\nSaturday prediction task (`f1-prediction-saturday`) before each race's\n`qualifying_utc`.\n\nThe early 04:00 SAST guard covers sprint deadlines as early as China 03:00 UTC;\nthe 06:00 SAST guard preserves the previous later-Saturday visibility window.\nThe script checks `sprint_window_open()` first \u2014 exits cleanly if no sprint race\nor sprint deadline already passed. Safe to run on non-sprint weekends and noisy-\nsafe because closed-window runs do not submit.\nDry-run / no-submit validation must be used before changing selectors or\nsubmission behaviour; no Superbru writes happen in tests.\n\nRequires: prediction pipeline must have run first (f1-prediction Thursday task).\nIf final_prediction.json is missing, alerts via Telegram and exits 1.","_file":"f1-sprint-pick.md","_path":"/home/lucienne/workspace/tasks/f1-sprint-pick.md","command":"cd /home/lucienne/workspace/projects/f1-predictor && /usr/bin/python3.12 run_sprint_pick.py","enabled":true,"id":"f1-sprint-pick","notify_on":"always","notify_to":"f1","retry":false,"run_as":"shell","runtime_profile":"direct_anthropic_sdk","schedule":"0 4,6 * * 6","tags":["f1","prediction","sprint"],"timeout":300,"title":"F1 sprint constructor/team pick submission"}}
