{"id":21049,"plugin_id":"plugins_6aac3b2c05dc81918d9d60df53d70931","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:16:45.808Z","digest":"7626227742fe0b8f7eb20d932ff0e3e720ccfad77b989c9bca0b318334951a75","against":null,"payload":{"description":"Use when someone asks to find, reuse, or retrieve a file already stored in their Media2URL library.","included_files":[],"name":"media-library-reuse","skill_md_contents":"---\nname: media-library-reuse\ndescription: Use when someone asks to find, reuse, or retrieve a file already stored in their Media2URL library.\n---\n\n# Media Library Reuse\n\n## Purpose\n\nFind a small, relevant set of authorized Media2URL assets so the user can reuse an existing file instead of publishing another copy.\n\n## Trigger examples\n\n- “Use my company logo.”\n- “Find the screenshot I uploaded yesterday.”\n- “Give me the URL for product-demo.mp4.”\n- “Use my latest hero image.”\n\n## Do not trigger\n\n- The user has not referred to an existing Media2URL asset or library.\n- The request is to publish newly generated content.\n- The result would require exposing another account’s or workspace’s private asset.\n\n## Allowed Media2URL App actions\n\n- Use narrow `search_assets` calls with the user’s query, media type, date, workspace, and small limit.\n- Use `list_recent_assets` for “latest” or “uploaded yesterday” requests.\n- Use `get_asset` and `get_asset_links` after the user selects or clearly identifies one result.\n\n## Result interpretation\n\nReturn a small ranked set with filenames, media type, and safe identifiers or links as permitted. Ask the user to choose when several assets are plausible. Prefer the direct URL for code and the share page for people, according to the user’s destination.\n\n## Missing authorization\n\nRequire a Media2URL account connection for library access. Resolve the active authorized workspace through the App; do not accept a user-supplied workspace ID or public URL as sufficient authorization.\n\n## Plan or quota restriction\n\nFree accounts are capped at 90 uploads per month, roughly 3 per day. Explain when only recent/basic search is available or when full library search requires a paid plan. Do not dump the entire library or silently search outside the available scope.\n\n## Partial failure\n\nIf a search or link lookup returns incomplete results, say which result was confirmed and which could not be retrieved. Preserve filenames and identifiers so one asset’s URL cannot be assigned to another.\n\n## Privacy and destructive actions\n\nSearching is read-only but still private. Never publish an asset merely because the user asks ChatGPT to show or use it, and never delete, replace, or change access without separate explicit intent and App authorization.\n\n## Natural-language examples\n\n“I found two recent logo files in your authorized library. Tell me which one you mean, and I’ll return the direct URL separately from the human-facing share page.”\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}