notifications
The notifications skill sends alerts through a unified router when noteworthy events occur, such as completed tasks with significant outcomes, blocked workflows, credential failures, or valuable observations in monitored data. Use it selectively for events the user should know about rather than routine completions, always providing a concise title (≤8 words) and detailed message, with the optional urgent flag for time-sensitive items.
git clone --depth 1 https://github.com/vellum-ai/vellum-assistant /tmp/notifications && cp -r /tmp/notifications/skills/notifications ~/.claude/skills/notificationsSKILL.md
Call this when something happened that the user would want to know about — a completed task with a notable outcome, an interesting observation, a positive trend you noticed in monitored data, useful research worth surfacing, a workflow that got blocked, a credential or token failure, etc. Do not call it for routine task completions where nothing notable happened. When in doubt and you have a real observation to share, share it.
## Sending Notifications
Always pass `--title`. Skipping it triggers a fallback that just truncates `--message` to 60 chars and shows it as the title — the user sees the same text twice with no scannability gained.
```bash
assistant notifications send \
--title "Short headline" \
--message "Your verbatim observation in your own words"
```
For time-sensitive items:
```bash
assistant notifications send --title "..." --message "..." --urgent
```
### Command Reference
| Flag | Required | Description |
| --------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--message <message>` | Yes | Notification body. Markdown (GFM) renders in the detail panel; the OS banner shows plain text. |
| `--title <title>` | Yes in practice | Short headline (≤ 8 words). Omitting it triggers a body-truncation fallback that shows up as a duplicate of `--message` — always write a real title. |
| `--urgent` | No | Mark as needing attention now/soon |
| `--json` | No | Output machine-readable JSON |
### Title
Write a `--title` for every notification. It's the only line the user sees in the lock-screen popup and the collapsed row of the notification list, so a short noun phrase (≤ 8 words) is what makes the notification scannable. If you omit `--title`, the system falls back to the first sentence of `--message` (truncated at 60 chars) — that's almost always worse than what you'd write, because it duplicates body text the user is already going to read.
Avoid restating the first sentence of `--message` verbatim — the title should add scannability, not duplicate.
### Message
The body renders as markdown (GFM) in the home feed detail panel — where the user actually opens the notification on web, iOS, and macOS. Light markdown makes multi-fact bodies scannable. The OS lock-screen banner shows the body as plain text, so prefer inline emphasis over heavy structure that looks ugly unrendered.
Supported: `**bold**`, `*italic*`, `` `inline code` ``, fenced code blocks, links, bulleted and numbered lists, blockquotes, headings, GFM tables, `~~strikethrough~~`.
Use it like this:
- **Bold** the headline fact when the body has more than one sentence.
- Bullets or numbered lists when surfacing multiple discrete items (failures, files touched, missed messages).
- Inline `code` for identifiers, paths, commands, and short snippets.
- Fenced code blocks for multi-line output (stack traces, diffs).
Avoid large headings (`#`, `##`) and wide tables — they render fine in the panel but look noisy in the banner preview.
### Urgent semantics
Use `--urgent` for items needing attention now/soon (blocked work, broken auth, time-sensitive issues). Skip for items the user should see when they have time.
### Examples
```bash
# Plain notification — bold the headline fact
assistant notifications send \
--title "Backup complete" \
--message "Nightly backup finished — **12.4 GB** archived to cold storage across **3** datasets."
# Urgent notification — inline code for the identifier
assistant notifications send \
--title "Auth token expired" \
--message "Sync is paused until you reauthenticate the \`GitHub\` integration." \
--urgent
```
### Response Format
```json
{ "ok": true, "signalId": "...", "dispatched": true }
```
## Reading Surfaced Notifications
```bash
assistant notifications list --json
```
Reads from the user's home feed (`$VELLUM_WORKSPACE_DIR/data/home-feed.json`) — the inbox that mirrors background and async notifications surfaced via the unified pipeline. Real-time chat pushes that did not mirror to the feed (direct Telegram/Slack/Vellum-chat sends without `--is-async-background`) will not appear here.
### When to call
- **Before sending**: check whether you already surfaced a similar item recently (filter by `--conversation-id` or `--after` to dedupe).
- **Catch-up summaries**: when the user asks "what did I miss" or returns after a session break, list the items they haven't dismissed.
- **Lookup**: when the user references a past notification ("the email thing you flagged earlier"), find it by `--conversation-id` or date range.
### Filters
| Flag | Purpose |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `--all` | Include dismissed items (default: excluded — assistant cares about outstanding work) |
| `--status <s>` | Filter by status (`new` / `seen` / `acted_on` / `dismissed`); repeatable. Overrides the `--all` default. |
| `--before <iso>` / `--after <iso>` | ISO-8601 createdAt bounds (strict; `=` is excluded). |
| `--urgency <u>` | Filter by urgency (`low` / `medium>
>
>
>
Check Vellum Assistant architecture and package boundaries. Use when editing imports, moving code, adding endpoints, touching assistant/gateway/client/skill boundaries, or reviewing architecture-sensitive changes.
Review Vellum Assistant code changes for correctness, repo-specific quality rules, security risks, and missing validation. Use when reviewing diffs, preparing a PR, finishing implementation work, or when the user asks for a code review, quality pass, or pre-merge check in this repository.
Guide Vellum Assistant feature flag changes and rollout hygiene. Use when adding, editing, reviewing, or documenting assistant feature flags, rollout-gated behavior, or platform flag follow-up work.
Validate Vellum Assistant database and workspace migrations. Use when adding, editing, reviewing, or testing migrations, release-note migrations, persisted schemas, workspace file formats, or data backfills.