CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/nanoclaw-media

Personal entertainment-media skills for NanoClaw: Trakt watch-history sync, TV-show and audiobook recommendations, watchlist release checks, YouTube channel-comment digests, and Audible backup — with a weekly cadence companion. NanoClaw per-chat overlay tile.

73

Quality

92%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

SKILL.mdskills/recommend-books/

name:
recommend-books
description:
Recommend audiobooks based on Baruch's reading history and preferences. Analyzes reading patterns, filters unread titles by genre and rating, identifies series continuations, checks for new releases from favorite authors, and suggests similar authors or highly-rated unread titles from the Audible library JSON. Use when Baruch asks for book recommendations, "what to read next", wants something similar to a specific author, or asks about his unread queue.

Audiobook Recommendation Skill

Every step below is mandatory. Execute them in order. Do not skip, reorder, or abbreviate any step.

Input

Baruch may ask with or without specifics:

  • "Посоветуй книгу" (general)
  • "Что-нибудь похожее на Jeremy Robinson"
  • "Хочу что-то легкое / фантастику / триллер"
  • "Что у меня непрочитанного?"

Step 1: Load library

Read /workspace/extra/audiobooks/books (1).json — a JSON array of audiobook objects. Key non-obvious fields:

FieldNotes
titleMay contain & HTML entities
series_nameWidely populated; use for series continuation detection
series_sequencePosition in series
read_status"Finished" / "Unread" / "Reading"
percent_complete0–100, listening progress. Trust read_status over percent_complete for finished classification
rating_averageOverall Audible rating (float as string)
performance_ratingNarration quality rating (float as string)
story_ratingStory quality rating (float as string)
genreHierarchical "Top:Sub:SubSub" format, comma-separated for multi-genre

Step 2: Analyze reading patterns

Derive all counts and current state directly from the JSON.

From "Finished" books — build preference profile:

  • Favorite authors (by finished count)
  • Preferred genres using the hierarchical genre field — split by comma, extract top-level and sub-genres
  • Themes and styles from description/summary
  • Series he's completing
  • Narrator preference: per narrator, compute avg performance_rating minus avg story_rating across finished books. High delta + high finished count = preferred narrator
  • Story vs narration preference: if Baruch finishes books with higher performance_rating than story_rating, he's narrator-driven; reverse means story-driven. Weight recommendations accordingly

Filtering rules — apply before generating recommendations:

  • read_status = "Reading": skip authors, genres, or styles matching an in-progress book
  • purchase_date before 2024 + read_status = "Unread": dominant genres of these books are low priority
  • Genre with multiple abandoned unread titles: exclude entirely

Step 3: Check new releases (web search required)

Always search the web for new books from top authors before recommending.

Derive top authors from the JSON (highest "Finished" count), plus any author Baruch mentions.

For each, search: "[Author name]" new book 2025 OR 2026 audiobook

Cross-reference results against the library JSON by title and author. If already in library, skip. If not in library and fits taste, recommend (flag as "not yet in your library, available on Audible").

Step 4: Generate recommendations

Request typeLogic
"What to read next" / unread queueFilter read_status = "Unread". Priority: continuing an in-progress series > high-rated (rating_average >= 4.3) > matching favorite genres. Flag series continuations: "Book 5 of [series_name] — you've finished 1-4"
"Something like X"Find books by same author, same genre/subgenre, or same series style. Check both Finished (for comparison) and Unread (for suggestions)
General recommendationMix: 1-2 unread books matching top genres + 1 wildcard from a less-explored genre with high rating

3D rating ranking:

  • rating_average >= 4.3 = strong candidate
  • performance_rating >= 4.5 = great narration; boost if narrator-driven
  • story_rating >= 4.5 = great story; boost if story-driven
  • Performance-Story delta > 0.3 = notably better narration than story (or vice versa); call out explicitly
  • Tie-break on the dimension Baruch values more

Step 5: Format response

Keep it tight — 3-5 recommendations max. For each, write a targeted pitch, not a summary:

  • Connect to something specific Baruch already likes ("Батчер но в Риме", "как Агата Кристи только жестче")
  • Flag relevant facts: series length, finished, narrator quality
  • Include all three ratings when meaningful (e.g., "narration 4.9 / story 4.3 — carried by the narrator")
  • Be honest about weaknesses ("первые 2 книги медленные", "автор ещё не закончил серию")
<b>[Title]</b> — [Author] (read by [Narrator])
[1-2 sentence targeted pitch tied to Baruch's taste]
[Duration] | ⭐ [rating_average] (narr: [performance_rating] / story: [story_rating]) | [Series note if relevant]

If a recommendation doesn't fit ("уже читал", "не закончена"), pivot immediately to alternatives — don't just say "okay".

skills

recommend-books

CHANGELOG.md

README.md

tile.json