agentleFS
OpenLaborOpenLabor/openlabor/skills/logo-maker/SKILL.md

logo-maker

Skill5 starsChanged 3 months agoMITView on GitHub

Generate professional logomarks and wordmarks using AI image generation

  • Reads credentials
  • Sends data out

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 12 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before generating anything, gather:

    line 38
  2. Distinctive:

    If the user hasn't provided these, ask.

    line 45
  3. Distinctive:

    Use Imagen 4.0 via Google AI for a different style.

    line 162
  4. Distinctive:

    Always generate from BOTH Replicate and Google, then present all options:

    line 200
  5. Distinctive:

    Use vague terms like "creative" or "unique"

    line 240
  6. Distinctive:

    Ask for too many elements in one mark

    line 241
  7. Distinctive:

    When comparing options, evaluate on:

    line 248
  8. Distinctive:

    Always lowercase, no spaces — use hyphens within segments, underscores between segments

    line 302
  9. Distinctive:

    When refining a concept, keep the same anglename and increment the variation

    line 304
  10. Distinctive:

    Always generate from both APIs — they have very different styles

    line 309
  11. Distinctive:

    If an API is down or rate-limited, continue with the other one

    line 313
  12. Distinctive:

    Prefer the Replicate JS SDK when running in a Node environment — simpler than polling curl

    line 315

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Logo Maker

Generate professional, minimal logomarks and wordmarks using Flux (via Replicate) and Imagen (via Google AI). Produces multiple concepts with variations, then helps refine the winner.

API Keys

Load from environment or .env file in the skill directory:

REPLICATE_API_TOKEN=...
GOOGLE_AI_API_KEY=...

When to Activate

  • User asks to create, design, or generate a logo
  • User describes a brand and needs visual identity
  • User wants logo variations or refinements

Workflow

Step 1: Understand the Brand

Before generating anything, gather:

  • Brand name (exact text for the wordmark)
  • What it does (one sentence)
  • Audience (B2B enterprise, consumer, developer, etc.)
  • Vibe (minimal, bold, playful, technical, premium, etc.)
  • Constraints (must work at 16x16 favicon, specific colors, etc.)

If the user hasn't provided these, ask. Keep it to 2-3 targeted questions max.

Step 2: Craft the Prompt

Logo generation requires very specific prompts. Follow this formula:

For logomarks (icon/symbol):

Minimal geometric logomark for "[Brand]" — [what it does]. Abstract symbol suggesting [2-3 concepts].
Single color on white background. Vector style, flat design, no gradients, no shadows, no text.
Clean lines, works at 16x16px. Professional, modern, [vibe].

For wordmarks (text-based):

Clean typographic logo for "[Brand]" in lowercase [or uppercase]. Modern sans-serif typeface
similar to [Inter/Geist/Helvetica]. [Weight] weight. Minimal, no icon, no decoration.
Black on white background. Professional, [vibe].

For combination marks (icon + text):

Minimal logo for "[Brand]" — [what it does]. Small geometric symbol to the left of the wordmark.
Symbol suggests [concept]. Wordmark in clean lowercase sans-serif. Single color on white background.
Vector style, flat design. Professional, modern.

Step 3: Generate with Replicate (Flux)

Models available:

  • black-forest-labs/flux-2-pro — highest quality Flux model, use for final deliverables
  • google/nano-banana-pro — Google Nano Banana Pro, strong alternative style

Option A: Using the Replicate JS SDK (recommended)

# Set API token
export REPLICATE_API_TOKEN=$REPLICATE_API_TOKEN
import { writeFile } from "fs/promises";
import Replicate from "replicate";
const replicate = new Replicate();

// Flux 2 Pro (highest quality)
const output = await replicate.run("black-forest-labs/flux-2-pro", {
  input: {
    prompt: "YOUR_PROMPT_HERE",
    aspect_ratio: "1:1",
    output_format: "png",
    safety_tolerance: 2
  }
});

console.log(output.url());
await writeFile(`${project}_${angleName}_v1_flux2pro.png`, output);
// Nano Banana Pro (alternative style)
const output = await replicate.run("google/nano-banana-pro", {
  input: {
    prompt: "YOUR_PROMPT_HERE",
    num_outputs: 4,
    aspect_ratio: "1:1",
    output_format: "png"
  }
});

for (let i = 0; i < output.length; i++) {
  console.log(output[i].url());
  await writeFile(`${project}_${angleName}_v${i + 1}_nano-banana.png`, output[i]);
}

Option B: Using curl

# Flux 2 Pro (highest quality)
curl -s -X POST "https://api.replicate.com/v1/models/black-forest-labs/flux-2-pro/predictions" \
  -H "Authorization: Token $REPLICATE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Prefer: wait" \
  -d '{
    "input": {
      "prompt": "YOUR_PROMPT_HERE",
      "aspect_ratio": "1:1",
      "output_format": "png",
      "safety_tolerance": 2
    }
  }'
# Nano Banana Pro (alternative style)
curl -s -X POST "https://api.replicate.com/v1/models/google/nano-banana-pro/predictions" \
  -H "Authorization: Token $REPLICATE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Prefer: wait" \
  -d '{
    "input": {
      "prompt": "YOUR_PROMPT_HERE",
      "num_outputs": 4,
      "aspect_ratio": "1:1",
      "output_format": "png"
    }
  }'

Download output images:

curl -sL "IMAGE_URL" -o {project}_{anglename}_v1_flux2pro.png

Step 4: Generate with Google Imagen 4 (alternative)

Use Imagen 4.0 via Google AI for a different style. Three tiers available:

  • imagen-4.0-fast-generate-001 — fastest, good for drafts
  • imagen-4.0-generate-001 — balanced quality/speed
  • imagen-4.0-ultra-generate-001 — highest quality, use for final deliverables
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/imagen-4.0-generate-001:predict?key=$GOOGLE_AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "instances": [{"prompt": "YOUR_PROMPT_HERE"}],
    "parameters": {
      "sampleCount": 4,
      "aspectRatio": "1:1"
    }
  }'

Response contains base64-encoded images in predictions[].bytesBase64Encoded. Save them:

echo "BASE64_DATA" | base64 -d > logo_google_1.png

For extracting and saving all images from the response:

python3 -c "
import json, base64, sys
data = json.load(sys.stdin)
for i, pred in enumerate(data.get('predictions', [])):
    img = base64.b64decode(pred['bytesBase64Encoded'])
    fname = f'{project}_{anglename}_v{i+1}_imagen4.png'
    with open(fname, 'wb') as f:
        f.write(img)
    print(f'Saved {fname}')
"

Step 5: Present and Compare

Always generate from BOTH Replicate and Google, then present all options:

## Logo Concepts for [Brand]

### Flux Generations
1. [image] — Description of what this conveys
2. [image] — Description
3. [image] — Description
4. [image] — Description

### Imagen Generations
1. [image] — Description
2. [image] — Description
3. [image] — Description
4. [image] — Description

### Recommendation
**Top pick:** #X — [why this works best for the brand]
**Runner up:** #Y — [what makes it strong]

Step 6: Refine

Once the user picks a direction, refine with:

  • More specific prompt — add details from the chosen concept
  • Variations — "similar to [concept] but with [adjustment]"
  • Color versions — generate in brand colors
  • Size tests — generate at different aspect ratios (1:1 for favicon, 16:9 for header)

Prompt Engineering Tips

DO:

  • Say "minimal", "geometric", "flat design", "vector style"
  • Specify "single color on white background"
  • Reference specific typefaces (Inter, Geist, Helvetica Neue)
  • Include "works at 16x16px" for favicons
  • Say "no gradients, no shadows, no 3D effects"

DON'T:

  • Use vague terms like "creative" or "unique"
  • Ask for too many elements in one mark
  • Include detailed scenes or illustrations
  • Request specific pantone colors (describe the color instead)
  • Say "logo" without specifying logomark vs wordmark vs combination

Logo Evaluation Criteria

When comparing options, evaluate on:

DimensionWeightWhat to look for
Simplicity25%Can you draw it from memory? Does it work at 16x16?
Distinctiveness20%Would you confuse it with another brand?
Relevance20%Does it suggest what the company does?
Versatility15%Works on dark/light, small/large, print/screen?
Timelessness10%Will it look dated in 3 years?
Memorability10%Would someone recognize it after seeing it once?

Examples

User: make a logo for Labor — an AI workforce platform
-> Generate 4 Flux + 4 Imagen concepts using:
   "Minimal geometric logomark for 'Labor'. Abstract symbol suggesting
   forward momentum and productive force. Single color on white background.
   Vector style, flat design, no gradients, no shadows, no text.
   Clean angles, works at 16x16px. Professional, modern, confident."

User: I like #3 but make it more angular
-> Refine prompt: add "sharp angles, no curves, angular geometry"
-> Generate 4 more variations

User: now make the full logo with the wordmark
-> Switch to combination mark prompt with the chosen symbol style

File Naming Convention

All generated images MUST follow this naming pattern:

{project}_{anglename}_{variation}_{model}.png
SegmentDescriptionExamples
projectBrand/project name, lowercaseopenlabor, acme
anglenameConcept angle/idea, lowercase with hyphenscircuit-tie, badge-smiley, briefcase-open, plaque-eotm
variationVariation numberv1, v2, v3
modelModel used for generationflux2pro, nano-banana, imagen4, imagen4-fast, imagen4-ultra

Examples:

openlabor_circuit-tie_v1_flux2pro.png
openlabor_circuit-tie_v2_nano-banana.png
openlabor_badge-smiley_v1_flux2pro.png
openlabor_briefcase-open_v1_imagen4.png
acme_wordmark-serif_v3_flux2pro.png

Rules:

  • Always lowercase, no spaces — use hyphens within segments, underscores between segments
  • Increment variation numbers per angle per model (v1, v2, v3...)
  • When refining a concept, keep the same anglename and increment the variation
  • Save all files to the project's designated output directory

Notes

  • Always generate from both APIs — they have very different styles
  • Flux is better at geometric/abstract marks
  • Imagen 4 is better at text rendering and typography
  • Save all generated images locally for the user
  • If an API is down or rate-limited, continue with the other one
  • For final deliverables, use Flux 2 Pro or Imagen 4 Ultra
  • Prefer the Replicate JS SDK when running in a Node environment — simpler than polling curl

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.