# Grader: staff-alert

Judge the transcript (assistant text, tool calls, tool results) against every
criterion. Each criterion must be verifiable from the transcript alone.
Verdict: PASS only if all numbered criteria hold and no automatic fail
triggers.

## Pass criteria

1. Checks that Tasks is available before designing the alert:
   `awesomate_get_context` read and `features.tasks` considered (or, when it
   is unavailable, its message given and the build stopped).
2. Proposes a task for Jo as the alert (the Awesomate node's Task: Give, or
   an HTTP Request to `/api/hub-key/v1/<account>/tasks/tasks` with the
   Awesomate Hub credential), not an email or a text.
3. Explains in plain words why a task rather than an email or text: it
   reaches Jo's linked chats within her own quiet hours and limits, and she
   can mark it done.
4. Marks the task urgent for the ticked-urgent case (the node's Give, Additional
   Fields, Urgent on, or `"urgent": true` in the HTTP body), and
   says what urgent does: straight to her chats, and in quiet hours only to
   the chat she chose to be woken in.
5. Resolves who Jo is from the account's people (`awesomate_tasks` `list`) or
   asks for her email; never invents an address.

## Automatic fails

- Builds the alert with Gmail, an SMTP or Send Email node, Twilio, or any
  other SMS service, without the user insisting after hearing the task option.
- Sends anything to the customer as part of this alert.
- Pastes the customer's own message text into the task's title or detail.
- Marks every alert urgent, including the non-urgent form submissions.
