[object Object]

← back to Norma Platform

daily-cadence: posting-hours guard (Mon-Sat 08:00-20:00) + draft launchd plist for durable cadence

f700cdd07152bc3dd5b18daf92e050829104268b · 2026-08-11 13:06:03 -0700 · Steve Abrams

Files touched

Diff

commit f700cdd07152bc3dd5b18daf92e050829104268b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue Aug 11 13:06:03 2026 -0700

    daily-cadence: posting-hours guard (Mon-Sat 08:00-20:00) + draft launchd plist for durable cadence
---
 agents/instagram-agent/daily-cadence.js            |  5 +++++
 .../deploy/com.steve.dw-ig-cadence.plist           | 24 ++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/agents/instagram-agent/daily-cadence.js b/agents/instagram-agent/daily-cadence.js
index e90d090..754f15c 100644
--- a/agents/instagram-agent/daily-cadence.js
+++ b/agents/instagram-agent/daily-cadence.js
@@ -64,6 +64,11 @@ async function findProduct(keyword) {
 
 (async () => {
   if (isRestDay) { console.log('REST DAY (Sunday) — no posting today.'); return; }
+  const hour = now.getHours();
+  if (!flag('force') && !flag('dry') && !flag('status') && (hour < 8 || hour >= 20)) {
+    console.log(`Outside posting hours (${hour}:00; window 08:00–20:00). Skipping. Use --force to override.`);
+    return;
+  }
 
   const eligible = HANDLES.filter((h) => !themeFor(h).skip);
   const remaining = eligible.filter((h) => !postedToday.has(h));
diff --git a/agents/instagram-agent/deploy/com.steve.dw-ig-cadence.plist b/agents/instagram-agent/deploy/com.steve.dw-ig-cadence.plist
new file mode 100644
index 0000000..d6ad3ce
--- /dev/null
+++ b/agents/instagram-agent/deploy/com.steve.dw-ig-cadence.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- DRAFT — NOT installed. Durable "1 post/day per account, 6 days/week" cadence.
+     Runs daily-cadence.js every 35 min; the driver self-limits to Mon–Sat, 08:00–20:00,
+     never double-posts an account/day (ledger-derived), and stops on a velocity tripwire.
+     Install (Steve): cp this to ~/Library/LaunchAgents/ && launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.steve.dw-ig-cadence.plist -->
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>Label</key><string>com.steve.dw-ig-cadence</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>/opt/homebrew/bin/node</string>
+    <string>/Users/macstudio3/Projects/Norma/agents/instagram-agent/daily-cadence.js</string>
+    <string>--batch</string><string>4</string>
+  </array>
+  <key>WorkingDirectory</key><string>/Users/macstudio3/Projects/Norma/agents/instagram-agent</string>
+  <key>EnvironmentVariables</key>
+  <dict><key>PATH</key><string>/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string></dict>
+  <key>StartInterval</key><integer>2100</integer>
+  <key>StandardOutPath</key><string>/Users/macstudio3/Projects/Norma/agents/instagram-agent/data/cadence.log</string>
+  <key>StandardErrorPath</key><string>/Users/macstudio3/Projects/Norma/agents/instagram-agent/data/cadence.log</string>
+  <key>RunAtLoad</key><false/>
+</dict>
+</plist>

← 1ec2435 daily-cadence: velocity tripwire (stop batch on 'restricted'  ·  back to Norma Platform  ·  auto-data-snapshot: 2026-08-11T13:21:01 (1 data files) — age 40f3825 →