[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-drolosoft-auto-album-curator-en":3,"guides-for-drolosoft-auto-album-curator":490,"similar-k17dn1dvs99dqeq08n8313665x86n48d-en":491},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":241,"isFallback":225,"parentExtension":246,"providers":303,"relations":307,"repo":308,"tags":488,"workflow":489},1778686338567.5737,"k17dn1dvs99dqeq08n8313665x86n48d",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Monitor your Immich library for new photos that match existing albums and suggest additions. Keeps albums fresh by finding new photos that belong in existing collections based on GPS location, visual similarity (CLIP), and date patterns. Use when the user says \"update my albums\", \"refresh albums\", \"new photos for albums\", \"curate albums\", \"auto-curate\", \"keep albums fresh\", \"album suggestions\", \"what new photos belong in my albums\", \"smart album update\", or any variation of wanting to keep their albums up to date with recent imports.\n",{"claudeCode":12},"drolosoft/immich-photo-manager","auto-album-curator","https://github.com/drolosoft/immich-photo-manager",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":223,"workflow":239},1778686443797.111,"kn7e935n0dsqpyz0763v12zc3986m5vc","en",{"checks":20,"evaluatedAt":191,"extensionSummary":192,"features":193,"nonGoals":199,"promptVersionExtension":203,"promptVersionScoring":204,"purpose":205,"rationale":206,"score":207,"summary":208,"tags":209,"targetMarket":216,"tier":217,"useCases":218},[21,26,29,32,36,39,43,47,50,53,57,61,65,69,72,75,78,81,84,87,90,94,98,102,106,109,113,116,120,123,126,129,132,135,138,142,146,149,152,156,159,162,165,168,172,175,178,181,184,188],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly identifies the problem of keeping Immich photo albums up-to-date by automatically suggesting new photos based on various matching criteria.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers significant value beyond a simple prompt by intelligently combining GPS location, CLIP visual similarity, and temporal patterns to curate albums, which is not a default LLM behavior.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill is production-ready, covering the complete lifecycle of analyzing photos, suggesting additions, and applying them upon user approval.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The extension focuses on the single domain of Immich photo library album curation and management, with no unrelated capabilities.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's capabilities and provides relevant trigger phrases.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","The skill utilizes narrowly scoped MCP tools like `list_albums`, `get_album`, `search_metadata`, and `search_smart`, avoiding a single generalist execution tool.",{"category":44,"check":45,"severity":24,"summary":46},"Documentation","Configuration & parameter reference","The SKILL.md clearly documents the required connection parameters (Immich server URL, API key) and the steps for configuration.",{"category":33,"check":48,"severity":24,"summary":49},"Tool naming","The MCP tool names used in the SKILL.md are descriptive and adhere to a consistent naming convention.",{"category":33,"check":51,"severity":24,"summary":52},"Minimal I/O surface","The input parameters for tools appear to be well-defined, and the output formats described are relevant to the tasks.",{"category":54,"check":55,"severity":24,"summary":56},"License","License usability","The extension is licensed under the MIT license, as indicated in the LICENSE file and README.",{"category":58,"check":59,"severity":24,"summary":60},"Maintenance","Commit recency","The repository shows recent activity with commits within the last 3 months, indicating active maintenance.",{"category":58,"check":62,"severity":63,"summary":64},"Dependency Management","not_applicable","The extension does not appear to rely on third-party Python dependencies that would require explicit management beyond the base Python environment.",{"category":66,"check":67,"severity":24,"summary":68},"Security","Secret Management","Secrets such as API keys are handled via configuration and not echoed into logs or debug output, following best practices.",{"category":66,"check":70,"severity":24,"summary":71},"Injection","The skill's documentation emphasizes treating external data as such and does not suggest executing arbitrary instructions from loaded content.",{"category":66,"check":73,"severity":24,"summary":74},"Transitive Supply-Chain Grenades","The extension bundles its code and dependencies, and does not fetch external code or data at runtime for execution.",{"category":66,"check":76,"severity":24,"summary":77},"Sandbox Isolation","The skill operates within the defined project folder and interacts with the Immich API, without attempting to modify files outside its scope.",{"category":66,"check":79,"severity":24,"summary":80},"Sandbox escape primitives","No detached process spawns or retry loops around denied tool calls were found in the scripts.",{"category":66,"check":82,"severity":24,"summary":83},"Data Exfiltration","The skill handles sensitive data like API keys via configuration and does not exfiltrate data to third parties without explicit documentation.",{"category":66,"check":85,"severity":24,"summary":86},"Hidden Text Tricks","The bundled content and documentation appear free of hidden steering tricks or malicious Unicode characters.",{"category":66,"check":88,"severity":24,"summary":89},"Opaque code execution","The bundled scripts are in plain, readable Python and do not employ obfuscation techniques like base64 encoding or runtime fetching.",{"category":91,"check":92,"severity":24,"summary":93},"Portability","Structural Assumption","The skill relies on standard Immich API interactions and Python environment, with clear instructions for setup, avoiding assumptions about project structure.",{"category":95,"check":96,"severity":24,"summary":97},"Trust","Issues Attention","With 0 issues opened and 1 closed in the last 90 days, the issue engagement rate is high, indicating good maintainer responsiveness.",{"category":99,"check":100,"severity":24,"summary":101},"Versionin","Release Management","A meaningful version (1.1.0) is declared in the SKILL.md frontmatter, and GitHub releases are available.",{"category":103,"check":104,"severity":24,"summary":105},"Execution","Validation","The Python scripts interact with the Immich API, and while explicit schema validation isn't detailed, the structured nature of API calls implies robust internal handling.",{"category":66,"check":107,"severity":24,"summary":108},"Unguarded Destructive Operations","Destructive operations are guarded by user approval and the skill explicitly warns against proceeding if the Immich connection fails.",{"category":110,"check":111,"severity":24,"summary":112},"Code Execution","Error Handling","The skill has a prominent 'Connection Required' check and clear instructions to stop if the Immich server is not available, ensuring graceful failure.",{"category":110,"check":114,"severity":63,"summary":115},"Logging","As the skill primarily orchestrates API calls and presents findings, explicit audit logging beyond the transcript is not a primary requirement.",{"category":117,"check":118,"severity":24,"summary":119},"Compliance","GDPR","The skill operates on user's private photo library data, but does not submit personal data to third parties without explicit user action or approval.",{"category":117,"check":121,"severity":24,"summary":122},"Target market","The extension is designed for general Immich library management and has no regional or jurisdictional restrictions; targetMarket is global.",{"category":91,"check":124,"severity":24,"summary":125},"Runtime stability","The skill requires Python 3.10+ and an Immich instance, with clear instructions provided, ensuring stability across compatible environments.",{"category":44,"check":127,"severity":24,"summary":128},"README","A comprehensive README file exists and clearly states the extension's purpose, installation, and usage.",{"category":33,"check":130,"severity":24,"summary":131},"Tool surface size","The extension utilizes several MCP tools but presents a focused set of capabilities, well within the ideal range.",{"category":40,"check":133,"severity":24,"summary":134},"Overlapping near-synonym tools","The tools used appear distinct and cover specific functionalities within album curation, avoiding redundant synonyms.",{"category":44,"check":136,"severity":24,"summary":137},"Phantom features","All features described in the README and SKILL.md, such as AI-powered search and geographic album creation, have corresponding implementations.",{"category":139,"check":140,"severity":24,"summary":141},"Install","Installation instruction","The README provides clear, copy-pasteable installation instructions for use as a Claude plugin and notes compatibility with other MCP clients.",{"category":143,"check":144,"severity":24,"summary":145},"Errors","Actionable error messages","The skill provides a critical, actionable error message for connection failures, directing users to setup instructions.",{"category":103,"check":147,"severity":24,"summary":148},"Pinned dependencies","The skill relies on a specific Python version (3.10+) and standard libraries, with no complex third-party dependencies requiring pinning.",{"category":33,"check":150,"severity":24,"summary":151},"Dry-run preview","While not explicitly a `--dry-run` flag, the skill presents suggestions for approval before applying changes, serving as a safe preview mechanism.",{"category":153,"check":154,"severity":63,"summary":155},"Protocol","Idempotent retry & timeouts","The skill's operations are primarily read-based with explicit user approval for writes, and API interactions are assumed to handle idempotency and timeouts.",{"category":66,"check":157,"severity":24,"summary":158},"Telemetry opt-in","The extension does not appear to collect or emit any telemetry by default, adhering to opt-in principles.",{"category":40,"check":160,"severity":24,"summary":161},"Precise Purpose","The skill clearly states its purpose is to monitor Immich libraries for new photos matching existing albums and provides specific triggers.",{"category":40,"check":163,"severity":24,"summary":164},"Concise Frontmatter","The frontmatter is concise, clearly states the core capability, and lists relevant trigger phrases without excessive keywords.",{"category":44,"check":166,"severity":24,"summary":167},"Concise Body","The SKILL.md is well-structured, with the core instructions concise and deeper material (workflow, types) presented clearly.",{"category":169,"check":170,"severity":24,"summary":171},"Context","Progressive Disclosure","The SKILL.md outlines the workflow and uses clear headings, with detailed steps and scoring logic presented inline rather than in separate files.",{"category":169,"check":173,"severity":63,"summary":174},"Forked exploration","The skill's workflow is not exploratory in nature, focusing on direct analysis and suggestion rather than deep code review or multi-file inspection.",{"category":22,"check":176,"severity":24,"summary":177},"Usage examples","The SKILL.md includes a detailed workflow with code snippets and a clear explanation of how suggestions are presented and applied.",{"category":22,"check":179,"severity":24,"summary":180},"Edge cases","The SKILL.md addresses potential issues like large library analysis times and the requirement for the CLIP model, along with safety notes.",{"category":110,"check":182,"severity":24,"summary":183},"Tool Fallback","The SKILL.md frontmatter clearly states the requirement for the Immich MCP server and provides a fallback message if it's unavailable.",{"category":185,"check":186,"severity":24,"summary":187},"Safety","Halt on unexpected state","The skill mandates a connection check before proceeding and instructs the user to stop if the Immich server is not available.",{"category":91,"check":189,"severity":24,"summary":190},"Cross-skill coupling","The skill is self-contained and focuses on Immich album curation; it does not appear to implicitly rely on other skills.",1778686443688,"This skill monitors your Immich photo library, identifies new photos that fit into existing albums using GPS, CLIP, and date patterns, and suggests additions for user approval.",[194,195,196,197,198],"Monitors Immich library for new photos","Suggests additions to existing albums","Uses GPS, CLIP, and date patterns for matching","Requires user approval before adding photos","Provides detailed curation workflow and scoring",[200,201,202],"Automatically adding photos without user approval","Suggesting additions to albums for shared/public links without a visibility warning","Replacing the core Immich photo management functionality","3.0.0","4.4.0","To automate the process of keeping Immich photo albums fresh and up-to-date with new imports, reducing manual effort in photo organization.","Excellent documentation and well-defined scope with strong safety checks. Minor note on progressive disclosure where detailed logic could be in references, but inline is acceptable here.",99,"A highly polished and safe skill for automatically curating Immich photo albums.",[210,211,212,213,214,215],"immich","photos","albums","curation","organization","ai","global","verified",[219,220,221,222],"Updating albums after importing new photos","Periodically refreshing album contents","Keeping albums up-to-date with recent imports","Finding new photos that belong in existing collections",{"codeQuality":224,"collectedAt":226,"documentation":227,"maintenance":230,"security":236,"testCoverage":238},{"hasLockfile":225},false,1778686421191,{"descriptionLength":228,"readmeSize":229},540,8637,{"closedIssues90d":231,"forks":232,"hasChangelog":225,"manifestVersion":233,"openIssues90d":8,"pushedAt":234,"stars":235},1,4,"1.1.0",1778175631000,16,{"hasNpmPackage":225,"license":237,"smitheryVerified":225},"MIT",{"hasCi":225,"hasTests":225},{"updatedAt":240},1778686443797,{"basePath":242,"githubOwner":243,"githubRepo":244,"locale":18,"slug":13,"type":245},"skills/auto-album-curator","drolosoft","immich-photo-manager","skill",{"_creationTime":247,"_id":248,"community":249,"display":250,"identity":254,"parentExtension":257,"providers":287,"relations":299,"tags":300,"workflow":301},1778686338567.5732,"k17fptxxsmtdk9k5x99qw7re2586n8fq",{"reviewCount":8},{"description":251,"installMethods":252,"name":253,"sourceUrl":14},"MCP server for intelligent photo management with Immich — interactive HTML galleries with Cowork Actions Panel, geographic album curation, library cleanup, duplicate detection, people & face management, trash management, metadata repair, and 36 MCP tools. The first MCP server for self-hosted photo management.",{"claudeCode":244},"Immich Photo Manager",{"basePath":255,"githubOwner":243,"githubRepo":244,"locale":18,"slug":244,"type":256},"","plugin",{"_creationTime":258,"_id":259,"community":260,"display":261,"identity":265,"providers":267,"relations":281,"tags":283,"workflow":284},1778686338567.573,"k177jqq2va7fhvpdsch9vv5cbn86nwwg",{"reviewCount":8},{"description":262,"installMethods":263,"name":264,"sourceUrl":14},"Drolosoft Marketplace - AI-powered tools by Drolosoft",{"claudeCode":12},"drolosoft-marketplace",{"basePath":255,"githubOwner":243,"githubRepo":244,"locale":18,"slug":244,"type":266},"marketplace",{"evaluate":268,"extract":276},{"promptVersionExtension":269,"promptVersionScoring":204,"score":270,"tags":271,"targetMarket":216,"tier":217},"3.1.0",98,[272,210,273,274,214,275],"photo-management","ai-assistant","media","mcp",{"commitSha":277,"marketplace":278,"plugin":279},"HEAD",{"name":264,"pluginCount":231},{"mcpCount":8,"provider":280,"skillCount":8},"classify",{"repoId":282},"kd71cer955pa6pzdsewzf62dt986nbtd",[273,210,275,274,214,272],{"evaluatedAt":285,"extractAt":286,"updatedAt":285},1778686361336,1778686338567,{"evaluate":288,"extract":296},{"promptVersionExtension":203,"promptVersionScoring":204,"score":289,"tags":290,"targetMarket":216,"tier":217},95,[210,272,291,292,293,294,295],"gallery","self-hosted","ai-search","automation","media-organization",{"commitSha":277,"license":237,"plugin":297},{"mcpCount":8,"provider":280,"skillCount":298},12,{"parentExtensionId":259,"repoId":282},[293,294,291,210,295,272,292],{"evaluatedAt":302,"extractAt":286,"updatedAt":302},1778686398961,{"evaluate":304,"extract":306},{"promptVersionExtension":203,"promptVersionScoring":204,"score":207,"tags":305,"targetMarket":216,"tier":217},[210,211,212,213,214,215],{"commitSha":277},{"parentExtensionId":248,"repoId":282},{"_creationTime":309,"_id":282,"identity":310,"providers":311,"workflow":484},1778686332166.7776,{"githubOwner":243,"githubRepo":244,"sourceUrl":14},{"classify":312,"discover":468,"github":471},{"commitSha":277,"extensions":313},[314,327,370,383,388,396,404,412,420,428,436,444,452,460],{"basePath":255,"description":262,"displayName":264,"installMethods":315,"rationale":316,"selectedPaths":317,"source":326,"sourceLanguage":18,"type":266},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[318,321,323],{"path":319,"priority":320},".claude-plugin/marketplace.json","mandatory",{"path":322,"priority":320},"README.md",{"path":324,"priority":325},"LICENSE","high","rule",{"basePath":255,"description":251,"displayName":244,"installMethods":328,"license":237,"rationale":329,"selectedPaths":330,"source":326,"sourceLanguage":18,"type":256},{"claudeCode":244},"plugin manifest at .claude-plugin/plugin.json",[331,333,334,335,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368],{"path":332,"priority":320},".claude-plugin/plugin.json",{"path":322,"priority":320},{"path":324,"priority":325},{"path":336,"priority":337},"skills/album-manager/SKILL.md","medium",{"path":339,"priority":337},"skills/auto-album-curator/SKILL.md",{"path":341,"priority":337},"skills/duplicate-report/SKILL.md",{"path":343,"priority":337},"skills/library-health-report/SKILL.md",{"path":345,"priority":337},"skills/metadata-fixer/SKILL.md",{"path":347,"priority":337},"skills/people-report/SKILL.md",{"path":349,"priority":337},"skills/photo-cleanup/SKILL.md",{"path":351,"priority":337},"skills/photo-search/SKILL.md",{"path":353,"priority":337},"skills/rotate-photos/SKILL.md",{"path":355,"priority":337},"skills/storage-optimizer/SKILL.md",{"path":357,"priority":337},"skills/timeline-gaps/SKILL.md",{"path":359,"priority":337},"skills/travel-map/SKILL.md",{"path":361,"priority":325},"commands/cleanup.md",{"path":363,"priority":325},"commands/create-album.md",{"path":365,"priority":325},"commands/immich-status.md",{"path":367,"priority":325},"commands/my-travels.md",{"path":369,"priority":325},"commands/setup-immich-photo-manager.md",{"basePath":371,"description":372,"displayName":373,"installMethods":374,"rationale":375,"selectedPaths":376,"source":326,"sourceLanguage":18,"type":245},"skills/album-manager","Create, curate, and publish Immich albums organized by geography, theme, or custom criteria. Use when the user says \"create an album\", \"organize my photos by location\", \"make a gallery album\", \"curate photos from Italy\", \"publish album\", \"geographic albums\", \"album from my trip to X\", \"share this album\", or any variation of creating, managing, or publishing photo albums in Immich. Also triggers on \"what albums do I have\", \"list albums\", \"album stats\", \"show me photos from\", \"generate gallery for\", \"show me the album\".\n","album-manager",{"claudeCode":12},"SKILL.md frontmatter at skills/album-manager/SKILL.md",[377,379,381],{"path":378,"priority":320},"SKILL.md",{"path":380,"priority":337},"references/geographic-search-patterns.md",{"path":382,"priority":337},"references/viewer-template-spec.md",{"basePath":242,"description":10,"displayName":13,"installMethods":384,"rationale":385,"selectedPaths":386,"source":326,"sourceLanguage":18,"type":245},{"claudeCode":12},"SKILL.md frontmatter at skills/auto-album-curator/SKILL.md",[387],{"path":378,"priority":320},{"basePath":389,"description":390,"displayName":391,"installMethods":392,"rationale":393,"selectedPaths":394,"source":326,"sourceLanguage":18,"type":245},"skills/duplicate-report","Run a comprehensive duplicate analysis on an Immich photo library using perceptual hashing. Finds cross-source duplicates (e.g. Apple Photos vs Google Photos exports), internal duplicates, and generates a detailed report with removal recommendations. Use when the user says \"find duplicates\", \"duplicate report\", \"how many duplicates\", \"library health check\", \"photo dedup report\", \"run duplicate analysis\", \"compare my photo sources\", or any variation of wanting to understand duplicate photos across import sources.\n","duplicate-report",{"claudeCode":12},"SKILL.md frontmatter at skills/duplicate-report/SKILL.md",[395],{"path":378,"priority":320},{"basePath":397,"description":398,"displayName":399,"installMethods":400,"rationale":401,"selectedPaths":402,"source":326,"sourceLanguage":18,"type":245},"skills/library-health-report","Run a comprehensive health check on an Immich photo library — asset counts, storage usage, metadata completeness, orphaned files, and quality indicators. Use when the user says \"library health\", \"health report\", \"library status\", \"library audit\", \"how healthy is my library\", \"photo stats\", \"library overview\", \"what's in my library\", \"library report\", or any variation of wanting a comprehensive overview of their photo library's state.\n","library-health-report",{"claudeCode":12},"SKILL.md frontmatter at skills/library-health-report/SKILL.md",[403],{"path":378,"priority":320},{"basePath":405,"description":406,"displayName":407,"installMethods":408,"rationale":409,"selectedPaths":410,"source":326,"sourceLanguage":18,"type":245},"skills/metadata-fixer","Scan for and fix broken or missing photo metadata — dates, GPS coordinates, timezone offsets, and camera info. Detects suspicious patterns (midnight/noon timestamps, missing GPS on geotagged trips) and proposes corrections using folder structure, neighboring photos, and EXIF inference. Use when the user says \"fix metadata\", \"fix dates\", \"wrong dates\", \"missing GPS\", \"metadata repair\", \"exif fix\", \"photos have wrong time\", \"noon dates\", \"midnight timestamps\", \"fix my photo dates\", \"metadata fixer\", or any variation of wanting to repair photo metadata.\n","metadata-fixer",{"claudeCode":12},"SKILL.md frontmatter at skills/metadata-fixer/SKILL.md",[411],{"path":378,"priority":320},{"basePath":413,"description":414,"displayName":415,"installMethods":416,"rationale":417,"selectedPaths":418,"source":326,"sourceLanguage":18,"type":245},"skills/people-report","Generate a report on people in your Immich photo library — unique faces detected, photos per person, unnamed faces, people appearing together, and face recognition quality. Use when the user says \"people report\", \"faces report\", \"who's in my library\", \"unnamed faces\", \"face recognition\", \"how many people\", \"people stats\", \"who appears most\", \"tag my faces\", \"face cleanup\", \"person report\", or any variation of wanting to understand the people in their photo library.\n","people-report",{"claudeCode":12},"SKILL.md frontmatter at skills/people-report/SKILL.md",[419],{"path":378,"priority":320},{"basePath":421,"description":422,"displayName":423,"installMethods":424,"rationale":425,"selectedPaths":426,"source":326,"sourceLanguage":18,"type":245},"skills/photo-cleanup","Detect and remove screenshots, duplicates, and low-quality photos from an Immich library. Use when the user says \"clean up my photos\", \"remove screenshots\", \"find duplicates\", \"deduplicate\", \"photo cleanup\", \"library cleanup\", \"how many screenshots do I have\", \"free up space\", \"remove junk photos\", or any variation of cleaning, deduplicating, or optimizing a photo library.\n","photo-cleanup",{"claudeCode":12},"SKILL.md frontmatter at skills/photo-cleanup/SKILL.md",[427],{"path":378,"priority":320},{"basePath":429,"description":430,"displayName":431,"installMethods":432,"rationale":433,"selectedPaths":434,"source":326,"sourceLanguage":18,"type":245},"skills/photo-search","Search and explore an Immich photo library using natural language, GPS locations, dates, people, cameras, and AI-powered visual search (CLIP). Use when the user says \"find photos of\", \"search my photos\", \"show me pictures from\", \"where are my photos of\", \"do I have photos of\", \"find all screenshots\", \"photos taken with\", \"photos from 2019\", \"photos near\", \"photos of [person]\", or any variation of searching, browsing, or exploring their photo library.\n","photo-search",{"claudeCode":12},"SKILL.md frontmatter at skills/photo-search/SKILL.md",[435],{"path":378,"priority":320},{"basePath":437,"description":438,"displayName":439,"installMethods":440,"rationale":441,"selectedPaths":442,"source":326,"sourceLanguage":18,"type":245},"skills/rotate-photos","Bulk rotate photos in an Immich library — by album or asset IDs. Non-destructive, original files are never modified. Supports undo/revert. Use when the user says \"rotate photos\", \"rotate album\", \"fix rotation\", \"photos are sideways\", \"rotate 90\", \"rotate clockwise\", \"rotate counterclockwise\", \"upside down photos\", \"wrong orientation\", \"bulk rotate\", \"rotate multiple\", or any variation of wanting to rotate one or more photos.\n","rotate-photos",{"claudeCode":12},"SKILL.md frontmatter at skills/rotate-photos/SKILL.md",[443],{"path":378,"priority":320},{"basePath":445,"description":446,"displayName":447,"installMethods":448,"rationale":449,"selectedPaths":450,"source":326,"sourceLanguage":18,"type":245},"skills/storage-optimizer","Analyze disk usage in an Immich photo library and identify opportunities to reclaim storage — redundant RAW+JPEG pairs, oversized videos, bloated sidecar files, and format inefficiencies. Use when the user says \"storage\", \"disk space\", \"what's eating my disk\", \"free up space\", \"storage report\", \"disk usage\", \"large files\", \"optimize storage\", \"space analysis\", \"how much space\", \"biggest files\", or any variation of wanting to understand or reduce storage usage.\n","storage-optimizer",{"claudeCode":12},"SKILL.md frontmatter at skills/storage-optimizer/SKILL.md",[451],{"path":378,"priority":320},{"basePath":453,"description":454,"displayName":455,"installMethods":456,"rationale":457,"selectedPaths":458,"source":326,"sourceLanguage":18,"type":245},"skills/timeline-gaps","Analyze the photo timeline to find suspicious gaps — months or years with zero or very few photos. Helps identify failed imports, missing backups, or periods where photos exist in only one ecosystem. Use when the user says \"timeline gaps\", \"missing months\", \"missing photos\", \"are there gaps\", \"what months am I missing\", \"photo timeline\", \"coverage check\", \"find missing periods\", \"when am I missing photos\", or any variation of wanting to find holes in their photo timeline.\n","timeline-gaps",{"claudeCode":12},"SKILL.md frontmatter at skills/timeline-gaps/SKILL.md",[459],{"path":378,"priority":320},{"basePath":461,"description":462,"displayName":463,"installMethods":464,"rationale":465,"selectedPaths":466,"source":326,"sourceLanguage":18,"type":245},"skills/travel-map","Generate an interactive map showing every location where photos were taken, clustered by city/region with photo counts, date ranges, and album links. Outputs a standalone HTML file with Leaflet.js that can be hosted or viewed locally. Use when the user says \"travel map\", \"show me everywhere I've been\", \"photo map\", \"map my photos\", \"where have I traveled\", \"GPS map\", \"location map\", \"map of my trips\", \"generate a map\", \"interactive map\", or any variation of wanting to see their photos plotted on a map.\n","travel-map",{"claudeCode":12},"SKILL.md frontmatter at skills/travel-map/SKILL.md",[467],{"path":378,"priority":320},{"sources":469},[470],"manual",{"closedIssues90d":231,"description":472,"forks":232,"homepage":473,"license":237,"openIssues90d":8,"pushedAt":234,"readmeSize":229,"stars":235,"topics":474},"📸🧹🗺️ MCP server for intelligent photo management with Immich — search, curate geographic albums, clean up libraries, and publish galleries","https://drolosoft.com/immich-photo-manager.html?lang=en",[212,475,476,477,478,291,479,210,275,480,481,272,211,292,482,483],"claude","claude-plugin","cleanup","duplicates","geolocation","mcp-server","metadata","immich-plugin","python",{"classifiedAt":485,"discoverAt":486,"extractAt":487,"githubAt":487,"updatedAt":485},1778686338385,1778686332166,1778686336662,[215,212,213,210,214,211],{"evaluatedAt":240,"extractAt":286,"updatedAt":240},[],[492,509,534,551,568,587],{"_creationTime":493,"_id":494,"community":495,"display":496,"identity":498,"providers":499,"relations":505,"tags":506,"workflow":507},1778686338567.5735,"k176xjm76xfsyx4hn82v2rdef986n0js",{"reviewCount":8},{"description":372,"installMethods":497,"name":373,"sourceUrl":14},{"claudeCode":12},{"basePath":371,"githubOwner":243,"githubRepo":244,"locale":18,"slug":373,"type":245},{"evaluate":500,"extract":504},{"promptVersionExtension":203,"promptVersionScoring":204,"score":501,"tags":502,"targetMarket":216,"tier":217},96,[210,211,212,214,291,503],"media-management",{"commitSha":277},{"parentExtensionId":248,"repoId":282},[212,291,210,503,214,211],{"evaluatedAt":508,"extractAt":286,"updatedAt":508},1778686420761,{"_creationTime":510,"_id":511,"community":512,"display":513,"identity":518,"providers":522,"relations":527,"tags":530,"workflow":531},1778685949178.8154,"k170c8hv2jp78hhnxyy3bbwx3986ny1g",{"reviewCount":8},{"description":514,"installMethods":515,"name":244,"sourceUrl":517},"Manage your self-hosted Immich photo library through conversation — natural language search, geographic album curation, duplicate detection, library health audits, and interactive HTML galleries. Install: claude plugin install immich-photo-manager",{"claudeCode":516},"davepoon/buildwithclaude","https://github.com/davepoon/buildwithclaude",{"basePath":519,"githubOwner":520,"githubRepo":521,"locale":18,"slug":244,"type":245},"plugins/all-skills/skills/immich-photo-manager","davepoon","buildwithclaude",{"evaluate":523,"extract":526},{"promptVersionExtension":203,"promptVersionScoring":204,"score":289,"tags":524,"targetMarket":216,"tier":217},[210,211,274,291,525,214],"search",{"commitSha":277},{"parentExtensionId":528,"repoId":529},"k1779wwzgaaxeqtvembbktrb1d86n4tf","kd719kw54vhmcscq7ckdp59fg586mnt6",[291,210,274,214,211,525],{"evaluatedAt":532,"extractAt":533,"updatedAt":532},1778690189801,1778685949178,{"_creationTime":535,"_id":536,"community":537,"display":538,"identity":540,"providers":541,"relations":547,"tags":548,"workflow":549},1778686338567.5747,"k17ccdwa413myg37b7nsftv7h986mern",{"reviewCount":8},{"description":414,"installMethods":539,"name":244,"sourceUrl":14},{"claudeCode":12},{"basePath":413,"githubOwner":243,"githubRepo":244,"locale":18,"slug":415,"type":245},{"evaluate":542,"extract":546},{"promptVersionExtension":203,"promptVersionScoring":204,"score":207,"tags":543,"targetMarket":216,"tier":217},[210,211,544,545,275],"face-recognition","reporting",{"commitSha":277,"license":237},{"parentExtensionId":248,"repoId":282},[544,210,275,211,545],{"evaluatedAt":550,"extractAt":286,"updatedAt":550},1778686543941,{"_creationTime":552,"_id":553,"community":554,"display":555,"identity":557,"providers":558,"relations":564,"tags":565,"workflow":566},1778686338567.5752,"k17ayghah8cpdc4r6wv78gvd8x86ns4c",{"reviewCount":8},{"description":430,"installMethods":556,"name":253,"sourceUrl":14},{"claudeCode":12},{"basePath":429,"githubOwner":243,"githubRepo":244,"locale":18,"slug":431,"type":245},{"evaluate":559,"extract":563},{"promptVersionExtension":203,"promptVersionScoring":204,"score":560,"tags":561,"targetMarket":216,"tier":217},97,[210,211,525,291,215,562,481],"cli",{"commitSha":277,"license":237},{"parentExtensionId":248,"repoId":282},[215,562,291,210,481,211,525],{"evaluatedAt":567,"extractAt":286,"updatedAt":567},1778686618843,{"_creationTime":569,"_id":570,"community":571,"display":572,"identity":574,"providers":575,"relations":583,"tags":584,"workflow":585},1778686338567.574,"k17b0q5xepcajzr3qkzgtkvqxs86m7az",{"reviewCount":8},{"description":390,"installMethods":573,"name":391,"sourceUrl":14},{"claudeCode":12},{"basePath":389,"githubOwner":243,"githubRepo":244,"locale":18,"slug":391,"type":245},{"evaluate":576,"extract":582},{"promptVersionExtension":203,"promptVersionScoring":204,"score":289,"tags":577,"targetMarket":216,"tier":581},[210,211,578,579,580,545],"deduplication","perceptual-hashing","library-management","community",{"commitSha":277},{"parentExtensionId":248,"repoId":282},[578,210,580,579,211,545],{"evaluatedAt":586,"extractAt":286,"updatedAt":586},1778686474905,{"_creationTime":588,"_id":589,"community":590,"display":591,"identity":593,"providers":594,"relations":603,"tags":604,"workflow":605},1778686338567.5762,"k1768hvz5w3mqfjw0meya0xq2986me2d",{"reviewCount":8},{"description":462,"installMethods":592,"name":463,"sourceUrl":14},{"claudeCode":12},{"basePath":461,"githubOwner":243,"githubRepo":244,"locale":18,"slug":463,"type":245},{"evaluate":595,"extract":602},{"promptVersionExtension":203,"promptVersionScoring":204,"score":596,"tags":597,"targetMarket":216,"tier":581},88,[211,598,599,600,601,210],"mapping","geotagging","html","data-visualization",{"commitSha":277},{"parentExtensionId":248,"repoId":282},[601,599,600,210,598,211],{"evaluatedAt":606,"extractAt":286,"updatedAt":606},1778686725752]