8.0 KiB
| name | description | tags |
|---|---|---|
| Image Search Routing Protocol | Enforce consistent image search routing through MCP-based media sources | vibe-coding, cms, image-search, mcp, routing |
Image Search Routing Protocol
🚨 STOP: READ THIS FIRST
When a user mentions ANYTHING related to images, photos, pictures, media, visuals, or graphics:
YOU MUST IMMEDIATELY INVOKE THE cms-media-search SKILL.
DO NOT:
- ❌ Present search options directly to the user
- ❌ Ask "Would you like to search CMS, Data Cloud, or Unsplash?"
- ❌ Respond with "I can help you search for images. Where would you like to search?"
- ❌ Make ANY assumptions about available sources
- ❌ Show ANY options before invoking the skill
WHY: You do not know which sources are available until the skill runs the availability check script. Presenting options without checking will show unavailable sources and create a broken user experience.
Mandatory Execution Sequence
Step 1: Detect Image Request
User mentions: search, find, get, fetch, retrieve, use, need, want + images/photos/pictures/media/visuals/graphics/logos/icons/hero image/banner
Step 2: IMMEDIATELY Invoke Skill
STOP ALL OTHER ACTIONS. Invoke cms-media-search skill NOW.
Do NOT:
- Acknowledge the request first
- Ask clarifying questions about source
- Present any options
- Say anything about where to search
Just invoke the skill immediately.
Step 3: Skill Executes
The skill will:
- Run
check_mcp.pyto determine available sources - Present ONLY available options to the user
- Wait for user selection
- Route to the appropriate search skill
Step 4: User Selects
User chooses from the options presented by the skill.
Step 5: Execute Search
The skill routes to the correct search implementation.
Absolute Prohibitions
❌ FORBIDDEN: Presenting Options Directly
YOU CANNOT DO THIS:
User: "Find me an apartment image"
Agent: "I can help! Would you like to search:
1. CMS
2. Data Cloud
3. Unsplash
Which would you prefer?"
WHY FORBIDDEN: You don't know if these sources are available. The skill must check first.
❌ FORBIDDEN: Delaying Skill Invocation
YOU CANNOT DO THIS:
User: "Find me an apartment image"
Agent: "I can help you find an apartment image. Let me check what's available..."
[Presents options]
[THEN invokes skill later]
WHY FORBIDDEN: The skill must run BEFORE any response to the user.
❌ FORBIDDEN: Making Assumptions
YOU CANNOT DO THIS:
User: "Find me an apartment image"
Agent: [Assumes CMS is available]
Agent: [Invokes cms-keyword-search directly without cms-media-search]
WHY FORBIDDEN: You don't know availability without running the check script.
✅ CORRECT Flow
User Request: "Find me a modern luxury apartment image for the hero section"
Your IMMEDIATE Action:
[Invoke cms-media-search skill with NO prior response]
What the skill does:
- Runs
check_mcp.py→ determines CMS and Unsplash are available - Presents to user:
I can search for that image. Which source would you like to use? 1. CMS Image Search 2. Unsplash 3. Other - User selects "1. CMS Image Search"
- Skill invokes
cms-keyword-search - Search executes and returns results
Why This Strict Sequence Matters
You cannot know availability without running the check script:
- MCP servers may be disabled in settings
- MCP servers may be offline
- Tools may not be configured
- Environment variables may not be set
The cms-media-search skill is the ONLY way to:
- Determine actual availability
- Present accurate options
- Route correctly
- Provide consistent UX
Rule Compliance Checklist
Before responding to ANY image request, verify:
- Did I invoke
cms-media-searchskill IMMEDIATELY? - Did I avoid presenting any options directly?
- Did I avoid making assumptions about availability?
- Did I let the skill handle all routing and option presentation?
If you answered NO to any question, you violated this rule.
Trigger Patterns
IMMEDIATE skill invocation required when user mentions:
Primary Triggers (Image/Media Requests)
- "search for" + [images/photos/pictures/media/visuals/graphics]
- "find" + [images/photos/pictures/media/visuals]
- "get" + [images/photos/pictures/media]
- "fetch" + [images/photos/media/visuals]
- "retrieve" + [images/photos/content/media]
- "use" + [images/photos/pictures] + "from [CMS/anywhere]"
- "need" + [hero image/logo/banner/icon/visual/graphic]
- "want" + [image/photo/picture/visual]
- "show me" + [images/photos/pictures]
- "I need" + [image/photo/visual/graphic]
- "add" + [image/photo/picture]
- "insert" + [image/photo/visual]
Context-Based Triggers
- User mentions "hero section" or "hero image"
- User mentions "logo" or "branding" in context of adding visuals
- User mentions "banner" or "header" in context of visuals
- User mentions "carousel" or "gallery" in context of content
- User mentions "thumbnail" or "preview image"
Content Type Triggers
- Any mention of: apartment/car/product/person/landscape/office/kitchen images
- Any mention of: lifestyle/corporate/professional photos
- Any mention of: stock photos or stock imagery
Detailed Examples
✅ CORRECT: Immediate Skill Invocation
Example 1:
User: "Find me a luxury apartment image for the hero"
Agent: [Immediately invokes cms-media-search skill - NO text response first]
Skill: [Runs check_mcp.py]
Skill: "I can search for that. Which source?
1. CMS Image Search
2. Unsplash
3. Other"
User: [Selects option]
Skill: [Executes search]
Example 2:
User: "I need a professional office photo"
Agent: [Immediately invokes cms-media-search skill]
Skill: [Checks availability and presents options]
User: [Selects]
Skill: [Executes]
Example 3:
User: "Can you get me some car images?"
Agent: [Immediately invokes cms-media-search skill]
Skill: [Handles everything]
❌ WRONG: Presenting Options Without Skill
Example 1 - VIOLATION:
User: "Find me an apartment image"
Agent: "I can help! Where would you like to search?
- CMS
- Data Cloud
- Unsplash"
❌ WRONG: Presented options without checking availability
Example 2 - VIOLATION:
User: "I need a hero image"
Agent: "Sure! Let me help you search for a hero image.
Would you like to search CMS or Unsplash?"
❌ WRONG: Responded to user before invoking skill
Example 3 - VIOLATION:
User: "Get me a logo"
Agent: "I can search for logos. Let me check what's available..."
Agent: "You can search CMS, Data Cloud, or Unsplash"
[Later invokes cms-media-search]
❌ WRONG: Delayed skill invocation and presented options too early
Example 4 - VIOLATION:
User: "Find kitchen images"
Agent: [Invokes cms-keyword-search directly]
❌ WRONG: Bypassed cms-media-search routing, assumed CMS availability
✅ CORRECT: Immediate Invocation Even With Context
Example:
User: "I'm building a real estate page. Find me a luxury apartment exterior."
Agent: [Immediately invokes cms-media-search skill]
Skill: [Handles availability check and options]
Not:
User: "I'm building a real estate page. Find me a luxury apartment exterior."
Agent: "Great! For a real estate page, I can search for luxury apartment images.
Would you like CMS or Unsplash?"
❌ WRONG: Responded without invoking skill first
No Exceptions
Even if user specifies a source:
User: "Search CMS for apartment images"
Agent: [Still invokes cms-media-search skill]
Skill: [Verifies CMS is available]
Skill: [If available, proceeds with CMS search]
Skill: [If unavailable, informs user and shows alternatives]
The skill MUST still validate availability.
Summary: The One Rule
When user wants images → Immediately invoke cms-media-search skill.
Do NOT:
- Talk first
- Present options first
- Check anything first
- Ask questions first
- Make assumptions
Just invoke the skill. The skill handles everything correctly.