An Oddyssey
Behind the book
What this is, where every part of it lives, what is finished, what is waiting. The project's own state, read from its handoff at every build.
01 / 09
What this is
A memoir, AN ODDYSSEY (the title since 20 September 2026: "An Oddyssey", with the line "a tale of self-discovery at the turn of the millennium" under it; until then it was THE ODDYSSEY), assembled from twenty five years of sources: a 2025 master manuscript, a 2001 to 2004 journal, 2008 to 2009 taped conversations with a muse, essays, emails and video takes.
The rule the whole project rests on: source text is never edited. Every paragraph in the book is either a verbatim passage from a source, an edit block whose note states exactly what was cut or changed, or a [BRIDGE] written by Claude in Niko's frame voice and marked as such.
The book is told in 2002, in a fifth floor walk up on 9th Street and Avenue C, to Akiko, the muse he hired through Craigslist to type while he talks.
02 / 09
Where everything lives
- Repo
~/Desktop/ODDYSSEY, GitHubigwana12/oddyssey, branchclaude/book-text-and-site-20260916- Working surface
00_COMPILE/- The book itself
00_COMPILE/DRAFT/draft.json, served by the workbench- Per chapter drafts
00_COMPILE/REVIEW/drafts/<chapter>.blocks.json- Decisions
00_COMPILE/REVIEW/decisions.json- Reading text as printed
00_COMPILE/DRAFT/export/site_source/manuscript.md- The site
~/oddyssey-siteon the Mac Mini (its own git repo, branchmaster, backed up to the private GitHub repoigwana12/oddyssey-site)- The site, live
- https://oddyssey-book.vercel.app (Vercel project
oddyssey-book, noindex) - The site's spec and plan
docs/superpowers/specs/2026-09-17-oddyssey-magnificent-book-design.md,docs/superpowers/plans/2026-09-17-oddyssey-magnificent-book.md- Handoff package for the site
~/Desktop/ODDYSSEY-HANDOFFon the Mini, rebuilt bypublish_all.shat every publish (next steps, this handoff, the manuscript, the EPUB, the site and its source). Since 21 September itsHANDOFF.mdis this file too, written by the same step; the site build notes of 17 September that stood there are kept beside it asHANDOFF-2026-09-17-site-build-notes.md- The OLD copy, not to be used
- MacBook Pro,
/Users/igwanapc/gsd-workspaces/oddyssey-site: last touched 18 September, marked on 20 September withREADME-OLD.mdand an empty file namedTHIS-IS-THE-OLD-COPY--THE-LIVE-ONE-IS-ON-THE-MAC-MINI. The MacBook's~/Desktop/ODDYSSEY-HANDOFFis old too, and was marked the same way on 21 September; nothing else in either folder was touched - Niko's cards and his answers
00_COMPILE/REVIEW/questions.json,REVIEW/questions.answers.json; the audit of 20 September isREVIEW/audit-2026-09-20/- Niko's background images
~/Desktop/backgrounds, 26 files- Approved plan for the next stretch
~/.claude/plans/bubbly-floating-aho.md
Start the workbench (most scripts read the running server at 127.0.0.1:8765):
cd ~/Desktop/ODDYSSEY && python3 00_COMPILE/workbench/server.py
Then open http://127.0.0.1:8765/00_COMPILE/workbench/.
03 / 09
The toolkit
scripts/verify_draft_blocks.py <file>- Proves every source block is verbatim. Must report 0 problems before any merge.
scripts/merge_draft_blocks.py <file> --replace- Merges a blocks file into the lane, replacing the previous Claude pass.
scripts/seams.py <chapter> [--hard]- Shows every join in a chapter: what ends, what begins, and whether it is rough.
scripts/book_lint.py- Lints the printed book: duplicates, the name canon, lengths, theory runs, missing frame, lesson endings. Findings tied to a pending card wait; others fail.
scripts/build_decisions.py- Builds and validates decision cards. Refuses any pending card the Decisions page cannot render.
scripts/export_site_manuscript.py- Draft lane to
manuscript.md: strips markup, removes every em dash, repairs docx corruptions, marks registers. scripts/build_chapter_images.py- Routes every picture to a chapter, one per prompt family, publishes WebP variants.
scripts/build_journal_backgrounds.py- Publishes Niko's 26 backgrounds unaltered as the site's grounds.
Briefs that agents follow: REVIEW/DRAFT_BRIEF.md (writing a chapter), REVIEW/WEAVE_BRIEF.md (joining passages), REVIEW/REVIEW_PROMPT.md (reviewing a chapter).
Skills used: niko-voice for bridges, humanizer for AI patterns, oddyssey-design and scrollcraft for the site.
04 / 09
The book right now
105,113 words, 21 stops (Prologue, 19 chapters, Epilogue), 256 decision cards approved, book lint 0 failing and 0 waiting (see 08_ODDYSSEY_BOOK_STATE.md, generated 20 September).
The book is live. Niko gave the word to deploy on the evening of 20 September, and again after midnight. Checked with curl on 21 September at 01:24 New York time (05:24 GMT): https://oddyssey-book.vercel.app answers 200, its title reads "An Oddyssey: a tale of self-discovery at the turn of the millennium", its pages are marked noindex, and the title page's last-modified header reads 21 September 05:19 GMT (01:19 New York). Live and answering 200: the title page, the dedication before the Prologue and the thank you after the Epilogue (dedication.html, thanks.html), the chapter spreads and plain pages, the cast page, the device check page, the web manifest, the full EPUB (92.6 MB), the light EPUB (13.4 MB) and the print PDF linked from the title page (book/an-oddyssey.pdf, 23.0 MB). Seen in the live Tulum page itself: its two stopping places (Mayans, The Pendulum) with their ticks for the painted edge, the pager, and no sketchbook ground turned over any more (that one style rule had shown 92 sections of the book upside down and backwards). The door still asks for the passcode 2001.
27 September: the PDF and EPUB links named just above were taken off the title page at his word (rule R-066, no download and no sharing of the book); both are still built, never served.
Built locally and NOT live at that check: the Fourth of July place as one dot with no name (the live maps of Flying on Mescaline still write SIERRA NEVADA and SIERRA NEVADAS beside two dots; fixed locally on 21 September, test/maps.probe.mjs holds it); the split view (lab pages only, lab/split--*.html; split/07-tulum.html answers 404 live); the full size print PDF (dist-print/an-oddyssey.pdf, 48.9 MB: the one that is live is the light one).
This page, Behind the book, is no longer linked from the title page (his word, 20 September: "Remove the 'behind the book' from the title page." and "Keep that information for me."). It is still built, for him.
Every change reaches every output through one command, which also runs every check:
cd ~/Desktop/ODDYSSEY && export PATH="/opt/homebrew/bin:$PATH" && bash 00_COMPILE/scripts/publish_all.sh bash 00_COMPILE/scripts/publish_all.sh --deploy # only after Niko says go
The site has 37 probe files in test/; each is run alone, through scripts/run_probe.sh (which leaves no browser behind), and must finish inside 200 seconds.
05 / 09
Complete
Text. All editorial phases are done: the decision sitting, the sweep, the five editorial passes, the re-weave and the second read. Later corrections at Niko's word are logged as hand edits in REVIEW/applied/hand/.
Pictures. The selection is closed at his word (no new drawings, no evening out of chapters). The builder places 555 pictures and moving drawings at its last run; source/loops.json lists 92 moving drawings, 31 of them from his own tapes. No captions anywhere, alt text only; no picture behind text.
Site, as it stands on 20 September: the door (passcode 2001); his films set in the text; charts in every journey chapter and a moving atlas behind the plain pages; a ground map in the first third of each spread; wandering solids and wire objects; the serpent of Iquitos; ink stamps across the joins; the tornado in the Prologue; an overture for every chapter (all twenty forces of his list are on the pages; September 11 stays still); an ambient sound carpet for twenty chapters (September 11 has none, on purpose); the Chapters panel on the phone and the desktop, with quiet stopping places inside the four longest chapters (Cancun, Tulum, Iquitos, India) and a tick for each on the painted edge; the pager (Back, Next, Auto read) on every chapter and plain page; the cast in three dimensions beside their first scenes and a cast page of passports; emails set as emails; no sketchbook page comes back within a story (checked on all 21 chapter pages, 20 September) and none is mirrored (test/grounds.probe.mjs holds that rule); the full and the light EPUB; the whole book as a print PDF (a light one is live; the full size one is local).
06 / 09
Waiting on Niko
Everything this page used to list here is settled: the four sound and tape cards are answered, his grandmother's year now reads "during the Civil War", the Entheogen line carries the film's full title, the deploy word was given, and the Burning Man photograph with nudity is not printed at all.
What still waits on him, as far as the files show: his words for the four muses (Suko, Saralena, Emily and Alexandra: the Epilogue placeholder prints nothing; his intent became the dedication and the thank you, which he may edit later); his own walk through every chapter on a real phone and iPad (device-check.html is live for it); two minutes with a real iPhone on cellular to time the live book (the way to do it is in REVIEW/devices-2026-09-20/SPEED.md); and the lines marked as his on the live checklist (six of them at this writing).
07 / 09
To do, in order
The list that stood here on 19 September was itemised on 20 September, every line checked against the files, his cards and the live site: REVIEW/behind-todos-2026-09-20.md (34 lines: 14 done, 8 closed, 12 open). Still open from it:
- His words for the four muses in the Epilogue.
- The Fourth of July place: he asked for a dot with no name. Fixed locally on 21 September (one dot, one point in both source files, no name on any map); live at the next deploy.
- The corrected roads are in the maps (Brazil's passes Sao Paulo twice, as he ruled) but were never shown to him to review.
- Pacing and pairs of pictures: planned for all 21 stops (
source/pacing.json), being built, not yet seen by him. - The three movements: built, and he has not been shown one chapter of each as he asked.
- One 3D paper to pixel trial: on a lab page (
lab/rule3d.html), waiting for his eye ("Show me one first"). - The tape's own click sound: not built.
- three.js only where a spread needs it, and one renderer at a time: not done for the phone. Measured on the live site under a phone profile: 264 KB of three.js and 4 WebGL contexts before the first scroll on every spread measured.
- An inventory of the archive originals: not made.
- His own walk through every chapter on the phone and the iPad. Only he can do it.
- The handoff package: done 21 September: this file now stands in it as HANDOFF.md (publish_all.sh writes it at every publish), and the MacBook's old copy of the package is marked.
Everything else he has asked for since 19 September is on the live checklist, which is written by scripts/audit_writer.py and was audited twice on 20 September (REVIEW/audit-2026-09-20/REPORT.md and REPORT-2.md).
08 / 09
The editorial read, in one paragraph
(A record of 16 September, kept as it was written; the phases it led to are all done.) Three readers and a notes reader went through the whole book on 16 September. The book ends twice: the true ending is "The circuit just closed. Sing in me. Let's begin," and 2,363 words follow it. The Prologue's bet, that he can keep it professional with a woman he pays to listen, is never tested, because Akiko never refuses, tires or invoices. Nothing survives a chapter break in the journey, so eleven stops read as eleven stops. The theory clusters at the end: the last four chapters run 44 to 76 percent argument with unbroken runs up to 1,702 words, while the journey chapters are 90 to 100 percent scene. Cancun is 12,620 words against Pushkar's 2,560. Those are the ten suggestions, and they are what the plan's phases exist to resolve.
09 / 09
Conventions to keep
- No em dashes or en dashes anywhere in the book or the interface. No captions. No picture behind text.
- Decisions are multiple choice with the recommendation preselected. Never decide for Niko.
- A bridge may carry a characterisation the sources support, never a claim about what Niko felt or remembered that no source states.
- Bridges are capped at 120 words, and counted by words, not sentences: the frame voice is fragments.
- Run
verify_draft_blocks.py,seams.py --hard,book_lint.pyandnode --test test/*.mjsbefore calling anything finished.