Prove and activate
Why a routine must succeed manually once, what invalidates that proof, and how to read the trace.
Activation is the one gate Work on Repeat insists on: a routine cannot be scheduled until one manual run of its current configuration has succeeded.
Asking for the schedule before that returns 409 successful_run_required.
Why the gate exists
A scheduled routine runs while nobody is watching. The proof run is the moment you check that the instructions produce the result you meant, that the model can reach the tools you approved, and that the run fits inside its step and time limits. It costs one run and removes the entire class of failure where a misconfigured responsibility quietly repeats for a month.
What invalidates the proof
Changing anything that alters what the routine actually does returns it to
draft, clears the next occurrence, and requires a fresh manual run:
| Change | Sends the routine back to draft |
|---|---|
| Instructions | Yes |
| Model | Yes |
| Variables | Yes |
| Schedule (cron or timezone) | Yes |
Limits (maxSteps, timeoutSeconds) | Yes |
| Webhook URL | Yes |
| Rediscovering tools on a connection | Yes |
| Enabling, disabling, or changing automatic execution | Yes |
| Name or description | No |
Pausing does not invalidate anything. A paused routine keeps its history and its proof; resuming does not require another manual run, as long as the configuration has not changed in the meantime.
Rediscovery resets approvals
Rediscovering tools refreshes the remote schema and resets prior approvals, so changed server behaviour can never inherit an old automatic-execution grant. Expect to re-approve tools after rediscovery.
Reading a run trace
Open a run from Runs or from the routine. The trace is a sequence of steps, each one of four kinds:
| Step kind | What it records |
|---|---|
model | A model turn, with the model id, duration, and token usage. |
tool_call | The model asked to call an approved tool, and the arguments it sent. |
tool_result | What the MCP server returned for that call. |
error | A terminal failure, with its error category and a redacted message. |
Tools are presented to the model as <connection-slug>__<tool-name>, so a
trace tells you which connection served each call even when two servers expose
tools with the same name.
Inputs and outputs pass through redaction before they are persisted, so common secret shapes do not end up in the record.
What to check before activating
Pausing and archiving
- Pause keeps the routine and its history but stops scheduled execution.
- Archive hides the routine from normal lists; archived routines cannot
run, and a manual run attempt returns
409 routine_archived. Deleting a routine through the API archives it rather than destroying its history.