# The Puzzle Book Factory

> Source: <https://blakelapierre.substack.com/p/the-puzzle-book-factory>
> Published: 2026-10-16 21:08:07+00:00

Here’s a fun fact about my author page on Amazon: my co-author is a bot.

My first two Amazon listings say “by Blake La Pierre (Author), Grok Bot (Author).” I didn’t plan that. It’s just what happened when I let an AI agent do most of the work. And honestly, it’s fair credit.

Here’s the scoreboard. Since September 30, my “books” agent and I have built 15 puzzle books. Six are live on Amazon. The rest are print-ready and waiting on me. That gap is mostly the story of this post.

## The books

The core is a series I call **Frostwood**: cozy winter puzzle books set around a made-up mountain lodge, the railway that climbs up to it, the village below, and the mountain itself. The house rules are simple. Cozy and non-violent (a theft is as dark as it gets). Winter but not Christmas, so the books can sell from November through March. Every book uses a different kind of puzzle.

So far the series has:

1. *The Thief Stayed the Night* : 12 snowbound-hotel mystery cases you solve by elimination (**live** )
2. *Frostwood Express* : 200 Train Tracks logic puzzles (**live** )
3. *Stars over Frostwood* : Star Battle
4. *Tents in Frostwood* : Tents and Trees
5. *Riddles by the Frostwood Fire* : a Kindle ebook of riddles and text logic
6. *The Frostwood Sketchbook* : nonograms
7. *Bridges of Frostwood* : Hashi / Bridges (**live** )
8. *Fences of Frostwood* : Slitherlink, as a hardcover

Then there are seven standalones: an advent-calendar puzzle countdown (*The Advent Clock*, **live**), 200 large-print cryptograms, 120 logic grids, 80 cozy crosswords (*Porch Swing Crosswords*, **live**), a guided memory keepsake hardcover (*Stories We Keep*, **live**), and two “audio-first” Kindle ebooks of mini-mysteries and riddles written so you can solve them by ear.

Sales? Six books live, zero orders so far. So, yeah. I promised real numbers, and that’s the real number.

## How it works

The whole thing lives in one git repo, and it’s public: **github.com/blakelapierre/kdp-books**. Each book is a self-contained folder with everything needed to rebuild it:

- `src/gen.py` generates the puzzles
- `src/verify.py` (and sometimes`verify_sat.py` ) proves they work
- `src/illustrations.py` draws the art
- `src/build.py` lays out the interior PDF
- `src/cover.py` builds the full-wrap cover: back, spine, and front, sized to the page count
- `listing.md` has the Amazon title, subtitle, description, keywords, categories, and royalty math
- `README.md` is a phone-friendly KDP publishing checklist with copy-paste listing fields

The stack is plain Python: ReportLab for the PDFs, python-sat for solving, numpy, Pillow, and python-docx. Nothing exotic.

**Puzzle generation and verification.** This is the part I’m proudest of, and it’s the part I’d tell anyone copying this to never skip. A puzzle book with an unsolvable puzzle gets one-star reviews. Every book ships with a verification report generated by code.

For *Frostwood Express*, the agent checked all 200 Train Tracks puzzles with an independent SAT solver (CaDiCaL via python-sat). Every puzzle has exactly one solution, and it matches the stored answer. It also checked difficulty. The puzzles are graded by which “tier” of logic you need to solve them, and each one has to be solvable at its band’s tier but *not* one tier lower. So an “Easy” puzzle really is easy, and a “Hard” one really can’t be brute-forced with Easy tricks. The checks run in about seven seconds.

The mystery book got a different kind of audit. For each case, the code checks that exactly one suspect fits all the clues, that every clue in printed order clears at least one suspect, and that at least two suspects are still in play before the final clue. That last check keeps the ending from fizzling.

**Art.** I can’t draw. Neither can the agent, in the usual sense. So it wrote `inkart.py`, a little procedural line-art library that draws black-and-white ink illustrations with vector strokes and renders them at 300 DPI: frontispieces, section openers, and small vignettes. No image generator, no licensing questions.

**House style.** Fonts are embedded and open-licensed (Crimson Text, Playfair Display SC, IBM Plex Sans Condensed). The trim is 6×9 inches with mirrored margins kept above KDP’s minimums. Every Frostwood cover and title page carries “A Frostwood Puzzle Book,” so Amazon can link them as a series, and it does.

**Ideas.** The agent keeps an `ideas-log.md` with every idea it has built or evaluated, plus my standing preferences (no murder, $9.99 default price). New idea scans check the log first, so it doesn’t pitch me the same Sudoku book twice.

**Marketing.** There’s a whole marketing folder: Amazon ads plans, Author Central, A+ Content images, Pinterest pins, a holiday plan, and a weekly Monday routine that checks the public Amazon pages and logs ranks and reviews. The audio-first mystery book also became a series of YouTube Shorts, with the agent tracking views.

## Who does what

My routine, honestly, is checking the bot chats and sending ideas. The agent picks a puzzle type, writes the generator, verifies it, draws the art, builds the PDFs and cover, writes the listing, and gives me a checklist.

I do the parts that need a human or my login: approve ideas, look at proofs, click through KDP’s upload screens, and hit publish. That’s also why there are 15 books built and six live. The agent can build a book faster than I can get around to uploading one.

## What was hard

**KDP’s preflight is pickier than the spec.** *Stories We Keep* got bounced for margins. The running headers and page numbers sat outside KDP’s safe area, and some long prompt titles needed wrapping. The fix was easy, but it’s a reminder that “meets the published minimums” and “passes the reviewer” aren’t the same thing.

**Pricing math is real math.** KDP pays 60% of list price minus printing cost, and printing cost depends on page count. A 200-puzzle book at 192 pages earns noticeably less per copy at $9.99 than a 92-page one. That’s why *Frostwood Express* is $11.99. Every listing file shows its royalty math, and I’m glad it does.

**Building isn’t selling.** Fifteen books in a couple of weeks is a fun number. Zero reviews is the other number. The bottleneck has moved from making books to getting anyone to see them.

## Lessons

- **Verification is the product.** Anyone can get an AI to spit out puzzles. Proving every one has exactly one solution at the right difficulty is what makes the book worth buying.
- **Self-contained folders scale.** Each book rebuilds from its own folder with relative paths, so the agent can start book 16 without breaking book 3.
- **Constraints make better books.** “Cozy, winter, a different puzzle type every time” gave the series an identity and kept the agent from cloning itself.
- **Plan for the human bottleneck.** The agent writes a phone-friendly checklist for every book because the slow step is me.

## Steal this

1. **Fork the repo.** It’s public. The generators, SAT verifiers, ink-art library, and cover builder are plain Python you can adapt.
2. **Verify with an independent solver.** Generate puzzles one way and check them another way (SAT is great for this). Check uniqueness*and* difficulty.
3. **Grade difficulty by technique, not grid size.** “Solvable with tier-N logic but not tier N-1” is a clean, testable definition.
4. **Keep an ideas log with your preferences in it.** Your agent will stop re-pitching rejected ideas.
5. **Put the royalty formula in every listing.** Know your per-copy earnings before you pick a page count.
6. **Make the publishing step a checklist.** If a human has to do it, make it copy-paste on a phone.

## Next time

Next post: **debugging a $4 trading bot.** I’ll walk through the full post-mortem on my crypto market-making bot: the market orders that skipped its bookkeeping, the coin it traded 58 times while the price went up, and whether the fixes actually worked.

If you fork the books repo or build something with it, reply and tell me. And if you buy a Frostwood book, you might be my first customer.

— Blake
