[object Object]

← back to Rentv Sheet Enrich

SAFETY: fail-closed RENTV email kill switch (Steve directive 2026-08-15 — no rentv emails to anyone)

c57888aa40a1ad71a7d756c6225698a3a8e3d33d · 2026-08-15 08:24:03 -0700 · Steve Abrams

Files touched

Diff

commit c57888aa40a1ad71a7d756c6225698a3a8e3d33d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat Aug 15 08:24:03 2026 -0700

    SAFETY: fail-closed RENTV email kill switch (Steve directive 2026-08-15 — no rentv emails to anyone)
---
 data/cody_held.txt                |  1 +
 data/searched_names.txt           |  8 ++++++++
 outreach/SEND_BLOCKED             |  2 ++
 outreach/rentv_send_purelymail.py | 25 ++++++++++++++++++++++---
 4 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/data/cody_held.txt b/data/cody_held.txt
new file mode 100644
index 0000000..2619e21
--- /dev/null
+++ b/data/cody_held.txt
@@ -0,0 +1 @@
+John Mastin @ Latitude 33 Development -> /in/john-mastin-83376114 (Cody: common name, needs external corroboration)
diff --git a/data/searched_names.txt b/data/searched_names.txt
index 96ed5f3..a1556b9 100644
--- a/data/searched_names.txt
+++ b/data/searched_names.txt
@@ -200,3 +200,11 @@ Jason Larian
 Jay Nugent
 Jay Ramos
 Jenilee Miller
+Jermey Berger
+Jerry Roberts
+Jim McGill
+Joe Vale
+Joey Hamilton
+John Bacon
+John Devereaux
+John Mastin
diff --git a/outreach/SEND_BLOCKED b/outreach/SEND_BLOCKED
new file mode 100644
index 0000000..16f92d6
--- /dev/null
+++ b/outreach/SEND_BLOCKED
@@ -0,0 +1,2 @@
+RENTV EMAIL SEND BLOCKED by Steve directive 2026-08-15: "do not allow any rentv emails to be sent to anyone."
+Remove this file to re-enable. Owner: rentv-bloom / TK-10579.
diff --git a/outreach/rentv_send_purelymail.py b/outreach/rentv_send_purelymail.py
index 4da884c..ab32cbc 100644
--- a/outreach/rentv_send_purelymail.py
+++ b/outreach/rentv_send_purelymail.py
@@ -37,6 +37,17 @@ def arg(name, default=None):
 
 FROM = arg("--from")
 SEND = ("--send" in sys.argv) and ("--i-am-steve" in sys.argv)
+# ── HARD KILL SWITCH (Steve directive 2026-08-15: "do not allow any rentv emails to be
+# sent to anyone"). Fail-closed: while ANY block sentinel exists, ALL real sends are
+# refused — even with --send --i-am-steve. Remove the sentinel files to re-enable.
+_BLOCKS = [os.path.join(HERE, "SEND_BLOCKED"),
+           os.path.expanduser("~/.claude/rentv-EMAIL-SEND-BLOCK")]
+_BLOCKED = next((p for p in _BLOCKS if os.path.exists(p)), None)
+if _BLOCKED and SEND:
+    print(f"\n⛔ SEND BLOCKED by kill switch: {_BLOCKED}\n"
+          "   RENTV email sending is disabled by Steve's standing directive (2026-08-15).\n"
+          "   Forcing DRY-RUN. Delete the sentinel file(s) to re-enable sending.")
+    SEND = False
 PER_DAY = int(arg("--per-day", 40))
 PASS_ENV = os.environ.get("SMTP_PASS_ENV")  # name of the env var holding the mailbox password
 
@@ -44,9 +55,17 @@ FOOTER = ("\n\n—\nSteven Bloom · Founder & CEO, RENTV\n"
           "5757 W. Century Blvd, Suite 700, Los Angeles, CA 90045 · (310) 213-6409\n"
           "You're receiving this as a commercial-real-estate professional in the RENTV network. "
           "If you'd prefer I not email you, just reply STOP and I won't follow up.")
-SUBJECT = "[DRAFT — replace me] Quick note from RENTV"
-BODY = ("Hi {first},\n\n[DRAFT PLACEHOLDER — not the real message. Define the purpose "
-        "(RENTV platform intro / event invite / sublease-desk / newsletter), then personalize.]\n\nBest,\nSteven")
+# Variant A — honest RENTV network/coverage intro (Steve chose 2026-08-15). No unverifiable claims.
+SUBJECT = "{first}, RENTV covers your market — quick intro"
+BODY = ("Hi {first},\n\n"
+        "I'm Steven Bloom, founder of RENTV — we cover commercial real estate news, deals, and the "
+        "people moving the market. {company} keeps coming up in the deals and coverage we track, so I "
+        "wanted to introduce myself directly.\n\n"
+        "If you've got a closing, a listing, a hire, or a market take worth putting in front of a "
+        "commercial-real-estate audience, we're an easy, no-cost way to get it seen. And if you'd just "
+        "like to be on our radar for coverage, reply and I'll make sure you are.\n\n"
+        "Worth a quick look? Happy to send our latest issue or set up 10 minutes.\n\n"
+        "Best,\nSteven")
 
 def load_verified():
     with open(READY) as f:

← af2fa34 auto-data-snapshot: 2026-08-15T08:12:28 (1 data files) — dat  ·  back to Rentv Sheet Enrich  ·  Add coverage/quality report for completed RENTV CRE dataset 0216cda →