Reading List Skill
Manages Ben's reading list Google Sheet: https://docs.google.com/spreadsheets/d/1iLziNbQPM_wP162YA8FcqhHhXCkFcCvhpTNa67WGywI/edit
Sheet Structure
Finished tab
Columns: Title, Author, Year Read, Medium, Year Published, Read Order, Date Finished, Book ID
- Title: Book title
- Author: Author name(s)
- Year Read: Year completed (e.g.,
2025, 2026)
- Medium: One of:
Audiobook, E-Book, Print book
- Year Published: Year the book was first published (e.g.,
1952, 2003). Fill this in for every new book added.
- Read Order: Sequential lifetime reading order. The earliest finished book is
1, and each newly finished book gets the next integer.
- Date Finished: Date the finished book is logged, in
YYYY-MM-DD format using America/New_York.
- Book ID: Stable join key for book metadata, formatted like
book-0104.
Book Metadata tab
Columns: Book ID, Title, Author, ISBN 13, ISBN 10, Open Library ID, Google Books ID, Publisher, Published Date, Page Count, Language, Subjects, Description, Cover URL, Metadata Source, Metadata Checked, Metadata Confidence, Metadata Notes
- Book ID: Join key back to
Finished
- Metadata Source: Which lookup source supplied the data, typically
Open Library, Google Books, or both
- Metadata Checked: Date metadata was last refreshed
- Metadata Confidence:
High, Medium, Low, or Unmatched
- Metadata Notes: Short note about match quality or ambiguity
Wishlist tab
Columns: Title, Author
- Title: Book title
- Author: Author name(s)
- Additional columns may exist but are not required
Medium by year tab
Pivot table summary. Do not edit directly — it auto-updates from Finished.
Google Workspace MCP
Use the Google Workspace MCP for spreadsheet 1iLziNbQPM_wP162YA8FcqhHhXCkFcCvhpTNa67WGywI. Always pass user_google_email: "kip@palewi.re"; do not use gog. Read target ranges with read_sheet_values, modify rows with modify_sheet_values, and read back every changed row. To create a finished-book row, read Finished!F2:F500, calculate the next numeric read order, and derive Book ID as book-%04d.
Move from Wishlist to Finished
- Read the wishlist entry
- Read
Finished!F2:F, compute the next Read Order, build Book ID, set Date Finished to today's America/New_York date, and append to Finished with Year Read, Medium, Year Published, Read Order, Date Finished, and Book ID
- Look up metadata by ISBN first when available, otherwise by title and author using Open Library and Google Books
- Append or update the
Book Metadata row for that Book ID, recording Metadata Source, Metadata Checked, Metadata Confidence, and Metadata Notes
- Optionally delete from Wishlist (requires manual confirmation)
Query and search
Read the relevant Finished, Wishlist, or Book Metadata range with read_sheet_values; for author/title searches, read a sufficiently large range and filter returned values.
Workflow Rules
- Always confirm before adding or moving books
- Year Read: Use the current year unless Ben specifies otherwise
- Medium: Ask if not specified; default to
Audiobook if Ben mentions listening
- Year Published: Fill this in for every new book. Ask Ben if unknown, or look it up.
- Read Order: Always calculate
MAX(Read Order)+1 before appending to Finished.
- Date Finished: Always fill with
TZ=America/New_York date +%F when appending to Finished unless Ben specifies a different finished/logged date.
- Book ID: Always derive from
Read Order using book-%04d.
- Metadata lookup: Prefer ISBN lookup when available. Otherwise search by title and author.
- Metadata confidence: Record
High, Medium, Low, or Unmatched instead of silently writing uncertain metadata.
- Audiobook details: Preserve narrator, publisher, release date, duration, or other edition-specific audiobook details in
Metadata Notes when Ben provides them or they are found during lookup.
- Wishlist → Finished: When Ben finishes a wishlist book, move it (don't duplicate)
- Never edit Medium by year — it's a pivot summary
Notes
- Sheet ID:
1iLziNbQPM_wP162YA8FcqhHhXCkFcCvhpTNa67WGywI
- Title: "Ben's book list"
- Timezone:
America/New_York
- Requires Google Workspace MCP Sheets access.
1---2name: reading-list3description: Tracks the books Ben has finished and the ones he wants to read.4---56# Reading List Skill78Manages Ben's reading list Google Sheet: `https://docs.google.com/spreadsheets/d/1iLziNbQPM_wP162YA8FcqhHhXCkFcCvhpTNa67WGywI/edit`910## Sheet Structure1112### Finished tab13Columns: `Title`, `Author`, `Year Read`, `Medium`, `Year Published`, `Read Order`, `Date Finished`, `Book ID`1415- **Title**: Book title16- **Author**: Author name(s)17- **Year Read**: Year completed (e.g., `2025`, `2026`)18- **Medium**: One of: `Audiobook`, `E-Book`, `Print book`19- **Year Published**: Year the book was first published (e.g., `1952`, `2003`). Fill this in for every new book added.20- **Read Order**: Sequential lifetime reading order. The earliest finished book is `1`, and each newly finished book gets the next integer.21- **Date Finished**: Date the finished book is logged, in `YYYY-MM-DD` format using `America/New_York`.22- **Book ID**: Stable join key for book metadata, formatted like `book-0104`.2324### Book Metadata tab25Columns: `Book ID`, `Title`, `Author`, `ISBN 13`, `ISBN 10`, `Open Library ID`, `Google Books ID`, `Publisher`, `Published Date`, `Page Count`, `Language`, `Subjects`, `Description`, `Cover URL`, `Metadata Source`, `Metadata Checked`, `Metadata Confidence`, `Metadata Notes`2627- **Book ID**: Join key back to `Finished`28- **Metadata Source**: Which lookup source supplied the data, typically `Open Library`, `Google Books`, or both29- **Metadata Checked**: Date metadata was last refreshed30- **Metadata Confidence**: `High`, `Medium`, `Low`, or `Unmatched`31- **Metadata Notes**: Short note about match quality or ambiguity3233### Wishlist tab34Columns: `Title`, `Author`3536- **Title**: Book title37- **Author**: Author name(s)38- Additional columns may exist but are not required3940### Medium by year tab41Pivot table summary. Do not edit directly — it auto-updates from Finished.4243## Google Workspace MCP4445Use the Google Workspace MCP for spreadsheet `1iLziNbQPM_wP162YA8FcqhHhXCkFcCvhpTNa67WGywI`. Always pass `user_google_email: "kip@palewi.re"`; do not use `gog`. Read target ranges with `read_sheet_values`, modify rows with `modify_sheet_values`, and read back every changed row. To create a finished-book row, read `Finished!F2:F500`, calculate the next numeric read order, and derive `Book ID` as `book-%04d`.4647### Move from Wishlist to Finished48491. Read the wishlist entry502. Read `Finished!F2:F`, compute the next `Read Order`, build `Book ID`, set `Date Finished` to today's `America/New_York` date, and append to Finished with Year Read, Medium, Year Published, Read Order, Date Finished, and Book ID513. Look up metadata by ISBN first when available, otherwise by title and author using Open Library and Google Books524. Append or update the `Book Metadata` row for that `Book ID`, recording `Metadata Source`, `Metadata Checked`, `Metadata Confidence`, and `Metadata Notes`535. Optionally delete from Wishlist (requires manual confirmation)5455### Query and search5657Read the relevant `Finished`, `Wishlist`, or `Book Metadata` range with `read_sheet_values`; for author/title searches, read a sufficiently large range and filter returned values.5859## Workflow Rules6061- **Always confirm** before adding or moving books62- **Year Read**: Use the current year unless Ben specifies otherwise63- **Medium**: Ask if not specified; default to `Audiobook` if Ben mentions listening64- **Year Published**: Fill this in for every new book. Ask Ben if unknown, or look it up.65- **Read Order**: Always calculate `MAX(Read Order)+1` before appending to Finished.66- **Date Finished**: Always fill with `TZ=America/New_York date +%F` when appending to Finished unless Ben specifies a different finished/logged date.67- **Book ID**: Always derive from `Read Order` using `book-%04d`.68- **Metadata lookup**: Prefer ISBN lookup when available. Otherwise search by title and author.69- **Metadata confidence**: Record `High`, `Medium`, `Low`, or `Unmatched` instead of silently writing uncertain metadata.70- **Audiobook details**: Preserve narrator, publisher, release date, duration, or other edition-specific audiobook details in `Metadata Notes` when Ben provides them or they are found during lookup.71- **Wishlist → Finished**: When Ben finishes a wishlist book, move it (don't duplicate)72- **Never edit Medium by year** — it's a pivot summary7374## Notes7576- Sheet ID: `1iLziNbQPM_wP162YA8FcqhHhXCkFcCvhpTNa67WGywI`77- Title: "Ben's book list"78- Timezone: `America/New_York`79- Requires Google Workspace MCP Sheets access.