feat(prime): wire prompt_override into the daily prep prompt
The prime_schedules.prompt_override column existed end-to-end but was never populated or read. DailyPrepPrompt.BuildPrompt now takes an optional override and appends it as an extra paragraph after the fixed prompt (additive, never a replacement, so a user can't disable the required get_daily_prep_candidates/set_my_day flow). PrimeRunner passes schedule.PromptOverride through. The Prime tab in Settings now has a multiline field per schedule wired to a new PromptOverride property on PrimeScheduleRowViewModel (blank persists as null).
This commit is contained in:
@@ -16,12 +16,18 @@ public static class DailyPrepPrompt
|
||||
"--allowedTools", CandidatesTool, SetMyDayTool,
|
||||
];
|
||||
|
||||
public static string BuildPrompt(int maxTasks, DateOnly today) =>
|
||||
ClaudeDo.Data.PromptFiles.Render(
|
||||
public static string BuildPrompt(int maxTasks, DateOnly today, string? promptOverride = null)
|
||||
{
|
||||
var prompt = ClaudeDo.Data.PromptFiles.Render(
|
||||
ClaudeDo.Data.PromptKind.DailyPrep,
|
||||
new Dictionary<string, string>
|
||||
{
|
||||
["date"] = today.ToString("yyyy-MM-dd"),
|
||||
["maxTasks"] = maxTasks.ToString(),
|
||||
});
|
||||
|
||||
// Additive by design: a schedule's override is appended, never substituted, so a user
|
||||
// can't accidentally break the mcp__claudedo__get_daily_prep_candidates/set_my_day flow.
|
||||
return string.IsNullOrWhiteSpace(promptOverride) ? prompt : $"{prompt}\n\n{promptOverride}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public sealed class PrimeRunner : IPrimeRunner
|
||||
}
|
||||
|
||||
var today = DateOnly.FromDateTime(_clock.Now.LocalDateTime);
|
||||
var prompt = DailyPrepPrompt.BuildPrompt(maxTasks, today);
|
||||
var prompt = DailyPrepPrompt.BuildPrompt(maxTasks, today, schedule.PromptOverride);
|
||||
var args = DailyPrepPrompt.BuildArgs(MaxTurns);
|
||||
|
||||
using var timeoutCts = CancellationTokenSource.CreateLinkedTokenSource(ct);
|
||||
|
||||
Reference in New Issue
Block a user