Verify the blog book — BDPD Research Notes¶
Purpose¶
Confirm that the six collected blog dispatches are aligned with the papers' empirical record and do not overclaim. The blog book is the temperature layer of the BDPD ecosystem — short essays written alongside the laboratory work, conveying what each finding felt like without sacrificing accuracy. A pass means:
- Empirical alignment — every numerical or directional claim in a dispatch matches what the corresponding paper says.
- Hedging discipline — no "first / never / nobody" claims about literature coverage; epistemic-humility conventions (see project memory
feedback_epistemic_humility_coverage). - No new claims — the blog notes do not introduce findings that are not already in the papers; if they do, those claims must be flagged for proper paper-level verification.
- Render integrity — math is in math mode, no broken-glyph subscripts in PDF, no stylistic blog-only CSS leakage.
Where to look¶
Blog-book sources¶
migration/docs/publications/blog_book/index.qmd— preface ("About these notes") with the six-chapter TOC.migration/docs/publications/blog_book/chapter_00.qmd— What Happens When One Bad Actor Enters the Commons? (BDPD⁰)migration/docs/publications/blog_book/chapter_01.qmd— Why Communication Wasn't Enough (BDPD¹)migration/docs/publications/blog_book/chapter_02.qmd— The Slow Catastrophe Has a Tell (BDPD³)migration/docs/publications/blog_book/chapter_03.qmd— What a Card Game Knows That a Differential Equation Doesn't (dual-mode methodology)migration/docs/publications/blog_book/chapter_04.qmd— You Can't Save the Polluter by Punishing Households (BDPD³)migration/docs/publications/blog_book/chapter_05.qmd— The Mule, the Compensator, and the Inevitability of Late Defection (BDPD¹)migration/docs/publications/blog_book/_quarto.yml— render config. It does configurebibliography: ../paper_00/bdpd_full.bib+references.qmd, used only for the index's cross-references to the BDPD series; the chapters carry no academic citations.migration/docs/publications/blog_book/extract_blogs.py— the conversion script from the original HTML blogs to the book chapters. Useful for understanding what was filtered and what was preserved.
Original HTML blogs (the cousins of the book chapters)¶
migration/docs/publications/blog_00/bdpd-blog-article.htmlmigration/docs/publications/blog_01/bdpd-blog-article.htmlmigration/docs/publications/blog_02/bdpd-blog-article.htmlmigration/docs/publications/blog_03/bdpd-blog-article.htmlmigration/docs/publications/blog_04/bdpd-blog-article.htmlmigration/docs/publications/blog_05/bdpd-blog-article.html
These are the source of truth for the blog narrative — the book chapters were extracted from them mechanically. Substantive divergence between an HTML and the corresponding chapter is a finding (most likely caused by the extraction script).
Compiled output¶
migration/docs/publications/blog_book/_site/index.html— HTML.migration/docs/publications/blog_book/_site/BDPD-Research-Notes.pdf— PDF.migration/docs/publications/blog_book/_site/chapter_*.html— per-chapter HTML.
Papers / pilot data — the empirical backing¶
| Blog chapter | Paper | Pilot data |
|---|---|---|
| 00 — One Bad Actor | BDPD⁰ | data/pilot/v10_d1/, data/pilot/v10_seed_sweep/, data/pilot/v10_d5/ (junk-purity sweep) |
| 01 — Communication | BDPD¹ | data/pilot/d1*, data/pilot/d1_cell_c/ |
| 02 — Slow Catastrophe | BDPD³ | data/pilot/v11_s2/, data/pilot/v11_s3/ |
| 03 — Card Game | dual-mode (BDPD⁰ + card-game tournament logs) | platform pilots + card-game tournament outputs |
| 04 — Save the Polluter | BDPD³ | data/pilot/v11_s3/ (cap vs levy vs fine cells) |
| 05 — Mule and Compensator | BDPD¹ | data/pilot/d2*, data/pilot/d2_ladder_sweep/ |
Bibliography — not used here¶
The blog book's chapters carry no academic citations by design — a @bibkey inside chapter_NN.qmd is a finding. The index (index.qmd), however, legitimately cross-references the BDPD series via [@bdpd-paper-0; @bdpd-paper-1; @bdpd-paper-2; @bdpd-paper-3; @bdpd-mini-course] (a configured bibliography resolves these keys); that is intended, not a finding.
Procedure¶
- Read the blog-book PDF cover-to-cover (~90 minutes). For each chapter, take notes on every numerical claim and every load-bearing directional claim.
- Cross-reference each claim against the corresponding paper. If the paper says \(d = 0.17\) at \(N=5\) and the blog says "almost nothing", that is faithful (qualitative hedge of a small quantitative effect). If the paper says +27 % and the blog says +47 %, that is a finding.
- Overclaim audit — scan each chapter for absolute literature claims (
first to,never before,no one has,every X,always,the only way). The project rule is that those must be replaced by hedged variants (to our knowledge,among the first,the dominant tradition). Flag every unhedged absolute. - HTML ↔ chapter trace — for each blog
bdpd-blog-article.html, open the correspondingchapter_NN.qmd. The narrative should be near-identical. Substantive differences (whole paragraphs missing, claims rephrased) are findings; cosmetic differences (the topbar / article-footer / findings-box reformatting) are intended (seeextract_blogs.py). - Math rendering check — every claim involving a number, a parameter, or an ODE must be in math mode (
$...$or$$ ... $$). The Bardi RCP equations in chapter 2 should render as a proper LaTeXalignedenvironment in the PDF. - No stale citations / no orphan spans — confirm no
[…]{.category},[·]{.byline-sep},[…]{.finding-num},[…]{.finding-content},[…]{.findings-box-title},\$...\$(escaped dollar pairs) survive in the chapter sources. - Render check —
bash render_publications.sh --which blog_book. PDF must be clean (no?glyphs, no literal$x$in pipe tables).
Acceptance criteria¶
| Check | Pass | Partial | Fail |
|---|---|---|---|
| Numerical claims aligned with papers | every blog claim recoverable from corresponding paper | minor hedge difference | a number disagrees with the paper |
| Directional claims | every direction matches paper | one ambiguous | claim direction contradicts paper |
| Overclaim audit | no unhedged absolutes | ≤2 unhedged absolutes | ≥3 unhedged absolutes |
| HTML ↔ chapter | near-identical narrative | extraction script left minor artefact | substantive divergence |
| Math rendering | all numbers in math mode where appropriate | one or two literal dollar signs | literal $x$ in pipe-table cell |
| Orphan spans | none survive | one cosmetic span survives | ≥3 surviving spans |
| Render | clean PDF | minor stylistic glitch | broken |
Common pitfalls¶
- Each chapter has a byline line with middle-dot separators (
·). This is intentional (preserved from the HTML). Do not flag. - The findings-box of each blog HTML becomes a
callout-noteblock in the chapter. The extraction script normalises this — substantive change is impossible, only cosmetic. - Chapter 02 has a display-math block for the Bardi ODE. It was reconstructed from a Unicode-subscript styled
<div>in the source HTML. Both PDF and HTML should render the equations cleanly. - Chapters carry no academic citations by design, but the index cross-references the BDPD series (keys resolved by
../paper_00/bdpd_full.bib). Flagging the index's@bdpd-paper-Nkeys as stray citations is a false positive (caught in the 2026-06-23 downstream audit). extract_blogs.pyis reproducible. If the reviewer is unsure whether a divergence is real or an extraction artefact, they can re-run the script and confirm.
Output¶
A report at tmp/verification/blog_book_report.md with:
- 6-chapter ledger — one row per chapter, with columns: empirical alignment, overclaim count, HTML ↔ chapter delta, render Pass/Partial/Fail.
- Overclaim list — every unhedged absolute the reviewer found, with chapter:line and the suggested hedged rewrite.
- Numerical drift — every blog number that disagrees with its paper, with chapter:line and the paper's number.
- Render notes — any glyph / math issue in the produced PDF.
Reviewer prompt (copy-paste)¶
You are an independent reviewer verifying the BDPD blog book Research Notes. The repository is at
migration/. Followmigration/docs/verification/verify_blog_book.md. The book has six chapters, each a short dispatch tied to one of the four BDPD papers. Your job is to confirm empirical alignment (every blog claim matches the paper it comes from), hedge discipline (no unhedged "first / never / nobody" claims about literature coverage), and render integrity (math in math mode, no broken glyphs). The blog book's chapters carry no academic citations by design (a@bibkeyin a chapter is a finding); the index cross-references the BDPD series via@bdpd-paper-Nkeys resolved by a configured bibliography — do not flag those. The original HTML blogs inblog_0[0-5]/bdpd-blog-article.htmlare the source of truth for the narrative; thechapter_NN.qmdfiles are mechanical extractions. Produce the report attmp/verification/blog_book_report.md. Time budget: roughly half a working day.