[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-drolosoft-travel-map-de":3,"guides-for-drolosoft-travel-map":497,"similar-k1768hvz5w3mqfjw0meya0xq2986me2d-de":498},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":244,"isFallback":249,"parentExtension":250,"providers":309,"relations":313,"repo":314,"tags":495,"workflow":496},1778686338567.5762,"k1768hvz5w3mqfjw0meya0xq2986me2d",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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",{"claudeCode":12},"drolosoft/immich-photo-manager","travel-map","https://github.com/drolosoft/immich-photo-manager",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":226,"workflow":242},1778686725752.5015,"kn7bj1yh5atg5s1816j1jh3kr586mrba","en",{"checks":20,"evaluatedAt":194,"extensionSummary":195,"features":196,"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,44,49,52,55,59,63,66,71,74,77,80,83,86,89,93,97,101,105,109,112,116,119,123,126,129,132,135,138,141,145,149,152,155,159,162,165,168,171,175,178,181,184,187,191],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of visualizing photo locations and provides specific triggers and use cases.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers significant value by providing an AI-powered, conversational interface to a complex photo management task, going beyond simple API calls.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill addresses its stated purpose of generating an interactive map, with clear steps and documentation for setup and usage.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses solely on generating an interactive map from photo location data, adhering to a single responsibility.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's functionality and provides relevant use cases and triggers.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This skill primarily uses SQL queries and Python logic within its own execution context and does not expose a broad set of external tools.",{"category":45,"check":46,"severity":47,"summary":48},"Documentation","Configuration & parameter reference","info","The SKILL.md outlines the process and includes SQL/Python snippets, but lacks explicit documentation for all potential parameters or configuration options if they existed beyond the provided logic.",{"category":33,"check":50,"severity":42,"summary":51},"Tool naming","There are no explicitly exposed user-facing tools with names to evaluate.",{"category":33,"check":53,"severity":42,"summary":54},"Minimal I/O surface","The skill's functionality is within its own execution context and does not expose distinct tools with parameter schemas.",{"category":56,"check":57,"severity":24,"summary":58},"License","License usability","The project includes a MIT License file, which is a permissive open-source license.",{"category":60,"check":61,"severity":24,"summary":62},"Maintenance","Commit recency","The last commit was on May 7, 2026, which is recent.",{"category":60,"check":64,"severity":42,"summary":65},"Dependency Management","The skill's core logic appears to be self-contained Python and SQL within the SKILL.md, with external libraries like Leaflet.js loaded via CDN, not managed as project dependencies.",{"category":67,"check":68,"severity":69,"summary":70},"Security","Secret Management","warning","The SKILL.md strongly emphasizes calling a `ping` on an Immich MCP server first and mentions needing an API key, but there is no explicit mechanism shown for securely handling or passing this API key, potentially leading to insecure handling if not managed by the host environment.",{"category":67,"check":72,"severity":24,"summary":73},"Injection","The skill's primary logic is embedded within SKILL.md using SQL and Python, and it relies on an external MCP server. There are no indications of loading untrusted external data as instructions.",{"category":67,"check":75,"severity":24,"summary":76},"Transitive Supply-Chain Grenades","The skill loads Leaflet.js and MarkerCluster from CDNs, which is a standard and safe practice for front-end libraries. There are no runtime downloads of code or data that bypass the bundle.",{"category":67,"check":78,"severity":24,"summary":79},"Sandbox Isolation","The skill's operations appear to be contained within the SKILL.md execution context, generating an HTML file and interacting with an external MCP server. There's no indication of modifying files outside its intended scope.",{"category":67,"check":81,"severity":24,"summary":82},"Sandbox escape primitives","No evidence of detached processes or deny-retry loops is present in the provided skill logic.",{"category":67,"check":84,"severity":24,"summary":85},"Data Exfiltration","The skill's purpose is to generate a local HTML map and does not appear to exfiltrate any data. It explicitly notes privacy concerns regarding sharing the map.",{"category":67,"check":87,"severity":24,"summary":88},"Hidden Text Tricks","The bundled content and descriptions do not contain any hidden text tricks or malicious steering sequences.",{"category":90,"check":91,"severity":24,"summary":92},"Hooks","Opaque code execution","The code snippets in SKILL.md are standard SQL and Python, not obfuscated or dynamically executed.",{"category":94,"check":95,"severity":24,"summary":96},"Portability","Structural Assumption","The skill makes assumptions about the presence of an Immich MCP server and a database schema, which are documented preconditions. It does not assume specific project file layouts.",{"category":98,"check":99,"severity":24,"summary":100},"Trust","Issues Attention","The repository shows 0 open issues in the last 90 days and 1 closed issue, indicating active maintenance and responsiveness.",{"category":102,"check":103,"severity":24,"summary":104},"Version","Release Management","The SKILL.md frontmatter declares version '1.1.0', and the GitHub release tag 'v1.0.0' is present, indicating version management.",{"category":106,"check":107,"severity":47,"summary":108},"Execution","Validation","The SQL query filters for non-null GPS data, and the Python code implies basic handling of location data. However, there's no explicit schema validation for inputs or outputs beyond these basic checks.",{"category":67,"check":110,"severity":24,"summary":111},"Unguarded Destructive Operations","The skill is read-only and explicitly states it never modifies assets.",{"category":113,"check":114,"severity":69,"summary":115},"Code Execution","Error Handling","The SKILL.md outlines error conditions and what to tell the user if the Immich connection fails, but it does not detail specific error handling for the data processing steps or provide structured error reporting for the agent.",{"category":113,"check":117,"severity":42,"summary":118},"Logging","The skill's operation is primarily within the SKILL.md and does not involve destructive actions or outbound calls that would typically require a local audit log.",{"category":120,"check":121,"severity":24,"summary":122},"Compliance","GDPR","The skill operates on photo metadata and does not appear to process personal data beyond what is necessary for location mapping. It also includes a privacy note about sharing the map.",{"category":120,"check":124,"severity":24,"summary":125},"Target market","The skill is global in scope and does not have any regional or jurisdictional logic.",{"category":94,"check":127,"severity":24,"summary":128},"Runtime stability","The skill relies on standard SQL and Python, and external CDNs for JavaScript libraries, making it highly portable across different environments.",{"category":45,"check":130,"severity":47,"summary":131},"README","The README is extensive and covers many aspects of the project, but it primarily focuses on the broader immich-photo-manager capabilities rather than specifically detailing the 'travel-map' skill's setup and usage in isolation.",{"category":33,"check":133,"severity":42,"summary":134},"Tool surface size","This is a single skill; it does not expose multiple distinct tools.",{"category":40,"check":136,"severity":42,"summary":137},"Overlapping near-synonym tools","As a single skill, there are no overlapping tools to evaluate.",{"category":45,"check":139,"severity":24,"summary":140},"Phantom features","All advertised features related to generating an interactive travel map are implemented within the SKILL.md.",{"category":142,"check":143,"severity":69,"summary":144},"Install","Installation instruction","The README provides installation instructions for the overall immich-photo-manager project, but it does not provide a direct copy-paste invocation example specifically for the 'travel-map' skill or detail how to set up the required Immich API key and MCP connection within the context of this specific skill.",{"category":146,"check":147,"severity":69,"summary":148},"Errors","Actionable error messages","The SKILL.md provides user-facing messages for connection failures but lacks detailed actionable error messages for data processing or map generation failures.",{"category":106,"check":150,"severity":42,"summary":151},"Pinned dependencies","The skill does not use third-party dependencies managed within the bundle; external libraries are loaded via CDN.",{"category":33,"check":153,"severity":42,"summary":154},"Dry-run preview","The skill is read-only and does not perform state-changing operations or send data outward.",{"category":156,"check":157,"severity":42,"summary":158},"Protocol","Idempotent retry & timeouts","The skill operates locally and does not involve remote calls or state-changing operations that would require idempotency or timeouts.",{"category":120,"check":160,"severity":24,"summary":161},"Telemetry opt-in","There is no indication of telemetry being collected by this skill.",{"category":40,"check":163,"severity":24,"summary":164},"Precise Purpose","The description clearly defines the artifact (photo locations), the task (generate interactive map), and provides specific triggers and boundaries.",{"category":40,"check":166,"severity":24,"summary":167},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the core capability and provides trigger phrases.",{"category":45,"check":169,"severity":24,"summary":170},"Concise Body","The SKILL.md is well-structured and delegates deeper material like SQL queries and Python logic into clear sections, avoiding excessive bloat.",{"category":172,"check":173,"severity":24,"summary":174},"Context","Progressive Disclosure","The SKILL.md outlines the workflow and embeds SQL/Python snippets directly, which is appropriate for this skill's scope without needing separate reference files.",{"category":172,"check":176,"severity":42,"summary":177},"Forked exploration","The skill is a direct generation task, not an exploration or audit-style skill.",{"category":22,"check":179,"severity":69,"summary":180},"Usage examples","While the SKILL.md provides SQL and Python code snippets, it lacks end-to-end, ready-to-use examples showing the exact invocation and observable outcome specifically for generating the HTML map.",{"category":22,"check":182,"severity":47,"summary":183},"Edge cases","The SKILL.md mentions excluding photos without GPS and notes the privacy implications of sharing the map, but it doesn't extensively detail other failure modes or recovery steps for the data processing itself.",{"category":94,"check":185,"severity":69,"summary":186},"Tool Fallback","The skill strongly requires the Immich MCP server and states to stop if ping fails. It doesn't explicitly mention a fallback path if the MCP is unavailable or if the specific tools within it are missing, only that the skill won't work.",{"category":188,"check":189,"severity":69,"summary":190},"Safety","Halt on unexpected state","The SKILL.md mandates stopping if the Immich connection fails but doesn't detail machine-readable checklists for other potential pre-states of the photo data itself, nor specific rollback procedures.",{"category":94,"check":192,"severity":42,"summary":193},"Cross-skill coupling","This is a single skill and does not appear to rely on or cross-reference other skills.",1778686725628,"This skill generates a standalone HTML file with Leaflet.js that visualizes photo locations on an interactive map, clustering them by city/region and displaying counts, date ranges, and album links. It relies on an external Immich MCP server for data retrieval and processes photos with GPS data.",[197,198,199,200],"Generates interactive HTML maps with Leaflet.js","Clusters photos by city/region with counts and date ranges","Outputs standalone HTML for local viewing or hosting","Relies on Immich MCP server for photo data",[202,203,204,205],"Modifying photo assets","Providing a web hosting service for maps","Mapping photos without GPS data","Processing personal data beyond location metadata","3.0.0","4.4.0","To provide users with an interactive visualization of where their photos were taken, offering insights into travel history and aiding in album organization.","High score due to strong documentation, clear purpose, and adherence to scope and security best practices. Minor warnings for lack of specific end-to-end examples and fallback mechanisms for the required MCP server slightly temper the score.",88,"A well-documented and secure skill for generating interactive photo location maps.",[213,214,215,216,217,218],"photos","mapping","geotagging","html","data-visualization","immich","global","community",[222,223,224,225],"Visualizing travel destinations from photos","Discovering past trips based on photo GPS data","Planning photo albums based on geographic locations","Sharing a map of visited places",{"codeQuality":227,"collectedAt":229,"documentation":230,"maintenance":233,"security":239,"testCoverage":241},{"hasLockfile":228},false,1778686699341,{"descriptionLength":231,"readmeSize":232},508,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},1778686725752,{"basePath":245,"githubOwner":246,"githubRepo":247,"locale":18,"slug":13,"type":248},"skills/travel-map","drolosoft","immich-photo-manager","skill",true,{"_creationTime":251,"_id":252,"community":253,"display":254,"identity":258,"parentExtension":261,"providers":293,"relations":305,"tags":306,"workflow":307},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":287,"tags":289,"workflow":290},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":282},{"promptVersionExtension":273,"promptVersionScoring":207,"score":274,"tags":275,"targetMarket":219,"tier":281},"3.1.0",98,[276,218,277,278,279,280],"photo-management","ai-assistant","media","organization","mcp","verified",{"commitSha":283,"marketplace":284,"plugin":285},"HEAD",{"name":268,"pluginCount":234},{"mcpCount":8,"provider":286,"skillCount":8},"classify",{"repoId":288},"kd71cer955pa6pzdsewzf62dt986nbtd",[277,218,280,278,279,276],{"evaluatedAt":291,"extractAt":292,"updatedAt":291},1778686361336,1778686338567,{"evaluate":294,"extract":302},{"promptVersionExtension":206,"promptVersionScoring":207,"score":295,"tags":296,"targetMarket":219,"tier":281},95,[218,276,297,298,299,300,301],"gallery","self-hosted","ai-search","automation","media-organization",{"commitSha":283,"license":240,"plugin":303},{"mcpCount":8,"provider":286,"skillCount":304},12,{"parentExtensionId":263,"repoId":288},[299,300,297,218,301,276,298],{"evaluatedAt":308,"extractAt":292,"updatedAt":308},1778686398961,{"evaluate":310,"extract":312},{"promptVersionExtension":206,"promptVersionScoring":207,"score":210,"tags":311,"targetMarket":219,"tier":220},[213,214,215,216,217,218],{"commitSha":283},{"parentExtensionId":252,"repoId":288},{"_creationTime":315,"_id":288,"identity":316,"providers":317,"workflow":491},1778686332166.7776,{"githubOwner":246,"githubRepo":247,"sourceUrl":14},{"classify":318,"discover":474,"github":477},{"commitSha":283,"extensions":319},[320,333,376,389,397,405,413,421,429,437,445,453,461,469],{"basePath":259,"description":266,"displayName":268,"installMethods":321,"rationale":322,"selectedPaths":323,"source":332,"sourceLanguage":18,"type":270},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[324,327,329],{"path":325,"priority":326},".claude-plugin/marketplace.json","mandatory",{"path":328,"priority":326},"README.md",{"path":330,"priority":331},"LICENSE","high","rule",{"basePath":259,"description":255,"displayName":247,"installMethods":334,"license":240,"rationale":335,"selectedPaths":336,"source":332,"sourceLanguage":18,"type":260},{"claudeCode":247},"plugin manifest at .claude-plugin/plugin.json",[337,339,340,341,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374],{"path":338,"priority":326},".claude-plugin/plugin.json",{"path":328,"priority":326},{"path":330,"priority":331},{"path":342,"priority":343},"skills/album-manager/SKILL.md","medium",{"path":345,"priority":343},"skills/auto-album-curator/SKILL.md",{"path":347,"priority":343},"skills/duplicate-report/SKILL.md",{"path":349,"priority":343},"skills/library-health-report/SKILL.md",{"path":351,"priority":343},"skills/metadata-fixer/SKILL.md",{"path":353,"priority":343},"skills/people-report/SKILL.md",{"path":355,"priority":343},"skills/photo-cleanup/SKILL.md",{"path":357,"priority":343},"skills/photo-search/SKILL.md",{"path":359,"priority":343},"skills/rotate-photos/SKILL.md",{"path":361,"priority":343},"skills/storage-optimizer/SKILL.md",{"path":363,"priority":343},"skills/timeline-gaps/SKILL.md",{"path":365,"priority":343},"skills/travel-map/SKILL.md",{"path":367,"priority":331},"commands/cleanup.md",{"path":369,"priority":331},"commands/create-album.md",{"path":371,"priority":331},"commands/immich-status.md",{"path":373,"priority":331},"commands/my-travels.md",{"path":375,"priority":331},"commands/setup-immich-photo-manager.md",{"basePath":377,"description":378,"displayName":379,"installMethods":380,"rationale":381,"selectedPaths":382,"source":332,"sourceLanguage":18,"type":248},"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",[383,385,387],{"path":384,"priority":326},"SKILL.md",{"path":386,"priority":343},"references/geographic-search-patterns.md",{"path":388,"priority":343},"references/viewer-template-spec.md",{"basePath":390,"description":391,"displayName":392,"installMethods":393,"rationale":394,"selectedPaths":395,"source":332,"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",[396],{"path":384,"priority":326},{"basePath":398,"description":399,"displayName":400,"installMethods":401,"rationale":402,"selectedPaths":403,"source":332,"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",[404],{"path":384,"priority":326},{"basePath":406,"description":407,"displayName":408,"installMethods":409,"rationale":410,"selectedPaths":411,"source":332,"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",[412],{"path":384,"priority":326},{"basePath":414,"description":415,"displayName":416,"installMethods":417,"rationale":418,"selectedPaths":419,"source":332,"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",[420],{"path":384,"priority":326},{"basePath":422,"description":423,"displayName":424,"installMethods":425,"rationale":426,"selectedPaths":427,"source":332,"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",[428],{"path":384,"priority":326},{"basePath":430,"description":431,"displayName":432,"installMethods":433,"rationale":434,"selectedPaths":435,"source":332,"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",[436],{"path":384,"priority":326},{"basePath":438,"description":439,"displayName":440,"installMethods":441,"rationale":442,"selectedPaths":443,"source":332,"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",[444],{"path":384,"priority":326},{"basePath":446,"description":447,"displayName":448,"installMethods":449,"rationale":450,"selectedPaths":451,"source":332,"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",[452],{"path":384,"priority":326},{"basePath":454,"description":455,"displayName":456,"installMethods":457,"rationale":458,"selectedPaths":459,"source":332,"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",[460],{"path":384,"priority":326},{"basePath":462,"description":463,"displayName":464,"installMethods":465,"rationale":466,"selectedPaths":467,"source":332,"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",[468],{"path":384,"priority":326},{"basePath":245,"description":10,"displayName":13,"installMethods":470,"rationale":471,"selectedPaths":472,"source":332,"sourceLanguage":18,"type":248},{"claudeCode":12},"SKILL.md frontmatter at skills/travel-map/SKILL.md",[473],{"path":384,"priority":326},{"sources":475},[476],"manual",{"closedIssues90d":234,"description":478,"forks":235,"homepage":479,"license":240,"openIssues90d":8,"pushedAt":237,"readmeSize":232,"stars":238,"topics":480},"📸🧹🗺️ 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",[481,482,483,484,485,297,486,218,280,487,488,276,213,298,489,490],"albums","claude","claude-plugin","cleanup","duplicates","geolocation","mcp-server","metadata","immich-plugin","python",{"classifiedAt":492,"discoverAt":493,"extractAt":494,"githubAt":494,"updatedAt":492},1778686338385,1778686332166,1778686336662,[217,215,216,218,214,213],{"evaluatedAt":243,"extractAt":292,"updatedAt":243},[],[499,527,544,561,579,596],{"_creationTime":500,"_id":501,"community":502,"display":503,"identity":509,"providers":514,"relations":521,"tags":523,"workflow":524},1778688112811.734,"k17az0603e3xgk0s5r736yvcpd86mxz0",{"reviewCount":8},{"description":504,"installMethods":505,"name":507,"sourceUrl":508},"Generate PDF/HTML reports from templates and data. Use when: creating client reports; generating weekly summaries; producing marketing performance reports; automating recurring reports",{"claudeCode":506},"guia-matthieu/clawfu-skills","Report Generator","https://github.com/guia-matthieu/clawfu-skills",{"basePath":510,"githubOwner":511,"githubRepo":512,"locale":18,"slug":513,"type":248},"skills/automation/report-generator","guia-matthieu","clawfu-skills","report-generator",{"evaluate":515,"extract":520},{"promptVersionExtension":206,"promptVersionScoring":207,"score":516,"tags":517,"targetMarket":219,"tier":281},99,[518,300,217,216,519],"report-generation","pdf",{"commitSha":283,"license":240},{"repoId":522},"kd72qvzyvm658ya7pbyh5ey47h86md53",[300,217,216,519,518],{"evaluatedAt":525,"extractAt":526,"updatedAt":525},1778688836417,1778688112811,{"_creationTime":528,"_id":529,"community":530,"display":531,"identity":533,"providers":534,"relations":540,"tags":541,"workflow":542},1778686338567.5747,"k17ccdwa413myg37b7nsftv7h986mern",{"reviewCount":8},{"description":423,"installMethods":532,"name":247,"sourceUrl":14},{"claudeCode":12},{"basePath":422,"githubOwner":246,"githubRepo":247,"locale":18,"slug":424,"type":248},{"evaluate":535,"extract":539},{"promptVersionExtension":206,"promptVersionScoring":207,"score":516,"tags":536,"targetMarket":219,"tier":281},[218,213,537,538,280],"face-recognition","reporting",{"commitSha":283,"license":240},{"parentExtensionId":252,"repoId":288},[537,218,280,213,538],{"evaluatedAt":543,"extractAt":292,"updatedAt":543},1778686543941,{"_creationTime":545,"_id":546,"community":547,"display":548,"identity":550,"providers":551,"relations":557,"tags":558,"workflow":559},1778686338567.5737,"k17dn1dvs99dqeq08n8313665x86n48d",{"reviewCount":8},{"description":391,"installMethods":549,"name":392,"sourceUrl":14},{"claudeCode":12},{"basePath":390,"githubOwner":246,"githubRepo":247,"locale":18,"slug":392,"type":248},{"evaluate":552,"extract":556},{"promptVersionExtension":206,"promptVersionScoring":207,"score":516,"tags":553,"targetMarket":219,"tier":281},[218,213,481,554,279,555],"curation","ai",{"commitSha":283},{"parentExtensionId":252,"repoId":288},[555,481,554,218,279,213],{"evaluatedAt":560,"extractAt":292,"updatedAt":560},1778686443797,{"_creationTime":562,"_id":563,"community":564,"display":565,"identity":567,"providers":568,"relations":575,"tags":576,"workflow":577},1778686338567.5752,"k17ayghah8cpdc4r6wv78gvd8x86ns4c",{"reviewCount":8},{"description":439,"installMethods":566,"name":257,"sourceUrl":14},{"claudeCode":12},{"basePath":438,"githubOwner":246,"githubRepo":247,"locale":18,"slug":440,"type":248},{"evaluate":569,"extract":574},{"promptVersionExtension":206,"promptVersionScoring":207,"score":570,"tags":571,"targetMarket":219,"tier":281},97,[218,213,572,297,555,573,488],"search","cli",{"commitSha":283,"license":240},{"parentExtensionId":252,"repoId":288},[555,573,297,218,488,213,572],{"evaluatedAt":578,"extractAt":292,"updatedAt":578},1778686618843,{"_creationTime":580,"_id":581,"community":582,"display":583,"identity":585,"providers":586,"relations":592,"tags":593,"workflow":594},1778686338567.5735,"k176xjm76xfsyx4hn82v2rdef986n0js",{"reviewCount":8},{"description":378,"installMethods":584,"name":379,"sourceUrl":14},{"claudeCode":12},{"basePath":377,"githubOwner":246,"githubRepo":247,"locale":18,"slug":379,"type":248},{"evaluate":587,"extract":591},{"promptVersionExtension":206,"promptVersionScoring":207,"score":588,"tags":589,"targetMarket":219,"tier":281},96,[218,213,481,279,297,590],"media-management",{"commitSha":283},{"parentExtensionId":252,"repoId":288},[481,297,218,590,279,213],{"evaluatedAt":595,"extractAt":292,"updatedAt":595},1778686420761,{"_creationTime":597,"_id":598,"community":599,"display":600,"identity":605,"providers":609,"relations":613,"tags":616,"workflow":617},1778685949178.8154,"k170c8hv2jp78hhnxyy3bbwx3986ny1g",{"reviewCount":8},{"description":601,"installMethods":602,"name":247,"sourceUrl":604},"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":603},"davepoon/buildwithclaude","https://github.com/davepoon/buildwithclaude",{"basePath":606,"githubOwner":607,"githubRepo":608,"locale":18,"slug":247,"type":248},"plugins/all-skills/skills/immich-photo-manager","davepoon","buildwithclaude",{"evaluate":610,"extract":612},{"promptVersionExtension":206,"promptVersionScoring":207,"score":295,"tags":611,"targetMarket":219,"tier":281},[218,213,278,297,572,279],{"commitSha":283},{"parentExtensionId":614,"repoId":615},"k1779wwzgaaxeqtvembbktrb1d86n4tf","kd719kw54vhmcscq7ckdp59fg586mnt6",[297,218,278,279,213,572],{"evaluatedAt":618,"extractAt":619,"updatedAt":618},1778690189801,1778685949178]