From 79bfc79d332d8511e6911b0b241266202735976a Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 4 Jun 2026 14:11:30 +0200 Subject: [PATCH] feat(prompts): daily-prep prompt from file, English default --- src/ClaudeDo.Worker/Prime/DailyPrepPrompt.cs | 20 +++++++------------ .../Prime/DailyPrepPromptTests.cs | 1 + 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/ClaudeDo.Worker/Prime/DailyPrepPrompt.cs b/src/ClaudeDo.Worker/Prime/DailyPrepPrompt.cs index 7e880bd..2c99506 100644 --- a/src/ClaudeDo.Worker/Prime/DailyPrepPrompt.cs +++ b/src/ClaudeDo.Worker/Prime/DailyPrepPrompt.cs @@ -14,17 +14,11 @@ public static class DailyPrepPrompt $"--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. - """; + ClaudeDo.Data.PromptFiles.Render( + ClaudeDo.Data.PromptKind.DailyPrep, + new Dictionary + { + ["date"] = today.ToString("yyyy-MM-dd"), + ["maxTasks"] = maxTasks.ToString(), + }); } diff --git a/tests/ClaudeDo.Worker.Tests/Prime/DailyPrepPromptTests.cs b/tests/ClaudeDo.Worker.Tests/Prime/DailyPrepPromptTests.cs index 3a871f1..25f0ff3 100644 --- a/tests/ClaudeDo.Worker.Tests/Prime/DailyPrepPromptTests.cs +++ b/tests/ClaudeDo.Worker.Tests/Prime/DailyPrepPromptTests.cs @@ -12,6 +12,7 @@ public class DailyPrepPromptTests Assert.Contains("2026-06-03", prompt); Assert.Contains("get_daily_prep_candidates", prompt); Assert.Contains("set_my_day", prompt); + Assert.Contains("preparing my workday", prompt); } [Fact]