oreilly-readerlisted
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