Operating Reference · Hook Street
Your Operating Loop — how it runs (and how to run it)
What this is: the one place that explains your self-firing daily loop after today's build — morning brief → your reply reshapes the day → the Pulse keeps the cadence all day.
Generated: Tuesday, May 26 2026 · 4:26 PM EDT (NY)
Session: 39 cont · Repo: zee78900/hookstreet-workspace · Code state: command-inbox @47 (Apps Script), HEAD be315bc
Sources: command-inbox/start-here.gs · docs/CHANNELS.md · docs/superpowers/specs/2026-05-26-cadence-pulse-design.md
The loop, in one line
Morning brief lands → you reply what you did / want → it reshapes your top-3 on the spot → the Pulse watches all day and pings you only when something moved. You drive it by talking to the Telegram bot.
The three engines (all live on the bot, deploy @47)
| Engine | Fires when | Does | Status |
Morning brief
morningBriefing_ | ~6:48 AM daily | Coffee-read brief: today's calendars + money due + open P0s + flagged email + one move. | built; auto-trigger to confirm |
Reply handler
revisedTopPlan_ | You reply and it changes the queue (done / add / defer) | Instantly texts back "📋 Your day now" — the reshaped top-3. Closes the review→reply→reshaped-day loop. | live ✓ |
Cadence Pulse
pulseDigest_ | Every 30 min — but only messages on real activity (~6+ turns) or after a few hours | Re-reads queue + the new conversation + all your calendars + flagged mail; catches loops you closed in chat; sends one updated plan; asks when unsure. | live ✓ (observe mode) |
The reply handler is the front half of the spine; the Pulse is the all-day back half. They don't compete — they're two halves of the same loop.
How to run it — day to day
It's just: talk to the Telegram bot.
- Morning: the brief arrives → reply (voice/text) what you did or want → it reshapes your day.
- All day: the Pulse pings you only when something actually moved. A quiet stretch = silence. Silent on Shabbos / Yom Tov.
- Anytime: ask "what's on my plate?" or capture with
ACTION ... / GROCERY ....
The one toggle — Pulse control by text (no editor)
| Text the bot | What it does |
PULSE | Run one pulse right now |
PULSE STATUS | Mode + is the auto-run on + last fire |
PULSE ACT | Go live — start closing safe loops (still asks before money / legal / HOA / insurance / family-kids) |
PULSE OFF | Back to watch-only (writes nothing) |
PULSE STOP | Turn the every-30-min auto-run off entirely |
Right now it's in observe — it shows what it would do but writes nothing. Text PULSE ACT when you want it to start closing loops for you.
Which channel does what
Telegram = pocket assistant + the morning/Pulse digests · this chat (Claude Code) = building/deciding · SMS = one-way "this needs you" alerts · Portal = reading briefs · business email = formal/people · personal email (ztreitel@) = personal/finance, Claude-readable, kept out of Mildred's view.
Full map: docs/CHANNELS.md
Safety — why it won't burn you
- Observe-first: writes nothing until you flip it to act.
- Asks, never guesses on money / legal / HOA / insurance / family + children. It only auto-closes safe, clearly-stated loops, and acts on your words — not the bot's own earlier churn.
- Won't spam: the check runs every 30 min but only messages on real activity. Silent on Shabbos / Yom Tov.
- Family/children mail is flagged sensitive and never surfaced to Mildred.
One open item
The reply handler + Pulse are verified live. The 6:48 AM auto-brief trigger wasn't verifiable remotely — if no brief lands ~7 AM tomorrow, that's the only piece to turn on (setupMorningBriefing in the editor). And we'll tune Pulse-vs-SMS so they don't double-notify the same thing once the Pulse is in act mode.