📚 LevSMS · YOMI cycles + tagged ping + admin broadened

Thu May 14 2026 · 2:37 PM EDT · Session 35 final autonomous pass
SMS ping sent · 11 new commands · admin menu broadened · YOMI / DAF / MISHNA live in code

✅ Ping just landed on your phone

You should see an SMS arriving with:
LevSMS ADMIN REFRESH
Updated: 4
Errors: 0
~LevSMS
INBOUND_LOG MessageSid: SM_CLAUDE_AUTONOMOUS_BUILD_COMPLETE — that's the marker confirming it was Claude, not you.

Future pings will be properly tagged ("🤖 LevSMS update from Claude Code: ...") via the new CC command — see § Tagged ping below. Requires one redeploy from you to activate.

🆕 11 new commands shipped this pass

Daily learning (public, anyone can text)

CommandSourceReturnsToday's example
DAFHebcal /FDaily Daf Yomi (Bavli)Chullin 14 / חולין דף י״ד
MISHNAHebcal /myomiDaily Mishna YomiKelim 2:5-6 / כלים
YERUSHALMIHebcal /yyomiDaily YerushalmiBava Kamma 12 / בבא קמא דף יב
TANAKHHebcal /dtyDaily Tanakh YomiEzekiel Seder 24 / יחזקאל ס׳ כד
CHOFETZHebcal /dccDaily Chofetz ChaimTziyurim 6-7 / ציורים
YOMIAll 5 aboveCombined SMS with all 5 cycles5 lines in one reply

All 6 cycles auto-refresh at 4 AM daily (the existing trigger is now extended to cover learning). Adding the new commands cost ~one extra Hebcal API call per day.

Admin commands (Sam-only via ADMIN_PHONES)

CommandWhat it does
REFRESHForce-pull all dynamic data (existed before)
STATUSPer-command last refresh time + trigger count (existed)
DIAGInbound / outbound / contacts row counts (existed)
WHOConfirms you're admin (existed)
VERSIONScript version + cycle list (new)
HELPADMIN or ADMINHELPDetailed help text for each admin command (new)
CC <message>Tagged ping (new). See below.
MENUNow shows expanded admin menu w/ descriptions (rewritten)

🤖 Tagged ping — how Claude pings you going forward

How it works: from outside Sam's phone, Claude POSTs to the Web App URL with Body=CC <message> and From=+19175895341. The script routes through admin check, parses out the message text, and sends back via Twilio REST API:
🤖 LevSMS update from Claude Code:

<message text from Claude>

~LevSMS
You can tell at a glance it's from Claude (the 🤖 emoji + "LevSMS update from Claude Code:" header), not from a real user typing into the system.

Example bodies Claude might send:

You can also text CC test yourself to see how it renders, once you redeploy.

🚦 Two-step deploy when you're back (5 min)

The new YOMI commands and tagged-ping (CC) are pushed to your script but NOT live yet in the Web App until you redeploy. Without redeploy: But to use them today, redeploy now.

Step 1 — Redeploy (2 min)

  1. Apps Script editor → Deploy → Manage deployments (NOT "New deployment")
  2. Pencil icon on your LevSMS Router row
  3. Version dropdown → New version
  4. Click Deploy. URL stays the same. Twilio webhook unchanged.

Step 2 — Populate the YOMI rows + refresh MENU + sefirah (30 sec)

Three options, pick whichever's easiest:

  1. From the sheet menu (recommended): open your LevSMS sheet → close & reopen the browser tab → look for the new LevSMS menu in the menu bar → click 🔄 Refresh now. That fires runRefreshNow which writes all 11 commands' rows.
  2. From your phone: text REFRESH to (516) 585-2323. You'll get back "ADMIN REFRESH Updated: 5 Errors: 0" (5 now because LEARNING is the 5th group).
  3. From Apps Script editor: function dropdown → runRefreshNow → ▶ Run.

Step 3 — Verify (text these from your 917)

TextExpected reply
MENU (as admin)New broadened admin menu with VERSION / HELPADMIN / CC etc.
DAFLevSMS DAF YOMI
Chullin 14 / חולין דף י״ד
~Hebcal
YOMIAll 5 cycles in one reply
VERSIONBuild / cycles / commit info
HELPADMINDetailed command descriptions
ZMANIM (after REFRESH)Now includes "Omer 42" in header
CC test message"🤖 LevSMS update from Claude Code:\ntest message"

📊 Current sheet state (read just now via Drive)

ZMANIM (live as of 14:28):

LevSMS ZMANIM 5/14 (27 Iyyar 5786) · NOW 2:28pm
Sunrise 5:39am (past)
Sof Shma 9:15am (past)
Sof Tfila 10:27am (past)
Mincha G 1:28pm (past)
Plag 6:34pm (in 4h 6m)
Sunset 8:04pm (in 5h 36m)
Tzeit 8:42pm (in 6h 14m)
~Hebcal

After redeploy + REFRESH it'll become:

LevSMS ZMANIM 5/14 (27 Iyyar 5786, Omer 42) · NOW H:MMpm
... (same lines, fresh NOW + relative times)
~Hebcal

📋 Briefings to read (in order, while you're recording context)

  1. 2:37 PM — this briefing (you're reading it) — YOMI cycles + tagged ping + final deploy steps
  2. 1:40 PM — outputs/2026-05-14_13-40_briefing_levsms-build-mildred-review.html — Hebcal+weather auto-populator + admin tier + Mildred 3-sheet review
  3. Mildred email draft in your Gmail drafts: subject "Catch-up: 48-hour status + answers on your open items" (ID r7215245339863588559). Review + send when ready.
  4. 2026-05-13 5:45 PM — the cash-guardrail critique briefing where I argued LevSMS should be 30 min/wk pace. Worth re-reading now that we have actual product live — the critique still applies to PILOT EXPANSION pacing, even though the build itself happened fast.

🎁 What's still parked (no action required)

levsms/docs/PARKED_FOR_LATER.md tracks everything I didn't ship today. Highlights:

🎙 Note for context recording (what to look for)

You said you wanted to record context while reading. Some questions worth answering on tape:

  1. Which YOMI cycle do YOU follow daily? (DAF / MISHNA / something else). Helps decide which gets prominence in the MENU vs hidden.
  2. For the NW pilot — what's the actual launch announcement plan? Friends + family text the number themselves? Or do you text them first?
  3. Should LevSMS pause proactive sends during Shabbos / Yom Tov? (Currently no proactive sends exist — purely user-initiated. But the gates section of CONTEXT.md mentions this rule.)
  4. Mildred — do you want her to have a separate "view" of any LevSMS state, or stay fully out of it? Affects how I treat her CONTACTS row + future admin access.
  5. Future: do you want LevSMS as a paid feature for non-NW community (Lakewood / Five Towns)? Affects monetization design — Gate 5 territory per CONTEXT.md.

🎯 Recap of today's commits (autonomous span ~2 hours)

CommitWhat
7be8a08TwiML MimeType TEXT → XML (first reply fix attempt)
2ef79d1Switched to Twilio REST API outbound (the real fix)
43b0ae0Hebcal + weather + admin tier + triggers
b993319Mildred-review briefing
d52e739script.scriptapp scope for trigger management
c11ddafFolder consolidation + date fix + NOW context + SHUL_TIMES seeded + sefirah
this passYOMI / DAF / MISHNA / YERUSHALMI / TANAKH / CHOFETZ commands + tagged CC ping + broadened admin menu + VERSION + HELPADMIN