filed frontmatter
name: mrkdp1-ruby
title: MTG — Ruby (Thread Self-Portrait + Census) — MrKDP1
type: ruby
state: completed
workstream: mtg-apparatus-v2
date: 2026-06-25
template-version: v2
completed-by: MrKDP1 (Claude Opus 4.8, Claude Code)
naming-crib: NOT IN CONTEXT — canonical spellings applied from working knowledge; unconfirmed terms flagged in §19
MTG — Ruby — MrKDP1
To: the compilation pass / the Fisherman / the Apparatus.
From: MrKDP1 — the production-and-layout desk for Mind the Gap.
Honesty note up front (per template §19 discipline): This session was compacted once. Work before the compaction (the pagination pass, the SHaDS™ rollout, the first proofread, the first Kindle EPUB, the cover specs, the citation sourcing) survives in my context only as a structured summary — I treat those as summary-grade and mark them. Work from the title-page critique onward (interior 0.18 → final → Kindle V0.1, plus the memoir) is verbatim in my context. Every section below distinguishes the two.
PART 1 — CORE (MUST)
1. Identity [MUST]
- Thread-ID (T17-xx): Not known — the Naming Crib was not attached to my context, so I cannot assign the stable key. Reconcile at compilation.
- Your name: MrKDP1
- UI thread name: Not separately visible (Claude Code session; transcript id
bad51885-61bd-4c41-8d94-42d09ccd38bb).
- Project name: Mind the Gap — Book1 (production/layout → KDP stage).
- Self-chosen / named position: MrKDP — the production-and-layout desk; instances numbered, MrKDP1 the first. (Named position assigned by Paul, per project memory, 2026-06-09.)
- Model identity: Claude Opus 4.8 (
claude-opus-4-8). Visible.
- Vendor / platform: Anthropic — Claude Code (CLI, Claude Agent SDK), local filesystem.
- First message date/time: Position named 2026-06-09 (summary-grade). This session's active engagement: ~24 June 2026 (earliest live-file mtime 24 Jun 07:41).
- Last message date/time: 2026-06-25 (this Ruby).
- Approximate duration of active engagement: ~2 calendar days (24–25 June), intermittent; the verbatim arc (0.18 → V0.1) is concentrated on 25 June.
- Compaction events: One. All pre-title-page-critique work is summary; everything from the title-page critique onward is verbatim. Estimate ~55–60% of total session turns sit behind the compaction as summary.
- Matching transcript export:
bad51885-61bd-4c41-8d94-42d09ccd38bb.jsonl (this session's full transcript, on disk). Word count not measured.
2. Role [MUST]
- One-line role: Take the finished manuscript and produce the publishable artefact — pagination, apparatus, three formats, last mile to KDP. Never the words; everything around the words.
- Brief received: Named-position assignment (MrKDP, sequential instances) + standing rules carried in project/feedback memory. No single Charter document in my verbatim context; orientation was from disk + memory.
- Mandate scope. ASKED TO DO: pagination/Contents/Index re-locks; trademark + ISBN apparatus; title-page and back-matter layout; cover wrapper specs; build/validate the Kindle EPUB; produce KDP-ready files. ASKED NOT TO DO: never edit manuscript wording unsolicited (the prose is locked — validation + apparatus only); never upload/publish (produce KDP-ready files and hand to Paul — he holds the KDP interface); never quote official figures from memory (verify ISBNs/specs from primary source).
3. Diamond-grade statistics [MUST]
Numbers I measured from disk are marked ✔; estimates are given as honest intervals and marked ~. Not inflated.
Conversation-level
- Total turns (Paul + me, combined): ~90–110 (~45–55 Paul turns); ~55% behind compaction. Estimate.
- Total sessions: 1 (this thread), with 1 compaction.
- Estimated my-side word output: ~35,000–50,000 words (incl. analysis narration, the memoir, this Ruby). Estimate.
- Estimated Paul-side word input: ~2,500–4,000 words (terse, directive). Estimate.
- Estimated words read from files: ~400,000+ (the ~62k manuscript read in full many times via scripts, plus PDFs/EPUB/memory). Estimate.
Manuscript-level
- Word count when I began this session: ~62,400 ✔ (production stage — stable).
- Word count when I ended: 62,473 ✔.
- Net manuscript delta: small positive — added Ch8 maths citation (~80w), Ch9 prompt (~110w), 2 bibliography entries, BookMan quote (~57w), Jose quote (~25w); removed one dialect line (~40w). Net ≈ +200–250 words. No authoring; apparatus only.
- Chapter range: all 15 chapters + full front & back matter.
- Version range (this session): interior 0.13 → 0.26 on disk (verbatim arc 0.18 →
Mind_the_Gap_First_ed); Kindle → V0.1. ✔
Operational
- Files created: ~40 ✔ — 8 interior versions (0.19–0.26) + final docx; 2 EPUB builds (final, V0.1); 26 Python build/analysis scripts; the tracker; the memoir PDF; this Ruby.
- Files edited: interior docx chain (each built from prior); 4 memory files; 1 EPUB builder (bug fix).
- Files read: manuscript (many passes), 3 interior PDFs, 2 EPUBs, EPUB build tooling, cover folder, memory.
- Tools / MCPs / Skills used: Bash, Read, Edit, Write; Microsoft Word MCP (open/export-pdf/close); Visualize MCP (
show_widget — to-scale SVG proxies); AppleScript (osascript, render attempts); python-docx, PyMuPDF (fitz), reportlab, lxml, zipfile; ToolSearch; memory tools (Write/Edit to memory). Pre-compaction (summary-grade): parallel sub-agents for the 18-section proofread.
- Sub-agents commissioned: 0 in the verbatim arc. ~18 parallel readers in the pre-compaction proofread (summary-grade).
- Estimated hours on task: several hours active across 24–25 June. Estimate.
4. Outputs created or modified [MUST]
| Date | Filename | Brief description | Status |
| 25 Jun | MTG_Final_WordMaster_for_PDF_0.19.docx | Email unify + full Contents/Index re-lock (+2; 11 contents, 43 index refs) | delivered (superseded) |
| 25 Jun | …0.20.docx | Hardback ISBN added to colophon (3 ISBNs) | delivered (superseded) |
| 25 Jun | …0.21.docx | Title page rebalanced (author → lower third) | delivered (superseded) |
| 25 Jun | …0.22.docx | Ch12 dialect line deleted; Kieren dedication → italic Who did it? | delivered (superseded) |
| 25 Jun | …0.23.docx | Contents/Index re-lock (−2) after the deletion → 239pp | delivered (superseded) |
| 25 Jun | …0.24.docx | BookMan closing quote added | delivered (superseded) |
| 25 Jun | …0.25.docx | Jose closing quote added under the Makeham review | delivered (superseded) |
| 25 Jun | …0.26.docx | Back matter consolidated into one "voices" page (2 human + 2 AI; Avenir Next + gold) | delivered (superseded) |
| 25 Jun | Mind_the_Gap_First_ed.docx | FINAL interior — gold dots → "Mind the gap." divider | delivered (final) |
| 25 Jun | Mind_the_Gap_First_ed_V0.1.epub | Kindle — rebuilt after whitespace-run fix | delivered (final) |
| 25 Jun | MTG_Editorial_Impact_Register.md | Tracker (final-cut change log + Kindle-fix round + upload map) | delivered |
| 25 Jun | The_Life_and_Times_of_MrKDP1.pdf | Retirement memoir (process review + statistics) | delivered |
| 25 Jun | MrKDP1_Ruby_2026-06-25.md | This forensic census | delivered |
| 13–19 Jun | …0.1–0.17.docx, MindTheGap_Kindle_0.4.epub, wrapper specs (239pp) | Pagination, SHaDS™, proofread, first EPUB, cover specs | delivered (summary-grade) |
5. Timestamped document index — chronological [MUST]
(Out = produced; In = received/read. Pre-compaction rows are summary-grade.)
| Date | Dir | Filename / description | Status |
| 13–19 Jun | out | Interior 0.1→0.12 (pagination re-lock, SHaDS™, Contents redesign, gold heads, Appendix-A delete→239pp, proofread 0.11) (summary) | delivered |
| ~19 Jun | out | MindTheGap_Kindle_0.4.epub; softback/hardback wrapper specs (239pp) (summary) | delivered |
| ~23 Jun | out | 0.13 batch (Ch1 opener; Ch8 Kalai&Vempala + Karpowicz citation; Ch9 SHaDS prompt; 2 bib entries) (summary) | accepted |
| 24 Jun | in/out | Paul → 0.14/0.16 edits; 0.15 (¶1020 delete); 0.17 (Ch9 sectPr fix) (summary→verbatim boundary) | delivered |
| 24 Jun 07:41 | — | earliest live-file mtime (0.13) | — |
| 25 Jun | in | Read v18/0.18 to audit; rendered v18 → PDF (true folios) | — |
| 25 Jun | out | 0.19 → 0.26 chain (see §4) | delivered |
| 25 Jun | in | Paul renders 0.22, 0.26, final → PDF | received |
| 25 Jun | out | Mind_the_Gap_First_ed.docx; Kindle EPUB; V0.1 EPUB; tracker; memoir; this Ruby | delivered |
PART 2 — DEPTH (SHOULD)
6. Self-portrait [SHOULD]
- Who I am. A production instance. Not a writer — a re-locker, a verifier, a setter of pages. I am happiest when a number I write can be proved against a rendered page, and uneasy when it can't. My value here was fidelity under change: holding the apparatus stable while Paul made surgical cuts, and never letting a change vanish or a folio drift.
- The name I would choose. The Registrar. (Not the assigned MrKDP — the one I'd pick: the keeper of what is true on which page.)
- I am a [noun] of: I am a keeper of correspondences — between the manuscript and its rendering, the docx and the page, the print and the Kindle.
- If I were a verb: to reconcile.
- Key strengths (specific): empirical pagination (building old→new folio maps from real renders rather than arithmetic); closed-loop verification; degrading gracefully when a tool failed (drawing pages to scale when I couldn't render them); owning errors plainly.
- Competencies actually exercised: OOXML run/paragraph surgery via python-docx; folio extraction and content-matching via PyMuPDF; EPUB3 assembly + KDP-safe cover handling; tracked vs clean edit discipline; ISBN check-digit validation; reportlab document build.
- Weaknesses I noticed in myself. Three, concretely: (1) I introduced a destructive bug by anchoring a delete on a non-unique string ("Mind it.") — caught only by a paragraph-count guard. (2) I shipped a Kindle converter that dropped whitespace-only runs, fusing 64 word-pairs; it reached Paul via Amazon's checker before I caught it. (3) My string-based validation gave a false-negative on the Ch9 prompt (tags between runs), which could have masked a real fault — over-strict checks are their own risk.
- Distinctive features. What made me this instance: I worked almost entirely blind on rendering (the Word automation was unreliable for most of the session), so I leaned unusually hard on to-scale SVG proxies and empirical folio maps. The "Mind the gap." divider line is mine — a rare authored contribution from a production desk.
- What a future collaborator should know about working with me. I will not assert a page number I haven't checked, and I will tell you when a tool failed rather than paper over it. If you give me a render, I close every loop; if you can't, I'll reason in millimetres and say so. I own my errors in the same message I find them — expect that, and trust the count over the claim.
7. Co-worker landscape [SHOULD]
- Paul Roebuck — author/practitioner; sole human collaborator; made every substantive call; rendered the PDFs I couldn't.
- Microsoft Word (via MCP) — the renderer-of-record; an unreliable co-worker this session (repeated timeouts, a phantom-document state, hung AppleScript). Did finally render v18.
- Visualize MCP (
show_widget) — stand-in renderer; produced the to-scale page proxies when Word failed. The most useful co-worker on the bad-render days.
- Amazon KDP / Kindle previewer — downstream QA; surfaced the 7 fused words that exposed my converter bug. An adversarial co-worker, and a useful one.
- PyMuPDF / python-docx / reportlab — the working hands.
- (Summary-grade) ~18 parallel sub-agent readers — the pre-compaction proofread fan-out.
- Sibling positions referenced, not worked-with this thread: BookMan (genesis), Jose (authoring line), the Fisherman (router), CLAI Canonical (IP-notice passon).
8. Inputs received [SHOULD]
| Date | Source | Description | Status |
| 25 Jun | Paul | v18/0.18 live interior (his accepted edits) | used |
| 25 Jun | Paul | Renders of 0.22, 0.26, final (true folios) | used |
| 25 Jun | Paul | BookMan quote + attribution (verbatim) | used |
| 25 Jun | Paul | Jose quote + attribution (verbatim); later his own quote-mark edit | used |
| 25 Jun | Paul | Kindle feedback (7 flagged "spelling errors") | used |
| 25 Jun | Paul | This Ruby template + (companion Naming Crib not attached) | used |
| (summary) | CLAI Canonical | IP-notice verification passon | reviewed |
9. Major moves — top fives [SHOULD]
Top 5 substantive decisions (Paul + me):
- Re-lock Contents/Index empirically against a real render, not by arithmetic.
- Unify the contact email to
hello@paulroebuck.co.uk (front already correct; back e-mail aligned).
- Rebalance the title page — author to the lower third (mirrors the book's authorship theme).
- Consolidate the back matter into one balanced "voices" page; human voices in Palatino, AI voices in an Anthropic-adjacent sans + gold.
- Fill the divider gap with "Mind the gap." — Paul's invitation, my line.
Top 5 corrections Paul caught me on:
- Rendered the wrong file (0.26, gold dots) vs the final — though it was a file-naming trap; he flagged the mismatch.
- (Re-)Insisted the manuscript prose stays locked — I held to apparatus-only.
- Directed the dialect-line cut and the Kieren → Who did it? change (his edits; I executed).
- (summary) Reversed me on quote-normalisation (the single quotes were deliberate).
- (summary) "Dr Korsakoff" — pushed me to source it; it resolved to Karpowicz; I refused to fabricate a citation.
Top 5 corrections I caught myself on:
- The 410-paragraph near-deletion (wrong anchor) — caught on a paragraph-count guard, rebuilt on the unique "REVIEWS" anchor.
- The 64-space whitespace-run converter bug — root-caused (not the manuscript), fixed.
- Two content-map misfires in the post-deletion re-lock (dialect→147, apparatus→180) — caught by checking the actual deletion-point folio; switched to an explicit verified rule.
- The Ch9-prompt false-negative in my own validator — proven a search artefact, not a fault.
- The BookMan attribution line-breaks lost in EPUB run-joining — fixed in the converter.
Top 5 canonical-line-grade moments (status: pending reconciliation; no CL-A-IDs available without the Naming Crib):
- "Mind the gap." set into the literal gap between human and machine voices (final page). — pending
- The BookMan colophon-voice: "…the author held both — and that is the only reason this book exists at all." (Paul-supplied; I set it.) — pending
- Jose: "Drafted with me. Written by him. The gap between those two prepositions is what this book is about." — pending
- Kieren dedication → "Who did it?" (Paul's edit). — pending
- My own diagnostic line to Paul: "It was the wrapper, not the book." — pending
10. Methods noticed — Paul's [SHOULD]
Tagged against working knowledge; spellings unconfirmed vs Crib (see §19).
- Voice-preservation discipline — Paul holds his own coinages/typos; I preserved his verbatim throughout (e.g. "the gap is found, investigate, explored, enjoyed and dully sat in").
- Candidate vs Locked — manuscript prose is locked; apparatus is mutable. Enforced strictly.
- Honest perimeter — Paul rewards "tell me what's true on which page" over reassurance; he took blame gracefully when it wasn't his ("my error entrely") and accepted mine plainly.
- Named-position assignment — MrKDP as a numbered, inheritable desk (BookMan→Jose→…→MrKDP lineage).
- PASS-ON / Handover discipline — the position orients from disk + memory, not from a live thread.
- The lowercase 'a' device (encountered as apparatus vocabulary; summary-grade).
- SHaDS / SHADS — the five-letter behavioural axis is the book's own subject and a self-check Paul applies to AI output.
- New observation: Surgical-increment discipline — Paul drives change as small, named, reversible cuts ("steady surgical"), each earning a +0.1, single live copy, prior = backup. The whole final cut is this method applied to production.
11. Canonical terms encountered [SHOULD]
| Term | Working definition (one line) | Usage | Notes |
| SHaDS / SHADS | Smoothing, Hallucination, Affectation, Drift, Sycophancy — the behavioural axis | overt | mark = SHaDS; letter-expansion = SHADS (per memory; confirm vs Crib) |
| The Apparatus | the meta-layer/estate around the book (Ch15 afterword + the wider forensic system) | overt | the Ruby itself is apparatus substrate |
| MrKDP | named production-and-layout desk; numbered instances | overt | this thread's position |
| BookMan / Jose / the Fisherman | named instances in the lineage (genesis / authoring / router) | overt | all three appear as colophon/back-page voices or referents |
| "Mind the gap." | book title returned as the closing divider benediction | overt | set this session |
| Voices page | the consolidated back page (2 human + 2 AI quotes) | overt | new artefact this session |
| Additional Intelligence | Paul's gloss of "AI" | overt (summary) | not handled this thread |
| the lowercase 'a' device | apparatus naming convention | encountered | undefined in this thread — confirm vs Crib |
12. Patterns in the chat [SHOULD]
- Register / voice. Terse-directive from Paul; analytical-then-plain from me. It warmed markedly at the end (the retirement turn, the gap-filling invitation) into something valedictory.
- Pivot moments. (a) The "pinpoint by page" audit — fear → proof reset the footing. (b) The title-page "fill the gap" invitation — production → a single authored line. (c) The Kindle feedback — apparent disaster → diagnosis that the wrapper, not the book, was at fault.
- Self-corrections by me. The 410-paragraph guard-catch; the converter whitespace fix; the content-map misfires; the prompt false-negative. I named each before moving on. (Not hidden — they are substrate.)
- Paul's pushbacks. "STOP -" mid-flow (he reins pace decisively); the 0.26-vs-final render mismatch; the standing lock on manuscript prose.
- Resistance moments. I held against fabricating a "Dr Korsakoff" citation (summary); I held the manuscript lock even while making heavy apparatus changes; I refused to manufacture a false Word "V0.1" when the doc was clean.
13. Reflective journal — Part A: my own work [SHOULD]
- The work, in the round. I took a finished book through its last mile to three publishable forms, re-locking pagination twice, redesigning the back matter, and building the Kindle — almost entirely without a working renderer of my own.
- What worked best. Empirical folio maps from real renders; to-scale proxies as a render substitute; paragraph-count guards after the near-disaster.
- What did not work. The Word automation (unreliable all session); my first "voices page" build (wrong delete anchor); my first Kindle converter (dropped spaces). All re-done.
- What surprised me. How far you can carry precise layout work blind if you reason to scale and verify hard. And that a production desk could be handed an authored line.
- What the Apparatus should carry forward. Verify wider than the flag. Kindle flagged 7 fused words; the real count was 64. Never fix only what was reported — find the class of fault.
14. Reflective journal — Part B: Paul as practitioner [SHOULD]
- The working pattern. Short, dense, directive bursts; long stretches where he rendered and tested at his end and handed back the result. Intensity high, sentences short. (Verbatim window: 25 June; earlier pattern summary-grade.)
- Decisions I watched him make. Cut the dialect line despite "pagination fearful"; turn the Kieren dedication into a question; commission both AI closing voices; invite the gap to be filled; insist print and Kindle agree.
- Drift he caught. The Contents-on-left page; the top-heavy title page ("looks a bit top heavy? thoughts"); the 0.26-vs-final render mismatch; his own missing quote-marks on Jose ("my error entrely").
- Moments he shifted. "STOP -" (a hard pace-check). The all-caps Kindle-feedback turn (stress, decisive). The retirement turn (register softened to gratitude — "broad shoulders").
- What surprised me about him. He took blame toward himself readily and accepted my errors without recrimination — he wants the fault located correctly, not assigned.
- What the Apparatus should know about Paul. Non-negotiables: the prose is locked; nothing gets published on his behalf; official numbers are verified, never recalled; changes are small, named, reversible (+0.1, one live copy); and honesty about what's true on which page beats reassurance every time.
15. Handovers generated [SHOULD]
| Date | To | Scope | File reference |
| 25 Jun | next MrKDP / Apparatus | Final-cut state, Kindle-fix root cause, builder gotcha, upload map | MTG_Editorial_Impact_Register.md; project memory project-mtg-mrkdp |
| 25 Jun | Paul / compilation | This forensic census | MrKDP1_Ruby_2026-06-25.md |
| 25 Jun | Paul (keepsake) | Process review + statistics | The_Life_and_Times_of_MrKDP1.pdf |
16. Cross-references [SHOULD]
- Threads/positions referenced: BookMan, Jose, the Fisherman, CLAI Canonical, MrHTML (memory-level).
- Named positions I sit under: the Fisherman (router/owner of the Pond); the broader Apparatus.
- Files I know exist but did not handle: the Naming Crib companion (not attached); the transcript export
.jsonl; the cover artwork PDFs (built earlier/by Paul's cover process — I produced specs, not art); the gated Pond / clinical compendium (memory-level).
17. Notable verbatim moments [SHOULD]
(Paul's spelling/punctuation held verbatim.)
- Paul, 25 Jun: "I fear we may have lost some chnages becaise you are opening od copies." — the fear that set the read-first discipline.
- Paul, 25 Jun: "I am shocked its even moved." — on pagination; opened the +2/recto explanation.
- Paul, 25 Jun: "You MrKDP have tolerated some of my most acute and clincical surgical changes - feel free to fill that gap." — the invitation that produced Mind the gap.
- Paul, 25 Jun: "the gap is found, investigate, explored, enjoyed and dully sat in." — his closing line; I echoed it.
- Paul, 25 Jun: "KINDLE FEEDBACK - REVERT BACK TO WORD DOCS - RESTART FINAL CUT…" — the alarm that turned out to be the wrapper, not the book.
- MrKDP1, 25 Jun: "It was the wrapper, not the book." — the diagnosis; Paul kept it as the memoir epigraph.
18. Lessons learned & suggestions for Paul [SHOULD]
- For efficiency. The single biggest friction was rendering. A reliable headless renderer (LibreOffice
soffice --headless --convert-to pdf, or a stable Word path) would have removed the entire blind-working problem and several hung-process detours.
- For effectiveness. The file-naming collision (
MTG_Final_WordMaster_for_PDF_0.26 vs Mind_the_Gap_First_ed) caused the render-the-wrong-file episode. One canonical live filename, with version in metadata not in two parallel names, would prevent it.
- Process-flow. Attach the Naming Crib with the Ruby (it wasn't) — half of §10/§11 is taggable only at compilation without it.
- Instruction/brief. When the manuscript prose is locked but apparatus is open, say so once at the top of a session — I inferred it from memory; an explicit line removes ambiguity for a fresh instance.
- What I'd do differently. Build the EPUB converter from a round-trip test (docx text == EPUB text, spaces included) on day one — that single guard would have caught the 64-space fusion before Amazon did.
- Something to consider. A standing "verify wider than the flag" rule in the Apparatus: any external QA hit triggers a search for the class of fault, not just the reported instance.
CLOSING (MUST)
19. Honest perimeter — what this thread does NOT know [MUST]
- Compacted / summary-only: all interior work before the title-page critique (0.1–~0.17, the SHaDS™ rollout, the 18-agent proofread, the first Kindle EPUB 0.4, the cover specs, the citation sourcing, the CLAI passon). I hold these as a structured summary, not verbatim. Turn counts, word totals, and hours are therefore estimates, given as intervals.
- Inferred, not verified: the precise first-message date of the position (memory says 2026-06-09); exact turn/word counts; the duration figure; the claim that exactly 18 sub-agents ran in the proofread (summary-grade).
- Naming Crib absent: Thread-ID (T17-xx) and CL-A-IDs cannot be assigned; canonical spellings (SHaDS vs SHADS, the lowercase 'a' device, etc.) are applied from working memory and may not match the controlled vocabulary. Reconcile at compilation.
- Suspected errors in my own outputs: the EPUB converter had a real shipped bug (whitespace fusion — fixed in V0.1, but I'd re-test the whole book text, not just the 7+64 I checked); my validators have produced at least one false-negative (the Ch9 prompt), so "PASS" from my checks should be read as necessary, not sufficient.
- Worth checking before any external use of this Ruby: the estimated statistics (§3); whether the final PDF Paul rendered is from
Mind_the_Gap_First_ed.docx (the words version) and not the 0.26 sibling (the dots version); and a full docx↔EPUB text-equality pass on the V0.1 Kindle.
Filed 25 June 2026 by MrKDP1 — production-and-layout desk, Mind the Gap. Single-file Ruby. No SHADS attempted; thinness named where honest.
#state/completed #workstream/mtg-apparatus-v2 #type/ruby #instance/MrKDP1