← ClaudeAtlas

oreilly-readerlisted

Use when reading O'Reilly Learning books, extracting chapter content from oreilly.com, synthesizing technical book content via browser automation, or researching multiple books for a specific engineering goal. Triggers on O'Reilly book URLs, "read this book", "what's in this O'Reilly book", requests to extract/summarize O'Reilly content, or "look for books on X" research sessions.
nuclide-research/oreilly-reader-skill · ★ 0 · AI & Automation · score 65
Install: claude install-skill nuclide-research/oreilly-reader-skill
# O'Reilly Reader Read and synthesize O'Reilly Learning books via Playwright browser automation. Requires an active O'Reilly session in the Playwright browser (user must be logged in). ## Two Modes **Single book**: User provides a URL or title → read targeted chapters → synthesize. **Research goal**: User has an engineering goal ("find books for X") → search O'Reilly → evaluate TOCs → read targeted chapters across multiple books → cross-book synthesis. This is the more powerful mode. --- ## How It Works O'Reilly renders chapter content via JavaScript — static HTTP fetch returns a shell. The only reliable extraction path is `document.querySelector('main').innerText` via browser evaluation after the page loads. **Never use `browser_snapshot` to extract chapter text** — snapshots exceed token limits on any real chapter (171K+ chars triggers truncation). Always use `browser_evaluate` with the `filename` parameter. --- ## Single Book Workflow ### 1. Navigate to book ``` https://learning.oreilly.com/library/view/[slug]/[ISBN]/ ``` If given a playlist URL, navigate to the playlist first, extract book titles/links from the snapshot, then pick the target book. ### 2. Extract TOC Use `browser_evaluate` — do **not** rely on snapshot YAML for TOC. Books use different URL patterns: ```javascript () => { const links = []; // Works for all book formats document.querySelectorAll('a[href*="/library/view/"]').forEach(a => { const text = a.innerText.trim(); if (tex