28 lines
1.3 KiB
C#
28 lines
1.3 KiB
C#
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.
|
|
""";
|
|
}
|