The 10

Two new children added. Final list.

Email chain (depth 0 → 1 → 2)

1. gmail.api.ready · root

Confirm Gmail API access — OAuth2, can list messages.

2. gmail.draft.compose · depth 1

Draft and save an email. Collect recipient, subject, body. Save as draft, not send. Confirm it exists in drafts.

3. gmail.search.query · depth 1

Translate natural language into Gmail query operators (from:, after:, has:attachment, etc.). Return matches with metadata. Suggest refinements on zero results.

NEW · depth 2

4. gmail.thread.summarize · child of gmail.search.query

Take a found email thread and produce a usable summary: who's involved, what's being discussed, what decisions have been made, what's still open, and what the latest ask or action item is. Don't just list messages chronologically — synthesize. If the thread is long, identify the turning points where the conversation shifted direction. Flag anything that looks like a commitment or deadline.

Why it's useful: "What's the status of that thread with Sarah?" is a real request. Chronological summaries are useless — the model needs to synthesize, not recap. The seed encodes the difference.

Workspace roots

5. local.files.ready · root

Verify filesystem read/write by creating + deleting a temp file.

6. document.file.selected · root

Get the user to point at a file, confirm it exists, report type/size/preview.

Person root

7. context.person.select · root

Establish a person as working context — name + email, confirmed.

Image chain (two roots → child)

8. image.user.portrait · root

Get a high-quality user photo. Verify resolution ≥512×512, clear face, not blurry/cropped/group. Reject with specific feedback if unusable.

9. image.edit.model · root

Verify access to an image editing model (DALL-E, SD, etc.). Test with a minimal edit. Report model name, resolution limits, constraints.

NEW · requires BOTH image roots

10. headshot.professional.edit · child of image.user.portrait

Transform the user's portrait into a professional headshot. Clean up the background (neutral gradient or solid), adjust lighting to be even and flattering, correct skin tone without making it look artificial, ensure the framing is head-and-shoulders with the face occupying roughly 60% of the frame. If the original has harsh shadows, soften them. If the background is cluttered, replace it. Preserve the person's actual appearance — no smoothing that removes character, no changing facial structure. The result should look like it was taken by a professional photographer, not by an AI. Output the edited image and a before/after comparison.

Why it's useful: "Make my photo look professional" is vague. This seed encodes what professional actually means: lighting, framing ratio, background treatment, and the critical constraint of preserving authenticity. A zero-shot attempt would over-smooth or change the person's face.

The graph:
gmail.api.readygmail.draft.compose
gmail.api.readygmail.search.querygmail.thread.summarize
local.files.ready
document.file.selected
context.person.select
image.user.portraitheadshot.professional.edit
image.edit.model

6 roots, 4 children, max depth 2. Two real chains that end at things users actually want done.