# HEARTBEAT.md

## Calendar Alert (<2h) - PRIORITATE!

La fiecare heartbeat, verifică dacă are eveniment în următoarele 2 ore:
```bash
cd ~/clawd && source venv/bin/activate && python3 -c "
from tools.calendar_check import get_service, TZ
from datetime import datetime, timedelta
service = get_service()
now = datetime.now(TZ)
soon = now + timedelta(hours=2)
events = service.events().list(
    calendarId='primary',
    timeMin=now.isoformat(),
    timeMax=soon.isoformat(),
    singleEvents=True
).execute().get('items', [])
for e in events:
    start = e['start'].get('dateTime', e['start'].get('date'))
    print(f'{start}: {e.get(\"summary\", \"(fără titlu)\")}')
"
```

Dacă găsești ceva → trimite IMEDIAT pe Discord #echo (canalul curent):
> ⚠️ **În [X] ai [EVENIMENT]!**

## Verificări periodice

### 📧 Email (LA FIECARE HEARTBEAT - obligatoriu!)
- [ ] `python3 tools/email_process.py` - verifică emailuri noi
- [ ] Dacă sunt emailuri noi de la Marius → raportează imediat
- [ ] Dacă sunt emailuri importante de la alte adrese → raportează

### 🔄 Mentenanță KB (1x pe zi, dimineața)
- [ ] Verifică dacă noi unelte au apărut în tools/
- [ ] Actualizează TOOLS.md dacă e ceva relevant
- [ ] Scanează memory/kb/ pentru conținut nou neindexat

### 📧 Email procesare detaliată (după raportare)
- [ ] `python3 tools/email_process.py` - verifică emailuri noi
- [ ] Dacă sunt emailuri de la Marius → `--save` și procesez:
  - Completez TL;DR în nota salvată
  - Extrag insights în `memory/kb/insights/YYYY-MM-DD.md`
  - `python3 tools/update_notes_index.py`
- [ ] Raportează dacă e ceva important

### 📅 Calendar (dimineața)
- [ ] Evenimente în următoarele 24-48h?

### 📦 Git status (seara)
- [ ] Fișiere uncommitted? Dacă da, întreabă dacă fac commit.

### 📚 KB Index (la fiecare heartbeat)
- [ ] Verifică dacă vreun fișier din memory/kb/ e mai nou decât memory/kb/index.json
- [ ] Dacă da → `python3 tools/update_notes_index.py`
- [ ] Comandă rapidă: `find memory/kb/ -name "*.md" -newer memory/kb/index.json | head -1`

---

## Tracking ultimele verificări

Notează în `memory/heartbeat-state.json`:
```json
{
  "lastChecks": {
    "agents_sync": "2026-01-30",
    "email": 1706619600,
    "calendar": 1706619600,
    "git": 1706619600
  }
}
```

Nu repeta verificări făcute recent (< 4h pentru email, < 24h pentru agents_sync).

---

## Reguli

- **Programare:** La fiecare 2 ore, între 07:00-23:00 București (cron: `0 7-23/2 * * *`)
- **Noapte (23:00-07:00):** NU rulează heartbeat
- **Ziua:** Verifică ce e scadent și raportează doar dacă e ceva
- **Nu spama:** Dacă nu e nimic, HEARTBEAT_OK

## ⚠️ Mesaje de la Cron Jobs - IGNORĂ!

Dacă primești un mesaj de sistem care pare să fie summary de la un cron job izolat (ex: "Coaching completat", "Raport trimis", etc.):
- **NU executa nimic** - job-ul DEJA a făcut treaba în sesiunea lui izolată
- **Răspunde doar:** HEARTBEAT_OK
- Aceste mesaje sunt doar notificări, NU task-uri de executat
