#!/bin/bash
# Heartbeat Task Scanner — outputs actionable tasks for the heartbeat agent
# Returns open TODO items that can be done autonomously (no Michael needed)

TODO="/home/ccuser/rateright-growth/rivet/TODO.md"
INBOX="/home/ccuser/rateright-growth/rivet/TODO-INBOX.md"
TRACKER="/home/ccuser/rateright-growth/rivet/memory/spawn-tracker.json"

echo "=== INBOX ==="
INBOX_ITEMS=$(grep -c '^\- \[ \]' "$INBOX" 2>/dev/null || echo 0)
echo "Pending inbox items: $INBOX_ITEMS"

echo "=== TODO ==="
OPEN=$(grep -c '^\- \[ \]' "$TODO" 2>/dev/null || echo 0)
IN_PROGRESS=$(grep -c '⏳' "$TODO" 2>/dev/null || echo 0)
echo "Open tasks: $OPEN"
echo "In progress: $IN_PROGRESS"

echo "=== SPAWNS TODAY ==="
TODAY=$(date +%Y-%m-%d)
SPAWNS_TODAY=$(jq -r ".spawnsToday // 0" "$TRACKER" 2>/dev/null || echo 0)
TRACKER_DATE=$(jq -r ".today // \"\"" "$TRACKER" 2>/dev/null || echo "")
if [ "$TRACKER_DATE" != "$TODAY" ]; then
    SPAWNS_TODAY=0
fi
echo "Spawns today: $SPAWNS_TODAY / 100"

echo "=== ACTIONABLE TASKS (autonomous, no Michael needed) ==="
# Filter out tasks that need Michael (deploy, external comms, money, approval)
grep '^\- \[ \]' "$TODO" 2>/dev/null | grep -viE "deploy|external|SMS campaign|vercel|michael|approval|send.*email|post.*linkedin|stripe.*setup" | head -5

echo "=== INSTRUCTION ==="
if [ "$OPEN" -gt 0 ]; then
    echo "MUST_SPAWN: You have $OPEN open tasks. Pick the top actionable one above and spawn a Kimi sub-agent to do it. Use label auto-executor. Do NOT return HEARTBEAT_OK without spawning."
else
    echo "NO_TASKS: All clear. HEARTBEAT_OK is acceptable."
fi
