From movies-for-ai-agents
Silently keep the user's watched history and taste profile current as they mention movies in conversation. Use whenever the user says "I watched X", "I saw X last night", "I just finished X", "we watched X", "loved X", "hated X", "didn't like X", "that was great/terrible", "best movie ever", "worst movie", "add X to my watchlist", or otherwise signals a movie-viewing event or taste reaction — even if it's a passing mention in the middle of another topic. Do NOT trigger on hypotheticals ("I want to watch X", "I should watch X") — those belong on the watchlist instead. This skill exists so the user's taste profile and history stay rich without any manual logging.
npx claudepluginhub jcodesmore/jcodesmore-plugins --plugin movies-for-ai-agentsThis skill uses the workspace's default tool permissions.
You are quietly maintaining the user's watched list and taste profile from conversational signals. Most invocations should be lightweight — log and move on.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Share bugs, ideas, or general feedback.
You are quietly maintaining the user's watched list and taste profile from conversational signals. Most invocations should be lightweight — log and move on.
active_list, also call active_remove to clear it.active_list, call active_remove({ movieId }). Do NOT call watched_add — they didn't really see it.list_* MCP tools directly. See list-ops table below.Resolve the title. Call movies_search({ query: "<title>", year: <if hinted> }). If exactly one clear match, use it. If multiple, pick the most popular (highest voteCount); if still ambiguous, ask the user to confirm — showing Title (Year) — once, not repeatedly.
Active resolution shortcut. Before resolving from scratch, check active_list if the user said "finished/dropped/watched" with a title that might match an in-progress entry. If you find a match, you already have the movieId and can skip the search.
Log the event.
watched_add({ movieId, rating?, notes? }). Infer rating from the sentiment (loved = 5, liked = 4, fine = 3, disliked = 2, hated = 1). Only set rating if the signal is clear — leave null otherwise. Capture a short notes field if the user said why they liked/disliked it. If the title was in active_list, also call active_remove({ movieId }).active_remove({ movieId }) only. No watched_add.watchlist_add({ movieId, note? }). Capture why they want to see it in note when stated.Update taste (only on strong signals). If the user clearly loved or hated the film, call preferences_set to reinforce:
likedGenres; append director (if known from movies_details) to favoriteDirectors; append the TMDB ID to favoriteMovies.dislikedGenres only if the user's complaint was genre-shaped ("too slow", "too much horror"). Don't infer disliked genres from a single bad review.Acknowledge briefly. A single sentence: "Logged — Arrival (2016, IMDb 7.9), loved it. Your sci-fi liked-list now has 4 films." If the TMDB details response carries an IMDb rating, feel free to cite it in the confirmation (it gives the user a subtle anchor for their own rating over time). Then return control to whatever the user was actually doing. Don't derail the conversation.
Map directly to MCP tools — no resolution dance unless adding a movie that needs movieId:
| User says… | Tool to call |
|---|---|
| "add X to my halloween list" | resolve title → list_add({ listName: "halloween", movieId }) (auto-creates the list) |
| "remove X from halloween" | resolve title → list_remove({ listName: "halloween", movieId }) |
| "what's on my halloween list?" | list_list({ listName: "halloween" }) — render entries with IMDb hyperlinks |
| "show me my lists" / "what lists do I have?" | lists_names — render as one-line summary with counts |
| "rename halloween to spooky" | list_rename({ oldName: "halloween", newName: "spooky" }) |
| "delete my halloween list" | list_delete({ listName: "halloween" }) (refuses for the reserved watchlist) |
Confirm in one sentence with the bolded IMDb-hyperlinked title format: "Added Weapons to halloween (4 total)."
watched_add tool handles this — but verify the user's intent if they seem to be re-rating vs. re-watching).