四个脚本,约一千五百行代码。这项工作更像交叉盘问(cross-examination),而不仅是写代码。每个 KDP 约束——字体嵌入、书脊数学、出血延展、纸张厚度、每种格式的 ISBN 放置——都先对照亚马逊公开规范检查一遍;再让第二个模型复核一遍(它经常会给出不同的默认建议);最后再对着真正渲染出来的 PDF 再检查一遍。
引用验证在大约一百条条目里找到了七处实质性纠正,其中几处错误来自 AI 生成的引用卡片:它们读起来很自信,但其实不对。级联程序存在的理由也在这里:否则模型会把六处里改对三处,然后汇报“完成”——这种习惯我曾经真的交付过一次:一次批量 pattern-replace 把四句话的语法弄坏了,而我直到后来才抓到。
I stopped smoking in May 2024. Three words, in my own voice, repeated — the technique this book describes.
In early 2025 I told the story of the method on Dedao's long-form interview program — the first time I tried to put the mechanism into words for an audience. In May 2025 I wrote a first draft of the book, then titled Selftalking. I did not publish it. Quitting smoking and relapsing a year or eighteen months later is not a rare event, and I refused to write a book about a technique that had not yet survived the relapse window.
In August 2025 I vibe-coded an iOS companion app for the manuscript. My engineering experience at that point was effectively zero. The prototype shipped, and the work made clear that I needed to learn how to be a software engineer rather than commission one. From that point on, every tool the book would eventually need, I learned to build.
Through late 2025 and into early 2026 the supporting research kept accumulating, and the toolkit grew with it — bespoke scripts for evidence collection, organization, cross-referencing, and conflict-resolution across the literature. The supporting-material file grew by an order of magnitude, then another. A reader's working memory connects what is currently remembered; a model connects what has ever been read.
In March 2026 I released NLPM, a natural-language programming package manager I built to keep AI-generated artifacts under scoring discipline. Building it confirmed what the manuscript itself would later need: high-volume natural-language text processing is one of the AI-shaped jobs of the moment.
In early May 2026 — exactly two years after the last cigarette — I restarted the book. By that point I was writing inside VMark, an AI-assisted writing workstation I had built for myself: a terminal-native editor wired up with MCP servers (the protocol that lets the editor talk to specialized tools), custom agents, scoring scripts, model-routing for different jobs, and project-level memory. Clean, comfortable, exactly suited to the work. (Source: github.com/xiaolai/vmark.)
Because the Selftalking draft from a year earlier already existed, the restructuring into The Half Second took one day. The model did the restructuring. The chapter-by-chapter deepening that followed — sharpening claims, integrating quotes, tightening the cognitive arc, auditing every named concept — took the rest of the week, and that part is still mine to do, sentence by sentence.
This is a book about changing what arrives first in the half-second. I wrote it using tools that themselves change what arrives first in my own half-second — large language models, automated style audits, version-control histories that keep prior selves of every paragraph available for comparison. The recursion is intentional. A book about installation that ignored the installation tools available to its writer would be pretending its own claim does not apply.
Several things I did would have been impossible for one person working alone without AI assistance and basic programming literacy. Naming them, plainly.
The four-artifact architecture as live software. Per-chapter dossiers (claim, destructive work, reader-state precondition and postcondition, callbacks, setups, failure modes, voice register), a motif tracker (the throughlines that compound across the book — the smoking story, the keyboard, the ARISE form, sovereignty, the frequency counter), a cognitive arc (what state we are in at each chapter boundary), and a dependency check (does every callback resolve? every setup pay off? does the postcondition of chapter N match the precondition of chapter N+1?). Twenty chapters × four artifacts × continuous edits. A single editor cannot hold this in working memory, and a stack of paper notes drifts out of date the day after they are written. The artifacts live as markdown files in the project directory, edited in dialogue with an LLM that reads all of them in context.
The iterative cascade. The book treats canonical material as committed. When I correct something — the smoking start year, an inner-attacker phrase, the central evidence in the money chapter, the daughter's age — the correction has to propagate through every file that touched the prior version. The project carries an explicit cascade procedure that names which files to update in which order. A correction that seems small often touches five or six files. The cascade discipline keeps the architecture coherent across the change.
Inventing and landing an acronym across the whole book. The five-component script form started life as X / Y / Z and grew, through several rounds of analysis, into ARISE — Identity, Situation, Action, Reason, Emotion. Settling on a name that fits the mechanism is one piece of work. Propagating that name across twenty chapters, the cheatsheet, the takeaways, the further-reading cards, the research dossiers, and the architecture documents — without leaving stale references behind — is a different piece of work, the kind a human editor performs by reading every file three times and still missing four things. With cascade discipline and an LLM doing the search-and-update, the cascade still took four passes over two days — and a fifth cleanup when a bulk pattern-replace left grammar errors in four places. The honest account: cascade discipline does not make propagation easy; it makes propagation trackable.
Systematic vocabulary changes across the corpus. Late in the project, I came to oppose the term trigger — present in the manuscript both as legitimate vocabulary and as the wrong-frame term the argument was rejecting. Twenty-four occurrences across six files. Some were straightforward replacements; some were context-dependent and required preserving the load-bearing rhetorical move while losing the rejected word entirely. Mechanical find-and-replace would have mangled the chapter that argues against the term. An LLM that understands what each occurrence is doing in its sentence performs the cascade in a single pass and leaves the argument intact.
Document re-organization at speed. The project's directory structure has been re-laid out at least five times during writing — drafts/ mirroring publish/; folding supporting directories into dev-docs/; re-weaving publish/ as a self-contained book package; combining back-matter/ and appendix/ into one. Each re-org touches dozens of cross-references in dozens of files. Without scripts that rewrite the references in lockstep with the moves, the writer would commit to the original structure on day one and live with it for the duration.
Mining a personal library of two thousand-plus books. I have read or skimmed somewhere over two thousand books across thirty years. Many contain the perfect supporting quote, the right anecdote, the mechanism-explanation that prefigures the chapter's claim. A human searching that library by memory finds perhaps one in fifty of the relevant passages. Semantic search across the indexed library finds them in seconds. Captains of Consciousness, the Three Pillars of Zen, Pieper's Leisure, Mauboussin's More Than You Know, the deep-cuts on cognitive dissonance and pre-suasion and identity-based motivation — most supporting references in this book passed through that search.
Twenty epigraphs, primary-source-verified, across five languages. Latin, Greek, French, classical Chinese, English. Each chapter opens with the original-language source plus a canonical English translation (Loeb Classical Library for Greek and Latin, Penguin Classics for La Rochefoucauld and Confucius, Princeton for Xunzi, Penguin for Pascal, and so on). Verification means going to the actual text in the original language and confirming the citation against the named edition. A single author working alone could not vet twenty epigraphs across five languages in any reasonable time. With LLMs that read primary-source corpora and a personal library of more than two thousand books indexed for semantic search, the work fits inside a single week.
Citation verification and enrichment at scale. Every entry in the further-reading card network — roughly a hundred citations, some with multiple sources — passed through automated DOI / ISBN / archive lookup. Seven substantive corrections surfaced in the process: wrong year, wrong publisher, wrong volume number. A research librarian could do this work in two weeks. Six parallel verification processes, each fetching against primary sources — ctext.org, Perseus Digital Library, Project Gutenberg, JSTOR, Internet Archive — ran simultaneously over nine minutes.
Concept-card network with internal links. The further-reading cards — roughly twelve hundred lines, organized as a graph with cross-references between concepts — contain about a hundred and forty cross-references to specific chapters, each verified to resolve to an existing draft file with the right anchor. The links were generated en masse by walking the cards file, matching the chapter mentions to slug paths, and writing them back. Hand-authored, this is a day of mind-numbing work; with the right script, it takes a minute.
The two clusters above replace what would have taken a research assistant and three months of calendar time. The clusters below replace a production team, a copy editor, and two careful early readers.
Cover and chapter-cover design. The front cover, the dedication, the front-matter epigraph, the table of contents, twenty chapter-cover graphics (each with a unique hand-drawn-feeling pencil sketch — the wavy line for someone is always writing, the converging arcs for the prologue, the branching tree for the shape of a workable script), and the back cover were designed, refined, and rectified entirely in code. The visual language — the pencil cadence, the color palette, the stroke weights, the type scale — was first explored inside claude.ai/design: six variations of the same artboard rendered inside ten minutes, a follow-up prompt that narrows to two, a third that picks the winner. The chosen direction was then brought down into a local React-based design canvas built for this book, where it has been refined and rectified ever since. Each pencil sketch is composed in code from primitive shapes — every stroke is drawn twice with a slight ghost-offset, which is what makes the lines read as drawn-by-hand rather than computed. The design tokens (color, type, stroke language, spacing) are a single source of truth that propagates to every cover at once. Themes can be swapped, fonts can be tried, intensities of edit-gesture can be tuned — every change recomposes the entire book's design system in real time. A designer hired for this work would charge per cover and would not respond to last-minute typography changes the way the code does.
Chapter 3's cover. Two parallel workflows meet on the page. The wavy-line pencil sketch was drawn in claude.ai/design and refined in the local React canvas; the classical-Chinese epigraph — 性相近也,習相遠也。 / "By nature, men are close to one another; through practice, they grow far apart." — was sourced and primary-source-verified by the epigraph-research agentic workflow described two clusters up. One page, two pipelines.
EPUB packaging as a build pipeline. The book ships as a mixed-layout EPUB 3 — fixed-layout for some pages, reflowable for prose and chapter covers — with a clickable table of contents woven from the spine, embedded webfonts, language-tagged Chinese spans (so CJK fonts render upright instead of fake-italicized), and a manifest the file passes from Apple Books to recent Kindle readers. The pipeline is four small Node scripts running browser-automation and markdown-to-XHTML conversion. Without programming literacy, I would have been stuck with the limited export options of Word or InDesign, or would have had to commission a pre-press engineer for every revision.
Print PDF pipeline in a day. The paperback edition ships as a 6×9 cream-paper interior plus a wraparound KDP cover. Interior: per-chapter rendering via Playwright with chapter-specific running headers, qpdf concatenation in spine order, then a Python pass that overlays continuous page numbers (starting at "1" on the prologue cover, not the title page), per-chapter italic running heads, and a PDF outline tree for sidebar navigation. Cover: a single 300-DPI wraparound page where spine width is computed from page count × paper thickness — cream stock is 0.0025 inches per page, slightly thicker than white — and the bleed is extended past the trim line by sampling the edge color column-by-column so the gradient continues naturally past the cut. Fifteen hundred lines of code across four scripts. The work was cross-examination as much as composition. Every KDP constraint — font embedding, spine math, bleed extension, paper-stock thickness, ISBN-per-format placement — was checked against Amazon's published specification, then re-checked against a second model that often recommended a different default, then re-checked again against the actual rendered PDF. The library debates had the same shape: Ghostscript versus qpdf for concatenation; Playwright's displayHeaderFooter versus a separate Python overlay for running heads; embedding fonts at Chromium render time versus stamping them in at the overlay stage (KDP rejects any upload with an unembedded font, and Chromium's embed silently fails on certain faces). Each pair reached the page only after both models had argued for one and I had picked between them. The whole pipeline fit inside one day of calendar time. In the last hour of that work alone I rendered seven full interiors and six wraparound covers, each one cheap enough to throw away after a single tuning observation. A pre-press engineer building the equivalent by hand — picking the libraries, debugging KDP's "every font must be embedded" requirement, getting the spine math right against KDP's paper-thickness specs, handling the running-head edge cases for chapter cover pages and intentionally headerless front matter — would take a week, ship something less robust, and have no way to re-render the whole interior seven times in a single hour just to check whether a tuning change looked right on the page.
Mechanical audits that catch what a tired editor misses. Several scripts run on every revision. A coercive-lexicon audit flags obviously, clearly, of course, as everyone knows, needless to say — phrases that ask us to agree before the evidence has landed. A second-person-pronoun audit flags every you, your, yours (the book's voice forbids reader-enrollment except in documented carve-outs). A meta-reference audit flags this chapter, this book, what follows, the rest of these pages — gestures that announce the artifact instead of doing its work. A permissions audit lists every direct quotation of more than twenty-five words, totals each source's cumulative quoted length, and flags any source that crosses the conservative fair-use threshold. None of these are clever. All of them are mechanical. A tired editor working alone misses all of them.
Cross-model independence check. Prose that lives long enough inside one model picks up that model's tells — particular tricolons, particular hedges, particular sentence shapes that mark the writing as model-touched. Running the polished prose through a second, structurally different model (in this project, codex MCP / gpt-5.5 at maximum reasoning effort) catches what the primary model missed. The author reviews each flagged span and decides whether it stays or goes. The check finds two or three dozen spans per chapter that no human editor would catch — and that no single model would catch in its own output. The same multi-backend discipline carries into translation: the recompose script can call five different model backends — Anthropic Opus and Sonnet, OpenAI gpt-5.5 / codex and gpt-4o, and a local qwen2.5:72b — and produce parallel target-language renderings the author compares before picking.
Adversarial review of every chapter. Each of the twenty chapters was passed to an independent LLM (codex MCP / gpt-5.5 at maximum reasoning effort) with instructions to find that chapter's weakest moments under specific finding categories — overclaiming, hedge-as-stake, reader-enrollment, motif strain, evidence gaps. The reviewing model had no investment in defending the prose, so it surfaced what the writing model would not. I reviewed every flagged span and decided whether it stayed or went. The adversarial report drove three rounds of fix passes (Tier 1 / Tier 2 / Tier 3) that materially strengthened a dozen chapters.
Dual-agent reader-experience pipeline. Late in the project, two structurally different models — Claude on one side, codex / gpt-5.5 on the other — each read the entire book end to end and produced per-chapter reader-experience reports tracking comprehension, friction points, the half-second state the reader entered and exited each chapter in, and where the cognitive arc bent or broke. Sixty-seven artifacts in eleven directories: twenty Claude reports, twenty codex reports, twenty diffs, a 520-line reader-state document tracking cumulative cognitive state across every chapter boundary, cross-chapter continuity and synthesis reports, and three tiers of prioritized fixing plans. The diffs are the load-bearing output. Where two careful readers report the same friction at the same paragraph, the paragraph is the problem. Where they diverge, the divergence itself is data — one model caught what the other missed. The fixing plan that came out of the pipeline drove a final round of targeted micro-fixes across nineteen chapters. A single human reading the book twice cannot produce a diff against themselves; two readers can, but not in a day.
Merely typo-free, which is of tremendous value. Typo-freeness is the achievement publishing pretends is routine and reliably fails to deliver. For a single author working alone it has historically been out of reach — the cost of a copy editor, a proofreader, and two attentive early readers exceeded what one writer could marshal. The Half Second ships typo-free across the twenty chapters, the front matter, and the back matter — not nearly typo-free, not typo-free-modulo-three-on-page-187. The mechanical audits, the cross-model checks, the adversarial reviews, and two end-to-end reads by structurally different models catch in combination what one pair of tired human eyes misses one at a time. It is the smallest-sounding achievement on this page and the one a reader feels most directly. A reader who hits a typo loses a half-second of trust in the writer; a reader who never hits one keeps that trust for the duration.
Voice as a published constraint. Three principles govern every paragraph. The prose has to land for a sharp twelve-year-old without talking down to anyone older. The strongest version of each claim is what gets shipped, not the defensible-against-objection version. The mechanism is demonstrated before it is named. These principles are kept honest by the audits above and by an LLM that, on request, reads any chapter against the voice rules and reports where the voice is drifting. The author still decides every fix; the reading is what scales.
The four clusters above are what AI and programming made possible. The cluster below is what no programming could replace.
Scope decisions that outran execution. Thirty-three files — prologue, nineteen chapters, front matter, all back matter — were translated to Chinese in one session via codex MCP at maximum reasoning effort, with 258 mechanical term-substitutions applied in a second pass. The work took one day. Two days later I abandoned the Chinese scope entirely. The book ships in English only. The asymmetry is worth naming: AI execution time (one day for thirty-three translated files) and human decision time (one conversation to decide the scope was wrong) operate at different speeds in different directions. The infrastructure for the work was cheaper than the decision to do it.
Personal life as the evidence anchor. My central evidence is my actual life — thirty-nine years of smoking quit by repeating three words; seven years of teaching at New Oriental and decades of writing for a Chinese-language community of more than ten thousand families; one specific moment with a six-year-old daughter that produced one specific script; a public-record investing population whose portfolio composition has been verifiable since 2019. The evidence is not borrowed; it is what I have access to. Where I lean on academic research — Hasher, Gollwitzer, Wood, Kross, Squire, Zajonc, Wegner, Brewer — the research is framed as reinforcement, not foundation. The AI did not provide the lived evidence; the AI surfaced the academic adjacencies that made the lived evidence legible to those who do not share the life.
It did not generate the claims. It did not invent the personal moments. It did not decide which traditions I argue with, or how. It did not decide what the cover would say. Where it wrote prose, I reviewed the prose sentence by sentence against a voice register I defined. Where it ran audits, I judged the audit findings. The boundary held.
And: it produced fluent prose that was wrong in particular ways I had to learn to see. The cross-model independence check finds two or three dozen flagged spans per chapter precisely because the primary model writes sentences that read well at the sentence and die at the cognitive arc — model-cadence tricolons, hedges that perform care without earning it, sentence shapes that signal model-touched even when the content is mine. The citation verification surfaced seven substantive corrections in roughly a hundred entries, and several of those errors originated in AI-generated reference cards that read confident and were not. The cascade procedure exists because the model would otherwise leave stale references in three places out of six and report the job as done — a habit I shipped once, as a bulk pattern-replace that broke grammar in four sentences before I caught it.
The faster the model, the more carefully I have to decide what to point it at. Translating thirty-three files into Chinese took one day; recognizing the scope decision was wrong took two more. The cost of an unwise execution is high enough that the speed asymmetry is itself a discipline question. The boundary held because I learned, late and a few times the hard way, where the boundary was.
A book that argues for the deliberate installation of first reactions, written using deliberate-installation tools, demonstrating the same mechanism it teaches — at small scale, in the writer's working life, before it asks us to demonstrate it at any scale in our own working lives.