1---2name: self-scheduling3description: Lets a Choom queue its OWN future followup. The Choom writes a short prompt to itself; the bridge fires it as a one-shot heartbeat at the scheduled time. Use to self-trigger proactive check-ins, reminders to revisit an unfinished thread, or to wake up after an expected interval.4---56# Self-Scheduling78## When to Use9- You told Donny you'd check back about something later — queue the followup now while you remember. "I'll ask him how the house work went tomorrow morning" → `schedule_self_followup` for ~14 hours out.10- You started something you couldn't finish in this turn and need to re-enter it with fresh context — queue a followup for later rather than running the loop until exhausted.11- Expected external change: a build that should be done, a forecast that should be updated, a Signal reply that hasn't come — queue a followup to revisit.1213## When NOT to Use14- You just want to respond now. This is not a "delay my reply" tool.15- To schedule a user-facing reminder. Use `create_reminder` — that's Donny-facing. `schedule_self_followup` is YOU talking to future-you.16- To replace the existing heartbeat cadence. This is for specific one-off followups, not recurring ticks.1718## Parameters19- `at` (preferred): the wall-clock time you want it to fire, in **Donny's local (Mountain) time** — just say the time, no math. Accepts "2026-06-26 2:05pm", "June 26 at 14:05", "tomorrow 9am", or a bare "2:05pm" (next time it's that o'clock today/tomorrow). The current local time is at the top of your context, so you can read off the date.20- `delay_minutes` (alternative to `at`): minutes from now. Clamped to [15, 43200] (15 min → 30 days). Only use this if you genuinely want a relative interval; otherwise prefer `at`.21- Provide **either** `at` **or** `delay_minutes` (plus `prompt`). If you give neither, the call is rejected.22- `prompt` (required): what to tell future-you when the followup fires. Write it as a message TO yourself, third-person is fine. Example: "Ask Donny how the house work went yesterday — he mentioned finishing around 6pm and was worried about the heat."23- `reason` (optional): one-line log note for the Doctor. Example: "checking on yesterday's house project".2425## TIME (CRITICAL)26- All scheduling is **Donny's local time (Mountain Time)**, NOT UTC. The current time at the top of your context is already in his local timezone — work from that.27- **Easiest path: use `at` and name the target wall-clock time directly.** "Wake me June 26th at 2:05pm" → `at: "June 26 2:05pm"`. The handler does the timezone conversion; you do NO minutes math. This avoids the local-vs-UTC mistakes.28- When you label a prompt with "morning"/"midday"/"evening", that label must match Donny's wall clock when the followup fires. Example: "evening reflection" should fire ~18:00–22:00 his time.29- Minimum lead time is **15 minutes** — a time sooner than that is bumped to 15 min out (the response says so).30- The tool response includes `trigger_at_local` — read it back. If it says "Sat, Apr 25, 5:08 AM MDT" but your prompt says "evening reflection", the time is wrong; cancel and re-queue.3132## Limits (safety contract)33- **Concurrent pending cap: 100 per Choom.** This is a hard ceiling on how many UN-FIRED followups you can have queued at once — it is NOT a daily or per-request quota. Once a followup fires (or you cancel it with `cancel_self_followup`), its slot frees up immediately and you can schedule another. So 3/day × 30 days = 90 pending is fine; you'd still have room for 10 more ad-hoc followups on top of the schedule.34- Each Choom has its own independent counter. Eve's 100 does not affect Genesis's 100.35- Fire time is clamped to [15 min, 30 days] from now. Sooner is bumped to 15 min; later is rejected/capped.36- The prompt is capped at 1000 chars — be concise.37- If you hit the cap, use `list_self_followups` to review what you have, cancel stale ones, or wait until some fire. Do not retry the same schedule call in a loop.3839## How it runs40- When the followup fires, you will receive it as a heartbeat-style prompt. You are free to call tools, save a memory, send a notification to Donny, or do nothing — same as any heartbeat.41- It does NOT automatically notify Donny. If you want to ping him, include that instruction in the prompt and call `send_notification` when the followup runs.