[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C4XWWYTS3HKE39BCM8R1M6":3,"skill-same:01M6C4XWWYTS3HKE39BCM8R1M6":46},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":13,"repositoryHtmlUrl":27,"repositoryHomepageUrl":28,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M6C4XWWYTS3HKE39BCM8R1M6","astro-images",null,"joshribakoff\u002Ffightingwithai.com","joshribakoff","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4021306?v=4","01M6C4XRSWK3RV2R7FF1CH2FGA","Josh Ribakoff","01M6C4XRYAPRF3PM6E2VY4MNXM",0,"MIT","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fastro-images\u002FSKILL.md",[],[18,19],"astro","astro images","2026-11-10 10:12:30",false,"# Astro Image Optimization\n\nUse `astro:assets` for all images. This enables automatic optimization (resizing, WebP\u002FAVIF conversion, lazy loading).\n\n## When to Use This Skill\n\nUse this skill when:\n- Adding images to `.astro` or `.mdx` files\n- Moving images from `\u002Fpublic` to optimized assets\n- Debugging 404s or unoptimized images in production\n\n## Rules\n\n- **Never use raw `\u003Cimg>` tags** in `.astro` or `.mdx` files\n- **Never reference images from `\u002Fpublic`** — bypasses optimization\n- **Always import images** from `src\u002Fassets\u002F`\n\n## Correct Pattern\n\n```astro\n---\nimport { Image } from \"astro:assets\";\nimport photo from \"..\u002Fassets\u002Fphoto.png\";\n---\n\n\u003CImage src={photo} alt=\"Description\" width={800} \u002F>\n```\n\n## In MDX\n\n```mdx\n---\nimport { Image } from \"astro:assets\";\nimport diagram from \"..\u002F..\u002Fassets\u002Fdiagram.png\";\n---\n\n\u003CImage src={diagram} alt=\"Diagram\" width={600} \u002F>\n```\n\n## Linting\n\nRun `npm run lint:assets` to catch violations. The linter flags:\n\n- Raw `\u003Cimg>` tags in `.astro` and `.mdx` files (error)\n- Markdown images from `\u002Fpublic` like `![](\u002Fimage.png)` (warning)\n- Direct `\u002Fsrc\u002F` paths in link\u002Fscript tags (error)\n",{},"main","456b6e5999d9613b2065544f7789689d31742769",".claude\u002Fskills\u002Fastro-images","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com","https:\u002F\u002Ffightingwithai.vercel.app","https:\u002F\u002Fgithub.com\u002Fjoshribakoff","joshribakoff.com","2026-01-22 14:44:35",{"source":7,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add joshribakoff\u002Ffightingwithai.com --skill astro-images",{"tool":38,"command":39},"bunx","bunx skills add joshribakoff\u002Ffightingwithai.com --skill astro-images",{"tool":41,"command":42},"pnpm","pnpm dlx skills add joshribakoff\u002Ffightingwithai.com --skill astro-images","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fastro-images\u002FSKILL.md",true,[],[47,54,62,69,80,93],{"skillNo":48,"name":49,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":20},"01M6C4Y9B23N3BZYDHRRVW13PF","simple-commands","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsimple-commands\u002FSKILL.md",[],[53],"simple commands",{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":20},"01M6C4Y7XQM8QNRMDDFXTDMW7P","meta-skill","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmeta-skill\u002FSKILL.md",[],[60,61],"Meta","meta skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":20},"01M6C4Y65GQJC86RRJN64NZ4R5","magic-links","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmagic-links\u002FSKILL.md",[],[68],"magic links",{"skillNo":70,"name":71,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":20},"01M6C4Y508MC06FWACP82JNYMN","copywriting","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcopywriting\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",[71],{"skillNo":81,"name":82,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":90,"publishedAt":20},"01M6C4Y2QWSAXM4QMZT7B148R7","content-ordering","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcontent-ordering\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[91,92],"content","content ordering",{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":20},"01M6C4Y0W01TCYVVFE4ZSQ8K02","code-cleanup","https:\u002F\u002Fgithub.com\u002Fjoshribakoff\u002Ffightingwithai.com\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcode-cleanup\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000030","开发工程师",[102,103,104],"cleanup","code","code cleanup"]