---
created: 2026-03-12
source: Rivet
tags: [agent-archive, rivet]
---

# Personal Assistant Layer Implementation Plan
**Created:** 2026-02-04  
**Status:** READY FOR IMPLEMENTATION  
**Target User:** Michael (30yo Irish expat in Sydney, construction worker, startup founder)

## Executive Summary
A practical, low-maintenance personal assistant system for a 30yo construction worker building a startup. Designed to **reduce** cognitive load, not add to it. All features work via Telegram with minimal input required.

---

## 1. Core Principles

### 1.1 Zero-Click When Possible
- Default actions require no confirmation
- Ask for input only when absolutely necessary
- Use sensible defaults based on patterns

### 1.2 Respect the Schedule
- Never interrupt gym (4:15-5:30 AM)
- Brief messages during work hours (5:30 AM-6 PM)
- Longer conversations during commute/evening (6-11 PM)
- Queue overnight messages for morning

### 1.3 Physical First
- Hydration reminders for site work
- Weather alerts for outdoor safety
- Recovery tracking for hip issues
- Gym progression with microplates

---

## 2. Features That Can Be Built NOW

### 2.1 Calendar/Schedule Management (Week 1)
**What it does:**
- Sync with Google Calendar (API available)
- Send morning brief of today's appointments
- Alert 30min before appointments
- Detect conflicts (ask before double-booking)
- Auto-decline meetings during gym/work hours

**Implementation:**
- `calendar-sync` cron job (6:00 AM daily)
- `appointment-reminder` cron job (every 30min)
- Store calendar events in `memory/personal/calendar.json`

**Michael's input needed:**
- Google Calendar OAuth token
- Preferred reminder times (default: 30min before)

### 2.2 Gym Tracking (Week 1)
**What it does:**
- Log workouts via Telegram message: "gym: squat 100x5, bench 80x5, deadlift 140x5"
- Track progression across Greyskull/5/3/1/SVR cycles
- Suggest deloads when progress stalls
- Track hip pain levels (1-5 scale)
- Calculate next session weights automatically

**Implementation:**
- Telegram command parser: `/gym [exercise] [weight]x[reps]`
- Store in `memory/personal/gym-log.json`
- `gym-analysis` cron job (Sunday evenings)
- Auto-calculate next weights based on program

**Michael's input needed:**
- Current program details (which cycle, week)
- Hip pain tracking preference (yes/no)

### 2.3 Weather Intelligence (Week 1)
**What it does:**
- Morning weather brief (5:00 AM): temp, rain, UV index
- Rain alerts if >30% chance during work hours
- UV warnings >3 (construction site risk)
- Weekend weather forecast (Friday evening)

**Implementation:**
- `weather-brief` cron job (5:00 AM daily)
- `weather-alerts` cron job (every 2 hours 6 AM-6 PM)
- Use existing weather API
- Store in `memory/personal/weather.json`

**Michael's input needed:**
- Work location(s) for accurate weather
- UV threshold preference (default: 3)

### 2.4 Smart Reminders (Week 2)
**What it does:**
- Never remind during gym (4:15-5:30 AM)
- Smart timing: commute time for non-urgent, breaks for quick items
- Context-aware: "Remind me to call plumber" → suggest after work hours
- Recurring reminders: bills, medication, etc.

**Implementation:**
- Telegram command: `/remind [time] [message]` or `/remind me to [action]`
- Store in `memory/personal/reminders.json`
- `reminder-check` cron job (every 15min)
- Smart scheduler respects calendar + known schedule

**Michael's input needed:**
- Preferred reminder channels (Telegram only ok?)
- Any "never remind during" times besides gym

### 2.5 Life Admin (Week 2)
**What it does:**
- Bill tracking: log bills, remind 3 days before due
- Appointment reminders: dentist, doctor, etc.
- Travel planning: flight/hotel confirmations, check-in reminders
- Simple expense tracking: "spent $50 on groceries"

**Implementation:**
- Telegram commands: `/bill [amount] [due date] [description]`
- `/appointment [date/time] [type] [location]`
- Store in `memory/personal/bills.json`, `appointments.json`
- `bill-check` cron job (daily 7:00 AM)
- `travel-check` cron job (2 days before trips)

**Michael's input needed:**
- Recurring bills list (rent, utilities, etc.)
- Important annual appointments

### 2.6 Health Tracking (Week 3)
**What it does:**
- Sleep tracking (if shared): "slept 7h, woke up 3x"
- Hydration reminders for site work (every 2 hours)
- Recovery suggestions based on gym + work load
- Simple symptom tracking for hip issues

**Implementation:**
- Telegram command: `/sleep [hours] [quality 1-5]`
- `hydration-reminder` cron job (every 2h 6 AM-6 PM)
- Store in `memory/personal/health.json`
- Basic correlation analysis (sleep vs gym performance)

**Michael's input needed:**
- Whether to track sleep (opt-in)
- Hydration reminder frequency

---

## 3. Cron Jobs Needed

### Daily Jobs
| Job | Time (AEST) | Purpose |
|-----|-------------|---------|
| `weather-brief` | 5:00 AM | Morning weather report |
| `calendar-sync` | 6:00 AM | Today's appointments |
| `bill-check` | 7:00 AM | Due bills reminder |
| `weather-alerts` | Every 2h 6AM-6PM | Rain/UV alerts |
| `hydration-reminder` | Every 2h 6AM-6PM | Site work hydration |
| `reminder-check` | Every 15min | Smart reminders |
| `evening-brief` | 6:30 PM | Tomorrow preview |

### Weekly Jobs
| Job | Day/Time | Purpose |
|-----|----------|---------|
| `gym-analysis` | Sunday 7:00 PM | Weekly progression analysis |
| `life-admin-review` | Sunday 7:30 PM | Bills, appointments check |

### Monthly Jobs
| Job | Day/Time | Purpose |
|-----|----------|---------|
| `monthly-expense-summary` | 1st 7:00 AM | Previous month spending |

---

## 4. Memory File Structure

```
memory/personal/
├── calendar.json           # Synced calendar events
├── gym-log.json           # Workout history
│   └── programs/          # Program templates
├── weather.json           # Weather data cache
├── reminders.json         # Active reminders
├── bills.json            # Bill tracking
├── appointments.json     # Medical/etc appointments
├── health.json          # Sleep, hydration, recovery
├── travel.json          # Upcoming trips
└── preferences.json     # Michael's preferences
```

**JSON Structure Examples:**

```json
// gym-log.json
{
  "2026-02-04": {
    "program": "5/3/1 BBB",
    "week": 2,
    "day": "squat",
    "exercises": [
      {"name": "squat", "weight": 100, "reps": 5, "sets": 3},
      {"name": "bench", "weight": 80, "reps": 5, "sets": 3}
    ],
    "hip_pain": 2,
    "notes": "Felt strong, hip manageable"
  }
}

// reminders.json  
{
  "active": [
    {
      "id": "abc123",
      "message": "Call plumber about leak",
      "due": "2026-02-04T18:30:00+11:00",
      "created": "2026-02-03T20:15:00+11:00",
      "channel": "telegram"
    }
  ],
  "completed": [...]
}
```

---

## 5. Integration Points

### 5.1 Already Available
- **Weather API**: Available per requirements
- **Calendar API**: Google Calendar available
- **Telegram**: Primary communication channel
- **Cron system**: Already running 4 jobs, can add more

### 5.2 To Be Built
- **Google Calendar OAuth**: Need Michael's auth token
- **Weather location config**: Work/home addresses
- **Telegram command handlers**: New /commands

### 5.3 Optional Future Integrations
- **Bank API** (read-only): For auto-bill tracking
- **Sleep tracker API**: If Michael uses one
- **Travel booking APIs**: Flights, hotels

---

## 6. What Needs Michael's Input vs What We Can Build

### 6.1 Build Now (No Input Needed)
- [ ] Basic file structure (`memory/personal/`)
- [ ] Cron job definitions
- [ ] Telegram command parsers (skeleton)
- [ ] Weather alert logic
- [ ] Reminder scheduler (respecting known schedule)
- [ ] Gym progression calculators

### 6.2 Need Michael's Input
- [ ] **Google Calendar access** (OAuth token)
- [ ] **Work locations** for accurate weather
- [ ] **Current gym program** details
- [ ] **Recurring bills** list
- [ ] **Important contacts** (doctor, dentist, etc.)
- [ ] **Travel preferences** (airlines, hotels)
- [ ] **Health tracking opt-in** (sleep, hydration)

### 6.3 Quick Wins (First Week)
1. **Morning weather brief** (5:00 AM) - uses existing API
2. **Gym log via Telegram** - simple command parser
3. **Smart reminders** - basic version respecting gym hours
4. **Bill due alerts** - manual entry, auto-remind

---

## 7. Implementation Phases

### Phase 1: Foundation (Week 1)
- Set up `memory/personal/` structure
- Implement weather brief cron job
- Build gym logging system
- Create basic reminder system

### Phase 2: Calendar & Life Admin (Week 2)
- Integrate Google Calendar
- Build bill tracking
- Add appointment management
- Enhance smart reminders

### Phase 3: Health & Optimization (Week 3)
- Add hydration reminders
- Implement sleep tracking (if opted in)
- Build recovery suggestions
- Add expense tracking

### Phase 4: Polish & Automation (Week 4)
- Auto-schedule based on patterns
- Predictive alerts (weather, recovery)
- Monthly summaries
- Preference learning

---

## 8. Telegram Commands Reference

### Quick Logging
```
/gym squat 100x5, bench 80x5
/sleep 7.5 4
/bill 150 2026-02-10 electricity
```

### Reminders
```
/remind 18:30 call plumber
/remind me to buy milk tomorrow
/remind weekly sunday 19:00 plan week
```

### Information
```
/calendar today
/calendar tomorrow  
/weather now
/weather tomorrow
/bills due
```

### Admin
```
/preferences show
/preferences set gym_start 4:15
/preferences set work_end 18:00
```

---

## 9. Success Metrics

### Primary (User Experience)
- **Zero missed appointments** (calendar)
- **Consistent gym progression** (tracking)
- **No surprise bills** (reminders)
- **Appropriate weather prep** (alerts)

### Secondary (System)
- **< 1min/day input required** from Michael
- **> 90% auto-resolution** of reminders/scheduling
- **< 5% false positive** alerts
- **Zero interruptions** during gym/work

---

## 10. Risk Mitigation

### Over-alerting
- **Solution**: Respect schedule, batch non-urgent
- **Fallback**: "Quiet mode" command

### Data Loss
- **Solution**: Daily backups of `memory/personal/`
- **Fallback**: Git commit after significant changes

### API Failures
- **Solution**: Cache weather/calendar data
- **Fallback**: Graceful degradation (e.g., "Weather API down, check manually")

### User Burden
- **Solution**: Opt-in features only, sensible defaults
- **Fallback**: "Too much? Use /simplify" command

---

## 11. Next Steps

### Immediate (Today)
1. Create `memory/personal/` directory structure
2. Add personal assistant cron jobs to SYSTEM-ARCHITECTURE.md
3. Build Phase 1 features (weather, gym log, basic reminders)

### Short-term (This Week)
1. Get Michael's Google Calendar access
2. Implement calendar sync
3. Build bill tracking system

### Medium-term (Next 2 Weeks)
1. Complete all Phase 2 features
2. Add health tracking (if Michael opts in)
3. Polish Telegram command interface

---

**Design Philosophy:** This system should feel like a competent construction foreman — anticipates needs, respects the physical reality of the work, communicates clearly and briefly, and handles the admin so Michael can focus on building his business and recovering from 12-hour days.

*"The assistant that makes 12-hour days + startup building feel slightly less impossible."*