Skip to content

Health Layer

OCTO runs silently. Arms reach, surfaces appear, actions complete. The health layer is the ambient signal that OCTO is alive, arms are reporting, and nothing is silently failing.

Three things. Always visible. Never intrusive.

1. OCTO is running          →  not crashed, not hung
2. Arms are healthy         →  each source reachable and reporting
3. Daily history at a glance →  how did today go, any failures

Signal Vocabulary

Per Arm

SignalMeaning
🟢 HealthyResponded within expected time, data returned
🟡 DegradedSlow response, empty result, or partial data
🔴 FailedError, timeout, or connection refused
⚪ SkippedNot scheduled for this run
🔵 RunningCurrently executing

Overall OCTO

SignalMeaning
● RunningProcess alive, arms reporting
○ IdleBetween scheduled runs, all healthy
⚠ AttentionOne or more arms degraded
✕ ErrorRun failed — check log

Layer 1 — Windows Tray Icon

Lightest possible surface. Lives in the bottom-right corner. Color signals health. Click for detail. Zero screen real estate.

🟢  All arms healthy — last run successful
🟡  One arm slow or returned empty
🔴  Arm failed — needs attention
⚪  OCTO not running

Right-click tray menu:

OCTO  ●  Running
─────────────────────────────
Last run: today 08:47  ✓
─────────────────────────────
View morning brief
View arm health
Run now
─────────────────────────────
Settings
Exit

This is what a non-technical user sees. They're not monitoring infrastructure. They just need to know it worked. Green means good. Start the day.


Layer 2 — Health Panel

A small floating window. Minimizes to tray. Shows arm status live. Double-click the tray icon to show or hide.

┌─────────────────────────────────────┐
│  OCTO  ●  Running          08:47   │
├─────────────────────────────────────┤
│                                     │
│  Arms                    Status     │
│  ─────────────────────────────────  │
│  outlook.inbox           🟢  47ms  │
│  outlook.calendar        🟢  23ms  │
│  teams.planner           🟡  slow  │
│  git.commits             🟢  12ms  │
│                                     │
│  Last run    08:47  ✓  success     │
│  Next run    17:00  scheduled      │
│                                     │
│  Today       3 runs  0 failures    │
│                                     │
│  [Run now]  [View brief]  [─]  [×] │
└─────────────────────────────────────┘

Layer 3 — Daily Report

End of day summary. Appears at 5pm or on request. Full picture of how OCTO performed today.

┌──────────────────────────────────────────┐
│  OCTO Daily Report — Tuesday June 17    │
├──────────────────────────────────────────┤
│                                          │
│  Runs today          4                  │
│  Successful          4                  │
│  Failed              0                  │
│  Actions taken       7                  │
│                                          │
│  Arms performance                        │
│  outlook.inbox    ████████████  healthy │
│  outlook.calendar ████████████  healthy │
│  teams.planner    ████████░░░░  slow ×2 │
│  git.commits      ████████████  healthy │
│                                          │
│  Actions completed today                 │
│  ✓  Confirmation emails sent    3       │
│  ✓  Waitlist slot filled        1       │
│  ✓  Morning brief delivered     1       │
│                                          │
│  Arm issue detected                      │
│  teams.planner responded slowly twice   │
│  Suggestion: check Teams connectivity   │
│                                          │
│  [Dismiss]  [Save report]  [Send to me] │
└──────────────────────────────────────────┘

Layer 4 — Weekly Summary Email

Every Monday morning. Practice owner's inbox. The value proof. The retention mechanism.

Subject: OCTO Weekly Summary — week of June 15

OCTO ran reliably this week.

  Runs completed     28 of 28
  Actions taken      94
  Time saved est.    ~8 hours

  Confirmations sent        34  (3 cancellations caught early)
  Reminders delivered       28
  Waitlist slots filled      4

  One arm was slow Tuesday afternoon — Teams Planner.
  Resolved itself by Wednesday. No action needed.

  Next week: 67 appointments scheduled.
  OCTO will brief your team at 8:45 each morning.

That email is why they never cancel. Every Monday they see the value in concrete numbers. Hours saved. Actions taken. Problems caught early.


Anomaly Detection

The health layer doesn't alert on every hiccup. It surfaces patterns worth attention.

Alert immediately:
  Arm failed 2+ consecutive runs      →  tray icon red, notification
  OCTO process not running at schedule →  "OCTO didn't run" notification
  Critical arm down (inbox, calendar)  →  immediate tray notification

Surface in daily report:
  Arm slow 2+ times today             →  flagged with suggestion
  Run took 2× longer than usual       →  noted, no alarm
  Empty result where data expected    →  flagged for review

Surface in weekly summary:
  Arm degraded 3+ times this week    →  trend flagged to owner
  Actions count dropped vs last week  →  noted
  New pattern detected                →  "Mondays are busiest"

State Files — What Health Reads

The health monitor reads state written by OCTO runs. Never writes to it — clean separation.

json
{
  "lastUpdated": "2026-06-17T08:47:23Z",
  "overallHealth": "healthy",
  "lastRunSuccess": true,
  "lastRunAt": "2026-06-17T08:47:00Z",
  "nextRunAt": "2026-06-17T17:00:00Z",
  "todayRuns": 3,
  "todayFailures": 0,
  "arms": [
    {
      "name": "outlook.inbox",
      "status": "healthy",
      "responseMs": 47,
      "lastResult": "47 items scanned"
    },
    {
      "name": "teams.planner",
      "status": "degraded",
      "responseMs": 4200,
      "lastResult": "partial — 3 of 8 boards loaded",
      "note": "slow response — Teams connectivity may be degraded"
    }
  ]
}

Plain JSON. Human readable. Git trackable.


Run History

Every OCTO run writes a .reach-artifact to C:\reach\history\. The health monitor reads the folder to build the daily report and weekly summary.

C:\reach\history\
  2026-06-17-0847-morning-brief.reach-artifact
  2026-06-17-1200-midday-check.reach-artifact
  2026-06-17-1700-daily-report.reach-artifact

Each artifact contains: run timestamp, arms that ran, results, actions taken, errors or degraded states, the surface that was shown.


Who Sees What

End user (non-technical)   →  Tray icon — green means good
                              Morning brief surface at 8:45
                              Daily report at 5pm if something was slow

Practice owner             →  Weekly summary email every Monday
                              Concrete numbers: time saved, actions taken

Configurator               →  Full arm logs if something needs fixing
                              state.json and history folder — full picture

Design Constraints

✓  Tray icon always visible — ambient, not intrusive
✓  Health panel opens on demand — never forced
✓  Daily report appears once — dismissed in one click
✓  Weekly email is the proof of value
✓  All state in flat files — no database to maintain
✓  Near-zero CPU when idle — lightweight background process
✗  No always-on monitoring agent — no continuous token burn
✗  No cloud dashboard — everything local, everything private
✗  No app to update — files don't have versions