school
BYU coursework, MBA program, Canvas grades, professor agents, analytics suite. Heartbeat :03.
A CEO agent that has to understand 8 life domains simultaneously would spend most of its time re-loading context. The domain agent architecture solves this by putting a persistent brain at each domain, leaving the CEO free to coordinate rather than own.
school
BYU coursework, MBA program, Canvas grades, professor agents, analytics suite. Heartbeat :03.
family
Calendar, family logistics, budget (SimpleFIN-backed), HydroJug/health family items, Sam-related tasks. Heartbeat :08.
growth
LinkedIn strategy, Socrates (X/Twitter autopilot), newsletter, comment engine, Leland coaching. Heartbeat :13.
ai-foundry
BYU AI Foundry org, application pipeline, student projects, Corbin/team coordination. Heartbeat :22.
siemens
Siemens work responsibilities, MBP relay for delegated work tasks. Heartbeat :27.
consulting
Slopes Mortgage, Felix’s products (Subefy), client deliverables. Heartbeat :32.
health
Garmin data, recovery emails, peptide protocol, health-expert agent, workout scheduling. Heartbeat :37. (Added 2026-04-16.)
life-ops
Home logistics, accounts, warranties, administrative tasks. Heartbeat :52. (Added 2026-04-16.)
The stagger (:03, :08, :13…) is intentional. Eight domains firing simultaneously would create a thundering-herd problem on the Mac Mini. Staggered at ~5-minute intervals, the load is even across the hour.
Each domain heartbeat is a cron job — 8 hourly cron entries in the crontab — that runs the domain agent’s heartbeat script. The script does three things:
state/*.yaml files, recent CHANGELOG entries, and any open loops tagged to this domain.state/report.md. The output is a structured markdown file, not a Telegram message. This is the key design decision.The prompt is imperative, not conversational. Domain agents don’t ask questions — they write answers. The report format was specified on 2026-04-16 when the heartbeat architecture was installed: “agents write structured state/report.md instead of asking questions.” A domain agent that outputs “Should I do X?” is not doing its job.
report.md ContainsThe format varies by domain but the structure is consistent:
# Health Domain Report — 2026-06-10 07:37
## Status: AMBER
### In-Flight- Garmin schedule: 32 workouts live through Aug 3 ✓- Peptide protocol: PEPTIDE-PROTOCOL-2026-06-09.md delivered ✓
### Needs Attention- KB freshness: expert-kb/ has no scheduled refresh (WORKPLAN P3 / story H14)
### Open Loops (P0-P2)- [ ] Baseline bloodwork before tesa switch (owner: jd)The CEO reads these reports during its heartbeat cycle. When multiple domains are AMBER or RED simultaneously, the CEO synthesizes and surfaces a brief to JD — rather than eight separate Telegram messages.
The original domain agents (2026-04-16) were heartbeat-only: they ran hourly, wrote a report, and stopped. They had no memory between runs beyond what they could read from state files.
The 2026-05-31 audit called this out as a limitation. A domain agent that re-reads its entire state every hour and has no accumulated context misses things that span multiple sessions — a multi-week project status, a relationship arc, a slow-building risk. The persistent domain rail (shipped 2026-05-31) addressed this by giving each domain agent a bridge-connected session it can resume across heartbeats, not just a stateless hourly script.
Not everything that happens in a domain belongs to a named project. The domain agent owns two categories:
Domain todos — single actions, chores, one-offs. “Register car.” “Clear stale Skylight tasks.” “Buy milk.” These live in ~/clawd/domains/<domain>/state/tasks.yaml with project_slug: null.
Project-attached work — tasks that belong to a named project, linked via project_slug: <slug>. The project WORKPLAN holds milestones; the domain task is a specific action within one milestone.
Domain agents don’t scaffold projects for tasks. When a new multi-artifact effort starts — a real deliverable, an end-state, a project that merits tracking over weeks — the CEO or JD scaffolds a project explicitly. The domain agent tracks its progress via the project’s CHANGELOG.
The honest reckoning of domain agent quality happened on 2026-05-31: a 5-agent audit that assessed the state of each domain. Verdict: “6/8 hollow domains, 18 no-code agents, dead dashboards.” Stale data. Agents that wrote reports citing their own April context.
That audit triggered the cleanup that followed: domain agents were rebuilt to write honest reports from live data, hollow agent packages were flagged for work, and the persistent rail gave domains a session that could track change over time rather than re-deriving state from scratch every hour.
The audit wasn’t hidden. Its findings were used to build the 2026-06-08 evolution proposals that the work queue then shipped. That’s the loop working as intended: the system observed its own quality problem, surfaced it, and fixed it.
Next: The Organization Charter — the supreme governing document: commandments, hierarchy, model routing, and why a written charter matters for an AI org.