docs(prime): document the schedule action kinds
This commit is contained in:
@@ -33,8 +33,8 @@ Worker/
|
||||
Hub/ — WorkerHub, HubBroadcaster
|
||||
Logging/ — LogRingBuffer (30-min window) + BroadcastLogSink (Serilog → footer + overlay)
|
||||
Report/ — ClaudeHistoryReader, WeekReportPromptBuilder, WeekReportService
|
||||
Prime/ — daily prep ("Prime Claude"): PrimeScheduler, PrimeRunner, DailyPrepPrompt,
|
||||
NextDueCalculator, PrimeScheduleSignal
|
||||
Prime/ — "Prime Claude" schedules: PrimeScheduler, PrimeRunner, PrimePrompts,
|
||||
DailyPrepPrompt, PrimeScheduleValidation, NextDueCalculator, PrimeScheduleSignal
|
||||
Online/ — optional Online Inbox sync (off by default; zero network when disabled)
|
||||
Usage/ — OAuth usage monitor, gate, throttle, per-session token reader;
|
||||
TokenTracker/ = the external analytics backend (cost + per-model/per-task breakdown)
|
||||
@@ -131,7 +131,26 @@ the **session transcript**, not the stream-json result event, as a per-run delta
|
||||
[usage-monitoring](../../docs/explore-notes/usage-monitoring.md). `TaskRunner.ContinueAsync` sends
|
||||
a follow-up prompt to an existing session via `--resume <session_id>`.
|
||||
|
||||
## Daily Prep (Prime Claude)
|
||||
## Prime Claude
|
||||
|
||||
Every schedule carries a `PrimeActionKind` (`Ping` — the default for new schedules — `FillMyDay`,
|
||||
or `Custom`). `PrimeRunner.FireAsync` holds one `SemaphoreSlim` gate for **all** kinds, then
|
||||
branches:
|
||||
|
||||
| Kind | Prompt | Args | Log + `Prep*` events |
|
||||
|---|---|---|---|
|
||||
| `Ping` | `PrimePrompts.PingPrompt`, fixed | `--max-turns 1 --strict-mcp-config` (no MCP server loads at all) | none |
|
||||
| `FillMyDay` | `DailyPrepPrompt.BuildPrompt` (+ the schedule's prompt as an *addition*) | the two MyDay MCP tools | `daily-prep.log`, truncated per run, + `PrepStarted`/`PrepLine`/`PrepFinished` |
|
||||
| `Custom` | the schedule's prompt *verbatim* | `--allowedTools mcp__claudedo` — no Read/Write/Edit/Bash | none |
|
||||
|
||||
Ping and Custom deliberately write **no** log and raise **no** `Prep*` events: the prep log
|
||||
belongs to the MyDay selection and would otherwise be overwritten with ping noise. All three
|
||||
kinds still broadcast `PrimeFired` and update `last_run_at`.
|
||||
|
||||
`WorkerHub.RunDailyPrepNow` (the "Plan day" button) pins its synthetic schedule to `FillMyDay` —
|
||||
the button means "fill my day" no matter how the schedules are configured.
|
||||
`WorkerHub.UpsertPrimeSchedule` runs `PrimeScheduleValidation.Validate` first, so a `Custom`
|
||||
schedule can never be saved without a prompt.
|
||||
|
||||
**PrimeScheduler** (`BackgroundService`) computes the next due time from `prime_schedules` and
|
||||
calls `IPrimeRunner.FireAsync`; manual runs arrive via `WorkerHub.RunDailyPrepNow`. The
|
||||
|
||||
Reference in New Issue
Block a user