Skip to content

bookshelf

Traverse the unified paragraph-level index of the OKF reference books (Cutts Plain English, Seely A-Z of Grammar & Punctuation, Swan Practical English Usage, Black Written Pleading). Use when asked to look up, quote, cite, or cross-reference anything in these books, find where a rule is stated, or resolve a pb_id like PB28-068, AZ-2333, PEU-501 or PB1.1. Every row in the master index resolves to a stable pb_id, a page, and full text — never cite a page you have not resolved.

Source: .opencode/skills/bookshelf/SKILL.md — site rebuilt 2026-09-05.


bookshelf — unified reference-book traversal

One master index at .opencode/references/books/all.csv (~19,600 rows), built from four paragraph-level indexes. Every row: pb_id | book | printed page | pdf page | full text.

book pb_id form pages source
cutts — Cutts, Oxford Guide to Plain English, 5th edn 2020 PB<ch>-<seq> printed (pdf−39) cutts-plain-english skill index
az — Seely, Oxford A-Z of Grammar & Punctuation, 2013 AZ-<seq> printed (pdf−26) .opencode/references/books/az.csv
peu — Swan, Practical English Usage, 3rd edn 2005 PEU-<seq> pdf page .opencode/references/books/peu.csv
black — Black et al., Written Pleading, 2nd edn 2025 PB<no>.<no> photo page pleading skill index

Lookup

python .opencode/references/tools/book_lookup.py search "<term>"          # cross-book
python .opencode/references/tools/book_lookup.py --book az search "<t>"   # one book
python .opencode/references/tools/book_lookup.py resolve <pb_id>          # full text
python .opencode/references/tools/book_lookup.py --full search "<term>"   # full text hits
python .opencode/references/tools/book_lookup.py list

Use the registered venv: C:\Users\antho\AppData\Local\Temp\opencode\bieber_venv\Scripts\python.exe.

Rules

  • Resolve before citing. A pb_id is a claim: resolve it, read the row's page, quote the text verbatim. Citation form: (Cutts, Oxford Guide to Plain English, 5th edn, 2020, p 260) — book title, edition, printed page. For peu (no printed offset yet), cite the pdf page or the book's own section number found inside the text.
  • Page numbers are not interchangeable across books: cutts/az carry printed pages (offsets −39/−26 from the PDF), peu carries pdf pages.
  • Never guess a pinpoint. If search/resolve returns nothing, say so; never invent a page or pb_id.
  • Rebuild discipline: book_lookup.py --build regenerates all.csv from the per-book CSVs and the two skill indexes. Run it after any of the skill indexes change. Rebuild az.csv/peu.csv with .opencode/references/tools/index_books.py only when the source PDFs change.
  • Context budget: the master index is ~5 MB; always search via the CLI (it caps output), never read the whole CSV into context.