[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-drolosoft-storage-optimizer-de":3,"guides-for-drolosoft-storage-optimizer":496,"similar-k17cythja82wekj94qzw5mw7gs86n1pm-de":497},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":243,"isFallback":248,"parentExtension":249,"providers":307,"relations":311,"repo":312,"tags":494,"workflow":495},1778686338567.5757,"k17cythja82wekj94qzw5mw7gs86n1pm",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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",{"claudeCode":12},"drolosoft/immich-photo-manager","storage-optimizer","https://github.com/drolosoft/immich-photo-manager",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":225,"workflow":241},1778686666119.2866,"kn711m7f19k4s4gywx6mwp32d986n1ks","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"promptVersionExtension":205,"promptVersionScoring":206,"purpose":207,"rationale":208,"score":209,"summary":210,"tags":211,"targetMarket":218,"tier":219,"useCases":220},[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,115,118,122,125,128,131,134,137,140,144,148,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 states the user problem of analyzing and optimizing disk usage in an Immich photo library, identifying specific areas like redundant RAW+JPEG pairs and oversized videos.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The extension offers significant value over a simple prompt by providing direct SQL analysis of the Immich database, identifying specific inefficiencies and generating actionable reports tailored to storage optimization.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill provides a complete lifecycle for storage analysis, including initial connection checks, detailed analysis steps, reporting, and clear recommendations for user-approved actions, making it ready for production use.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The extension focuses solely on analyzing and reporting on Immich storage usage, with clear recommendations. It does not extend into unrelated domains like photo editing or general system administration.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The description accurately reflects the skill's functionality, clearly outlining its purpose, analysis workflow, and when to use it, including specific trigger phrases.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","The skill uses specific SQL queries as tools, which are narrowly scoped for their respective analytical tasks within the Immich database.",{"category":44,"check":45,"severity":46,"summary":47},"Documentation","Configuration & parameter reference","info","The SKILL.md details the SQL queries used and the expected outputs for analysis steps. However, it does not explicitly document default values for any potential parameters, as the primary interaction is through direct SQL execution or natural language triggers.",{"category":33,"check":49,"severity":24,"summary":50},"Tool naming","The tools are represented by descriptive SQL queries within the SKILL.md, clearly indicating their purpose in analyzing storage.",{"category":33,"check":52,"severity":24,"summary":53},"Minimal I/O surface","The inputs are defined by the SQL queries themselves, which are focused on specific data retrieval tasks. The outputs are structured reports based on the query results, as described in the SKILL.md.",{"category":55,"check":56,"severity":24,"summary":57},"License","License usability","The project has a clear MIT license file, indicating permissive open-source usage.",{"category":59,"check":60,"severity":24,"summary":61},"Maintenance","Commit recency","The last commit was on 2026-05-07, well within the last 3 months.",{"category":59,"check":63,"severity":64,"summary":65},"Dependency Management","not_applicable","The extension relies on direct SQL queries to the Immich database and does not appear to have third-party code dependencies that require management.",{"category":67,"check":68,"severity":46,"summary":69},"Security","Secret Management","The SKILL.md mentions the need for an Immich API key and server URL, but the implementation details for how these are securely handled (e.g., through an MCP server's secure storage) are not detailed in the provided code.",{"category":67,"check":71,"severity":24,"summary":72},"Injection","The skill executes SQL queries directly against the Immich database. The SKILL.md emphasizes careful execution and user approval, mitigating risks associated with direct data manipulation.",{"category":67,"check":74,"severity":24,"summary":75},"Transitive Supply-Chain Grenades","The skill relies on direct SQL queries and does not fetch external code or data at runtime.",{"category":67,"check":77,"severity":24,"summary":78},"Sandbox Isolation","The skill operates by querying an existing Immich database via an MCP server. It does not modify files outside of the established scope or user-defined actions, and all paths are relative to the Immich server's context.",{"category":67,"check":80,"severity":24,"summary":81},"Sandbox escape primitives","No detached processes or retry loops around denied tool calls were observed in the provided SKILL.md.",{"category":67,"check":83,"severity":24,"summary":84},"Data Exfiltration","The skill's purpose is to analyze local storage and does not involve sending confidential data to third parties. It requires an API key for Immich access, which should be handled securely by the MCP server.",{"category":67,"check":86,"severity":24,"summary":87},"Hidden Text Tricks","The bundled content is free of hidden-steering tricks, and descriptions use standard ASCII characters.",{"category":89,"check":90,"severity":24,"summary":91},"Hooks","Opaque code execution","The skill's logic is based on readable SQL queries and descriptive text, with no obfuscated code or runtime script fetching.",{"category":93,"check":94,"severity":24,"summary":95},"Portability","Structural Assumption","The skill assumes access to a correctly configured Immich MCP server and its database. It clearly states this prerequisite and has a strict check for it.",{"category":97,"check":98,"severity":24,"summary":99},"Trust","Issues Attention","Open issues (0) and closed issues (1) in the last 90 days indicate active, albeit minimal, maintenance with a high closure rate. The maintainer appears responsive.",{"category":101,"check":102,"severity":24,"summary":103},"Versioning","Release Management","A meaningful version (1.1.0) is declared in the SKILL.md frontmatter, aligning with the trust signals.",{"category":105,"check":106,"severity":24,"summary":107},"Execution","Validation","Input is primarily through natural language triggers and SQL queries. The critical check for MCP server connection acts as a validation step before proceeding.",{"category":67,"check":109,"severity":24,"summary":110},"Unguarded Destructive Operations","The skill is primarily analytical and read-only regarding the Immich database. Any potential future actions are explicitly stated as user-approved and never auto-executed.",{"category":112,"check":113,"severity":24,"summary":114},"Code Execution","Error Handling","The SKILL.md explicitly instructs the skill to halt and report an error if the Immich MCP server connection fails, demonstrating clear error handling for a critical prerequisite.",{"category":112,"check":116,"severity":64,"summary":117},"Logging","The skill's function is analytical and does not involve destructive actions or outbound calls that would necessitate a local audit log file.",{"category":119,"check":120,"severity":64,"summary":121},"Compliance","GDPR","The extension analyzes disk usage based on file metadata and does not appear to process personal data directly.",{"category":119,"check":123,"severity":24,"summary":124},"Target market","The extension is designed for any Immich instance, regardless of geographic location, and has no regional restrictions.",{"category":93,"check":126,"severity":24,"summary":127},"Runtime stability","The skill's core functionality relies on SQL queries and an Immich MCP server, which are generally platform-agnostic. The documentation specifies Python 3.10+ as a prerequisite for the MCP server, ensuring a stable runtime.",{"category":44,"check":129,"severity":24,"summary":130},"README","The README file is comprehensive, providing installation instructions, clear explanations of functionality, and relevant links.",{"category":33,"check":132,"severity":64,"summary":133},"Tool surface size","The extension primarily utilizes SQL queries embedded within the SKILL.md rather than exposing distinct, separately callable tools.",{"category":40,"check":135,"severity":64,"summary":136},"Overlapping near-synonym tools","The extension does not expose multiple tools with overlapping functionalities; its core is based on specific SQL queries for distinct analytical tasks.",{"category":44,"check":138,"severity":24,"summary":139},"Phantom features","All advertised features, such as storage analysis and identification of specific file types, are directly supported by the SQL queries and workflow outlined in the SKILL.md.",{"category":141,"check":142,"severity":24,"summary":143},"Install","Installation instruction","The README provides clear, copy-pasteable installation instructions for both plugin and manual MCP server setup, including prerequisites and verification steps.",{"category":145,"check":146,"severity":24,"summary":147},"Errors","Actionable error messages","The SKILL.md mandates a clear error message for connection failures, guiding the user to the setup command and necessary credentials.",{"category":105,"check":149,"severity":24,"summary":150},"Pinned dependencies","The SKILL.md specifies Python 3.10+ as a prerequisite, and the README mentions pip, implying standard Python package management practices.",{"category":33,"check":152,"severity":64,"summary":153},"Dry-run preview","The extension is analytical and does not perform state-changing operations or send data outward, thus a dry-run preview is not applicable.",{"category":155,"check":156,"severity":64,"summary":157},"Protocol","Idempotent retry & timeouts","The skill performs read-only database queries and does not involve remote calls or state-changing operations that would require idempotency or timeouts.",{"category":119,"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 description precisely states what the skill does (analyze disk usage in Immich) and when to use it (low disk space, storage planning), naming specific file types and user intents.",{"category":40,"check":165,"severity":24,"summary":166},"Concise Frontmatter","The frontmatter in SKILL.md is dense and self-contained, providing a clear summary of the core capability and trigger phrases within a reasonable character limit.",{"category":44,"check":168,"severity":24,"summary":169},"Concise Body","The SKILL.md is concise, detailing the workflow with SQL queries and referencing external documentation for more in-depth setup, adhering to progressive disclosure.",{"category":171,"check":172,"severity":24,"summary":173},"Context","Progressive Disclosure","The SKILL.md outlines the analysis steps concisely and provides links to external documentation for setup and detailed skill/tool references.",{"category":171,"check":175,"severity":64,"summary":176},"Forked exploration","This skill performs a defined analysis and does not involve deep exploration or code review that would necessitate a forked context.",{"category":22,"check":178,"severity":24,"summary":179},"Usage examples","The SKILL.md provides concrete SQL query examples for each analysis step, and the README illustrates natural language triggers and setup, covering the primary usage scenarios.",{"category":22,"check":181,"severity":24,"summary":182},"Edge cases","The SKILL.md explicitly documents critical failure modes, such as connection failures, and provides clear recovery steps (setup command, API key configuration).",{"category":112,"check":184,"severity":64,"summary":185},"Tool Fallback","The skill's primary dependency is the Immich MCP server, which is explicitly required. There is no fallback for this core dependency.",{"category":187,"check":188,"severity":24,"summary":189},"Safety","Halt on unexpected state","The SKILL.md mandates an immediate halt and user notification if the Immich MCP server is not connected, ensuring the workflow stops before proceeding with potential errors.",{"category":93,"check":191,"severity":64,"summary":192},"Cross-skill coupling","This skill operates independently and does not implicitly rely on other skills. Any adjacent tasks are clearly delegated to other tools or user actions.",1778686665785,"This skill connects to an Immich photo library via an MCP server to analyze disk usage, identify storage-consuming files (like RAW+JPEG pairs, large videos), and project future storage growth. It provides detailed reports and recommendations for reclaiming space.",[196,197,198,199,200],"Analyze disk usage by asset type and format","Identify large files and duplicate RAW+JPEG pairs","Calculate storage in trash","Project monthly storage growth rate","Generate detailed storage analysis reports",[202,203,204],"Automatically delete files without user approval.","Include thumbnails, preview images, or ML embeddings in storage analysis.","Transcode videos automatically (only flag for user review).","3.0.0","4.4.0","To help users understand and manage their Immich photo library's storage consumption by identifying optimization opportunities and potential space reclaimers.","The extension is exceptionally well-documented and functional, with a clear purpose and robust error handling for its critical dependency. Minor info finding on parameter defaults and not_applicable for others do not detract from overall quality.",96,"A high-quality skill for analyzing and optimizing storage in Immich photo libraries.",[212,213,214,215,216,217],"immich","photo","storage","analysis","optimization","disk-usage","global","verified",[221,222,223,224],"Use when disk space is running low on the Immich server.","Use after bulk imports to assess storage impact.","Use for planning future storage capacity.","Use to decide on keeping RAW files or original videos.",{"codeQuality":226,"collectedAt":228,"documentation":229,"maintenance":232,"security":238,"testCoverage":240},{"hasLockfile":227},false,1778686641475,{"descriptionLength":230,"readmeSize":231},465,8637,{"closedIssues90d":233,"forks":234,"hasChangelog":227,"manifestVersion":235,"openIssues90d":8,"pushedAt":236,"stars":237},1,4,"1.1.0",1778175631000,16,{"hasNpmPackage":227,"license":239,"smitheryVerified":227},"MIT",{"hasCi":227,"hasTests":227},{"updatedAt":242},1778686666119,{"basePath":244,"githubOwner":245,"githubRepo":246,"locale":18,"slug":13,"type":247},"skills/storage-optimizer","drolosoft","immich-photo-manager","skill",true,{"_creationTime":250,"_id":251,"community":252,"display":253,"identity":257,"parentExtension":260,"providers":291,"relations":303,"tags":304,"workflow":305},1778686338567.5732,"k17fptxxsmtdk9k5x99qw7re2586n8fq",{"reviewCount":8},{"description":254,"installMethods":255,"name":256,"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":246},"Immich Photo Manager",{"basePath":258,"githubOwner":245,"githubRepo":246,"locale":18,"slug":246,"type":259},"","plugin",{"_creationTime":261,"_id":262,"community":263,"display":264,"identity":268,"providers":270,"relations":285,"tags":287,"workflow":288},1778686338567.573,"k177jqq2va7fhvpdsch9vv5cbn86nwwg",{"reviewCount":8},{"description":265,"installMethods":266,"name":267,"sourceUrl":14},"Drolosoft Marketplace - AI-powered tools by Drolosoft",{"claudeCode":12},"drolosoft-marketplace",{"basePath":258,"githubOwner":245,"githubRepo":246,"locale":18,"slug":246,"type":269},"marketplace",{"evaluate":271,"extract":280},{"promptVersionExtension":272,"promptVersionScoring":206,"score":273,"tags":274,"targetMarket":218,"tier":219},"3.1.0",98,[275,212,276,277,278,279],"photo-management","ai-assistant","media","organization","mcp",{"commitSha":281,"marketplace":282,"plugin":283},"HEAD",{"name":267,"pluginCount":233},{"mcpCount":8,"provider":284,"skillCount":8},"classify",{"repoId":286},"kd71cer955pa6pzdsewzf62dt986nbtd",[276,212,279,277,278,275],{"evaluatedAt":289,"extractAt":290,"updatedAt":289},1778686361336,1778686338567,{"evaluate":292,"extract":300},{"promptVersionExtension":205,"promptVersionScoring":206,"score":293,"tags":294,"targetMarket":218,"tier":219},95,[212,275,295,296,297,298,299],"gallery","self-hosted","ai-search","automation","media-organization",{"commitSha":281,"license":239,"plugin":301},{"mcpCount":8,"provider":284,"skillCount":302},12,{"parentExtensionId":262,"repoId":286},[297,298,295,212,299,275,296],{"evaluatedAt":306,"extractAt":290,"updatedAt":306},1778686398961,{"evaluate":308,"extract":310},{"promptVersionExtension":205,"promptVersionScoring":206,"score":209,"tags":309,"targetMarket":218,"tier":219},[212,213,214,215,216,217],{"commitSha":281},{"parentExtensionId":251,"repoId":286},{"_creationTime":313,"_id":286,"identity":314,"providers":315,"workflow":490},1778686332166.7776,{"githubOwner":245,"githubRepo":246,"sourceUrl":14},{"classify":316,"discover":472,"github":475},{"commitSha":281,"extensions":317},[318,331,374,387,395,403,411,419,427,435,443,451,456,464],{"basePath":258,"description":265,"displayName":267,"installMethods":319,"rationale":320,"selectedPaths":321,"source":330,"sourceLanguage":18,"type":269},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[322,325,327],{"path":323,"priority":324},".claude-plugin/marketplace.json","mandatory",{"path":326,"priority":324},"README.md",{"path":328,"priority":329},"LICENSE","high","rule",{"basePath":258,"description":254,"displayName":246,"installMethods":332,"license":239,"rationale":333,"selectedPaths":334,"source":330,"sourceLanguage":18,"type":259},{"claudeCode":246},"plugin manifest at .claude-plugin/plugin.json",[335,337,338,339,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372],{"path":336,"priority":324},".claude-plugin/plugin.json",{"path":326,"priority":324},{"path":328,"priority":329},{"path":340,"priority":341},"skills/album-manager/SKILL.md","medium",{"path":343,"priority":341},"skills/auto-album-curator/SKILL.md",{"path":345,"priority":341},"skills/duplicate-report/SKILL.md",{"path":347,"priority":341},"skills/library-health-report/SKILL.md",{"path":349,"priority":341},"skills/metadata-fixer/SKILL.md",{"path":351,"priority":341},"skills/people-report/SKILL.md",{"path":353,"priority":341},"skills/photo-cleanup/SKILL.md",{"path":355,"priority":341},"skills/photo-search/SKILL.md",{"path":357,"priority":341},"skills/rotate-photos/SKILL.md",{"path":359,"priority":341},"skills/storage-optimizer/SKILL.md",{"path":361,"priority":341},"skills/timeline-gaps/SKILL.md",{"path":363,"priority":341},"skills/travel-map/SKILL.md",{"path":365,"priority":329},"commands/cleanup.md",{"path":367,"priority":329},"commands/create-album.md",{"path":369,"priority":329},"commands/immich-status.md",{"path":371,"priority":329},"commands/my-travels.md",{"path":373,"priority":329},"commands/setup-immich-photo-manager.md",{"basePath":375,"description":376,"displayName":377,"installMethods":378,"rationale":379,"selectedPaths":380,"source":330,"sourceLanguage":18,"type":247},"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",[381,383,385],{"path":382,"priority":324},"SKILL.md",{"path":384,"priority":341},"references/geographic-search-patterns.md",{"path":386,"priority":341},"references/viewer-template-spec.md",{"basePath":388,"description":389,"displayName":390,"installMethods":391,"rationale":392,"selectedPaths":393,"source":330,"sourceLanguage":18,"type":247},"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",[394],{"path":382,"priority":324},{"basePath":396,"description":397,"displayName":398,"installMethods":399,"rationale":400,"selectedPaths":401,"source":330,"sourceLanguage":18,"type":247},"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",[402],{"path":382,"priority":324},{"basePath":404,"description":405,"displayName":406,"installMethods":407,"rationale":408,"selectedPaths":409,"source":330,"sourceLanguage":18,"type":247},"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",[410],{"path":382,"priority":324},{"basePath":412,"description":413,"displayName":414,"installMethods":415,"rationale":416,"selectedPaths":417,"source":330,"sourceLanguage":18,"type":247},"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",[418],{"path":382,"priority":324},{"basePath":420,"description":421,"displayName":422,"installMethods":423,"rationale":424,"selectedPaths":425,"source":330,"sourceLanguage":18,"type":247},"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",[426],{"path":382,"priority":324},{"basePath":428,"description":429,"displayName":430,"installMethods":431,"rationale":432,"selectedPaths":433,"source":330,"sourceLanguage":18,"type":247},"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",[434],{"path":382,"priority":324},{"basePath":436,"description":437,"displayName":438,"installMethods":439,"rationale":440,"selectedPaths":441,"source":330,"sourceLanguage":18,"type":247},"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",[442],{"path":382,"priority":324},{"basePath":444,"description":445,"displayName":446,"installMethods":447,"rationale":448,"selectedPaths":449,"source":330,"sourceLanguage":18,"type":247},"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",[450],{"path":382,"priority":324},{"basePath":244,"description":10,"displayName":13,"installMethods":452,"rationale":453,"selectedPaths":454,"source":330,"sourceLanguage":18,"type":247},{"claudeCode":12},"SKILL.md frontmatter at skills/storage-optimizer/SKILL.md",[455],{"path":382,"priority":324},{"basePath":457,"description":458,"displayName":459,"installMethods":460,"rationale":461,"selectedPaths":462,"source":330,"sourceLanguage":18,"type":247},"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",[463],{"path":382,"priority":324},{"basePath":465,"description":466,"displayName":467,"installMethods":468,"rationale":469,"selectedPaths":470,"source":330,"sourceLanguage":18,"type":247},"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",[471],{"path":382,"priority":324},{"sources":473},[474],"manual",{"closedIssues90d":233,"description":476,"forks":234,"homepage":477,"license":239,"openIssues90d":8,"pushedAt":236,"readmeSize":231,"stars":237,"topics":478},"📸🧹🗺️ 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",[479,480,481,482,483,295,484,212,279,485,486,275,487,296,488,489],"albums","claude","claude-plugin","cleanup","duplicates","geolocation","mcp-server","metadata","photos","immich-plugin","python",{"classifiedAt":491,"discoverAt":492,"extractAt":493,"githubAt":493,"updatedAt":491},1778686338385,1778686332166,1778686336662,[215,217,212,216,213,214],{"evaluatedAt":242,"extractAt":290,"updatedAt":242},[],[498,528,558,587,615,645],{"_creationTime":499,"_id":500,"community":501,"display":502,"identity":508,"providers":513,"relations":522,"tags":524,"workflow":525},1778696691708.3035,"k17br1j5s86ae90zqeyd7zcg2586mkwr",{"reviewCount":8},{"description":503,"installMethods":504,"name":506,"sourceUrl":507},"Comprehensive performance analysis, bottleneck detection, and optimization recommendations for Claude Flow swarms\n",{"claudeCode":505},"ruvnet/ruflo","Performance Analysis","https://github.com/ruvnet/ruflo",{"basePath":509,"githubOwner":510,"githubRepo":511,"locale":18,"slug":512,"type":247},".claude/skills/performance-analysis","ruvnet","ruflo","performance-analysis",{"evaluate":514,"extract":521},{"promptVersionExtension":205,"promptVersionScoring":206,"score":515,"tags":516,"targetMarket":218,"tier":219},100,[517,215,216,518,519,520],"performance","claude-flow","bottleneck-detection","reporting",{"commitSha":281,"license":239},{"repoId":523},"kd7ed28gj8n0y3msk5dzrp05zs86nqtc",[215,519,518,216,517,520],{"evaluatedAt":526,"extractAt":527,"updatedAt":526},1778699217174,1778696691708,{"_creationTime":529,"_id":530,"community":531,"display":532,"identity":538,"providers":543,"relations":550,"tags":553,"workflow":554},1778699112432.148,"k179cjry8epfbq0h2sfwnag5p586m3zy",{"reviewCount":8},{"description":533,"installMethods":534,"name":536,"sourceUrl":537},"Entscheidungsintelligenz für KI-Agenten. Analysieren Sie Optionen, bilden Sie Entscheidungsabhängigkeiten mit PageRank ab, erkennen Sie Konflikte zwischen Informationsquellen und finden Sie die wichtigsten Entscheidungen.",{"claudeCode":535},"Whatsonyourmind/oraclaw","oraclaw-decide","https://github.com/Whatsonyourmind/oraclaw",{"basePath":539,"githubOwner":540,"githubRepo":541,"locale":542,"slug":536,"type":247},"mission-control/packages/clawhub-skills/oraclaw-decide","Whatsonyourmind","oraclaw","de",{"evaluate":544,"extract":549},{"promptVersionExtension":205,"promptVersionScoring":206,"score":515,"tags":545,"targetMarket":218,"tier":219},[546,215,216,547,548],"decision-making","graph-theory","ai-agent-tools",{"commitSha":281},{"repoId":551,"translatedFrom":552},"kd76fmxm1ng903s4fmj0p7hxxs86ndkg","k17fe7ybjme5s1n10mmg3emmns86nr26",[548,215,546,547,216],{"evaluatedAt":555,"extractAt":556,"updatedAt":557},1778698934136,1778698837670,1778699112432,{"_creationTime":559,"_id":560,"community":561,"display":562,"identity":568,"providers":573,"relations":580,"tags":583,"workflow":584},1778692488329.0164,"k17d7dgccv6vnj9tcw0cehwnph86nryb",{"reviewCount":8},{"description":563,"installMethods":564,"name":566,"sourceUrl":567},"Analyze which rules are actively used vs inert. Detect coverage gaps. Recommend pruning to reduce token consumption.",{"claudeCode":565},"luiseiman/claude-kit","Rule Effectiveness Analysis","https://github.com/luiseiman/claude-kit",{"basePath":569,"githubOwner":570,"githubRepo":571,"locale":18,"slug":572,"type":247},"skills/rule-effectiveness","luiseiman","claude-kit","rule-effectiveness",{"evaluate":574,"extract":579},{"promptVersionExtension":205,"promptVersionScoring":206,"score":515,"tags":575,"targetMarket":218,"tier":219},[576,577,215,216,578],"claude-code","configuration","git",{"commitSha":281,"license":239},{"parentExtensionId":581,"repoId":582},"k17650xadq8363kzchr4w0gmf186nq24","kd79wqc8an5wh20cc2znr8tyb586mxwx",[215,576,577,578,216],{"evaluatedAt":585,"extractAt":586,"updatedAt":585},1778693275143,1778692488329,{"_creationTime":588,"_id":589,"community":590,"display":591,"identity":597,"providers":601,"relations":609,"tags":611,"workflow":612},1778697652123.8975,"k17egwaz31kmprzw1q8m38fv4586mqah",{"reviewCount":8},{"description":592,"installMethods":593,"name":595,"sourceUrl":596},"Search and analyze your own session logs (older/parent conversations) using jq.",{"claudeCode":594},"steipete/clawdis","session-logs","https://github.com/steipete/clawdis",{"basePath":598,"githubOwner":599,"githubRepo":600,"locale":18,"slug":595,"type":247},"skills/session-logs","steipete","clawdis",{"evaluate":602,"extract":608},{"promptVersionExtension":205,"promptVersionScoring":206,"score":515,"tags":603,"targetMarket":218,"tier":219},[604,605,606,215,607],"logs","session","jq","cli",{"commitSha":281},{"repoId":610},"kd738npxg9yh3xf3vddzy9fyfh86nhng",[215,607,606,604,605],{"evaluatedAt":613,"extractAt":614,"updatedAt":613},1778698902636,1778697652123,{"_creationTime":616,"_id":617,"community":618,"display":619,"identity":625,"providers":630,"relations":637,"tags":640,"workflow":641},1778697371856.6287,"k1779r96aq73f44z9ffm437vch86myt9",{"reviewCount":8},{"description":620,"installMethods":621,"name":623,"sourceUrl":624},"Wissen über das Präsentationsfolienformat, das Gewichtungssystem, die Navigation und die Abschnittsstruktur",{"claudeCode":622},"shanraisshan/claude-code-best-practice","Presentation Structure","https://github.com/shanraisshan/claude-code-best-practice",{"basePath":626,"githubOwner":627,"githubRepo":628,"locale":542,"slug":629,"type":247},".claude/skills/presentation/presentation-structure","shanraisshan","claude-code-best-practice","presentation-structure",{"evaluate":631,"extract":636},{"promptVersionExtension":205,"promptVersionScoring":206,"score":515,"tags":632,"targetMarket":218,"tier":219},[633,634,635,215],"presentation","html","documentation",{"commitSha":281,"license":239},{"repoId":638,"translatedFrom":639},"kd74710g49kxgwbfjxeb7s132d86myxr","k175cp8c6m1kknsf9yhd75swn586m4hj",[215,635,634,633],{"evaluatedAt":642,"extractAt":643,"updatedAt":644},1778697246983,1778697205743,1778697371856,{"_creationTime":646,"_id":647,"community":648,"display":649,"identity":655,"providers":659,"relations":669,"tags":672,"workflow":673},1778695548458.3403,"k17874jrpzpfq3ftmmahe017n586nmy2",{"reviewCount":8},{"description":650,"installMethods":651,"name":653,"sourceUrl":654},"Compose or analyze sacred music in Hildegard von Bingen's distinctive modal style. Covers modal selection, melodic contour (wide-range melodies), text-setting (syllabic and melismatic), neumatic notation, and liturgical context for antiphons, sequences, and responsories. Use when composing a new piece in Hildegardian style, analyzing an existing chant for structure and mode, researching medieval modal music, preparing to perform or teach Hildegard's music, or setting Latin sacred texts.\n",{"claudeCode":652},"pjt222/agent-almanac","compose-sacred-music","https://github.com/pjt222/agent-almanac",{"basePath":656,"githubOwner":657,"githubRepo":658,"locale":18,"slug":653,"type":247},"skills/compose-sacred-music","pjt222","agent-almanac",{"evaluate":660,"extract":668},{"promptVersionExtension":205,"promptVersionScoring":206,"score":515,"tags":661,"targetMarket":218,"tier":219},[662,663,664,665,666,667,215],"hildegard","sacred-music","chant","modal","musicology","composition",{"commitSha":281},{"parentExtensionId":670,"repoId":671},"k170h0janaa9kwn7cfgfz2ykss86mmh9","kd7aryv63z61j39n2td1aeqkvh86mh12",[215,664,667,662,665,666,663],{"evaluatedAt":674,"extractAt":675,"updatedAt":674},1778696688896,1778695548458]