{"id":7698,"plugin_id":"plugin_asdk_app_698a63a87aa081918a6532ccf4cbc1a1","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:51:02.467Z","digest":"8d1b255dca88a229bfc42efd00f566a264a011f09b39ae29c081d74adc36ffd8","against":null,"payload":{"name":"recommend","description":"Get a personalized recommendation based on your collection, mood, or a specific theme","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":274}],"skill_md_contents":"---\nname: \"recommend\"\ndescription: \"Get a personalized recommendation based on your collection, mood, or a specific theme\"\n---\n\n# What Should I Read / Watch / Listen To?\n\nSurface the right thing at the right time, from what you already own or something new worth adding.\n\n\n## Workflow\n\n### Step 1: Understand the Request\n\nDetermine what the user is after:\n\n- **Mood-based**: \"I'm restless,\" \"something comforting,\" \"I want to feel unsettled\"\n- **Similarity-based**: \"something like [title]\", unpack what they loved about it\n- **Theme-based**: \"stories about memory,\" \"music about place\"\n- **Cross-media**: \"a book that pairs with [film],\" \"an album for reading [book]\"\n- **Open-ended**: \"what should I read next?\", use collection signals to decide\n\nIf the request is vague, ask one clarifying question. Only one. Then recommend.\n\n### Step 2: Mine the Collection\n\nAlways check what they already own before suggesting anything new. Using the **recommendations** skill methodology:\n\n```\nget_stats()                                    # Collection shape\nget_by_rating(min_rating=4)                    # What they love\nget_timeline()                                 # Recent activity\nsearch(media_type, query=\"relevant theme\")     # Themed search\nget_by_status(media_type, status=\"unread\")     # Unread/unwatched shelf\nget_signals()                                  # Behavioral patterns\n```\n\nLook for:\n- Unread/unwatched items that match the request\n- Highly-rated items with thematic connections to the request\n- Recent engagement patterns that suggest current taste\n\n### Step 3: Build the Recommendation\n\nUsing the **recommendations** and **collection-insights** skills:\n\nFor each recommendation (aim for 2-3):\n1. **Why this fits**: the specific connection to their request and taste\n2. **Something to sample**: play a track, embed a video, quote a passage\n3. **The thread**: how it connects to what they already love\n\nPrioritize in this order:\n1. Items they own but haven't explored yet\n2. Cross-media connections within their collection\n3. New items that fit their established taste\n4. Stretch picks that expand their range\n\n### Step 4: Make It Tangible\n\nDon't just name titles. Demonstrate:\n- For albums: `get_track_previews()`, play the music\n- For films/shows: `search_youtube()`, embed a trailer or video essay\n- For books: `search_book_content()` if available, or find an author interview\n- For anime: `search_youtube()`, embed the opening sequence\n\n### Step 5: Present the Recommendations\n\nUse the output format below. End with follow-up prompts that let them go deeper or pivot.\n\n## Output Format\n\n```\n## Here's What I'd Reach For\n\n### [Title]: [Media Type]\n[Cover/poster image]\n\n[2-3 sentences on WHY this fits, specific to their request and taste.\nReference actual items in their collection as connection points.]\n\n[Embedded media: track preview, video, or passage]\n\n**The connection:** [One line linking this to something they love]\n\n---\n\n### [Title 2]: [Media Type]\n[Same structure]\n\n---\n\n### The Stretch Pick: [Title 3]\n[Same structure but frame as expanding their range]\n\n```\n\n## Notes\n\n- Never recommend something they've already rated highly, they know about it\n- If recommending something they own but haven't consumed, acknowledge the unread/unwatched status directly\n- For cross-media recommendations, make the connection explicit, don't assume they'll see it\n- If nothing in the collection fits, say so honestly and research externally\n- Always include at least one item from their existing collection\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}