namespace ClaudeDo.Worker.Prime; public static class DailyPrepPrompt { public const string CandidatesTool = "mcp__claudedo__get_daily_prep_candidates"; public const string SetMyDayTool = "mcp__claudedo__set_my_day"; public static string BuildArgs(int maxTurns) => "-p --output-format stream-json --verbose --permission-mode acceptEdits " + $"--max-turns {maxTurns} " + $"--allowedTools {CandidatesTool} {SetMyDayTool}"; public static string BuildPrompt(int maxTasks, DateOnly today) => $""" Du bereitest meinen Arbeitstag fuer {today:yyyy-MM-dd} vor. 1. Rufe {CandidatesTool} auf. 2. Behalte bereits als MyDay markierte offene Tasks (currentMyDay) — entferne sie nicht. 3. Fuelle bis maximal {maxTasks} offene Tasks GESAMT in MyDay auf (currentMyDay zaehlt mit). Niemals mehr. 4. Schaetze pro Kandidat grob den Aufwand und waehle eine machbare Mischung (nicht nur Grossbrocken). Priorisiere isStarred, faellige (scheduledFor) und aeltere Tasks. 5. Lege thematisch verwandte Tasks durch aufeinanderfolgende sortOrder-Werte nebeneinander. 6. Setze die Auswahl via {SetMyDayTool}(taskId, true, sortOrder). Markiere nichts ausserhalb der Kandidatenliste. Wenn es keine Kandidaten gibt, tue nichts. """; }