The 8

Everything else gets deleted. These are the foundation.

Email · depth 0 (root)

1. gmail.api.ready

What it does: Confirms Gmail OAuth2 access works by listing the 1 most recent message. If auth fails, stops and reports. The "is my Gmail hooked up?" check.

211 chars · 109 views · the most-used seed in the registry

Email · depth 1

2. gmail.inbox.scan

What it does: Lists the 20 most recent inbox messages with sender, subject, date, read/unread. Groups by today/yesterday/older. Reports total + unread counts. The "what's in my inbox?" snapshot.

191 chars · 85 views · parent: gmail.api.ready

Email · depth 2

3. gmail.inbox.triage

What it does: Categorizes unread messages using the Eisenhower matrix (urgent+important, important+not urgent, urgent+not important, neither). Each email gets a quadrant + a 1-line suggested action. This is the opinionated layer — it's not just listing, it's prioritizing.

230 chars · 16 views · parent: gmail.inbox.scan · the star chain example (3 deep)

Workspace · depth 0 (root)

4. local.files.ready

What it does: Verifies filesystem access by creating and deleting a temp file. If permission denied, stops. The "can I write to disk?" sanity check. Simple but foundational — many seeds need this.

177 chars · 132 views · most-viewed seed overall

Workspace · depth 0 (root)

5. document.file.selected

What it does: Asks the user which file to work with, confirms it exists and is readable, reports type/size/preview. If not found, lists available files. The "point me at a file" handshake.

242 chars · 63 views

Person · depth 0 (root)

6. context.person.select

What it does: Establishes a specific person as the working context. Gets name + email, confirms if already mentioned, holds them as active context. The "who are we talking about?" anchor.

402 chars · 0 views · exists but unused — good root for person-related chains

Image · depth 0 (root) · NEW

7. image.file.loaded (to create)

What it does: Takes an image path or URL, verifies it loads, reports dimensions, format, file size, color space, and whether it has transparency. Shows a small preview. The "I have an image and I know what it is" prerequisite.

~250 chars · NEW · foundational for any image processing chain

Image · depth 1 · NEW

8. image.palette.extract (to create)

What it does: Extracts the dominant color palette from a loaded image. Reports 5-8 colors as hex values with percentage coverage and perceptual names (e.g., "warm terracotta", not just "#B85C38"). Groups into primary, secondary, and accent. Useful for design work, brand analysis, or as input for colorization seeds later.

~350 chars · NEW · parent: image.file.loaded · non-trivial heuristics (perceptual naming, grouping)

Summary: 3 email (chain to depth 2), 2 workspace (roots), 1 person (root), 2 image (chain to depth 1). Total: 8 seeds, 4 roots, max depth 2. Delete the other 87.