{"definition_raw":"---\nid: ceo-audio-briefing\ntitle: CEO Audio Briefing\nschedule: \"25 5 * * 1-5\"\ntimeout: 420\nretry: false\nenabled: true\nnotify_on: failure\nrun_as: shell\ncommand: \". /home/lucienne/.claude/env/api_keys.env && cd /home/lucienne/workspace && python3 scripts/ceo_briefing_audio.py\"\nbackground: true\ntags: [flysafair, ceo, briefing, audio, telegram, drivetime]\nruntime_profile: claude_anthropic\n---\n\nDaily CEO audio briefing for Elmar's morning drive.\n\nRuns weekdays at 07:25 SAST (05:25 UTC), ~25 minutes after the dashboard build\nat 08:30 SAST wait \u2014 TO BE VERIFIED. Elmar's drive starts 07:00-08:00 SAST, usually\n07:30-08:00, so delivery target is 07:25.\n\n**IMPORTANT**: this currently depends on Dashboard.html being fresh. If the\ndashboard-build task is still scheduled at 08:30 SAST, this task will be\nreading yesterday's dashboard. Two options (pick one when confirmed with Elmar):\n1. Move ceo-dashboard-build to 07:00 SAST so this task gets fresh data\n2. Accept a 24h data lag on the audio brief (numbers are from \"yesterday\"\n   going into today's drive)\n\nPipeline:\n1. scripts/ceo_briefing_audio.py reads Dashboard.html\n2. Extracts RPF, economic indicators, route performance, forward sales\n3. Calls Claude CLI to write a 400-600 word narrative commentary\n4. TTS via edge-tts (en-GB-RyanNeural) \u2192 MP3\n5. Saves mp3 + transcript + metadata to ~/workspace/audio-library/ceo/\n6. Sends text summary + MP3 attachment to Work Telegram topic\n7. MC /briefings page picks up the new file automatically\n\nSource: ~/workspace/dashboard-build/dashboard/Dashboard.html\nTarget: ~/workspace/audio-library/ceo/YYYY-MM-DD.{mp3,txt,json}\nDelivery: Work topic (thread 20472) via notify.py sendAudio\nMC Page: /briefings#YYYY-MM-DD-ceo\n","id":"ceo-audio-briefing","last_run":{"duration_s":179.91157,"log_path":"/home/lucienne/workspace/logs/task-runs/ceo-audio-briefing/409565.log","output":"[1/5] Extracting dashboard data...\n[2/5] Generating 2-host dialogue script via Claude CLI...\n  draft: 43 turns\n  running CFO-lens critique pass...\n  critique: inserting 2 turn(s) \u2014 On the Durban-Joburg trunk (over one hundred forty thousand seats each way, the second-biggest domestic route), FlySafai\n  final: 45 turns, 688 words\n[3/5] Synthesizing audio...\n  TTS: Cartesia sonic-2 (45 turns, Carson + Allie)\n  mp3: /home/lucienne/workspace/audio-library/ceo/2026-06-12.mp3 (4048 KB)\n[4/5] Saving transcript + metadata...\n[5/5] Sending to Work topic...\n  audio delivered \u2713\n","started_at":"2026-06-12T05:25:00.535550+02:00","status":"completed"},"next_run":"2026-06-15 05:25","next_run_iso":"2026-06-15T05:25:00+02:00","runs":[{"duration_s":179.91157,"finished_at":"2026-06-12T05:28:00.447366+02:00","id":409565,"log_path":"/home/lucienne/workspace/logs/task-runs/ceo-audio-briefing/409565.log","output":"[1/5] Extracting dashboard data...\n[2/5] Generating 2-host dialogue script via Claude CLI...\n  draft: 43 turns\n  running CFO-lens critique pass...\n  critique: inserting 2 turn(s) \u2014 On the Durban-Joburg trunk (over one hundred forty thousand seats each way, the second-biggest domestic route), FlySafai\n  final: 45 turns, 688 words\n[3/5] Synthesizing audio...\n  TTS: Cartesia sonic-2 (45 turns, Carson + Allie)\n  mp3: /home/lucienne/workspace/audio-library/ceo/2026-06-12.mp3 (4048 KB)\n[4/5] Saving transcript + metadata...\n[5/5] Sending to Work topic...\n  audio delivered \u2713\n","started_at":"2026-06-12T05:25:00.535550+02:00","status":"completed","task_id":"ceo-audio-briefing","task_name":"CEO Audio Briefing"},{"duration_s":180.050886,"finished_at":"2026-06-11T05:28:00.407817+02:00","id":405208,"log_path":"/home/lucienne/workspace/logs/task-runs/ceo-audio-briefing/405208.log","output":"[1/5] Extracting dashboard data...\n[2/5] Generating 2-host dialogue script via Claude CLI...\n  draft: 41 turns\n  running CFO-lens critique pass...\n  critique: inserting 2 turn(s) \u2014 July's forward curve hides the single largest capacity exposure in the whole dataset: East London to Joburg, forty-three\n  final: 43 turns, 678 words\n[3/5] Synthesizing audio...\n  TTS: Cartesia sonic-2 (43 turns, Carson + Allie)\n  mp3: /home/lucienne/workspace/audio-library/ceo/2026-06-11.mp3 (3706 KB)\n[4/5] Saving transcript + metadata...\n[5/5] Sending to Work topic...\n  audio delivered \u2713\n","started_at":"2026-06-11T05:25:00.356673+02:00","status":"completed","task_id":"ceo-audio-briefing","task_name":"CEO Audio Briefing"},{"duration_s":299.663001,"finished_at":"2026-06-10T05:30:00.241024+02:00","id":400940,"log_path":"/home/lucienne/workspace/logs/task-runs/ceo-audio-briefing/400940.log","output":"[1/5] Extracting dashboard data...\n[2/5] Generating 2-host dialogue script via Claude CLI...\n  draft: 43 turns\n  running CFO-lens critique pass...\n  critique: inserting 2 turn(s) \u2014 The brief's closing thesis assumes fuel rolling over brings relief, but the rand weakened 12.7 percent month on month to\n  final: 45 turns, 737 words\n[3/5] Synthesizing audio...\n  TTS: Cartesia sonic-2 (45 turns, Carson + Allie)\n  mp3: /home/lucienne/workspace/audio-library/ceo/2026-06-10.mp3 (3902 KB)\n[4/5] Saving transcript + metadata...\n[5/5] Sending to Work topic...\n  audio delivered \u2713\n","started_at":"2026-06-10T05:25:00.577747+02:00","status":"completed","task_id":"ceo-audio-briefing","task_name":"CEO Audio Briefing"},{"duration_s":239.616434,"finished_at":"2026-06-09T05:29:00.201106+02:00","id":396669,"log_path":"/home/lucienne/workspace/logs/task-runs/ceo-audio-briefing/396669.log","output":"[1/5] Extracting dashboard data...\n[2/5] Generating 2-host dialogue script via Claude CLI...\n  draft: 44 turns\n  running CFO-lens critique pass...\n  critique: inserting 2 turn(s) \u2014 On the JNB-DUR trunk, FlySafair's single largest market at ~284k combined seats, FS shed ~8 points of share each directi\n  final: 46 turns, 734 words\n[3/5] Synthesizing audio...\n  TTS: Cartesia sonic-2 (46 turns, Carson + Allie)\n  mp3: /home/lucienne/workspace/audio-library/ceo/2026-06-09.mp3 (3844 KB)\n[4/5] Saving transcript + metadata...\n[5/5] Sending to Work topic...\n  audio delivered \u2713\n","started_at":"2026-06-09T05:25:00.584404+02:00","status":"completed","task_id":"ceo-audio-briefing","task_name":"CEO Audio Briefing"},{"duration_s":299.873225,"finished_at":"2026-06-08T05:30:00.445787+02:00","id":392577,"log_path":"/home/lucienne/workspace/logs/task-runs/ceo-audio-briefing/392577.log","output":"[1/5] Extracting dashboard data...\n[2/5] Generating 2-host dialogue script via Claude CLI...\n  draft: 36 turns\n  running CFO-lens critique pass...\n  critique: inserting 2 turn(s) \u2014 The brief's lead strategic question treats Mauritius and Zanzibar as strength to price into, but that strength is purely\n  final: 38 turns, 759 words\n[3/5] Synthesizing audio...\n  TTS: Cartesia sonic-2 (38 turns, Carson + Allie)\n  mp3: /home/lucienne/workspace/audio-library/ceo/2026-06-08.mp3 (3874 KB)\n[4/5] Saving transcript + metadata...\n[5/5] Sending to Work topic...\n  audio delivered \u2713\n","started_at":"2026-06-08T05:25:00.572296+02:00","status":"completed","task_id":"ceo-audio-briefing","task_name":"CEO Audio Briefing"}],"runs_limit":20,"schedule":"25 5 * * 1-5","schedule_label":{"description":"Weekdays at 05:25","is_custom":false,"label":"Weekdays","sort":5,"sort_time":"05:25"},"stats":{"avg_duration":239.8230232,"completed":5,"failed":0,"timeout":0,"total":5},"task":{"_description":"Daily CEO audio briefing for Elmar's morning drive.\n\nRuns weekdays at 07:25 SAST (05:25 UTC), ~25 minutes after the dashboard build\nat 08:30 SAST wait \u2014 TO BE VERIFIED. Elmar's drive starts 07:00-08:00 SAST, usually\n07:30-08:00, so delivery target is 07:25.\n\n**IMPORTANT**: this currently depends on Dashboard.html being fresh. If the\ndashboard-build task is still scheduled at 08:30 SAST, this task will be\nreading yesterday's dashboard. Two options (pick one when confirmed with Elmar):\n1. Move ceo-dashboard-build to 07:00 SAST so this task gets fresh data\n2. Accept a 24h data lag on the audio brief (numbers are from \"yesterday\"\n   going into today's drive)\n\nPipeline:\n1. scripts/ceo_briefing_audio.py reads Dashboard.html\n2. Extracts RPF, economic indicators, route performance, forward sales\n3. Calls Claude CLI to write a 400-600 word narrative commentary\n4. TTS via edge-tts (en-GB-RyanNeural) \u2192 MP3\n5. Saves mp3 + transcript + metadata to ~/workspace/audio-library/ceo/\n6. Sends text summary + MP3 attachment to Work Telegram topic\n7. MC /briefings page picks up the new file automatically\n\nSource: ~/workspace/dashboard-build/dashboard/Dashboard.html\nTarget: ~/workspace/audio-library/ceo/YYYY-MM-DD.{mp3,txt,json}\nDelivery: Work topic (thread 20472) via notify.py sendAudio\nMC Page: /briefings#YYYY-MM-DD-ceo","_file":"ceo-audio-briefing.md","_path":"/home/lucienne/workspace/tasks/ceo-audio-briefing.md","background":true,"command":". /home/lucienne/.claude/env/api_keys.env && cd /home/lucienne/workspace && python3 scripts/ceo_briefing_audio.py","enabled":true,"id":"ceo-audio-briefing","notify_on":"failure","retry":false,"run_as":"shell","runtime_profile":"claude_anthropic","schedule":"25 5 * * 1-5","tags":["flysafair","ceo","briefing","audio","telegram","drivetime"],"timeout":420,"title":"CEO Audio Briefing"}}
