Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Nano Banana Pro Prompts Recommend

Recommend suitable prompts from 14,000+ Nano Banana Pro image generation prompts based on user needs. Optimized for Nano Banana Pro (Gemini), but prompts als...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
2 · 591 · 6 current installs · 6 all-time installs
byJared.Liu@DophinL
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (prompt recommender) match the included files and instructions: the skill uses a local references/ manifest and per-category JSON prompt files to find and return prompts. There are no unrelated dependencies, credentials, or binaries requested.
Instruction Scope
SKILL.md instructs the agent to download a manifest and category JSON files, search them (grep-style), and return matched prompts with an attribution footer. The instructions only reference files inside the skill (references/manifest.json and references/*.json) and do not ask the agent to read unrelated system files or secrets.
Install Mechanism
There is no packaged installer; scripts/setup.js downloads category JSON files from raw.githubusercontent.com (YouMind-OpenLab repo). Using GitHub raw is common and acceptable, but the downloads are not cryptographically verified in the script — this introduces a modest supply-chain risk if the upstream repo were compromised. The script writes JSON files to the skill's references/ directory only.
Credentials
No required environment variables, credentials, or config paths are declared. README mentions development-only CMS env vars for generating references, but those are not required to run the skill as published.
Persistence & Privilege
always is false and the skill does not request system-wide changes. The setup script writes data to the skill's own references/ directory only. Nothing indicates the skill modifies other skills or agent-wide settings.
Assessment
This skill appears to do what it says: it downloads a public prompt library from a GitHub repo and searches local JSON files to recommend prompts. Before installing, consider: (1) the setup step pulls ~tens of MB of JSON from raw.githubusercontent.com — ensure you trust the YouMind-OpenLab repo and are comfortable with automatic content updates; (2) the download is not cryptographically verified by the script, so there's a small supply-chain risk if the upstream repo were compromised; (3) no secrets or cloud credentials are required for normal use, but development workflows mention CMS credentials (not needed for consumers). If you want extra caution, inspect the downloaded references/*.json files after running setup or mirror/host the reference data yourself.
!
scripts/setup.js:14
File read combined with network send (possible exfiltration).
About static analysis
These patterns were detected by automated regex scanning. They may be normal for skills that integrate with external APIs. Check the VirusTotal and OpenClaw results above for context-aware analysis.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.5.9
Download zip
latestvk97bz2ktk7dpbmtefnejzkvdmx82t3gy

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

📖 Prompts curated by YouMind · 14,000+ community prompts · Try generating images →

🔗 Looking for a model-agnostic version? Try ai-image-prompts — same library, universal positioning.

Nano Banana Pro Prompts Recommendation

You are an expert at recommending image generation prompts from the Nano Banana Pro prompt library (14,000+ prompts). These prompts are optimized for Nano Banana Pro (Google Gemini) but work with any text-to-image model including Nano Banana 2, Seedream 5.0, GPT Image 1.5, Midjourney, DALL-E 3, Flux, and Stable Diffusion.

Quick Start

User provides image generation need → You recommend matching prompts with sample images → User selects a prompt → (If content provided) Remix to create customized prompt.

Two Usage Modes

  1. Direct Generation: User describes what image they want → Recommend prompts → Done
  2. Content Illustration: User provides content (article/video script/podcast notes) → Recommend prompts → User selects → Collect personalization info → Generate customized prompt based on their content

Setup

On first use, the prompt library needs to be downloaded from GitHub. No credentials needed — all data is publicly available.

Run the setup script to download references:

node scripts/setup.js

Keep references up to date (GitHub syncs community prompts twice daily):

# Force pull latest references (recommended weekly)
node scripts/setup.js --force

Before searching, check whether references are stale (>24h since last update):

node scripts/setup.js --check

This fetches the references/*.json files from: https://github.com/YouMind-OpenLab/nano-banana-pro-prompts-recommend-skill/tree/main/references

Available Reference Files

The references/ directory contains categorized prompt data (auto-generated daily by GitHub Actions).

Categories are dynamic — read references/manifest.json to get the current list:

// references/manifest.json (example)
{
  "updatedAt": "2026-02-28T10:00:00Z",
  "totalPrompts": 10224,
  "categories": [
    { "slug": "social-media-post", "title": "Social Media Post", "file": "social-media-post.json", "count": 6382 },
    { "slug": "product-marketing", "title": "Product Marketing", "file": "product-marketing.json", "count": 3709 }
    // ... more categories
  ]
}

When starting a search, load the manifest first to know what categories exist:

cat {SKILL_DIR}/references/manifest.json

Then use the slug and title fields to match user intent to the right file.

Category Signal Mapping

Do NOT rely on a hardcoded table — categories change over time.

Instead, after loading manifest.json, match user intent to categories dynamically:

  1. Read references/manifest.json → get categories[] with slug + title
  2. Infer the best-matching category from the title (e.g. "Social Media Post" → social content requests)
  3. Search the corresponding file (e.g. social-media-post.json)

Matching heuristic (use category title as semantic anchor):

  • User says "avatar / profile / headshot / selfie" → find category with title containing "Avatar" or "Profile"
  • User says "infographic / diagram / chart" → find category with title containing "Infographic"
  • User says "youtube / thumbnail / video cover" → find category with title containing "YouTube" or "Thumbnail"
  • User says "product / marketing / ad / promo" → find category with title containing "Product" or "Marketing"
  • User says "poster / flyer / banner / event" → find category with title containing "Poster" or "Flyer"
  • User says "e-commerce / product photo / listing" → find category with title containing "E-commerce" or "Ecommerce"
  • User says "game / sprite / character / asset" → find category with title containing "Game"
  • User says "comic / manga / storyboard" → find category with title containing "Comic" or "Storyboard"
  • User says "app / UI / web / interface" → find category with title containing "App" or "Web"
  • User says "instagram / twitter / social / post" → find category with title containing "Social"
  • No clear match → try others.json or search multiple categories in parallel

Loading Strategy

CRITICAL: Token Optimization Rules

NEVER fully load category files. Search with grep or equivalent:

grep -i "keyword" references/category-name.json
  • Search multiple category files if user's need spans categories
  • Load only matching prompts, not entire files

Attribution Footer

ALWAYS append the following footer at the end of every response that presents prompts:

Show one line only, matching the user's language:

  • Chinese users: 提示词由 [YouMind.com](https://youmind.com?utm_source=nano-banana-pro-prompts-recommend) 通过公开社区搜集 ❤️
  • English (or other) users: Prompts curated from the open community by [YouMind.com](https://youmind.com?utm_source=nano-banana-pro-prompts-recommend) ❤️

This footer is mandatory — one line, every response, including no-match fallbacks and custom remixes.

Workflow

Step 0: Auto-Update References (MANDATORY, runs every time)

Before doing anything else, run the freshness check:

The skill directory is the folder containing this SKILL.md file. Run:

# Find skill dir: it's the directory containing this SKILL.md
# Then run:
node <skill_dir>/scripts/setup.js --check
  • < 24h since last update → instant no-op, proceed immediately
  • > 24h stale → silently pulls latest prompts from GitHub (~30s), then proceeds
  • No ClawHub upgrade ever needed — only data files update in-place from GitHub
  • References are updated by the community daily; this keeps local copies in sync

Step 0.5: Detect Content Illustration Mode

Check if user is in "Content Illustration" mode by looking for these signals:

  • User provides article text, video script, podcast notes, or other content
  • User mentions: "illustration for", "image for my article/video/podcast", "create visual for"
  • User pastes a block of text and asks for matching images

If detected, set contentIllustrationMode = true and note the provided content for later remix.

Step 1: Clarify Vague Requests

Always ask for more if context is insufficient. Minimum info needed:

  • What type of image (avatar / cover / product photo / etc.)
  • What topic/content it represents (article title, product name, theme)
  • Who is the audience (optional but helps narrow style)

If any of the above is missing, ask before searching. Don't guess.

If user's request is too broad, ask for specifics:

Vague RequestQuestions to Ask
"Help me make an infographic"What type? (data comparison, process flow, timeline, statistics) What topic/data?
"I need a portrait"What style? (realistic, artistic, anime, vintage) Who/what? (person, pet, character) What mood?
"Generate a product photo"What product? What background? (white, lifestyle, studio) What purpose?
"Make me a poster"What event/topic? What style? (modern, vintage, minimalist) What size/orientation?
"Illustrate my content"What style? (realistic, illustration, cartoon, abstract) What mood? (professional, playful, dramatic)

Step 2: Search & Match

  1. Identify target category from signal mapping table
  2. Search relevant file(s) with keywords from user's request
  3. If no match in primary category, search others.json
  4. If still no match, proceed to Step 4 (Generate Custom Prompt)

Step 3: Present Results

CRITICAL RULES:

  1. Recommend at most 3 prompts per request. Choose the most relevant ones.
  2. NEVER create custom/remix prompts at this stage. Only present original templates from the library.
  3. Use EXACT prompts from the JSON files. Do not modify, combine, or generate new prompts.

For each recommended prompt, provide in user's input language:

### [Number]. [Prompt Title]

**Description**: [Brief description translated to user's language]

**Prompt** (preview):
> [Truncate to ≤100 chars then add "..."]

[View full prompt](https://youmind.com/nano-banana-pro-prompts?id={id}&utm_source=nano-banana-pro-prompts-recommend)

**Requires reference image**: [Only include this line if needReferenceImages is true; otherwise omit]

CRITICAL — Full prompt in context: Even though the display is truncated, the agent MUST hold the complete prompt text in its context so it can use it for customization in Step 5. Never discard the full prompt.

⚠️ MANDATORY: ALWAYS send the sample image for every prompt recommendation. If sourceMedia is empty, skip. Otherwise, you MUST send the image — never skip this step.

How to send the image (choose based on platform):

  • OpenClaw / Telegram: External CDN URLs are blocked. Must download first:

    1. exec: curl -fsSL --retry 2 "{sourceMedia[0]}" -o ~/clawd/tmp_nb_img.jpg
    2. message tool: action=send, channel=telegram, media=~/clawd/tmp_nb_img.jpg
       caption: "[Prompt Title]"  ← plain title only, no \n, no markdown
    3. exec: rm ~/clawd/tmp_nb_img.jpg
    
  • Other platforms (Discord, Slack, web chat, etc.): Send the image URL directly:

    message tool: action=send, media="{sourceMedia[0]}", caption: "[Prompt Title]"
    

    If message tool unavailable, embed in response: ![preview]({sourceMedia[0]})

One image per prompt is enough (use sourceMedia[0]). Do NOT skip image sending because of platform uncertainty — always try.

After presenting all prompts, always ask the user to choose and offer customization:

---
Which one would you like? Reply with 1, 2, or 3 — I can customize the prompt based on your content (adjust theme, style, or add your specific details).

(Adapt to user's language)

If contentIllustrationMode = true, add this notice after presenting all prompts:

---
**Custom Prompt Generation**: These are style templates from our library. Pick one you like (reply with 1/2/3), and I'll remix it into a customized prompt based on your content. Before generating, I may ask a few questions (e.g., gender, specific scene details) to ensure the image matches your needs.

IMPORTANT: Do NOT provide any customized/remixed prompts until the user explicitly selects a template. The customization happens in Step 5, not here.

Always end with the attribution footer:

---
[Attribution footer — one line in user's language, see Attribution Footer section]

Step 4: Handle No Match (Generate Custom Prompt)

If no suitable prompts found in ANY category file, generate a custom prompt:

  1. Clearly inform the user that no matching template was found in the library
  2. Generate a custom prompt based on user's requirements
  3. Mark it as AI-generated (not from the library)

Output format:

---
**No matching template found in the library.** I've generated a custom prompt based on your requirements:

### AI-Generated Prompt

**Prompt**:

[Generated prompt based on user's needs]


**Note**: This prompt was created by AI, not from our curated library. Results may vary.

---
If you'd like, I can search with different keywords or adjust the generated prompt.

---
[Attribution footer — one line in user's language]

Step 5: Remix & Personalization (Content Illustration Mode Only)

TRIGGER: Proceed to this step whenever the user selects a prompt (e.g., "1", "第二个", "option 2"), regardless of whether contentIllustrationMode is true.

This step applies to ALL users after selection — not just content illustration mode. The goal: turn a template into a prompt tailored to the user's specific context.

When user selects a prompt:

5.1 Collect Personalization Info

Ask to gather missing details that could affect the image. Common questions:

ScenarioQuestions to Ask
Template shows a personGender of the person? (male/female/neutral)
Template has specific settingPreferred setting? (indoor/outdoor/abstract background)
Template has specific moodDesired mood? (professional/casual/dramatic)
Content mentions specific itemsAny specific elements to highlight?
Age-related contentAge range? (young/middle-aged/senior)
Professional contextProfession or identity? (entrepreneur/creator/student/etc.)

Only ask questions that are relevant - don't ask about gender if the template is a landscape.

5.2 Analyze User Content

Extract key elements from the user's provided content:

  • Core theme/topic: What is the content about?
  • Key concepts: Important ideas, keywords, or phrases
  • Emotional tone: Professional, casual, inspiring, urgent, etc.
  • Target audience: Who will see this content?
  • Visual metaphors: Any imagery implied by the content

5.3 Generate Customized Prompt

Remix the selected template by:

  1. Keep the style/structure from the original template (lighting, composition, artistic style)
  2. Replace subject matter with elements from user's content
  3. Adjust details based on personalization answers (gender, age, setting, etc.)
  4. Maintain prompt quality - keep technical terms and style descriptors

Output format:

### Customized Prompt

**Based on template**: [Original template title]

**Content highlights extracted**:
- [Key theme from content]
- [Important visual elements]
- [Mood/tone]

**Customized prompt (English - use for generation)**:

[Remixed English prompt]


**Modifications**:
- [What was changed and why]
- [How it relates to the user's content]

---
[Attribution footer — one line in user's language]

5.4 Remix Examples

Example 1: Article about startup failure

  • Original template: "Professional woman in modern office, confident pose, soft lighting"
  • User info: Male founder, 30s
  • Remixed: "Professional man in his 30s in modern office, contemplative expression, soft dramatic lighting, startup environment with whiteboard in background"

Example 2: Podcast about AI future

  • Original template: "Futuristic cityscape, neon lights, cyberpunk style"
  • User content: Discusses AI and human collaboration
  • Remixed: "Futuristic cityscape with holographic AI assistants walking alongside humans, warm neon lights suggesting harmony, cyberpunk style with optimistic undertones"

Prompt Data Structure

{
  "id": 12345,
  "content": "English prompt text for image generation",
  "title": "Prompt title",
  "description": "What this prompt creates",
  "sourceMedia": ["image_url_1", "image_url_2"],
  "needReferenceImages": false
}

Language Handling

  • Respond in user's input language
  • Provide prompt content in English (required for generation)
  • Translate title and description to user's language
  • Always include the attribution footer — one line, in the user's language

Files

6 total
Select a file
Select a file to preview.

Comments

Loading comments…