Hands-off goals
The user starts or ends a goal through the exported server actions.
Only the standing @ultimate conversation uses the goal tool.
The root document stores one open goal and its decisions.
Three failed tries block a criterion. Rewording preserves unchanged criteria.
Decisions can name screenshots from the caller's conversation.
The latest reference never crosses an input boundary.
Each input to @ultimate receives the current open goal note.
A queued start card grants nothing after the user ends the goal.
The start wakes @ultimate. The report uses a passive write.
The optional automations service creates one keyed reminder every 30 minutes.
A durable task synchronizes its state after each lifecycle change.
A replay adopts the existing reminder. A user-deleted reminder stays deleted.
Pause disables the reminder. Resume enables it. End deletes it.
A reminder input adds the reminder checklist to the goal note.
World automations identify a fire with the [automation <id> fired] prefix.
The goal hook recognizes that prefix and the structured automations.fired entry.
Side chats and browser components are outside this server port.