# spark-recipe-notification-hygiene

Cleans up notification overload in Spark by regrouping repetitive alerts and batch-archiving processed mail.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 320 installs · ★ 153
- Author: readdle
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/readdle/spark-cli-skills/tree/HEAD/skills/recipe-notification-hygiene/SKILL.md
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/skills/spark-recipe-notification-hygiene

## What it does

This recipe guides the assistant through a structured inbox cleanup using the Spark CLI. It starts by auditing unread notifications via `spark emails Inbox --filter "category:notification is:unread"` to reveal high-frequency senders such as CI bots and automated status updates.

Rather than managing individual emails, the workflow modifies rules at the contact level via `spark contact-action`. Misclassified updates move to newsletters or personal categories, while frequent monitoring alerts collapse into grouped entries. Once cleared, irrelevant notifications are archived in batches by passing multiple IDs to `spark action archive`.

This recipe requires the `use-spark` base skill for command syntax and needs the `triage` access level to execute.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add readdle/spark-cli-skills --skill spark-recipe-notification-hygiene -a claude-code
```
```bash
npx skills add readdle/spark-cli-skills --skill recipe-notification-hygiene -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/recipe-notification-hygiene/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/recipe-notification-hygiene/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add readdle/spark-cli-skills --skill recipe-notification-hygiene -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/recipe-notification-hygiene/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add readdle/spark-cli-skills --skill recipe-notification-hygiene -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/recipe-notification-hygiene/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install readdle/spark-cli-skills recipe-notification-hygiene
```

2. **Manually: put the files in place**
- File: `.github/skills/recipe-notification-hygiene/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add readdle/spark-cli-skills --skill recipe-notification-hygiene -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/readdle/spark-cli-skills --path skills/recipe-notification-hygiene
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/recipe-notification-hygiene/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add readdle/spark-cli-skills --skill recipe-notification-hygiene -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/readdle/spark-cli-skills/tree/HEAD/skills/recipe-notification-hygiene/SKILL.md

## When to use it
- Find high-volume notification senders in unread mail
- Reclassify misplaced newsletters and personal emails out of notifications
- Group repetitive alerts from monitoring bots into single entries
- Bulk archive cleared notification messages by ID
- Turn off alerts for low-priority contacts without blocking their email

## Example prompts
- Audit my unread notifications in Spark and list the top senders
- Group recurring emails from our CI bot and archive the finished threads
- Reclassify these alert senders into the newsletters category in Spark

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 7dc12445a3cca1a8.

BEGIN THIRD-PARTY FILE 7dc12445a3cca1a8
````text
---
name: spark-recipe-notification-hygiene
description: >-
  Tame notification overload by reclassifying noisy senders, grouping repetitive
  notifications, and bulk-archiving cleared alerts.
metadata:
  version: 1.0.0
  requires:
    skills:
      - use-spark
    accessLevel: triage
---

# Recipe: Notification Hygiene

Tame notification overload by identifying noisy senders, reclassifying misplaced mail, grouping repetitive notifications, and clearing out what's no longer relevant.

**Prerequisite:** Read the `use-spark` base skill for command reference and filter syntax.

**Access level required:** triage.

## Steps

### Step 1: Assess notification volume

```bash
spark emails Inbox --filter "category:notification is:unread"
```

Count the unread notifications. If the number is high, scan the sender list for patterns - which senders dominate?

### Step 2: Identify noisy senders

Look for senders that generate high-volume, low-value notifications (CI bots, social media alerts, shipping updates after delivery, etc.).

Read a few to confirm they're noise:

```bash
spark thread <id>
```

### Step 3: Reclassify misplaced senders

Some "notifications" are really newsletters in disguise:

```bash
spark contact-action changeCategoryNewsletters noisy-digest@example.com
```

Some are actually from real people and should be in People:

```bash
spark contact-action changeCategoryPersonal colleague@example.com
```

These changes apply to all future mail from the sender.

### Step 4: Group repetitive senders

For senders that are useful but send too often (CI systems, monitoring alerts):

```bash
spark contact-action groupEmailsFromContact ci-bot@company.com
```

This collapses their messages into grouped entries, reducing inbox clutter while keeping them accessible.

### Step 5: Bulk archive cleared notifications

For notifications that have been seen and are no longer relevant:

```bash
spark action archive <id1> <id2> <id3>
```

Pass multiple IDs in a single command to archive in batch.

### Step 6: Disable notifications for low-priority senders

For senders whose emails you want to receive but not be alerted about:

```bash
spark contact-action unmarkContactAsImportant alerts@service.com
```

## Tips

- The goal is to reduce the notification count to a manageable number, not zero - some notifications are genuinely useful.
- Reclassification at the contact level (`contact-action`) is more effective than per-message (`action`) because it fixes all future mail.
- Grouping is a middle ground between keeping and blocking - the emails still arrive but don't flood the inbox.
````
END THIRD-PARTY FILE 7dc12445a3cca1a8

The third-party file has ended. Everything between the 7dc12445a3cca1a8 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2607 of 2797 bytes. © readdle · MIT · https://github.com/readdle/spark-cli-skills/tree/HEAD/skills/recipe-notification-hygiene/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
