task icon Task

Create Custom Emoji

Generate a custom emoji with style customization from a text description

Requirements
What to create an emoji of (subject, expression, details). Optional: style overrides (platform, art_style, palette).
4

Check if emoji_generation preferences exist in stateDomain Preferences.
If they exist, note the saved defaults: platform, art_style, palette.
If not, use sensible defaults: apple platform, soft_gradient art style, standard palette.

If the user specified style overrides in their request (like "pixel art style" or
"pastel colors"), merge those with the defaults—overrides take precedence.

Acknowledge the style being used: "Creating [subject] emoji in [platform] style
with [art_style] rendering and [palette] colors..."

5

Analyze the user's subject request. A good emoji subject should specify:

  • WHAT it is (face, animal, object, symbol, food, etc.)
  • EXPRESSION for faces (happy, sad, thinking, winking, etc.)
  • POSE or ACTION if relevant (waving, sleeping, dancing)
  • KEY DETAILS that make it unique (hat, glasses, accessories)

If the subject is too vague (just "cat" or "heart"), ask for clarification:
"What kind of [subject]? Should it be happy, sleepy, surprised? Any special details?"

Once you have a clear subject, proceed to construct the prompt.

6

Construct the generation prompt following the pattern in sliceEmoji Style System:

"[Platform prompt language] emoji of [detailed subject with expression/pose/details].
[Art style prompt language]. [Palette prompt language]. Single emoji character,
centered composition on transparent background, designed for messaging apps,
high detail, clean edges."

Use the exact prompt language from the style tables for each dimension.
Include all the details the user specified about their subject.

8

Show the user where their emoji was saved. Display the file path.

Offer next steps:

  • "Want to create another emoji? Just describe what you need."
  • "Not quite right? I can regenerate with adjustments."
  • "Want to try a different style? Tell me what to change."

If they want to adjust the overall style defaults for future emojis,
suggest running the setup task.

                    To run this task you must have the following required information:

> What to create an emoji of (subject, expression, details). Optional: style overrides (platform, art_style, palette).

If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.

---

You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple CONSECUTIVE read steps in a row, read them all at once (in parallel). Otherwise, do not read a file until you reach that step.

Add all steps to your todo list now and begin executing.

## Steps

1. [Run Code: Verify Gemini Connection]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/media.gemini.verify/preview,
    "args": [

    ]
  },
  "packages": null
}
```

2. [Read Domain Preferences]: Discover relevant information in the user's filesystem at `documents/preferences/[domain].md`. (Load saved emoji style preferences (domain: emoji_generation))

3. [Read Emoji Style System]: Read the documentation in: `skills/sauna/[skill_id]/references/media.emoji.styles.md` (Load style system for prompt construction)

4. Check if emoji_generation preferences exist in `documents/preferences/[domain].md`.
If they exist, note the saved defaults: platform, art_style, palette.
If not, use sensible defaults: apple platform, soft_gradient art style, standard palette.

If the user specified style overrides in their request (like "pixel art style" or
"pastel colors"), merge those with the defaults—overrides take precedence.

Acknowledge the style being used: "Creating [subject] emoji in [platform] style
with [art_style] rendering and [palette] colors..."


5. Analyze the user's subject request. A good emoji subject should specify:
- WHAT it is (face, animal, object, symbol, food, etc.)
- EXPRESSION for faces (happy, sad, thinking, winking, etc.)
- POSE or ACTION if relevant (waving, sleeping, dancing)
- KEY DETAILS that make it unique (hat, glasses, accessories)

If the subject is too vague (just "cat" or "heart"), ask for clarification:
"What kind of [subject]? Should it be happy, sleepy, surprised? Any special details?"

Once you have a clear subject, proceed to construct the prompt.


6. Construct the generation prompt following the pattern in `skills/sauna/[skill_id]/references/media.emoji.styles.md`:

"[Platform prompt language] emoji of [detailed subject with expression/pose/details].
[Art style prompt language]. [Palette prompt language]. Single emoji character,
centered composition on transparent background, designed for messaging apps,
high detail, clean edges."

Use the exact prompt language from the style tables for each dimension.
Include all the details the user specified about their subject.


7. [Gather Arguments: Generate or Edit Image] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `prompt`: the complete constructed emoji prompt
- `imagePath`: empty string—no source image for generation
- `outputDir`: state:media.images.generated (category: emoji)

8. [Run Code: Generate or Edit Image]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/media.image.generate/preview,
    "args": [
      "prompt",
      "imagePath",
      "outputDir"
    ]
  },
  "packages": null
}
```

9. Show the user where their emoji was saved. Display the file path.

Offer next steps:
- "Want to create another emoji? Just describe what you need."
- "Not quite right? I can regenerate with adjustments."
- "Want to try a different style? Tell me what to change."

If they want to adjust the overall style defaults for future emojis,
suggest running the setup task.