From seam
Use when the user wants to create, set up, manage, list, view, or delete scheduled alerts on their Seam data. Triggers on: "set up an alert", "create an alert", "show my alerts", "list my alerts", "delete alert", "remove alert", "what alerts do I have", "manage my alerts", "alert me when", "notify me when".
How this skill is triggered — by the user, by Claude, or both
Slash command
/seam:alertsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill manages scheduled remote alert agents. Each alert is:
This skill manages scheduled remote alert agents. Each alert is:
alerts/active/<slug>.jsonSee references/alert-types.md for available alert templates and their inputs.
Read the user's intent:
Step 1: Present alert types
Show the user the four available alert types from references/alert-types.md:
Ask which type they want.
Step 2: Pre-fill owner email
Call get_user_details to get the current user's email.
Use it as the default value for owner_email — confirm with the user before using it.
Step 3: Collect remaining inputs
Ask for each required input for the chosen alert type (see references/alert-types.md).
Ask for:
channel: "#channel-name" for Slack, or "[email protected]" for emailschedule: accept plain English ("every weekday at 9am") and convert to cronCron conversion guide:
0 9 * * 1-50 9 * * 10 8 * * *0 9 * * 1,40 9 1,15 * *Step 4: Generate slug and write config Create a slug: lowercase the alert name, replace spaces with hyphens, remove special characters. Example: "Intent spike — maxwell" → "intent-spike-maxwell"
Write alerts/active/<slug>.json:
{
"name": "<descriptive name including the user's name or identifier>",
"workflow": "<alert type name, e.g. intent-spike>",
"schedule": "<cron expression>",
"routine_id": "",
"inputs": {
"owner_email": "<value>",
"<other inputs>": "<values>"
},
"created_at": "<ISO 8601 UTC timestamp>"
}
Step 5: Schedule the remote agent
Invoke /schedule to create a recurring remote agent with:
alerts/active/<slug>.json. Then load and execute the workflow at workflows/<workflow>.workflow.md, substituting all {{variable}} placeholders with the values from the config's inputs object. Use the Seam MCP tools to query data. Deliver results to the channel specified in the inputs."Step 6: Save routine_id
After /schedule returns the routine ID, update alerts/active/<slug>.json to set routine_id to the returned value.
Step 7: Confirm to user Tell the user:
Step 1: Read all *.json files in alerts/active/
Step 2: If none found, tell the user they have no active alerts and suggest: "Try: 'Set up an intent spike alert'"
Step 3: Render a table:
| Name | Type | Schedule | Channel | Created |
|---|---|---|---|---|
| <created_at date> |
Convert cron to human-readable for display (e.g. 0 9 * * 1-5 → "Weekdays at 9am").
Step 1: If the user named a specific alert:
Find the config file in alerts/active/ matching by name or slug.
If no match, list active alerts and ask which to delete.
If the user did not name a specific alert: List active alerts and ask which to delete.
Step 2: Read the matching config file to get routine_id.
Step 3: Cancel the scheduled routine.
Read routine_id from the config. If it is empty string or missing, skip cancellation and tell the user: "No scheduled routine was found for this alert — the alert config will be deleted but there is nothing to cancel."
Otherwise, cancel the routine using the routine_id via the schedule management tools.
Step 4: Delete alerts/active/<slug>.json.
Step 5: Confirm: "Alert '' has been deleted and its scheduled run cancelled."
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub signal-data/seam-plugin --plugin seam