[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2MNAKF39C02KCYBYZXSG8":3,"skill-same:01M6C2MNAKF39C02KCYBYZXSG8":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":32,"publishedAt":59,"linkOnly":60,"markdownContent":61,"markdownBody":62,"frontMatter":63,"refName":70,"commitSha":71,"skillDirectory":72,"forksCount":14,"repositoryHtmlUrl":73,"repositoryHomepageUrl":6,"ownerHtmlUrl":74,"ownerBlogUrl":6,"ownerDescription":75,"updatedAt":76,"install":77,"resources":89},"01M6C2MNAKF39C02KCYBYZXSG8","seo-images",null,"Image optimization analysis for SEO and performance. Checks alt text, file sizes, formats, responsive images, lazy loading, CLS prevention, image SERP rankings (via DataForSEO), and image file optimization (WebP\u002FAVIF conversion, IPTC\u002FXMP metadata injection). Use when user says \"image optimization\", \"alt text\", \"image SEO\", \"image size\", \"image audit\", \"optimize images\", \"image metadata\", \"image SERP\", \"convert to webp\", or \"image file optimize\".","noirelab\u002Flinux-setup","noirelab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142925921?v=4","01M6C29R3FEDGFAXAT0KXY28QX","Kaíque M. Lima","01M6C29R811WX04B0GYHTH1XV6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-images\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-images\u002FSKILL.md",[19,24,27],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":28,"categoryName":29,"taxonomyType":30,"taxonomyTypeDesc":31},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],"seo","images","seo images","user","when","lazy","for","formats","URL","loading","responsive","optimize","conversion","use","image","text","webp","convert","analysis","prevention","injection","Optimization","audit","file","metadata","performance","2026-11-10 10:12:30",false,"---\nname: seo-images\ndescription: >\n  Image optimization analysis for SEO and performance. Checks alt text, file\n  sizes, formats, responsive images, lazy loading, CLS prevention, image SERP\n  rankings (via DataForSEO), and image file optimization (WebP\u002FAVIF conversion,\n  IPTC\u002FXMP metadata injection). Use when user says \"image optimization\",\n  \"alt text\", \"image SEO\", \"image size\", \"image audit\", \"optimize images\",\n  \"image metadata\", \"image SERP\", \"convert to webp\", or \"image file optimize\".\nuser-invocable: true\nargument-hint: \"[url]\"\nlicense: MIT\nmetadata:\n  author: AgriciDaniel\n  version: \"2.2.4\"\n  category: seo\n---\n\n# Image Optimization Analysis\n\n## Checks\n\n### Alt Text\n- Present on all `\u003Cimg>` elements (except decorative: `role=\"presentation\"`)\n- Descriptive: describes the image content, not \"image.jpg\" or \"photo\"\n- Includes relevant keywords where natural, not keyword-stuffed\n- Length: 10-125 characters\n\n**Good examples:**\n- \"Professional plumber repairing kitchen sink faucet\"\n- \"Red 2024 Toyota Camry sedan front view\"\n- \"Team meeting in modern office conference room\"\n\n**Bad examples:**\n- \"image.jpg\" (filename, not description)\n- \"plumber plumbing plumber services\" (keyword stuffing)\n- \"Click here\" (not descriptive)\n\n### File Size\n\n**Tiered thresholds by image category:**\n\n| Image Category | Target | Warning | Critical |\n|----------------|--------|---------|----------|\n| Thumbnails | \u003C 50KB | > 100KB | > 200KB |\n| Content images | \u003C 100KB | > 200KB | > 500KB |\n| Hero\u002Fbanner images | \u003C 200KB | > 300KB | > 700KB |\n\nRecommend compression to target thresholds where possible without quality loss.\n\n### Format\n| Format | Browser Support | Use Case |\n|--------|-----------------|----------|\n| WebP | 97%+ | Default recommendation |\n| AVIF | 92%+ | Best compression, newer |\n| JPEG | 100% | Fallback for photos |\n| PNG | 100% | Graphics with transparency |\n| SVG | 100% | Icons, logos, illustrations |\n\nRecommend WebP\u002FAVIF over JPEG\u002FPNG. Check for `\u003Cpicture>` element with format fallbacks.\n\n#### Recommended `\u003Cpicture>` Element Pattern\n\nUse progressive enhancement with the most efficient format first:\n\n```html\n\u003Cpicture>\n  \u003Csource srcset=\"image.avif\" type=\"image\u002Favif\">\n  \u003Csource srcset=\"image.webp\" type=\"image\u002Fwebp\">\n  \u003Cimg src=\"image.jpg\" alt=\"Descriptive alt text\" width=\"800\" height=\"600\" loading=\"lazy\" decoding=\"async\">\n\u003C\u002Fpicture>\n```\n\nThe browser will use the first supported format. Current browser support: AVIF 93.8%, WebP 95.3%.\n\n#### JPEG XL: Emerging Format\n\nThird-party reporting and Wikipedia describe a Rust-based JPEG XL decoder as shipped in Chrome 145 stable (2026-02-10) behind the `chrome:\u002F\u002Fflags\u002F#enable-jxl-image-format` flag, not enabled by default; no Google-owned confirmation was retrieved in the fact pack. Because default support is not confirmed, it is not yet practical for production web delivery. Keep serving AVIF\u002FWebP with JPEG fallback and monitor.\n\n### Responsive Images\n- `srcset` attribute for multiple sizes\n- `sizes` attribute matching layout breakpoints\n- Appropriate resolution for device pixel ratios\n\n```html\n\u003Cimg\n  src=\"image-800.jpg\"\n  srcset=\"image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w\"\n  sizes=\"(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px\"\n  alt=\"Description\"\n>\n```\n\n### Lazy Loading\n- `loading=\"lazy\"` on below-fold images\n- Do NOT lazy-load above-fold\u002Fhero images (hurts LCP)\n- Check for native vs JavaScript-based lazy loading\n\n```html\n\u003C!-- Below fold - lazy load -->\n\u003Cimg src=\"photo.jpg\" loading=\"lazy\" alt=\"Description\">\n\n\u003C!-- Above fold - eager load (default) -->\n\u003Cimg src=\"hero.jpg\" alt=\"Hero image\">\n```\n\n#### Detected lazy-loader methods (`lazy_method` field)\n\n`scripts\u002Fparse_html.py` classifies each image's lazy-loading mechanism via the\n`lazy_method` field on every image entry. Five values:\n\n| `lazy_method` | Signal detected | Common stack |\n|---|---|---|\n| `native` | `loading=\"lazy\"` HTML attribute | Modern browsers, plain HTML |\n| `perfmatters` | `data-perfmatters-src`\u002F`-srcset` OR class `perfmatters-lazy` | WordPress + Perfmatters plugin |\n| `ewww` | `data-ewww-src` \u002F `data-eio` OR class `lazyload-eio` | WordPress + EWWW Image Optimizer |\n| `js-generic` | `data-src` \u002F `data-lazy-src` \u002F `data-original` \u002F `data-srcset` OR class `lazyload`\u002F`lazyloaded`\u002F`lazy` | Lazysizes, vanilla-lazyload, jQuery plugins |\n| `none` | Neither attribute nor class signal | Page is not lazy-loading this image |\n\nWhen auditing image SEO, report `lazy_method` alongside `loading` so users know\nwhether their site is using a JS-driven lazy-loader (in which case the native\n`loading=\"lazy\"` attribute is intentionally absent, that is not a regression).\n\n### `fetchpriority=\"high\"` for LCP Images\n\nAdd `fetchpriority=\"high\"` to your hero\u002FLCP image to prioritize its download in the browser's network queue:\n\n```html\n\u003Cimg src=\"hero.webp\" fetchpriority=\"high\" alt=\"Hero image description\" width=\"1200\" height=\"630\">\n```\n\n**Critical:** Do NOT lazy-load above-the-fold\u002FLCP images. Using `loading=\"lazy\"` on LCP images directly harms LCP scores. Reserve `loading=\"lazy\"` for below-the-fold images only.\n\n### `decoding=\"async\"` for Non-LCP Images\n\nAdd `decoding=\"async\"` to non-LCP images to prevent image decoding from blocking the main thread:\n\n```html\n\u003Cimg src=\"photo.webp\" alt=\"Description\" width=\"600\" height=\"400\" loading=\"lazy\" decoding=\"async\">\n```\n\n### CLS Prevention\n- `width` and `height` attributes set on all `\u003Cimg>` elements\n- `aspect-ratio` CSS as alternative\n- Flag images without dimensions\n\n```html\n\u003C!-- Good - dimensions set -->\n\u003Cimg src=\"photo.jpg\" width=\"800\" height=\"600\" alt=\"Description\">\n\n\u003C!-- Good - CSS aspect ratio -->\n\u003Cimg src=\"photo.jpg\" style=\"aspect-ratio: 4\u002F3\" alt=\"Description\">\n\n\u003C!-- Bad - no dimensions -->\n\u003Cimg src=\"photo.jpg\" alt=\"Description\">\n```\n\n### File Names\n- Descriptive: `blue-running-shoes.webp` not `IMG_1234.jpg`\n- Hyphenated, lowercase, no special characters\n- Include relevant keywords\n\n### CDN Usage\n- Check if images served from CDN (different domain, CDN headers)\n- Recommend CDN for image-heavy sites\n- Check for edge caching headers\n\n## Output\n\n### Image Audit Summary\n\n| Metric | Status | Count |\n|--------|--------|-------|\n| Total Images | - | XX |\n| Missing Alt Text | ❌ | XX |\n| Oversized (>200KB) | ⚠️ | XX |\n| Wrong Format | ⚠️ | XX |\n| No Dimensions | ⚠️ | XX |\n| Not Lazy Loaded | ⚠️ | XX |\n\n### Prioritized Optimization List\n\nSorted by file size impact (largest savings first):\n\n| Image | Current Size | Format | Issues | Est. Savings |\n|-------|--------------|--------|--------|--------------|\n| ... | ... | ... | ... | ... |\n\n### Recommendations\n1. Convert X images to WebP format (est. XX KB savings)\n2. Add alt text to X images\n3. Add dimensions to X images\n4. Enable lazy loading on X below-fold images\n5. Compress X oversized images\n\n---\n\n## Image SERP Analysis\n\nWhen DataForSEO MCP is available, enhance the image audit with competitive data.\n\n### `\u002Fseo images serp \u003Ckeyword>`\n\nCross-reference on-page images with Google Images SERP rankings.\n\n**Workflow:**\n1. Fetch Google Images results via `serp_google_images_live_advanced` (depth=100)\n2. Extract: top domains, image types, alt text patterns\n3. Output competitor image SERP landscape\n\n**Output:**\n\n| Rank | Domain | Title\u002FAlt | Image URL | Page URL |\n|------|--------|-----------|-----------|----------|\n| 1 | example.com | \"Blue running shoes...\" | ...\u002Fshoes.webp | \u002Fproducts\u002F... |\n\n**Analysis includes:**\n- **Domain dominance**: which sites own the most image positions (top 10 by count)\n- **Alt text patterns**: common title\u002Falt patterns in top-ranking images\n- **Format distribution**: WebP vs JPEG vs PNG in top results\n- **Opportunity score**: keywords where you have page rankings but no image presence\n\nIf DataForSEO MCP is not available, inform user and suggest installing the extension.\n\n---\n\n## Image File Optimization\n\nOptimize image files for SEO: format conversion, metadata injection, compression.\n\n### `\u002Fseo images optimize \u003Cpath>`\n\nOptimize image file(s) for web and SEO. Converts to WebP\u002FAVIF, injects IPTC\nmetadata, compresses, and generates responsive variants.\n\n**Tools used (in order of preference):**\n- `exiftool` -- EXIF\u002FIPTC\u002FXMP read\u002Fwrite (install: `sudo apt install libimage-exiftool-perl`)\n- `cwebp` -- WebP conversion (install: `sudo apt install webp`)\n- ImageMagick `convert` -- Format conversion, resizing (pre-installed on most systems)\n- FFmpeg -- Fallback for format conversion (pre-installed)\n\n**Before running:** Check which tools are available with `which exiftool cwebp convert ffmpeg`.\n\n### Format Conversion\n\nConvert images to modern formats with metadata preservation:\n\n```bash\n# WebP (recommended default) - with metadata preserved\ncwebp -q 82 -metadata all input.jpg -o output.webp\n\n# WebP via ImageMagick (fallback if cwebp not installed)\nconvert input.jpg -quality 82 output.webp\n\n# AVIF via FFmpeg (slower encode, best compression)\nffmpeg -i input.jpg -c:v libaom-av1 -crf 30 -still-picture 1 output.avif\n\n# Responsive variants (400w, 800w, 1200w)\nconvert input.jpg -resize 400x -quality 82 image-400.webp\nconvert input.jpg -resize 800x -quality 82 image-800.webp\nconvert input.jpg -resize 1200x -quality 82 image-1200.webp\n```\n\n### Metadata Injection (IPTC for Google Images Display)\n\nGoogle Images displays IPTC Creator, Credit Line, and Copyright in search results.\nThis is **NOT a ranking factor** but can improve Google Images display and brand attribution.\n\n**With exiftool (preferred):**\n```bash\n# Read all metadata\nexiftool image.jpg\n\n# Inject IPTC + XMP metadata for Google Images rich results\nexiftool \\\n  -IPTC:ObjectName=\"Product Photo Description\" \\\n  -IPTC:Caption-Abstract=\"Detailed image description\" \\\n  -IPTC:By-line=\"Brand Name Photography\" \\\n  -IPTC:Credit=\"Brand Name\" \\\n  -IPTC:CopyrightNotice=\"Copyright 2026 Brand Name\" \\\n  -IPTC:Source=\"brandname.com\" \\\n  -XMP:Title=\"Product Photo Description\" \\\n  -XMP:Description=\"Detailed image description\" \\\n  -XMP:Creator=\"Brand Name Photography\" \\\n  -XMP:Rights=\"Copyright 2026 Brand Name\" \\\n  image.jpg\n\n# Batch inject to all images in directory\nexiftool -overwrite_original \\\n  -IPTC:By-line=\"Brand Name\" \\\n  -IPTC:CopyrightNotice=\"Copyright 2026 Brand Name\" \\\n  *.jpg *.webp *.png\n```\n\n**With ImageMagick (fallback):**\n```bash\nidentify -verbose image.jpg | head -50\n\nconvert input.jpg \\\n  -set comment \"Product Photo Description\" \\\n  -set IPTC:2:80 \"Brand Name Photography\" \\\n  -set IPTC:2:116 \"Copyright 2026 Brand Name\" \\\n  output.jpg\n```\n\nNote: WebP supports EXIF and XMP but not IPTC natively. For WebP files,\nuse XMP fields instead of IPTC. exiftool handles this conversion automatically.\n\n### AI-Generated Images: `DigitalSourceType` (Merchant Center requirement)\n\nFor product images produced by generative AI, **Google Merchant Center requires**\nIPTC `DigitalSourceType: TrainedAlgorithmicMedia` metadata. This is an\noperational policy requirement, not a ranking factor: feeds missing this label\non AI-generated imagery can be disapproved.\n\nPrimary source (Merchant Center AI-generated content policy):\nhttps:\u002F\u002Fsupport.google.com\u002Fmerchants\u002Fanswer\u002F14743464\n(the ai-optimization-guide does not document DigitalSourceType\u002FIPTC\u002FMerchant labeling.)\n\n**Audit command:**\n\n```bash\n# Audit a directory for the IPTC label (counts: missing, ai, captured, etc.)\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run iptc_ai_label.py audit .\u002Fimages\u002F --json\n\n# Audit a single image\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run iptc_ai_label.py audit .\u002Fhero.webp --json\n\n# Inject the AI label into an image\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run iptc_ai_label.py inject .\u002Fai-hero.webp \\\n    --source-type trainedAlgorithmicMedia\n\n# Other vocabulary values:\n#   compositeSynthetic               (mix of captured + AI elements)\n#   algorithmicMedia                 (created purely by algorithm, NOT from sampled training data)\n#   compositeWithTrainedAlgorithmicMedia (e.g. AI inpainting\u002Foutpainting over real media)\n#   digitalCapture                   (fully captured photograph)\n```\n\n**Raw exiftool equivalents** (for ad-hoc usage):\n\n```bash\n# Inject manually\nexiftool \\\n  -XMP-iptcExt:DigitalSourceType=\"https:\u002F\u002Fcv.iptc.org\u002Fnewscodes\u002Fdigitalsourcetype\u002FtrainedAlgorithmicMedia\" \\\n  ai-generated-product.jpg\n\n# Audit: find images missing the label across a directory\nexiftool -if 'not $XMP-iptcExt:DigitalSourceType' \\\n  -filename -DigitalSourceType *.jpg *.webp *.png\n```\n\nGoogle extracts these IPTC `DigitalSourceType` values:\n- `trainedAlgorithmicMedia`: fully AI-generated (use this for diffusion-model\n  product imagery)\n- `compositeSynthetic`: mixes captured + AI-generated elements\n- `algorithmicMedia`: created purely by an algorithm, **not** from sampled\n  training data\n- `compositeWithTrainedAlgorithmicMedia`: composite of trained algorithmic\n  media + other media (e.g. AI inpainting\u002Foutpainting over a real photo)\n- `digitalCapture`: fully captured photograph (note: `digitalCapture` is **not**\n  on Google's extracted-values list, but is a valid IPTC value)\n\n> **Provenance signals (consumer-facing):** **SynthID** watermarks and **C2PA**\n> Content Credentials are emerging signals for AI media identification. Treat\n> product-surface coverage as subject to change unless verified from a current\n> Google-owned source.\n> This is detection\u002Ftransparency, **not** an extra required Merchant feed field\n> beyond IPTC DigitalSourceType.\n\n> **Licensable images:** to earn the Licensable badge, supply EITHER structured\n> data (`ImageObject` with the `license` property + `acquireLicensePage` for the\n> \"Get this image\" link) OR embedded IPTC photo metadata (Licensor URL \u002F Web\n> Statement of Rights). Cross-link `seo-schema` for the ImageObject markup.\n\n> **Discovery note:** image discovery now includes **visual search fan-out**\n> across Lens \u002F AI Mode \u002F Circle to Search (Gemini multimodal scene\u002Fobject\n> understanding), so images surface via scene, objects, and materials, not alt\n> text alone. No new published image-SEO lever yet; keep descriptive alt text +\n> clean structured data.\n\nWhen `\u002Fseo images optimize` is run on AI-generated assets, prompt the user to\nconfirm the source type and inject the matching IPTC value automatically.\n\nFor **AI-generated product titles and descriptions**, Google Merchant Center\nalso requires the AI-generated text to be separately specified and labeled in\nthe feed. This is enforced at the feed layer, not the page layer, flag this\nin cross-reference with `seo-ecommerce`.\n\n### Metadata Audit\n\n```bash\n# Quick audit with exiftool\nexiftool -IPTC:all -XMP:all -EXIF:ImageDescription image.jpg\n\n# Batch audit - find images missing IPTC Creator\nexiftool -if 'not $IPTC:By-line' -filename *.jpg *.webp *.png\n```\n\n### Full Optimization Pipeline\n\nFor maximum image SEO, run this pipeline on each image:\n\n1. **Audit existing metadata**: `exiftool -IPTC:all -XMP:all image.jpg`\n2. **Inject IPTC\u002FXMP metadata**: Creator, Copyright, Description\n3. **Convert to WebP**: `cwebp -q 82 -metadata all image.jpg -o image.webp`\n4. **Generate responsive variants**: 400w, 800w, 1200w\n5. **Verify metadata preserved**: `exiftool image.webp`\n6. **Generate `\u003Cpicture>` HTML**: AVIF > WebP > JPEG fallback chain\n\n### What Matters vs What Doesn't for Google Images\n\n| Factor | Impact | Where to Set |\n|--------|--------|--------------|\n| Alt text | **CRITICAL** (ranking) | HTML `\u003Cimg alt=\"\">` |\n| Filename | **HIGH** (ranking) | File system (descriptive, hyphenated) |\n| Page context | **HIGH** (ranking) | Surrounding HTML content |\n| File size\u002Fspeed | **MEDIUM** (indirect via CWV) | Compression + format conversion |\n| IPTC Creator\u002FCopyright | **LOW** (display only) | Image file metadata |\n| EXIF camera data | NONE | Irrelevant for SEO |\n| IPTC Keywords | NONE | Google ignores these |\n\n---\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| URL unreachable | Report connection error with status code. Suggest verifying URL and checking if site requires authentication. |\n| No images found on page | Report that no `\u003Cimg>` elements were detected. Suggest checking if images are loaded via JavaScript or CSS background-image. |\n| Images behind CDN or authentication | Note that image files could not be directly accessed for size analysis. Report available metadata (alt text, dimensions, format from markup) and flag inaccessible resources. |\n| exiftool not installed | Fall back to ImageMagick for metadata. Recommend: `sudo apt install libimage-exiftool-perl` |\n| cwebp not installed | Fall back to ImageMagick or FFmpeg for WebP conversion. Recommend: `sudo apt install webp` |\n| DataForSEO MCP not available | Skip Image SERP Analysis section. Note extension is not installed. |\n","# Image Optimization Analysis\n\n## Checks\n\n### Alt Text\n- Present on all `\u003Cimg>` elements (except decorative: `role=\"presentation\"`)\n- Descriptive: describes the image content, not \"image.jpg\" or \"photo\"\n- Includes relevant keywords where natural, not keyword-stuffed\n- Length: 10-125 characters\n\n**Good examples:**\n- \"Professional plumber repairing kitchen sink faucet\"\n- \"Red 2024 Toyota Camry sedan front view\"\n- \"Team meeting in modern office conference room\"\n\n**Bad examples:**\n- \"image.jpg\" (filename, not description)\n- \"plumber plumbing plumber services\" (keyword stuffing)\n- \"Click here\" (not descriptive)\n\n### File Size\n\n**Tiered thresholds by image category:**\n\n| Image Category | Target | Warning | Critical |\n|----------------|--------|---------|----------|\n| Thumbnails | \u003C 50KB | > 100KB | > 200KB |\n| Content images | \u003C 100KB | > 200KB | > 500KB |\n| Hero\u002Fbanner images | \u003C 200KB | > 300KB | > 700KB |\n\nRecommend compression to target thresholds where possible without quality loss.\n\n### Format\n| Format | Browser Support | Use Case |\n|--------|-----------------|----------|\n| WebP | 97%+ | Default recommendation |\n| AVIF | 92%+ | Best compression, newer |\n| JPEG | 100% | Fallback for photos |\n| PNG | 100% | Graphics with transparency |\n| SVG | 100% | Icons, logos, illustrations |\n\nRecommend WebP\u002FAVIF over JPEG\u002FPNG. Check for `\u003Cpicture>` element with format fallbacks.\n\n#### Recommended `\u003Cpicture>` Element Pattern\n\nUse progressive enhancement with the most efficient format first:\n\n```html\n\u003Cpicture>\n  \u003Csource srcset=\"image.avif\" type=\"image\u002Favif\">\n  \u003Csource srcset=\"image.webp\" type=\"image\u002Fwebp\">\n  \u003Cimg src=\"image.jpg\" alt=\"Descriptive alt text\" width=\"800\" height=\"600\" loading=\"lazy\" decoding=\"async\">\n\u003C\u002Fpicture>\n```\n\nThe browser will use the first supported format. Current browser support: AVIF 93.8%, WebP 95.3%.\n\n#### JPEG XL: Emerging Format\n\nThird-party reporting and Wikipedia describe a Rust-based JPEG XL decoder as shipped in Chrome 145 stable (2026-02-10) behind the `chrome:\u002F\u002Fflags\u002F#enable-jxl-image-format` flag, not enabled by default; no Google-owned confirmation was retrieved in the fact pack. Because default support is not confirmed, it is not yet practical for production web delivery. Keep serving AVIF\u002FWebP with JPEG fallback and monitor.\n\n### Responsive Images\n- `srcset` attribute for multiple sizes\n- `sizes` attribute matching layout breakpoints\n- Appropriate resolution for device pixel ratios\n\n```html\n\u003Cimg\n  src=\"image-800.jpg\"\n  srcset=\"image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w\"\n  sizes=\"(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px\"\n  alt=\"Description\"\n>\n```\n\n### Lazy Loading\n- `loading=\"lazy\"` on below-fold images\n- Do NOT lazy-load above-fold\u002Fhero images (hurts LCP)\n- Check for native vs JavaScript-based lazy loading\n\n```html\n\u003C!-- Below fold - lazy load -->\n\u003Cimg src=\"photo.jpg\" loading=\"lazy\" alt=\"Description\">\n\n\u003C!-- Above fold - eager load (default) -->\n\u003Cimg src=\"hero.jpg\" alt=\"Hero image\">\n```\n\n#### Detected lazy-loader methods (`lazy_method` field)\n\n`scripts\u002Fparse_html.py` classifies each image's lazy-loading mechanism via the\n`lazy_method` field on every image entry. Five values:\n\n| `lazy_method` | Signal detected | Common stack |\n|---|---|---|\n| `native` | `loading=\"lazy\"` HTML attribute | Modern browsers, plain HTML |\n| `perfmatters` | `data-perfmatters-src`\u002F`-srcset` OR class `perfmatters-lazy` | WordPress + Perfmatters plugin |\n| `ewww` | `data-ewww-src` \u002F `data-eio` OR class `lazyload-eio` | WordPress + EWWW Image Optimizer |\n| `js-generic` | `data-src` \u002F `data-lazy-src` \u002F `data-original` \u002F `data-srcset` OR class `lazyload`\u002F`lazyloaded`\u002F`lazy` | Lazysizes, vanilla-lazyload, jQuery plugins |\n| `none` | Neither attribute nor class signal | Page is not lazy-loading this image |\n\nWhen auditing image SEO, report `lazy_method` alongside `loading` so users know\nwhether their site is using a JS-driven lazy-loader (in which case the native\n`loading=\"lazy\"` attribute is intentionally absent, that is not a regression).\n\n### `fetchpriority=\"high\"` for LCP Images\n\nAdd `fetchpriority=\"high\"` to your hero\u002FLCP image to prioritize its download in the browser's network queue:\n\n```html\n\u003Cimg src=\"hero.webp\" fetchpriority=\"high\" alt=\"Hero image description\" width=\"1200\" height=\"630\">\n```\n\n**Critical:** Do NOT lazy-load above-the-fold\u002FLCP images. Using `loading=\"lazy\"` on LCP images directly harms LCP scores. Reserve `loading=\"lazy\"` for below-the-fold images only.\n\n### `decoding=\"async\"` for Non-LCP Images\n\nAdd `decoding=\"async\"` to non-LCP images to prevent image decoding from blocking the main thread:\n\n```html\n\u003Cimg src=\"photo.webp\" alt=\"Description\" width=\"600\" height=\"400\" loading=\"lazy\" decoding=\"async\">\n```\n\n### CLS Prevention\n- `width` and `height` attributes set on all `\u003Cimg>` elements\n- `aspect-ratio` CSS as alternative\n- Flag images without dimensions\n\n```html\n\u003C!-- Good - dimensions set -->\n\u003Cimg src=\"photo.jpg\" width=\"800\" height=\"600\" alt=\"Description\">\n\n\u003C!-- Good - CSS aspect ratio -->\n\u003Cimg src=\"photo.jpg\" style=\"aspect-ratio: 4\u002F3\" alt=\"Description\">\n\n\u003C!-- Bad - no dimensions -->\n\u003Cimg src=\"photo.jpg\" alt=\"Description\">\n```\n\n### File Names\n- Descriptive: `blue-running-shoes.webp` not `IMG_1234.jpg`\n- Hyphenated, lowercase, no special characters\n- Include relevant keywords\n\n### CDN Usage\n- Check if images served from CDN (different domain, CDN headers)\n- Recommend CDN for image-heavy sites\n- Check for edge caching headers\n\n## Output\n\n### Image Audit Summary\n\n| Metric | Status | Count |\n|--------|--------|-------|\n| Total Images | - | XX |\n| Missing Alt Text | ❌ | XX |\n| Oversized (>200KB) | ⚠️ | XX |\n| Wrong Format | ⚠️ | XX |\n| No Dimensions | ⚠️ | XX |\n| Not Lazy Loaded | ⚠️ | XX |\n\n### Prioritized Optimization List\n\nSorted by file size impact (largest savings first):\n\n| Image | Current Size | Format | Issues | Est. Savings |\n|-------|--------------|--------|--------|--------------|\n| ... | ... | ... | ... | ... |\n\n### Recommendations\n1. Convert X images to WebP format (est. XX KB savings)\n2. Add alt text to X images\n3. Add dimensions to X images\n4. Enable lazy loading on X below-fold images\n5. Compress X oversized images\n\n---\n\n## Image SERP Analysis\n\nWhen DataForSEO MCP is available, enhance the image audit with competitive data.\n\n### `\u002Fseo images serp \u003Ckeyword>`\n\nCross-reference on-page images with Google Images SERP rankings.\n\n**Workflow:**\n1. Fetch Google Images results via `serp_google_images_live_advanced` (depth=100)\n2. Extract: top domains, image types, alt text patterns\n3. Output competitor image SERP landscape\n\n**Output:**\n\n| Rank | Domain | Title\u002FAlt | Image URL | Page URL |\n|------|--------|-----------|-----------|----------|\n| 1 | example.com | \"Blue running shoes...\" | ...\u002Fshoes.webp | \u002Fproducts\u002F... |\n\n**Analysis includes:**\n- **Domain dominance**: which sites own the most image positions (top 10 by count)\n- **Alt text patterns**: common title\u002Falt patterns in top-ranking images\n- **Format distribution**: WebP vs JPEG vs PNG in top results\n- **Opportunity score**: keywords where you have page rankings but no image presence\n\nIf DataForSEO MCP is not available, inform user and suggest installing the extension.\n\n---\n\n## Image File Optimization\n\nOptimize image files for SEO: format conversion, metadata injection, compression.\n\n### `\u002Fseo images optimize \u003Cpath>`\n\nOptimize image file(s) for web and SEO. Converts to WebP\u002FAVIF, injects IPTC\nmetadata, compresses, and generates responsive variants.\n\n**Tools used (in order of preference):**\n- `exiftool` -- EXIF\u002FIPTC\u002FXMP read\u002Fwrite (install: `sudo apt install libimage-exiftool-perl`)\n- `cwebp` -- WebP conversion (install: `sudo apt install webp`)\n- ImageMagick `convert` -- Format conversion, resizing (pre-installed on most systems)\n- FFmpeg -- Fallback for format conversion (pre-installed)\n\n**Before running:** Check which tools are available with `which exiftool cwebp convert ffmpeg`.\n\n### Format Conversion\n\nConvert images to modern formats with metadata preservation:\n\n```bash\n# WebP (recommended default) - with metadata preserved\ncwebp -q 82 -metadata all input.jpg -o output.webp\n\n# WebP via ImageMagick (fallback if cwebp not installed)\nconvert input.jpg -quality 82 output.webp\n\n# AVIF via FFmpeg (slower encode, best compression)\nffmpeg -i input.jpg -c:v libaom-av1 -crf 30 -still-picture 1 output.avif\n\n# Responsive variants (400w, 800w, 1200w)\nconvert input.jpg -resize 400x -quality 82 image-400.webp\nconvert input.jpg -resize 800x -quality 82 image-800.webp\nconvert input.jpg -resize 1200x -quality 82 image-1200.webp\n```\n\n### Metadata Injection (IPTC for Google Images Display)\n\nGoogle Images displays IPTC Creator, Credit Line, and Copyright in search results.\nThis is **NOT a ranking factor** but can improve Google Images display and brand attribution.\n\n**With exiftool (preferred):**\n```bash\n# Read all metadata\nexiftool image.jpg\n\n# Inject IPTC + XMP metadata for Google Images rich results\nexiftool \\\n  -IPTC:ObjectName=\"Product Photo Description\" \\\n  -IPTC:Caption-Abstract=\"Detailed image description\" \\\n  -IPTC:By-line=\"Brand Name Photography\" \\\n  -IPTC:Credit=\"Brand Name\" \\\n  -IPTC:CopyrightNotice=\"Copyright 2026 Brand Name\" \\\n  -IPTC:Source=\"brandname.com\" \\\n  -XMP:Title=\"Product Photo Description\" \\\n  -XMP:Description=\"Detailed image description\" \\\n  -XMP:Creator=\"Brand Name Photography\" \\\n  -XMP:Rights=\"Copyright 2026 Brand Name\" \\\n  image.jpg\n\n# Batch inject to all images in directory\nexiftool -overwrite_original \\\n  -IPTC:By-line=\"Brand Name\" \\\n  -IPTC:CopyrightNotice=\"Copyright 2026 Brand Name\" \\\n  *.jpg *.webp *.png\n```\n\n**With ImageMagick (fallback):**\n```bash\nidentify -verbose image.jpg | head -50\n\nconvert input.jpg \\\n  -set comment \"Product Photo Description\" \\\n  -set IPTC:2:80 \"Brand Name Photography\" \\\n  -set IPTC:2:116 \"Copyright 2026 Brand Name\" \\\n  output.jpg\n```\n\nNote: WebP supports EXIF and XMP but not IPTC natively. For WebP files,\nuse XMP fields instead of IPTC. exiftool handles this conversion automatically.\n\n### AI-Generated Images: `DigitalSourceType` (Merchant Center requirement)\n\nFor product images produced by generative AI, **Google Merchant Center requires**\nIPTC `DigitalSourceType: TrainedAlgorithmicMedia` metadata. This is an\noperational policy requirement, not a ranking factor: feeds missing this label\non AI-generated imagery can be disapproved.\n\nPrimary source (Merchant Center AI-generated content policy):\nhttps:\u002F\u002Fsupport.google.com\u002Fmerchants\u002Fanswer\u002F14743464\n(the ai-optimization-guide does not document DigitalSourceType\u002FIPTC\u002FMerchant labeling.)\n\n**Audit command:**\n\n```bash\n# Audit a directory for the IPTC label (counts: missing, ai, captured, etc.)\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run iptc_ai_label.py audit .\u002Fimages\u002F --json\n\n# Audit a single image\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run iptc_ai_label.py audit .\u002Fhero.webp --json\n\n# Inject the AI label into an image\n\u002Fhome\u002Fnoirelab\u002F.config\u002Fopencode\u002Fskills\u002Fseo\u002Fbin\u002Fclaude-seo run iptc_ai_label.py inject .\u002Fai-hero.webp \\\n    --source-type trainedAlgorithmicMedia\n\n# Other vocabulary values:\n#   compositeSynthetic               (mix of captured + AI elements)\n#   algorithmicMedia                 (created purely by algorithm, NOT from sampled training data)\n#   compositeWithTrainedAlgorithmicMedia (e.g. AI inpainting\u002Foutpainting over real media)\n#   digitalCapture                   (fully captured photograph)\n```\n\n**Raw exiftool equivalents** (for ad-hoc usage):\n\n```bash\n# Inject manually\nexiftool \\\n  -XMP-iptcExt:DigitalSourceType=\"https:\u002F\u002Fcv.iptc.org\u002Fnewscodes\u002Fdigitalsourcetype\u002FtrainedAlgorithmicMedia\" \\\n  ai-generated-product.jpg\n\n# Audit: find images missing the label across a directory\nexiftool -if 'not $XMP-iptcExt:DigitalSourceType' \\\n  -filename -DigitalSourceType *.jpg *.webp *.png\n```\n\nGoogle extracts these IPTC `DigitalSourceType` values:\n- `trainedAlgorithmicMedia`: fully AI-generated (use this for diffusion-model\n  product imagery)\n- `compositeSynthetic`: mixes captured + AI-generated elements\n- `algorithmicMedia`: created purely by an algorithm, **not** from sampled\n  training data\n- `compositeWithTrainedAlgorithmicMedia`: composite of trained algorithmic\n  media + other media (e.g. AI inpainting\u002Foutpainting over a real photo)\n- `digitalCapture`: fully captured photograph (note: `digitalCapture` is **not**\n  on Google's extracted-values list, but is a valid IPTC value)\n\n> **Provenance signals (consumer-facing):** **SynthID** watermarks and **C2PA**\n> Content Credentials are emerging signals for AI media identification. Treat\n> product-surface coverage as subject to change unless verified from a current\n> Google-owned source.\n> This is detection\u002Ftransparency, **not** an extra required Merchant feed field\n> beyond IPTC DigitalSourceType.\n\n> **Licensable images:** to earn the Licensable badge, supply EITHER structured\n> data (`ImageObject` with the `license` property + `acquireLicensePage` for the\n> \"Get this image\" link) OR embedded IPTC photo metadata (Licensor URL \u002F Web\n> Statement of Rights). Cross-link `seo-schema` for the ImageObject markup.\n\n> **Discovery note:** image discovery now includes **visual search fan-out**\n> across Lens \u002F AI Mode \u002F Circle to Search (Gemini multimodal scene\u002Fobject\n> understanding), so images surface via scene, objects, and materials, not alt\n> text alone. No new published image-SEO lever yet; keep descriptive alt text +\n> clean structured data.\n\nWhen `\u002Fseo images optimize` is run on AI-generated assets, prompt the user to\nconfirm the source type and inject the matching IPTC value automatically.\n\nFor **AI-generated product titles and descriptions**, Google Merchant Center\nalso requires the AI-generated text to be separately specified and labeled in\nthe feed. This is enforced at the feed layer, not the page layer, flag this\nin cross-reference with `seo-ecommerce`.\n\n### Metadata Audit\n\n```bash\n# Quick audit with exiftool\nexiftool -IPTC:all -XMP:all -EXIF:ImageDescription image.jpg\n\n# Batch audit - find images missing IPTC Creator\nexiftool -if 'not $IPTC:By-line' -filename *.jpg *.webp *.png\n```\n\n### Full Optimization Pipeline\n\nFor maximum image SEO, run this pipeline on each image:\n\n1. **Audit existing metadata**: `exiftool -IPTC:all -XMP:all image.jpg`\n2. **Inject IPTC\u002FXMP metadata**: Creator, Copyright, Description\n3. **Convert to WebP**: `cwebp -q 82 -metadata all image.jpg -o image.webp`\n4. **Generate responsive variants**: 400w, 800w, 1200w\n5. **Verify metadata preserved**: `exiftool image.webp`\n6. **Generate `\u003Cpicture>` HTML**: AVIF > WebP > JPEG fallback chain\n\n### What Matters vs What Doesn't for Google Images\n\n| Factor | Impact | Where to Set |\n|--------|--------|--------------|\n| Alt text | **CRITICAL** (ranking) | HTML `\u003Cimg alt=\"\">` |\n| Filename | **HIGH** (ranking) | File system (descriptive, hyphenated) |\n| Page context | **HIGH** (ranking) | Surrounding HTML content |\n| File size\u002Fspeed | **MEDIUM** (indirect via CWV) | Compression + format conversion |\n| IPTC Creator\u002FCopyright | **LOW** (display only) | Image file metadata |\n| EXIF camera data | NONE | Irrelevant for SEO |\n| IPTC Keywords | NONE | Google ignores these |\n\n---\n\n## Error Handling\n\n| Scenario | Action |\n|----------|--------|\n| URL unreachable | Report connection error with status code. Suggest verifying URL and checking if site requires authentication. |\n| No images found on page | Report that no `\u003Cimg>` elements were detected. Suggest checking if images are loaded via JavaScript or CSS background-image. |\n| Images behind CDN or authentication | Note that image files could not be directly accessed for size analysis. Report available metadata (alt text, dimensions, format from markup) and flag inaccessible resources. |\n| exiftool not installed | Fall back to ImageMagick for metadata. Recommend: `sudo apt install libimage-exiftool-perl` |\n| cwebp not installed | Fall back to ImageMagick or FFmpeg for WebP conversion. Recommend: `sudo apt install webp` |\n| DataForSEO MCP not available | Skip Image SERP Analysis section. Note extension is not installed. |\n",{"name":5,"license":15,"metadata":64,"description":67,"argument-hint":68,"user-invocable":69},{"author":65,"version":66,"category":33},"AgriciDaniel","2.2.4","Image optimization analysis for SEO and performance. Checks alt text, file sizes, formats, responsive images, lazy loading, CLS prevention, image SERP rankings (via DataForSEO), and image file optimization (WebP\u002FAVIF conversion, IPTC\u002FXMP metadata injection). Use when user says \"image optimization\", \"alt text\", \"image SEO\", \"image size\", \"image audit\", \"optimize images\", \"image metadata\", \"image SERP\", \"convert to webp\", or \"image file optimize\".\n","[url]",true,"main","d8378e461d60315bd1ca8a6e71716df39b6abe4a","configs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-images","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup","https:\u002F\u002Fgithub.com\u002Fnoirelab","Artificial Intelligence Researcher |\r\nComputer Science majoring at UTFPR","2026-11-11 09:12:51",{"source":8,"skillName":5,"commands":78,"prompt":88,"zipAvailable":69},[79,82,85],{"tool":80,"command":81},"npx","npx skills add noirelab\u002Flinux-setup --skill seo-images",{"tool":83,"command":84},"bunx","bunx skills add noirelab\u002Flinux-setup --skill seo-images",{"tool":86,"command":87},"pnpm","pnpm dlx skills add noirelab\u002Flinux-setup --skill seo-images","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fseo-images\u002FSKILL.md",[90],{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":16},"LICENSE.txt","LICENSE","许可证",143,[96,123,158,183,202,218],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":101,"sourceHtmlUrl":102,"categories":103,"keywords":107,"publishedAt":59},"01M6C2Q1S6HCS7Y9TBQ2PJ2NAM","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fsynced\u002Ffcfa9261-0073-49cb-8312-19eea68f0c58_391f3767-a35d-4280-81a1-363cd861a8e6\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fclaude\u002Fskills\u002Fsynced\u002Ffcfa9261-0073-49cb-8312-19eea68f0c58_391f3767-a35d-4280-81a1-363cd861a8e6\u002Fskill-creator\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发",[108,109,58,110,111,112,113,114,115,51,116,117,46,118,44,119,39,120,121,37,122],"skill creator","creator","run evals","test","variance analysis","create","run","benchmark","improve","edit","evals","existing skill","accuracy","scratch","new",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":59},"01M6C2ZRGJ9HN4N9BP24DPNCR4","returns-reverse-logistics","Codified expertise for returns authorization, receipt and inspection, disposition decisions, refund processing, fraud detection, and warranty claims management. Informed by returns operations managers with 15+ years experience. Includes grading frameworks, disposition economics, fraud pattern recognition, and vendor recovery processes. Use when handling product returns, reverse logistics, refund decisions, return fraud detection, or warranty claims.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Freturns-reverse-logistics\u002FSKILL.md",[],[130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,46,146,147,148,149,150,151,152,153,154,39,155,156,37,157],"returns","returns reverse logistics","reverse logistics","reverse","github","code","product","https","authorization","detection","fraud","recovery","decisions","management","operations","vendor","claims management","frameworks","fraud detection","pattern","grading","processing","economics","managers","claims","expertise","refund","inspection",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":59},"01M6C2ZGWSNZGZZQ5VCFWHD2QT","quality-nonconformance","Codified expertise for quality control, non-conformance investigation, root cause analysis, corrective action, and supplier quality management in regulated manufacturing. Informed by quality engineers with 15+ years experience across FDA, IATF 16949, and AS9100 environments. Includes NCR lifecycle management, CAPA systems, SPC interpretation, and audit methodology. Use when investigating non-conformances, performing root cause analysis, managing CAPAs, interpreting SPC data, or handling supplier quality issues.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Fquality-nonconformance\u002FSKILL.md",[],[165,166,134,167,168,135,169,137,55,170,171,172,51,173,143,46,174,175,176,177,178,179,180,181,39,155,182,37],"quality","quality nonconformance","root cause analysis","interpretation","issues","data","methodology","lifecycle","investigation","fda","across","manufacturing","environments","corrective action","supplier quality management","action","conformance","root cause",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":59},"01M6C2Z8VQ9AYZYKPZW1KD9DX5","production-scheduling","Codified expertise for production scheduling, job sequencing, line balancing, changeover optimization, and bottleneck resolution in discrete and batch manufacturing. Informed by production schedulers with 15+ years experience. Includes TOC\u002Fdrum-buffer-rope, SMED, OEE analysis, disruption response frameworks, and ERP\u002FMES interaction patterns. Use when scheduling production, resolving bottlenecks, optimizing changeovers, responding to disruptions, or balancing manufacturing lines.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Fproduction-scheduling\u002FSKILL.md",[],[190,191,192,134,135,193,137,54,51,194,195,46,196,197,147,198,199,200,176,201,39,155,37],"Production","production scheduling","scheduling","batch","erp","bottleneck","toc","patterns","line","interaction","sequencing","buffer",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":208,"publishedAt":59},"01M6C2YR01NNN2Z1G18RN7F9MP","logistics-exception-management","Codified expertise for handling freight exceptions, shipment delays, damages, losses, and carrier disputes. Informed by logistics professionals with 15+ years operational experience. Includes escalation protocols, carrier-specific behaviors, claims procedures, and judgment frameworks. Use when handling shipping exceptions, freight claims, delivery issues, or carrier disputes.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Flogistics-exception-management\u002FSKILL.md",[],[143,209,134,135,210,169,211,137,212,46,147,213,214,215,216,154,39,155,217,37],"logistics exception management","shipping","protocols","escalation","delivery","claude-code","judgment","with","freight",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":224,"publishedAt":59},"01M6C2YC5PXTEJYBJJQZVXPQS0","inventory-demand-planning","Codified expertise for demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation at multi-location retailers. Informed by demand planners with 15+ years experience managing hundreds of SKUs. Includes forecasting method selection, ABC\u002FXYZ analysis, seasonal transition management, and vendor negotiation frameworks. Use when forecasting demand, setting safety stock, planning replenishment, managing promotions, or optimizing inventory levels.","https:\u002F\u002Fgithub.com\u002Fnoirelab\u002Flinux-setup\u002Fblob\u002Fmain\u002Fconfigs\u002Fcommon\u002Fopencode_home\u002Fskills\u002Finventory-demand-planning\u002FSKILL.md",[],[225,226,227,228,134,135,137,229,54,230,51,143,145,231,46,232,147,233,234,235,236,237,39,155,238,37],"planning","inventory","inventory demand planning","demand planning","negotiation","Safety","forecasting","selection","estimation","stock","seasonal","lift","at","transition"]