{% extends "base.html" %} {% block title %}Routines{% endblock %} {% block content %}

Routines

Small jobs that run every morning after the daily sync: a morning brief, or one AI draft per quiet thread. Drafts wait on Home; nothing is ever sent. How routines work.

{% if problems %}
routines.toml has problems. Routines with problems do not run. Paste these to your agent:
{% endif %} {% if ai_problem %}
Routines that draft will not run. {{ ai_problem }}.
{% endif %} {% if not present %}

No routines yet. Ask your agent for one, for example: "Every morning, for people I messaged on LinkedIn 7 days ago without a reply, draft a short follow-up. Never send anything." It writes routines.toml; the routine starts paused so you can preview it first.

{% else %}
{% for row in rows %}{% set r = row.routine %} {% else %} {% endfor %}
routinestatedoeslast run
{{ r.title if r else row.name }} {% if r %}{{ r.state }}{% else %}has a problem{% endif %} {% if r %}{{ 'morning brief, no AI' if r.action == 'brief' else r.select | replace('_', ' ') ~ ', AI drafts' }}{% endif %} {{ row.last_run }}
routines.toml lists no routines.
{% endif %} {% if waiting %}

{{ waiting }} draft{{ 's' if waiting != 1 }} waiting on Home.

{% endif %} {% endblock %}