feat(prompts): daily-prep prompt from file, English default

This commit is contained in:
mika kuns
2026-06-04 14:11:30 +02:00
parent 1b3c6bdbb4
commit 79bfc79d33
2 changed files with 8 additions and 13 deletions

View File

@@ -14,17 +14,11 @@ public static class DailyPrepPrompt
$"--allowedTools {CandidatesTool} {SetMyDayTool}"; $"--allowedTools {CandidatesTool} {SetMyDayTool}";
public static string BuildPrompt(int maxTasks, DateOnly today) => public static string BuildPrompt(int maxTasks, DateOnly today) =>
$""" ClaudeDo.Data.PromptFiles.Render(
Du bereitest meinen Arbeitstag fuer {today:yyyy-MM-dd} vor. ClaudeDo.Data.PromptKind.DailyPrep,
new Dictionary<string, string>
1. Rufe {CandidatesTool} auf. {
2. Behalte bereits als MyDay markierte offene Tasks (currentMyDay) — entferne sie nicht. ["date"] = today.ToString("yyyy-MM-dd"),
3. Fuelle bis maximal {maxTasks} offene Tasks GESAMT in MyDay auf (currentMyDay zaehlt mit). Niemals mehr. ["maxTasks"] = maxTasks.ToString(),
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.
""";
} }

View File

@@ -12,6 +12,7 @@ public class DailyPrepPromptTests
Assert.Contains("2026-06-03", prompt); Assert.Contains("2026-06-03", prompt);
Assert.Contains("get_daily_prep_candidates", prompt); Assert.Contains("get_daily_prep_candidates", prompt);
Assert.Contains("set_my_day", prompt); Assert.Contains("set_my_day", prompt);
Assert.Contains("preparing my workday", prompt);
} }
[Fact] [Fact]