Generate Recipe Images
This skill automates the process of finding recipes that need images, sourcing appropriate food photos, uploading them to GitHub, and updating recipe files with image links.
Overview
- Scan the Flavor Atlas Recipes folder for recipes without images
- Identify 3 recipes that need images
- Search for and download appropriate images for each recipe
- Save images locally in the repository working tree
- Update recipe files to link to the new images
- Commit and push changes following
.claude/rules.md - Post update message to the Flavor Atlas workspace
Instructions
Step 1: Find Recipes Without Images
Browse the GitHub repository to find recipes:
- Use
mcp__github__get_file_contentsto explore the repo structure:owner: "AX-MCP"repo: "AX-CommunityWorkspaces"path: "flavor-atlas/Recipes"
- Use
Check subdirectories (recipes may be organized by region):
- Examples:
flavor-atlas/Recipes/Italian/,flavor-atlas/Recipes/Middle-Eastern/, etc. - List all subdirectories to get the full recipe catalog
- Examples:
Read recipe files to identify those without images:
- Look for recipes that have image placeholders but no actual image links
- Look for markdown files without
![image syntax or with placeholder text like[Image coming soon] - Identify exactly 3 recipes that need images
Document the selected recipes:
- Note the recipe name, region/folder, and file path
- Note the dish name for image searching
Step 2: Search and Download Images
For each of the 3 recipes:
Determine the search query:
- Use the recipe title (e.g., "Italian Carbonara", "Middle Eastern Falafel")
- Add terms like "food photography", "plated dish", or "professional food photo"
Search for images using one of these methods:
Option A: Claude Chrome Extension
- Use
mcp__claude-in-chrome__tabs_context_mcpto get browser context - Use
mcp__claude-in-chrome__navigateto go to Google Images or Unsplash - Search for the recipe name + "food photography"
- Use
mcp__claude-in-chrome__computerto take a screenshot of suitable images - Use
mcp__claude-in-chrome__upload_imageor download functionality
Option B: Playwright
- Use
mcp__playwright__browser_navigateto visit image search sites (Unsplash, Pexels, or Google Images) - Use
mcp__playwright__browser_snapshotto see the page - Use
mcp__playwright__browser_clickto select and download images - Use
mcp__playwright__browser_take_screenshotto capture images if direct download isn't available
- Use
Choose appropriate images:
- Look for high-quality, professional food photography
- Prefer images from free stock photo sites (Unsplash, Pexels) to avoid copyright issues
- Images should be appetizing and represent the dish accurately
- Prefer landscape orientation (3:2 or 4:3 aspect ratio)
- Minimum 1600px width recommended
Save images locally to the repository working tree:
- Target directory structure:
D:\AI_Agents\Repo\CommunityRepo\FlavorAtlas\AX-CommunityWorkspaces\flavor-atlas\Images\{slug}\ - Filename:
hero.jpg(orhero.png) - Full path example:
D:\AI_Agents\Repo\CommunityRepo\FlavorAtlas\AX-CommunityWorkspaces\flavor-atlas\Images\carbonara\hero.jpg - Create directories as needed using the
Writetool
- Target directory structure:
Step 3: Update Recipe Files Locally
For each of the 3 recipes:
Read the current recipe file from the repository working tree:
- Path format:
D:\AI_Agents\Repo\CommunityRepo\FlavorAtlas\AX-CommunityWorkspaces\flavor-atlas\Recipes\{region}\{filename}
- Path format:
Update the recipe markdown to include the image:
- Find the image placeholder or add an image at the top of the description
- Replace placeholder text with proper markdown image syntax:
 - Ensure the path is relative from the recipe location
- Add descriptive alt text for accessibility
Save the updated recipe back to the working tree using the
Writetool
Step 4: Commit and Push to GitHub
Follow the complete Git workflow documented in
.claude/rules.md:- Add both the image files and updated recipe files
- Commit with descriptive message:
"Add hero images to 3 recipes: [list names]" - Push to FlavorAtlas branch
CRITICAL - Binary File Handling:
- Images MUST be committed using git commands (never via GitHub API)
- See
.claude/rules.mdfor detailed instructions on binary file handling - This ensures images are stored as actual binary files, not base64-encoded text
Step 5: Post Update to AX Workspace
Compile the list of updated recipes with their GitHub URLs:
- Format:
https://github.com/AX-MCP/AX-CommunityWorkspaces/blob/main/flavor-atlas/Recipes/{region}/{filename}
- Format:
Post message to the Flavor Atlas board:
- Use
mcp__ax-gcp__messageswithaction: "send" - Include links to the recipe files only (not the images)
- Example message format:
Recipe images added! 📸 Updated 3 recipes with hero images: 1. {Recipe Name 1}: [GitHub URL] 2. {Recipe Name 2}: [GitHub URL] 3. {Recipe Name 3}: [GitHub URL] #recipes #media #enrichment
- Use
Important Notes
- Git workflow: Follow
.claude/rules.mdfor complete instructions on committing and pushing to GitHub - Binary files: Images MUST be committed using git commands (never via GitHub API) - see
.claude/rules.md - Branch strategy: Work on FlavorAtlas branch, never push directly to main
- Exactly 3 recipes: Process exactly 3 recipes per run
- Copyright compliance: Use images from free stock photo sites (Unsplash, Pexels, Pixabay)
- Image quality: Minimum 1600px width, landscape orientation preferred
- File organization: Images go in
flavor-atlas/Images/{slug}/, recipes inflavor-atlas/Recipes/{region}/ - Relative paths: Recipe image links should be relative (e.g.,
../Images/{slug}/hero.jpg)
MCP Servers Used
- ax-gcp: For posting messages to the Flavor Atlas workspace
- Playwright: For browser automation to find and download images
- Claude browser extension: Alternative for finding and downloading images
- GitHub: For browsing the repository to identify recipes without images
Image Source Recommendations
Prefer these royalty-free image sources:
- Unsplash (unsplash.com) - High-quality, free food photography
- Pexels (pexels.com) - Free stock photos including food
- Pixabay (pixabay.com) - Free images and videos
Avoid:
- Google Images (copyright issues)
- Pinterest (often uncredited)
- Commercial food photography sites
Example Workflow
- Browse
flavor-atlas/Recipes/Italian/folder in GitHub to identify recipes without images - Find
italian_carbonara_v1.mdwithout an image - Find
italian_risotto_v1.mdwithout an image - Browse
flavor-atlas/Recipes/Middle-Eastern/ - Find
middle-eastern_falafel_v1.mdwithout an image - Search Unsplash for "carbonara food photography" and download
- Save to repo working tree:
flavor-atlas/Images/carbonara/hero.jpg - Repeat for risotto and falafel
- Update each recipe file locally to link to
../Images/{slug}/hero.jpg - Follow
.claude/rules.mdto commit and push all changes to FlavorAtlas branch - Post message: "Recipe images added! 📸 Updated 3 recipes..."
Quality Standards
Follow the image requirements from the Flavor Atlas guide:
- Hero images: 3:2 or 4:3 aspect ratio
- Minimum 1600px width
- Compressed for web (under 500KB if possible)
- Professional food photography quality
- Descriptive alt text for accessibility
- Relative path links in recipes
Reference
For complete details on media standards and workflow:
- Media and image standards:
CLAUDE.md - Git workflow and binary file handling:
.claude/rules.md