From ac1e9b06de7275d9e9d4bb4b2cb07c06843cdaea Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 4 Jun 2026 14:13:15 +0200 Subject: [PATCH] feat(prompts): weekly-report instructions from file, point at data sections Co-Authored-By: Claude Sonnet 4.6 --- .../Report/WeekReportPromptBuilder.cs | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/ClaudeDo.Worker/Report/WeekReportPromptBuilder.cs b/src/ClaudeDo.Worker/Report/WeekReportPromptBuilder.cs index 0bf4414..5ee186c 100644 --- a/src/ClaudeDo.Worker/Report/WeekReportPromptBuilder.cs +++ b/src/ClaudeDo.Worker/Report/WeekReportPromptBuilder.cs @@ -5,33 +5,19 @@ namespace ClaudeDo.Worker.Report; public static class WeekReportPromptBuilder { - private const string Instructions = """ - You are generating a concise weekly standup report for a software developer. - Summarize what they accomplished between {0} and {1}. - - Rules: - - Write the ENTIRE report in German. - - Group by day. One "## {{Wochentag}}, {{dd.MM.yyyy}}" section per day that has - activity (German weekday names). Omit days with no activity entirely. - - Within each day: 3-5 first-person, past-tense bullets ("- Habe X umgesetzt", - "- Y behoben"). Merge related small work into one bullet. - - Drop trivia: typo fixes, pure exploration, false starts, tooling/log noise. - - Blend the developer's own notes and the derived activity into ONE deduplicated - bullet list per day. The developer's notes are authoritative - never omit or - contradict their substance. - - Name the project/repo when it adds clarity. - - Output ONLY the dated sections. No preamble, no intro, no closing remarks. - """; - public static string Build( DateOnly start, DateOnly end, IReadOnlyList activity, IReadOnlyDictionary> notesByDay) { var sb = new StringBuilder(); - sb.AppendLine(string.Format(CultureInfo.InvariantCulture, Instructions, - start.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture), - end.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture))); + sb.AppendLine(ClaudeDo.Data.PromptFiles.Render( + ClaudeDo.Data.PromptKind.WeeklyReport, + new Dictionary + { + ["start"] = start.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture), + ["end"] = end.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture), + })); sb.AppendLine(); var days = new SortedDictionary>();