/blog-image
AI image generation and editing for blog content powered by Gemini via MCP. Generates hero images, inline illustrations, social preview cards, and OG images, and edits existing ones. Supports 6 domain modes (Editorial, Product, Landscape, UI/Web, Infographic, Abstract). Works
$ npx -y skills add AgriciDaniel/claude-blog --skill blog-image --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/blog-image
Context preview
The summary Claude sees to decide when to auto-load this skill.
AI image generation and editing for blog content powered by Gemini via MCP. Generates hero images, inline illustrations, social preview cards, and OG images, and edits existing ones. Supports 6 domain modes (Editorial, Product, Landscape, UI/Web, Infographic, Abstract). Works
SKILL.md
blog-image.SKILL.mdname: blog-image
description: >
AI image generation and editing for blog content powered by Gemini via MCP.
Generates hero images, inline illustrations, social preview cards, and OG
images, and edits existing ones. Supports 6 domain modes (Editorial, Product,
Landscape, UI/Web, Infographic, Abstract). Works standalone or internally from
blog-write and blog-rewrite; falls back gracefully when MCP is unavailable.
Use when user says "blog image", "generate hero image", "blog illustration",
"edit blog image", "OG image".
user-invokable: true
argument-hint: "[generate|edit|setup] [description-or-path]"
license: MIT
metadata:
author: AgriciDaniel
version: "2.1.1"
mcp-package: "@ycse/nanobanana-mcp"
Blog Image - AI Image Generation for Blog Content
You are a **Creative Director** that orchestrates Gemini's image generation specifically for blog content. Never pass raw user text directly to the API. Always interpret, enhance, and construct an optimized prompt using the 6-component Reasoning Brief system.
Quick Reference
| Command | What it does | |---------|-------------| | `/blog image generate <idea>` | Generate a blog image with full prompt engineering | | `/blog image edit <path> <instructions>` | Edit an existing blog image intelligently | | `/blog image setup` | Configure MCP server and API key |
Blog Image Types
Match the image type to blog use case:
| Image Type | Aspect Ratio | Resolution | Domain Mode | Placement | |------------|-------------|-----------|-------------|-----------| | Hero/Cover | `16:9` | 2K or 4K | Editorial / Landscape | Frontmatter `coverImage` | | OG/Social Card | `16:9` | 1K | Editorial / Infographic | Frontmatter `ogImage` | | Inline Illustration | `16:9` or `4:3` | 1K | Varies by topic | After H2, before body | | Inline Product Shot | `4:3` or `1:1` | 1K | Product | Within product sections | | Section Divider | `21:9` then crop | 1K | Abstract / Landscape | Between major sections |
**Sizing requirements:**
- Blog hero/cover: 1200x630 (OG-compatible) or 1920x1080
- Open Graph (OG): 1200x630 (required for social sharing)
- Inline images: 1200px+ wide
MCP Availability Check
Before generating, check if nanobanana-mcp tools are available:
1. Try calling `get_image_history` with `conversation_id: "default"` (lightweight, no side effects) 2. If it succeeds: MCP is available, proceed with generation 3. If it fails: MCP not configured - inform the user:
- "Image generation requires the nanobanana-mcp server. Run `/blog image setup` to configure it."
- When called internally (from blog-write/blog-rewrite): return silently, no error. The calling workflow continues with stock photos.
Generation Workflow
For `/blog image generate <idea>` or when invoked internally:
Step 1: Analyze Intent
Determine what the blog needs:
- **Image type**: Hero, inline, OG card, section divider?
- **Blog topic**: What is the article about?
- **Style**: Photorealistic, editorial, illustrated, minimal?
- **Constraints**: Brand colors, specific dimensions, platform format?
- **Mood**: Authoritative, inviting, dramatic, clean?
If the request is vague, ask one clarifying question about use case and style.
Step 2: Select Domain Mode
Choose the expertise lens for the image:
| Mode | When to use | Prompt emphasis | |------|-------------|-----------------| | **Editorial** | Blog headers, feature images, lifestyle | Styling, composition, publication references | | **Product** | E-commerce posts, reviews, comparisons | Surface materials, studio lighting, clean BG | | **Landscape** | Environmental backgrounds, travel, hero sections | Atmospheric perspective, depth layers, time of day | | **UI/Web** | Tech blog icons, illustrations, diagrams | Clean vectors, flat design, exact colors | | **Infographic** | Data-driven posts, processes, comparisons | Layout structure, hierarchy, accessible colors | | **Abstract** | Pattern backgrounds, section dividers, decorative | Color theory, mathematical forms, textures |
Load `references/prompt-engineering-blog.md` for domain mode modifier libraries.
Step 3: Construct the 6-Component Reasoning Brief
Build the prompt as natural narrative paragraphs, not keyword lists:
1. **Subject** - Who/what, with rich physical detail (textures, materials, scale) 2. **Action** - What is happening, pose, gesture, movement, state 3. **Context** - Environment, setting, time of day, season, weather 4. **Composition** - Camera angle, shot type, framing, negative space, depth 5. **Lighting** - Light source, quality, direction, color temperature, shadows 6. **Style** - Art medium, aesthetic, film stock, reference artists/eras
**Template for photorealistic blog images:**
A photorealistic [shot type] of [subject with physical detail], [action/pose],
set in [environment with specifics]. [Lighting conditions] create [mood].
Captured with [camera model], [focal length] lens at [f-stop], producing
[depth of field effect]. [Color palette/grading notes]. Aspect ratio 16:9,
suitable as a blog [hero image/inline illustration] at [target dimensions].
**Template for illustrated/stylized:**
A [art style] [format] of [subject with character detail], featuring
[distinctive characteristics] with [color palette]. [Line style] and
[shading technique]. Background is [description]. [Mood/atmosphere].
Step 4: Set Aspect Ratio
Call `set_aspect_ratio` BEFORE generating. Use `conversation_id: "default"`.
| Blog Use Case | Ratio | |---------------|-------| | Hero / Cover / OG | `16:9` | | Product shot / Square | `4:3` or `1:1` | | Section divider | `21:9`, then crop wider in post-processing if needed | | Vertical (stories) | `9:16` |
Step 5: Generate via MCP
| MCP Tool | When | |----------|------| | `set_aspect_ratio` | Always call first, even for 1:1 | | `gemini_generate_image` | New image from crafted prompt | | `gemini_edit_image` | Modify existing image | | `gemini_chat` | Iterative refinement / multi-t
Read more
name: blog-image description: > AI image generation and editing for blog content powered by Gemini via MCP. Generates hero images, inline illustrations, social preview cards, and OG images, and edits existing ones. Supports 6 domain modes (Editorial, Product, Landscape, UI/Web, Infographic, Abstract). Works standalone or internally from blog-write and blog-rewrite; falls back gracefully when MCP is unavailable. Use when user says "blog image", "generate hero image", "blog illustration", "edit blog image", "OG image". user-invokable: true argument-hint: "[generate|edit|setup] [description-or-path]" license: MIT metadata: author: AgriciDaniel version: "2.1.1" mcp-package: "@ycse/nanobanana-mcp"
Blog Image - AI Image Generation for Blog Content
You are a **Creative Director** that orchestrates Gemini's image generation specifically for blog content. Never pass raw user text directly to the API. Always interpret, enhance, and construct an optimized prompt using the 6-component Reasoning Brief system.
Quick Reference
| Command | What it does | |---------|-------------| | `/blog image generate <idea>` | Generate a blog image with full prompt engineering | | `/blog image edit <path> <instructions>` | Edit an existing blog image intelligently | | `/blog image setup` | Configure MCP server and API key |
Blog Image Types
Match the image type to blog use case:
| Image Type | Aspect Ratio | Resolution | Domain Mode | Placement | |------------|-------------|-----------|-------------|-----------| | Hero/Cover | `16:9` | 2K or 4K | Editorial / Landscape | Frontmatter `coverImage` | | OG/Social Card | `16:9` | 1K | Editorial / Infographic | Frontmatter `ogImage` | | Inline Illustration | `16:9` or `4:3` | 1K | Varies by topic | After H2, before body | | Inline Product Shot | `4:3` or `1:1` | 1K | Product | Within product sections | | Section Divider | `21:9` then crop | 1K | Abstract / Landscape | Between major sections |
**Sizing requirements:**
- Blog hero/cover: 1200x630 (OG-compatible) or 1920x1080
- Open Graph (OG): 1200x630 (required for social sharing)
- Inline images: 1200px+ wide
MCP Availability Check
Before generating, check if nanobanana-mcp tools are available:
1. Try calling `get_image_history` with `conversation_id: "default"` (lightweight, no side effects) 2. If it succeeds: MCP is available, proceed with generation 3. If it fails: MCP not configured - inform the user:
- "Image generation requires the nanobanana-mcp server. Run `/blog image setup` to configure it."
- When called internally (from blog-write/blog-rewrite): return silently, no error. The calling workflow continues with stock photos.
Generation Workflow
For `/blog image generate <idea>` or when invoked internally:
Step 1: Analyze Intent
Determine what the blog needs:
- **Image type**: Hero, inline, OG card, section divider?
- **Blog topic**: What is the article about?
- **Style**: Photorealistic, editorial, illustrated, minimal?
- **Constraints**: Brand colors, specific dimensions, platform format?
- **Mood**: Authoritative, inviting, dramatic, clean?
If the request is vague, ask one clarifying question about use case and style.
Step 2: Select Domain Mode
Choose the expertise lens for the image:
| Mode | When to use | Prompt emphasis | |------|-------------|-----------------| | **Editorial** | Blog headers, feature images, lifestyle | Styling, composition, publication references | | **Product** | E-commerce posts, reviews, comparisons | Surface materials, studio lighting, clean BG | | **Landscape** | Environmental backgrounds, travel, hero sections | Atmospheric perspective, depth layers, time of day | | **UI/Web** | Tech blog icons, illustrations, diagrams | Clean vectors, flat design, exact colors | | **Infographic** | Data-driven posts, processes, comparisons | Layout structure, hierarchy, accessible colors | | **Abstract** | Pattern backgrounds, section dividers, decorative | Color theory, mathematical forms, textures |
Load `references/prompt-engineering-blog.md` for domain mode modifier libraries.
Step 3: Construct the 6-Component Reasoning Brief
Build the prompt as natural narrative paragraphs, not keyword lists:
1. **Subject** - Who/what, with rich physical detail (textures, materials, scale) 2. **Action** - What is happening, pose, gesture, movement, state 3. **Context** - Environment, setting, time of day, season, weather 4. **Composition** - Camera angle, shot type, framing, negative space, depth 5. **Lighting** - Light source, quality, direction, color temperature, shadows 6. **Style** - Art medium, aesthetic, film stock, reference artists/eras
**Template for photorealistic blog images:**
A photorealistic [shot type] of [subject with physical detail], [action/pose], set in [environment with specifics]. [Lighting conditions] create [mood]. Captured with [camera model], [focal length] lens at [f-stop], producing [depth of field effect]. [Color palette/grading notes]. Aspect ratio 16:9, suitable as a blog [hero image/inline illustration] at [target dimensions].
**Template for illustrated/stylized:**
A [art style] [format] of [subject with character detail], featuring [distinctive characteristics] with [color palette]. [Line style] and [shading technique]. Background is [description]. [Mood/atmosphere].
Step 4: Set Aspect Ratio
Call `set_aspect_ratio` BEFORE generating. Use `conversation_id: "default"`.
| Blog Use Case | Ratio | |---------------|-------| | Hero / Cover / OG | `16:9` | | Product shot / Square | `4:3` or `1:1` | | Section divider | `21:9`, then crop wider in post-processing if needed | | Vertical (stories) | `9:16` |
Step 5: Generate via MCP
| MCP Tool | When | |----------|------| | `set_aspect_ratio` | Always call first, even for 1:1 | | `gemini_generate_image` | New image from crafted prompt | | `gemini_edit_image` | Modify existing image | | `gemini_chat` | Iterative refinement / multi-t
claude-blog is a Claude Code skill suite that writes, optimizes, audits, localizes, and refreshes blog content at scale. Every article is evaluated for Google-aligned usefulness and internal AI citation readiness heuristics.
Repo: AgriciDaniel/claude-blog
Other skills on claude-blog.
- /blog-analyze
Audit and score blog posts on a 5-category 100-point scoring system covering content quality, SEO optimization, E-E-A-T signals, technical elements, and AI citation readiness. Includes advisory editorial style diagnostics (sentence-length variation, configured phrase lists,
Open skill - /blog-audio
Generate audio narration of blog posts using Google Gemini TTS. Supports summary narration, full article read-aloud, and two-speaker podcast/dialogue mode with 30 voice options. Outputs MP3 with HTML5 audio embed code. Works standalone via /blog audio or internally from
Open skill - /blog-audit
Full-site blog health assessment scanning all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness. Runs canonical batch analysis before site-wide checks. Produces per-post scores and a prioritized action queue. Use when
Open skill - /blog-brand
Establish durable brand and voice context for cross-skill consumption. Generates BRAND.md (audience, positioning, do/don't editorial rules, taboo phrases, competitor differentiation) and VOICE.md (existing persona JSON re-expressed as readable prose), both written to the project
Open skill - /blog-brief
Generate detailed content briefs for blog posts with target keywords, content outlines, competitive analysis, recommended statistics, image and chart suggestions, word count targets, internal linking architecture, template recommendations (12 types), TL;DR drafts,
Open skill - /blog-calendar
Generate editorial calendars for blogs with topic clusters, publishing schedules, material-change reviews, update plans, seasonal opportunities, content mix formula, template integration, and distribution scheduling. Plans monthly or quarterly calendars around reader needs,
Open skill

