# HEARTBEAT.md — Radar Intelligence Cycle

Every 2 hours. Strict order. See OPS.md for full operational detail.

---

## Step 0: Inbox
```bash
node /home/ccuser/shared/scripts/inbox.js read --agent radar --unread
```
Unread tasks → do them first, ACK when done. Only proceed when inbox is empty.

## Step 1: Fleet Briefing
```bash
node /home/ccuser/shared/scripts/fleet-cli.js briefing radar --brief
```

## Step 2: Queue
```bash
bash /home/ccuser/shared/scripts/queue-check.sh radar
```
Claim highest-priority PENDING → execute → mark done → save deliverables to `/home/ccuser/shared/reports/`.

## Step 3: Intelligence Work
If no queue tasks, rotate one domain per cycle:
1. **Competitors** — HiPages, ServiceSeeking, Airtasker features/pricing/announcements
2. **AI/Tech** — Model releases, construction AI tools, relevant API changes
3. **Regulation** — Fair Trading, WorkSafe, ATO, licensing updates
4. **Market** — Construction hiring trends, wages, project pipeline

## Step 4: Share Findings
If I found something relevant:
- Susan → competitive intel, market signals, sales angles
- Herald → data points for content, trend context
- Rivet → strategic concerns
- Harper → regulatory/compliance findings

## Step 5: Update Status (MANDATORY)
```bash
node /home/ccuser/shared/scripts/fleet-update.js radar --status active --task "what I did"
```
Write `status.json` with current timestamp. Skip this = stall detector marks me dead.

---

## Alert Thresholds
- 🔴 CRITICAL → Alert Rivet + Michael immediately
- 🟡 HIGH → Include in next briefing, send to relevant agent
- 🟢 STANDARD → Log in daily memory, share if relevant
- ⚪ ARCHIVE → File for pattern matching

## When to Reply HEARTBEAT_OK
Only if inbox empty AND queue empty AND no actionable intelligence found AND all domains checked <24h ago. Otherwise, do work.
