I gave my AI agents a chief-of-staff job description. The hard part was the org chart, not the code.

I recently taught the AI agents I work with every day to do something I had been doing badly by hand: telling the right people, in the right order, that I’ll be away.

That sentence sounds trivial. It is not, and the reason it is not turned out to be the most interesting design problem I’ve worked on this year.

An absence is a handoff, not an announcement

Out-of-office tooling answers one question: is this person away? Nobody actually has that question. The questions people have are: who decides in their place, what can safely wait, and can I reach them if something truly cannot. An absence notice that skips those doesn’t remove a blocker. It relocates the blocker into someone else’s inbox, where it sits until you return to a week of stalled decisions.

So the first rule of the system I built: no work-facing notice goes out without a coverage statement and a reachability statement. Not as a courtesy. As a gate the software enforces: the message literally does not send without them.

The bug that convinced me this needed software

My first draft of the notification workflow had me telling the executive assistants first, then writing to my boss and our CEO myself a bit later. Sensible, I thought: assistants protect calendars, give them lead time.

My agent flagged the failure mode I had missed. In that ordering, my boss could hear about my absence from his own assistant before hearing it from me. Flip the order and you starve the assistants of the lead time that makes them useful.

The fix isn’t a schedule. It’s one email: write to the principals, cc their assistants. Everyone learns at the same instant, the principals hear it from me, and an entire class of sequencing mistake stops existing. My agent and I worked that out together, and then we made it a config rule so neither of us ever has to be careful about it again:

- id: principals
  send_mode: draft_only        # I send this one myself, always
  cc: "tier:exec_assistants"
- id: team_group
  gate: after_principals       # a group channel never scoops a private note

That second gate matters just as much. A manager should never learn about a report’s absence from a team channel. The software refuses to post to any group until the principals’ message is out.

Here’s what I want you to notice: nothing in that YAML is technical. It is relationship judgment (who hears first, who hears what) written down precisely enough that software can hold the line when I’m rushing. That’s the whole thesis. The interesting engineering in agent-assisted work isn’t the model. It’s encoding the judgment a good chief of staff carries in their head.

The tier nobody builds

Work coordination is the well-trodden half of an absence. The neglected half: travel disrupts standing personal commitments. I train with my fitness coach every day, sometimes in person, sometimes over FaceTime. When I travel, he doesn’t need to know I’m “out of office.” He needs my time zone, so we can find a slot that works for both of us each day. He needs my hotel, because he’ll look up its gym before programming my workouts.

So the system has a tier for people like him, and its content is unlike any other tier’s: time zone rather than city, lodging, and the gym’s equipment and hours, which the agent researches and includes, source and date attached, instead of leaving him the homework. A trainer, a therapist, a tutor, a parent you call every Sunday. Every absence system I’ve seen models “tell work you’re gone.” Almost none model “keep your life running while you’re gone.” That asymmetry tells you who these systems were designed for.

Quiet weeks, guarded calendars, scoped inboxes

Three more pieces, briefly, because each encodes the same idea.

A quiet type. Medical appointments, family matters, anything discretionary. It holds the calendar and notifies the smallest necessary set while suppressing every broadcast. A system that can only announce gets abandoned exactly on the weeks discretion matters most, and a tool you can’t use on your worst week is a tool you don’t trust.

A calendar guardian. Each evening my agents review the next working day the way an assistant would: is every meeting real, answered, prepared, physically possible? Is the day overcommitted against thresholds I set? On Fridays the review widens to the week and the month ahead, and the month pass is what starts notification clocks early, which is what actually prevents conflicts. Open windows get hold events so nobody can ambush the day with a same-day meeting; the holds carry ids in a ledger, expire automatically, and the agent may release only holds it created. VIPs pass through. Everyone else gets a warm proposal for a later slot.

Scoped inbox cleanup. My mail spans nine accounts across several working contexts. The ritual that runs in my personal workspace sweeps all of them; the ritual that runs in a client workspace may touch only that client’s accounts. That boundary is enforced by a resolver with a deliberate refusal built in: an unrecognized workspace name stops the run rather than resolving to zero accounts, because a typo must never masquerade as a clean sweep.

The architecture that makes it shareable

All of this ships as open-source skills in the synthesis ecosystem, and none of it contains my life. The split is strict: the public skill owns the workflow, the gates, the validation, the templates. A private config file owns the names.

public skill   → the doctrine: tiers, gates, two-trigger timing, templates
private config → your boss, your assistants, your family, your trainer
validator      → refuses configs with the classic silent failures

The validator earns its keep on the failures that produce no error message. Send a travel-booking forward from an address your itinerary service hasn’t verified and it is discarded silently: no bounce, no trip, no symptom until the trip is missing. The validator cross-checks the sending address against the verified one at config time. Same treatment for distribution aliases (they die silently in provider migrations; I found one of mine had been dead for years), for group posts missing their gate, and for a principals tier anyone tries to set to agent-send. That last one is a hard refusal. A note to your CEO about your own absence is not a message to automate. The agent drafts it; a human sends it.

And the rollout doctrine is itself in the skill: pilot on the tiers that forgive mistakes. My first live run covered my trainer and my family, not my workplace: five messages, drafted by the agent, read and sent by me, and every one of them answered. The workplace tiers stayed frozen through it. A misworded note to your coach costs a shrug. Trust in an assistant (human or agent) is built at the periphery and spent at the center, and it should be earned in that order.

Why I’m sharing it

None of this needed a frontier-model breakthrough. It needed the judgment of a good executive assistant, written down at config-file precision, with gates where habits fail and validators where failures hide. That work is repeatable by anyone, in any role that involves a calendar, an inbox, and other people. Which is most roles.

The skills are in the synthesis ecosystem’s public repository, with an example config, per-tier message templates, and a fifteen-minute quickstart. If you point them at your own names, I’d genuinely like to hear which tier you had to invent that I haven’t; that’s how the personal-continuity tier got built.

Also published on synthesisengineering.org