[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-drolosoft-album-manager-zh-CN":3,"guides-for-drolosoft-album-manager":493,"similar-k176xjm76xfsyx4hn82v2rdef986n0js-zh-CN":494},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":244,"isFallback":249,"parentExtension":250,"providers":306,"relations":310,"repo":311,"tags":491,"workflow":492},1778686338567.5735,"k176xjm76xfsyx4hn82v2rdef986n0js",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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",{"claudeCode":12},"drolosoft/immich-photo-manager","album-manager","https://github.com/drolosoft/immich-photo-manager",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":226,"workflow":242},1778686420761.6038,"kn7bq6f73pj2ep6tq03ytjfsad86met4","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"promptVersionExtension":206,"promptVersionScoring":207,"purpose":208,"rationale":209,"score":210,"summary":211,"tags":212,"targetMarket":219,"tier":220,"useCases":221},[21,26,29,32,36,39,43,48,51,54,58,62,66,70,73,76,79,82,85,88,92,96,100,104,108,111,114,117,121,124,127,130,133,136,139,143,147,151,154,158,161,164,167,170,174,177,180,183,186,190],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly names the problem of organizing and publishing Immich albums by geography, theme, or custom criteria, with specific trigger phrases.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The extension offers significant value beyond basic API calls by intelligently organizing photos geographically, fixing timestamps, detecting duplicates, and creating interactive galleries, which is more than a thin wrapper.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The extension covers the complete lifecycle of album creation, management, and publishing, including prerequisites and error handling, making it ready for real-world use.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The extension focuses solely on managing Immich photo albums and associated metadata, without incorporating unrelated functionalities.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The provided description is concise, readable, and accurately reflects the extension's capabilities and use cases.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","All exposed tools are narrow verb-noun specialists (e.g., `immich_create_album`, `immich_search_assets`), facilitating precise agent selection.",{"category":44,"check":45,"severity":46,"summary":47},"Documentation","Configuration & parameter reference","info","While parameters for tools are generally clear, the documentation doesn't explicitly detail default values for all parameters or the precedence order of configuration files.",{"category":33,"check":49,"severity":24,"summary":50},"Tool naming","All Immich MCP tool names are descriptive and follow a clear verb-noun convention.",{"category":33,"check":52,"severity":24,"summary":53},"Minimal I/O surface","Tool parameters request only necessary data, and responses provide only promised payloads, avoiding extraneous diagnostic information.",{"category":55,"check":56,"severity":24,"summary":57},"License","License usability","The extension is licensed under the MIT license, as confirmed by the bundled LICENSE file, which is a permissive open-source license.",{"category":59,"check":60,"severity":24,"summary":61},"Maintenance","Commit recency","The last commit was on May 7, 2026, which is within the last 3 months.",{"category":59,"check":63,"severity":64,"summary":65},"Dependency Management","not_applicable","The extension does not appear to use third-party dependencies that require specific management beyond the Python runtime.",{"category":67,"check":68,"severity":24,"summary":69},"Security","Secret Management","The extension requires an Immich API key but correctly instructs the user to configure it via environment variables or a setup command, avoiding hardcoding or echoing secrets.",{"category":67,"check":71,"severity":24,"summary":72},"Injection","The extension treats input data as untrusted and has clear instructions regarding the use of external data, like CLIP search queries.",{"category":67,"check":74,"severity":24,"summary":75},"Transitive Supply-Chain Grenades","All necessary code and assets are bundled within the repository; there are no runtime downloads or execution of remote content.",{"category":67,"check":77,"severity":24,"summary":78},"Sandbox Isolation","The extension operates within the expected scopes and does not attempt to modify files outside of its designated project or output directories.",{"category":67,"check":80,"severity":24,"summary":81},"Sandbox escape primitives","No detached process spawns or deny-retry loops were found in the extension's scripts or logic.",{"category":67,"check":83,"severity":24,"summary":84},"Data Exfiltration","The extension requires user authentication (API key) but does not exfiltrate any confidential data or personal information to third parties without explicit user action.",{"category":67,"check":86,"severity":24,"summary":87},"Hidden Text Tricks","The bundled content and descriptions are free of hidden steering tricks, invisible characters, or obfuscated instructions.",{"category":89,"check":90,"severity":24,"summary":91},"Hooks","Opaque code execution","The bundled scripts are plain, readable source code without obfuscation, base64 payloads, or runtime fetches.",{"category":93,"check":94,"severity":24,"summary":95},"Portability","Structural Assumption","The skill clearly states its prerequisites and makes no assumptions about user project structure outside of what's necessary for Immich.",{"category":97,"check":98,"severity":24,"summary":99},"Trust","Issues Attention","With 0 issues opened and 1 closed in the last 90 days, the closure rate is high, indicating active maintenance.",{"category":101,"check":102,"severity":24,"summary":103},"Versioning","Release Management","The extension declares a version (1.1.0) in the SKILL.md frontmatter, providing a clear version signal.",{"category":105,"check":106,"severity":24,"summary":107},"Code Execution","Validation","Input parameters for MCP tools appear to be well-defined and validated through the tool schemas.",{"category":67,"check":109,"severity":24,"summary":110},"Unguarded Destructive Operations","Destructive operations like deleting albums are guarded by user prompts and clear instructions, with a rollback procedure documented.",{"category":105,"check":112,"severity":24,"summary":113},"Error Handling","The skill includes a mandatory `ping` check and explicit instructions to stop if the Immich MCP server is unavailable, providing clear user feedback on failure.",{"category":105,"check":115,"severity":64,"summary":116},"Logging","The extension does not perform destructive actions or outbound calls that necessitate a local audit log.",{"category":118,"check":119,"severity":64,"summary":120},"Compliance","GDPR","The extension operates on photo metadata and does not handle personal data that would require GDPR sanitization.",{"category":118,"check":122,"severity":24,"summary":123},"Target market","The extension operates globally, relying on the Immich server's location and user-provided coordinates, with no regional restrictions.",{"category":93,"check":125,"severity":24,"summary":126},"Runtime stability","The extension is written in Python and relies on standard libraries, making it portable across different operating systems with Python 3.10+.",{"category":44,"check":128,"severity":24,"summary":129},"README","The README file exists and provides a comprehensive overview of the extension's purpose, features, and setup instructions.",{"category":33,"check":131,"severity":24,"summary":132},"Tool surface size","The extension exposes a focused set of 11 tools, fitting within the ideal range.",{"category":40,"check":134,"severity":24,"summary":135},"Overlapping near-synonym tools","The exposed tools have distinct names and functionalities, avoiding redundancy or near-synonyms that could confuse the model.",{"category":44,"check":137,"severity":24,"summary":138},"Phantom features","All features advertised in the README and description correspond to implemented tools and functionalities.",{"category":140,"check":141,"severity":24,"summary":142},"Install","Installation instruction","The README provides clear, copy-pasteable installation instructions for Claude plugins and mentions manual MCP server setup.",{"category":144,"check":145,"severity":24,"summary":146},"Errors","Actionable error messages","Errors, especially connection failures, provide clear messages including the cause and remediation steps (e.g., setup command).",{"category":148,"check":149,"severity":64,"summary":150},"Execution","Pinned dependencies","The extension relies on the Python runtime and standard libraries, with no specific bundled script dependencies that require pinning.",{"category":33,"check":152,"severity":64,"summary":153},"Dry-run preview","The extension primarily creates and manages albums; specific dry-run modes for all operations are not explicitly documented but implied through user confirmation.",{"category":155,"check":156,"severity":24,"summary":157},"Protocol","Idempotent retry & timeouts","Immich MCP tools handle their own operations, and the extension relies on the underlying API's idempotency and timeout handling. The initial `ping` check acts as a pre-call guard.",{"category":118,"check":159,"severity":64,"summary":160},"Telemetry opt-in","The extension does not emit any telemetry.",{"category":40,"check":162,"severity":24,"summary":163},"Precise Purpose","The SKILL.md frontmatter precisely defines the artifact (Immich albums) and the user intent (create, curate, publish, manage), with clear triggers and boundaries.",{"category":40,"check":165,"severity":24,"summary":166},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the core capability and provides relevant trigger phrases.",{"category":44,"check":168,"severity":24,"summary":169},"Concise Body","The SKILL.md is well-structured, delegating detailed procedures and references to separate files, keeping the main body focused.",{"category":171,"check":172,"severity":24,"summary":173},"Context","Progressive Disclosure","Detailed information such as search patterns and template specifications are provided in separate reference files, enhancing readability of the main SKILL.md.",{"category":171,"check":175,"severity":64,"summary":176},"Forked exploration","The skill is not primarily an exploration or deep code review tool, so `context: fork` is not applicable.",{"category":22,"check":178,"severity":24,"summary":179},"Usage examples","The SKILL.md and README provide clear, end-to-end examples for album creation, gallery generation, and searching, demonstrating input, invocation, and expected outcomes.",{"category":22,"check":181,"severity":24,"summary":182},"Edge cases","The skill documents failure modes like missing GPS data and connection issues, providing recovery steps and alternative strategies.",{"category":105,"check":184,"severity":64,"summary":185},"Tool Fallback","The extension directly uses Immich MCP tools and does not rely on optional external tools with fallbacks.",{"category":187,"check":188,"severity":24,"summary":189},"Safety","Halt on unexpected state","The mandatory initial `ping` check ensures the necessary Immich connection is present, halting execution if the state is unexpected.",{"category":93,"check":191,"severity":24,"summary":192},"Cross-skill coupling","The skill is self-contained and does not implicitly rely on other skills; cross-skill coordination is not a requirement for its core functionality.",1778686420644,"This skill allows users to create, curate, and publish photo albums in Immich, organizing them by geography, theme, or custom criteria. It leverages Immich MCP tools for searching assets, creating albums, managing shared links, and generating interactive HTML galleries.",[196,197,198,199,200],"Automated album creation based on geography, theme, or custom criteria","Intelligent photo search using GPS, CLIP text queries, and date ranges","Generation of interactive HTML galleries with embedded thumbnails","Management of Immich albums including creation, deletion, and sharing","Metadata repair and library cleanup suggestions",[202,203,204,205],"Directly modifying or deleting original photos","Managing albums outside of the Immich platform","Performing complex AI-driven photo analysis beyond album curation and search","Replacing the core Immich application functionality","3.0.0","4.4.0","To intelligently organize and manage Immich photo libraries by creating curated albums based on location, theme, or user-defined criteria, simplifying photo organization for users.","High quality documentation, clear scope, and robust error handling contribute to a verified tier. Minor info finding on default parameter documentation.",96,"A high-quality skill for managing Immich photo albums with excellent documentation and clear functionality.",[213,214,215,216,217,218],"immich","photos","albums","organization","gallery","media-management","global","verified",[222,223,224,225],"Creating albums for travel photos organized by location","Generating shareable photo galleries for events or trips","Organizing photos by specific themes or custom tags","Managing and cleaning up a large Immich photo library",{"codeQuality":227,"collectedAt":229,"documentation":230,"maintenance":233,"security":239,"testCoverage":241},{"hasLockfile":228},false,1778686403059,{"descriptionLength":231,"readmeSize":232},524,8637,{"closedIssues90d":234,"forks":235,"hasChangelog":228,"manifestVersion":236,"openIssues90d":8,"pushedAt":237,"stars":238},1,4,"1.1.0",1778175631000,16,{"hasNpmPackage":228,"license":240,"smitheryVerified":228},"MIT",{"hasCi":228,"hasTests":228},{"updatedAt":243},1778686420761,{"basePath":245,"githubOwner":246,"githubRepo":247,"locale":18,"slug":13,"type":248},"skills/album-manager","drolosoft","immich-photo-manager","skill",true,{"_creationTime":251,"_id":252,"community":253,"display":254,"identity":258,"parentExtension":261,"providers":291,"relations":302,"tags":303,"workflow":304},1778686338567.5732,"k17fptxxsmtdk9k5x99qw7re2586n8fq",{"reviewCount":8},{"description":255,"installMethods":256,"name":257,"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":247},"Immich Photo Manager",{"basePath":259,"githubOwner":246,"githubRepo":247,"locale":18,"slug":247,"type":260},"","plugin",{"_creationTime":262,"_id":263,"community":264,"display":265,"identity":269,"providers":271,"relations":285,"tags":287,"workflow":288},1778686338567.573,"k177jqq2va7fhvpdsch9vv5cbn86nwwg",{"reviewCount":8},{"description":266,"installMethods":267,"name":268,"sourceUrl":14},"Drolosoft Marketplace - AI-powered tools by Drolosoft",{"claudeCode":12},"drolosoft-marketplace",{"basePath":259,"githubOwner":246,"githubRepo":247,"locale":18,"slug":247,"type":270},"marketplace",{"evaluate":272,"extract":280},{"promptVersionExtension":273,"promptVersionScoring":207,"score":274,"tags":275,"targetMarket":219,"tier":220},"3.1.0",98,[276,213,277,278,216,279],"photo-management","ai-assistant","media","mcp",{"commitSha":281,"marketplace":282,"plugin":283},"HEAD",{"name":268,"pluginCount":234},{"mcpCount":8,"provider":284,"skillCount":8},"classify",{"repoId":286},"kd71cer955pa6pzdsewzf62dt986nbtd",[277,213,279,278,216,276],{"evaluatedAt":289,"extractAt":290,"updatedAt":289},1778686361336,1778686338567,{"evaluate":292,"extract":299},{"promptVersionExtension":206,"promptVersionScoring":207,"score":293,"tags":294,"targetMarket":219,"tier":220},95,[213,276,217,295,296,297,298],"self-hosted","ai-search","automation","media-organization",{"commitSha":281,"license":240,"plugin":300},{"mcpCount":8,"provider":284,"skillCount":301},12,{"parentExtensionId":263,"repoId":286},[296,297,217,213,298,276,295],{"evaluatedAt":305,"extractAt":290,"updatedAt":305},1778686398961,{"evaluate":307,"extract":309},{"promptVersionExtension":206,"promptVersionScoring":207,"score":210,"tags":308,"targetMarket":219,"tier":220},[213,214,215,216,217,218],{"commitSha":281},{"parentExtensionId":252,"repoId":286},{"_creationTime":312,"_id":286,"identity":313,"providers":314,"workflow":487},1778686332166.7776,{"githubOwner":246,"githubRepo":247,"sourceUrl":14},{"classify":315,"discover":471,"github":474},{"commitSha":281,"extensions":316},[317,330,373,383,391,399,407,415,423,431,439,447,455,463],{"basePath":259,"description":266,"displayName":268,"installMethods":318,"rationale":319,"selectedPaths":320,"source":329,"sourceLanguage":18,"type":270},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[321,324,326],{"path":322,"priority":323},".claude-plugin/marketplace.json","mandatory",{"path":325,"priority":323},"README.md",{"path":327,"priority":328},"LICENSE","high","rule",{"basePath":259,"description":255,"displayName":247,"installMethods":331,"license":240,"rationale":332,"selectedPaths":333,"source":329,"sourceLanguage":18,"type":260},{"claudeCode":247},"plugin manifest at .claude-plugin/plugin.json",[334,336,337,338,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371],{"path":335,"priority":323},".claude-plugin/plugin.json",{"path":325,"priority":323},{"path":327,"priority":328},{"path":339,"priority":340},"skills/album-manager/SKILL.md","medium",{"path":342,"priority":340},"skills/auto-album-curator/SKILL.md",{"path":344,"priority":340},"skills/duplicate-report/SKILL.md",{"path":346,"priority":340},"skills/library-health-report/SKILL.md",{"path":348,"priority":340},"skills/metadata-fixer/SKILL.md",{"path":350,"priority":340},"skills/people-report/SKILL.md",{"path":352,"priority":340},"skills/photo-cleanup/SKILL.md",{"path":354,"priority":340},"skills/photo-search/SKILL.md",{"path":356,"priority":340},"skills/rotate-photos/SKILL.md",{"path":358,"priority":340},"skills/storage-optimizer/SKILL.md",{"path":360,"priority":340},"skills/timeline-gaps/SKILL.md",{"path":362,"priority":340},"skills/travel-map/SKILL.md",{"path":364,"priority":328},"commands/cleanup.md",{"path":366,"priority":328},"commands/create-album.md",{"path":368,"priority":328},"commands/immich-status.md",{"path":370,"priority":328},"commands/my-travels.md",{"path":372,"priority":328},"commands/setup-immich-photo-manager.md",{"basePath":245,"description":10,"displayName":13,"installMethods":374,"rationale":375,"selectedPaths":376,"source":329,"sourceLanguage":18,"type":248},{"claudeCode":12},"SKILL.md frontmatter at skills/album-manager/SKILL.md",[377,379,381],{"path":378,"priority":323},"SKILL.md",{"path":380,"priority":340},"references/geographic-search-patterns.md",{"path":382,"priority":340},"references/viewer-template-spec.md",{"basePath":384,"description":385,"displayName":386,"installMethods":387,"rationale":388,"selectedPaths":389,"source":329,"sourceLanguage":18,"type":248},"skills/auto-album-curator","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","auto-album-curator",{"claudeCode":12},"SKILL.md frontmatter at skills/auto-album-curator/SKILL.md",[390],{"path":378,"priority":323},{"basePath":392,"description":393,"displayName":394,"installMethods":395,"rationale":396,"selectedPaths":397,"source":329,"sourceLanguage":18,"type":248},"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",[398],{"path":378,"priority":323},{"basePath":400,"description":401,"displayName":402,"installMethods":403,"rationale":404,"selectedPaths":405,"source":329,"sourceLanguage":18,"type":248},"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",[406],{"path":378,"priority":323},{"basePath":408,"description":409,"displayName":410,"installMethods":411,"rationale":412,"selectedPaths":413,"source":329,"sourceLanguage":18,"type":248},"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",[414],{"path":378,"priority":323},{"basePath":416,"description":417,"displayName":418,"installMethods":419,"rationale":420,"selectedPaths":421,"source":329,"sourceLanguage":18,"type":248},"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",[422],{"path":378,"priority":323},{"basePath":424,"description":425,"displayName":426,"installMethods":427,"rationale":428,"selectedPaths":429,"source":329,"sourceLanguage":18,"type":248},"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",[430],{"path":378,"priority":323},{"basePath":432,"description":433,"displayName":434,"installMethods":435,"rationale":436,"selectedPaths":437,"source":329,"sourceLanguage":18,"type":248},"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",[438],{"path":378,"priority":323},{"basePath":440,"description":441,"displayName":442,"installMethods":443,"rationale":444,"selectedPaths":445,"source":329,"sourceLanguage":18,"type":248},"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",[446],{"path":378,"priority":323},{"basePath":448,"description":449,"displayName":450,"installMethods":451,"rationale":452,"selectedPaths":453,"source":329,"sourceLanguage":18,"type":248},"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",[454],{"path":378,"priority":323},{"basePath":456,"description":457,"displayName":458,"installMethods":459,"rationale":460,"selectedPaths":461,"source":329,"sourceLanguage":18,"type":248},"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",[462],{"path":378,"priority":323},{"basePath":464,"description":465,"displayName":466,"installMethods":467,"rationale":468,"selectedPaths":469,"source":329,"sourceLanguage":18,"type":248},"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",[470],{"path":378,"priority":323},{"sources":472},[473],"manual",{"closedIssues90d":234,"description":475,"forks":235,"homepage":476,"license":240,"openIssues90d":8,"pushedAt":237,"readmeSize":232,"stars":238,"topics":477},"📸🧹🗺️ 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",[215,478,479,480,481,217,482,213,279,483,484,276,214,295,485,486],"claude","claude-plugin","cleanup","duplicates","geolocation","mcp-server","metadata","immich-plugin","python",{"classifiedAt":488,"discoverAt":489,"extractAt":490,"githubAt":490,"updatedAt":488},1778686338385,1778686332166,1778686336662,[215,217,213,218,216,214],{"evaluatedAt":243,"extractAt":290,"updatedAt":243},[],[495,513,538,555,572,591],{"_creationTime":496,"_id":497,"community":498,"display":499,"identity":501,"providers":502,"relations":509,"tags":510,"workflow":511},1778686338567.5737,"k17dn1dvs99dqeq08n8313665x86n48d",{"reviewCount":8},{"description":385,"installMethods":500,"name":386,"sourceUrl":14},{"claudeCode":12},{"basePath":384,"githubOwner":246,"githubRepo":247,"locale":18,"slug":386,"type":248},{"evaluate":503,"extract":508},{"promptVersionExtension":206,"promptVersionScoring":207,"score":504,"tags":505,"targetMarket":219,"tier":220},99,[213,214,215,506,216,507],"curation","ai",{"commitSha":281},{"parentExtensionId":252,"repoId":286},[507,215,506,213,216,214],{"evaluatedAt":512,"extractAt":290,"updatedAt":512},1778686443797,{"_creationTime":514,"_id":515,"community":516,"display":517,"identity":522,"providers":526,"relations":531,"tags":534,"workflow":535},1778685949178.8154,"k170c8hv2jp78hhnxyy3bbwx3986ny1g",{"reviewCount":8},{"description":518,"installMethods":519,"name":247,"sourceUrl":521},"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":520},"davepoon/buildwithclaude","https://github.com/davepoon/buildwithclaude",{"basePath":523,"githubOwner":524,"githubRepo":525,"locale":18,"slug":247,"type":248},"plugins/all-skills/skills/immich-photo-manager","davepoon","buildwithclaude",{"evaluate":527,"extract":530},{"promptVersionExtension":206,"promptVersionScoring":207,"score":293,"tags":528,"targetMarket":219,"tier":220},[213,214,278,217,529,216],"search",{"commitSha":281},{"parentExtensionId":532,"repoId":533},"k1779wwzgaaxeqtvembbktrb1d86n4tf","kd719kw54vhmcscq7ckdp59fg586mnt6",[217,213,278,216,214,529],{"evaluatedAt":536,"extractAt":537,"updatedAt":536},1778690189801,1778685949178,{"_creationTime":539,"_id":540,"community":541,"display":542,"identity":544,"providers":545,"relations":551,"tags":552,"workflow":553},1778686338567.5752,"k17ayghah8cpdc4r6wv78gvd8x86ns4c",{"reviewCount":8},{"description":433,"installMethods":543,"name":257,"sourceUrl":14},{"claudeCode":12},{"basePath":432,"githubOwner":246,"githubRepo":247,"locale":18,"slug":434,"type":248},{"evaluate":546,"extract":550},{"promptVersionExtension":206,"promptVersionScoring":207,"score":547,"tags":548,"targetMarket":219,"tier":220},97,[213,214,529,217,507,549,484],"cli",{"commitSha":281,"license":240},{"parentExtensionId":252,"repoId":286},[507,549,217,213,484,214,529],{"evaluatedAt":554,"extractAt":290,"updatedAt":554},1778686618843,{"_creationTime":556,"_id":557,"community":558,"display":559,"identity":561,"providers":562,"relations":568,"tags":569,"workflow":570},1778686338567.5747,"k17ccdwa413myg37b7nsftv7h986mern",{"reviewCount":8},{"description":417,"installMethods":560,"name":247,"sourceUrl":14},{"claudeCode":12},{"basePath":416,"githubOwner":246,"githubRepo":247,"locale":18,"slug":418,"type":248},{"evaluate":563,"extract":567},{"promptVersionExtension":206,"promptVersionScoring":207,"score":504,"tags":564,"targetMarket":219,"tier":220},[213,214,565,566,279],"face-recognition","reporting",{"commitSha":281,"license":240},{"parentExtensionId":252,"repoId":286},[565,213,279,214,566],{"evaluatedAt":571,"extractAt":290,"updatedAt":571},1778686543941,{"_creationTime":573,"_id":574,"community":575,"display":576,"identity":578,"providers":579,"relations":587,"tags":588,"workflow":589},1778686338567.574,"k17b0q5xepcajzr3qkzgtkvqxs86m7az",{"reviewCount":8},{"description":393,"installMethods":577,"name":394,"sourceUrl":14},{"claudeCode":12},{"basePath":392,"githubOwner":246,"githubRepo":247,"locale":18,"slug":394,"type":248},{"evaluate":580,"extract":586},{"promptVersionExtension":206,"promptVersionScoring":207,"score":293,"tags":581,"targetMarket":219,"tier":585},[213,214,582,583,584,566],"deduplication","perceptual-hashing","library-management","community",{"commitSha":281},{"parentExtensionId":252,"repoId":286},[582,213,584,583,214,566],{"evaluatedAt":590,"extractAt":290,"updatedAt":590},1778686474905,{"_creationTime":592,"_id":593,"community":594,"display":595,"identity":597,"providers":598,"relations":607,"tags":608,"workflow":609},1778686338567.5762,"k1768hvz5w3mqfjw0meya0xq2986me2d",{"reviewCount":8},{"description":465,"installMethods":596,"name":466,"sourceUrl":14},{"claudeCode":12},{"basePath":464,"githubOwner":246,"githubRepo":247,"locale":18,"slug":466,"type":248},{"evaluate":599,"extract":606},{"promptVersionExtension":206,"promptVersionScoring":207,"score":600,"tags":601,"targetMarket":219,"tier":585},88,[214,602,603,604,605,213],"mapping","geotagging","html","data-visualization",{"commitSha":281},{"parentExtensionId":252,"repoId":286},[605,603,604,213,602,214],{"evaluatedAt":610,"extractAt":290,"updatedAt":610},1778686725752]