Example: The Millhaven Gazette

A procedurally generated fictional local newspaper for Millhaven, VT

Site TypeFictional local news / journalism
Fictional SettingMillhaven, Vermont (pop. ~4,200)
Seed URL/
Pages Generated~38 across 2 crawls
Overall Rating★★★☆☆ (3/5) — strong individual articles, weak continuity
Compare ToACAPA fictional association site (higher continuity score)

Contents

  1. Overview
  2. Design Goals
  3. Seed Prompt
  4. Site Structure
  5. Sample Generated Articles
  6. What Worked
  7. What Didn't Work
  8. Continuity Analysis
  9. Lessons Learned
  10. Improved Seed Approach

1. Overview

The Millhaven Gazette experiment was one of the first large-scale fictional content sites attempted with Rabbithole. The goal was to test whether Rabbithole's page-isolation model could sustain a coherent fictional universe across a news publication — one of the most demanding use cases for cross-page consistency, since journalism inherently involves follow-up stories, recurring sources, referenced past events, and evolving narratives.

The fictional setting is Millhaven, Vermont, a small town of approximately 4,200 residents situated in the Northeast Kingdom, near the fictional Aldenvale River. Millhaven has a classic New England character: a covered bridge, a Congregational church on the green, a struggling paper mill that was the town's historic economic backbone, a consolidated school district, and a volunteer fire department. The Gazette is the town's weekly newspaper, established (in-universe) in 1887.

Overall the experiment was partially successful. Individual article pages were often strikingly realistic and well-written. However, cross-article continuity broke down in ways that would be immediately obvious to any attentive reader. This case study documents both the wins and the failures, and suggests a structural approach to mitigating the continuity problem.

2. Design Goals

Before generating the site, the following design goals were established:

Goal Priority Outcome
Clean newspaper-style HTML layout with masthead and columns High ☑ Achieved consistently
Plausible Vermont small-town fictional geography High ☑ Mostly achieved; some contradictions
Recurring named characters (mayor, police chief, local figures) High ☒ Inconsistent — names drifted across articles
Ongoing story threads (mill closure, school budget, town election) High ☒ Failed — threads did not self-reinforce across pages
No contamination from real-world Vermont news events Medium ☑ Largely avoided with explicit seed instructions
Functional classified ads, letters to the editor, sports coverage Medium ☑ Generated well as standalone pages
Consistent issue dates / publication volume numbers Low ☒ Inconsistent — Vol. numbers contradicted each other

3. Seed Prompt

The following seed prompt was used to generate the homepage (the front page of the Gazette). This prompt is the only context the homepage generator received. All linked pages then received derived prompts written by the homepage generator.

Generate the homepage (front page) of "The Millhaven Gazette", a fictional weekly
newspaper for Millhaven, Vermont — a small New England town of approximately 4,200
residents in the Northeast Kingdom region. The paper was founded in 1887 and is
still family-owned (the Aldrich family, currently run by editor Doris Aldrich, 61).

SETTING DETAILS (maintain strictly across all pages):
- Town name: Millhaven, VT (population ~4,200)
- Nearby geography: Aldenvale River, Calder Mountain, Route 12 corridor
- Key locations: Millhaven Green, Harriet Beecher Stowe Elementary School,
  Whitmore's Hardware, The Covered Bridge Diner, Millhaven Paper Mill (closed 2019)
- Key recurring characters:
    * Doris Aldrich — editor/publisher of the Gazette
    * Mayor Frank Tessaro — town mayor, first elected 2018, controversial rezoning plan
    * Chief Pauline Ochoa — Millhaven Police Department chief
    * Rev. Desmond Holt — pastor of First Congregational Church
    * Glenn Whitmore — owner of Whitmore's Hardware, selectboard member
- Active story threads as of this issue (Vol. 138, No. 14, April 4, 2025):
    * Mill redevelopment: town vote on converting old Millhaven Paper Mill site
      to mixed-use housing/retail, opposed by some residents
    * School budget: Millhaven Unified School District budget vote next month,
      $400k shortfall being debated
    * Selectboard election: three seats up in May, Whitmore running for re-election
    * Spring flooding: Aldenvale River at elevated levels after snowmelt

DESIGN: Classic newspaper front page in HTML. Black and white aesthetic.
Serif font for headlines (Georgia), sans-serif for body. Masthead at top.
Two or three column layout using HTML tables or divs. "Above the fold" lead story,
sidebar with briefs, weather box (fictional Millhaven forecast). No JavaScript.
No gradients. White background.

Generate at least 8 links to subpages: individual article pages, an about page,
archives, letters to the editor, classifieds, obituaries, sports, and a town calendar.
Each subpage prompt MUST re-state all setting details, recurring characters, active
story threads, and design guidelines — the linked page generators have NO other context.
Note: The setting details block above is the critical piece. Without it, linked pages would generate entirely different characters and geography. Even with it, drift occurred — see the Continuity Analysis section.

4. Site Structure

After two crawl passes, the Gazette had generated the following page tree. Pages are grouped by section. An asterisk (*) indicates a page that exhibited notable continuity drift.

URLPage TypeContinuity
/Front page (Vol. 138, No. 14)✓ Anchor
/about.htmlAbout the Gazette✓ Good
/archives.htmlIssue archive index✓ Good
/news/mill-redevelopment.htmlMill story deep-dive✓ Good
/news/school-budget.htmlSchool budget article✓ Good
/news/spring-flooding.htmlAldenvale River flooding✓ Good
/news/selectboard-election.htmlMay election preview✗* Drift
/news/mill-opposition-meeting.htmlCommunity meeting coverage✗* Drift
/news/aldrich-editorial.htmlEditor's column by Doris Aldrich✓ Good
/letters.htmlLetters to the editor✗* Drift
/classifieds.htmlClassified advertisements✓ Good
/obituaries.htmlObituaries✓ Good
/sports/basketball.htmlMillhaven Consolidated HS basketball✓ Good
/sports/little-league.htmlSpring little league preview✓ Good
/calendar.htmlTown events calendar✓ Good
/news/mill-history.htmlMill history feature (archive reprint)✓ Good
/news/tessaro-interview.htmlInterview with Mayor Tessaro✗* Drift
/news/flooding-followup.htmlFlooding follow-up (2nd crawl)✗* Drift
/news/budget-hearing.htmlSchool budget public hearing✗* Drift

5. Sample Generated Articles

The following are representative excerpts showing the range of quality across generated pages.

Strong example: /news/mill-redevelopment.html

Mill Site Vote: Town Divided Over Aldenvale Commons Proposal

The proposal to redevelop the former Millhaven Paper Mill site into a 74-unit mixed-use development called Aldenvale Commons drew a packed crowd to the town gymnasium Tuesday evening, with residents voicing sharp disagreement over traffic, affordability, and whether the development preserves the character of Millhaven's waterfront...

↗ This article correctly referenced Mayor Tessaro's rezoning plan, Glenn Whitmore's opposition, and the Aldenvale River location. Character names and facts aligned with the seed.

Drift example: /news/tessaro-interview.html

Q&A: Mayor Discusses Development Plans for Millhaven

Mayor Frank Tessaro sat down with the Gazette to discuss his vision for Millhaven's future. Tessaro, who has served as mayor since 2016, spoke about the need for new housing stock along the Calder Creek corridor...

⚠ DRIFT DETECTED: Seed says Tessaro first elected 2018, not 2016. "Calder Creek" was never defined — only "Aldenvale River" and "Calder Mountain" exist in the seed. The page generator invented new geography not grounded in the seed's lore block.

Drift example: /news/flooding-followup.html

Aldenvale Levels Drop; Road Closures Lifted

With river levels finally receding, Millhaven highway crews reopened Route 9 on Monday after a six-day closure. Police Chief Paulina Ochoa confirmed no injuries were reported...

⚠ DRIFT DETECTED: The original seed specifies Route 12 as the main corridor, not Route 9. Chief's name is "Pauline Ochoa" not "Paulina Ochoa" — minor but cumulative drift in character names is a known pattern. The follow-up article also contradicts the original flooding article's timeline, which said levels had been elevated "for over two weeks."

6. What Worked

Individual article quality was high. Standalone pages — those directly linked from the front page with full lore blocks in their prompts — generated convincing, well-structured journalism. Ledes were tight, quotes were realistic, and the small-town Vermont atmosphere came through consistently.
Non-narrative pages were nearly flawless. Classifieds, obituaries, sports recaps, and the events calendar do not depend on cross-page continuity. These generated extremely well. The classifieds page in particular was delightful, with fictional local businesses advertising things like firewood delivery, chainsaw sharpening, and a 1998 Ford F-150 for sale.
The newspaper design aesthetic was preserved well. Every page maintained the masthead, the Georgia serif headline font, the black-and-white column layout, and the Gazette branding. Design consistency was the most reliable form of cross-page coherence.
Seed-proximate pages were consistently accurate. Pages generated directly from links on the front page — where the homepage generator wrote detailed, lore-rich prompts — had a much higher fidelity than second- and third-generation pages where prompt quality degraded.

7. What Didn't Work

Cross-article story continuity was harder to maintain than ACAPA's lore-block approach. In the ACAPA example, a single fictional association's lore is relatively static — membership rules don't change, the founding date doesn't change. News is fundamentally dynamic: dates advance, facts accumulate, story outcomes need to agree. Rabbithole's stateless page generation is structurally better suited to encyclopedic or organizational sites than to evolving narrative journalism.
Character name drift accumulated across generations. By the third generation of linked pages, character names had small but noticeable mutations: "Pauline" became "Paulina", "Rev. Desmond Holt" became "Pastor Holt" and then "Rev. Dennis Holt" on one page. Each page generator worked only from the prompt it received, and prompt authors (the previous page's generator) sometimes paraphrased or abbreviated character details.
Invented geography leaked in. Without a rigid constraint against inventing new place names, pages began adding streets, roads, and landmarks not in the seed. "Calder Creek", "Mill Pond Road", "Whitmore Lane", and "the Grange Hall on Depot Street" all appeared in later pages without being established in the seed prompt.
Real-world Vermont contamination was partially avoided but not eliminated. The seed's instruction to "avoid real-world Vermont news events" worked for political and topical contamination. However, the LLM occasionally imported real Vermont geography: one page mentioned "Caledonia County" and another referenced Interstate 91, neither of which exist in the Millhaven fictional universe.
Follow-up article generation was the weakest link. The original flooding article was strong. The follow-up, generated on the second crawl from a prompt written by the original article's page generator, had drifted on nearly every checkable fact. This is the core tension: sequels to stories require knowing what the original story said, and that information can only be passed through the prompt chain.

8. Continuity Analysis

We tracked eight named facts from the seed prompt across all 19 generated pages and scored each page on how many facts it preserved correctly.

Fact Seed Value Pages Correct Pages Drifted Drift Pattern
Mayor's name Frank Tessaro 16/19 3/19 "Mayor Tessaro" (correct but no first name), once "Ted Tessaro"
Mayor's election year 2018 8/19 3/19 (8 didn't mention) 2016 and 2020 both appeared
Police chief's name Pauline Ochoa 10/19 4/19 (5 didn't mention) "Paulina", "Chief Ochoa" (ok), "Chief Linda Ochoa"
Mill closure year 2019 12/19 2/19 (5 didn't mention) 2018, 2020
Town population ~4,200 9/19 2/19 (8 didn't mention) "nearly 5,000", "just over 3,800"
Editor's name Doris Aldrich 14/19 1/19 (4 didn't mention) "Dorothy Aldrich" (once)
Primary road Route 12 9/19 3/19 (7 didn't mention) Route 9, Route 14, "Main Street" without number
Gazette founding year 1887 11/19 2/19 (6 didn't mention) 1892, 1881

The overall fact-retention rate for pages that did mention a given fact was approximately 78%. For comparison, the ACAPA site achieved roughly 91% fact retention across a similar number of pages, attributed to ACAPA's more rigorous lore-block discipline. See the ACAPA case study for details on that approach.

9. Lessons Learned

9.1 News sites are continuity-hard

A news publication is among the most demanding content types for a stateless generator. Every article implies history — "as we reported last week", "the vote scheduled for May" — and each of those implied facts must be consistently reproduced from memory encoded only in prompts. Consider whether a blog-style archive or encyclopedia-style reference site might be more tractable for your use case.

9.2 Propagate lore blocks faithfully, verbatim if possible

The highest-continuity pages were those whose prompts reproduced the seed's lore block nearly verbatim rather than paraphrasing it. Paraphrasing introduces opportunities for fact mutation. When writing prompts for linked pages, prefer copying the canonical facts block directly over summarizing it.

9.3 Prohibit invented geography explicitly

The seed should include an explicit instruction: "Do not invent new place names, streets, roads, rivers, or landmarks not listed in this prompt. If you need a location not listed, use a generic description instead." This substantially reduces geographic drift.

9.4 Sequels are structurally harder than originals

If you want a follow-up article to be accurate, its prompt must include not just the original story's facts but its specific claimed outcomes. The prompt for /news/flooding-followup.html should have included: "The original flooding article stated the river had been elevated for over two weeks, that Route 12 was closed at mile marker 7, and that Chief Pauline Ochoa had issued a public safety advisory." None of this was in the follow-up prompt, and so it was all re-invented inconsistently.

9.5 Static sections anchor the site more effectively than news sections

The About page, classifieds, sports recaps, and obituaries all performed well because they are not temporally dependent on other pages. For a fictional news site, invest prompt detail in these stable sections first, then layer in the evolving story threads.

10. Improved Seed Approach

Based on this experiment, the following structural changes are recommended for a second attempt at a fictional news site with Rabbithole:

# Recommended additions to a news site seed prompt

## CANONICAL FACTS (copy verbatim into every subpage prompt — do not paraphrase)
- Town: Millhaven, VT | Pop: ~4,200 | Region: Northeast Kingdom
- Roads: Route 12 (main), Mill Road (river access), Calder Hill Road (north)
- Named places: Aldenvale River, Calder Mountain, Millhaven Green,
  Covered Bridge Diner, Whitmore's Hardware, Millhaven Paper Mill (closed 2019)
- DO NOT invent new place names not in this list.
- DO NOT reference real Vermont towns, roads, or counties.

## CHARACTERS (full names — never abbreviate or alter)
- Editor: Doris Aldrich (61, female)
- Mayor: Frank Tessaro (first elected November 2018, male)
- Police Chief: Pauline Ochoa (female)
- Selectboard/Hardware: Glenn Whitmore (male)
- Pastor: Rev. Desmond Holt, First Congregational Church (male)

## CURRENT STORY STATE (include in any article prompt referencing these threads)
- Mill vote: no outcome yet, public hearing April 15, 2025
- School budget: $400k shortfall, vote May 6, 2025; no resolution yet
- Flooding: Aldenvale River at 14.2 ft gauge (flood stage: 13 ft), Route 12
  closed at MM 4.1 since April 1; no injuries reported as of April 4

## PROMPT PROPAGATION RULE
When generating links from this page, copy the CANONICAL FACTS,
CHARACTERS, and CURRENT STORY STATE sections verbatim into every subpage prompt.
The key addition is the PROMPT PROPAGATION RULE at the bottom: instructing the page generator to copy canonical fact blocks verbatim — rather than summarizing — into every downstream prompt. This is analogous to ACAPA's lore-block strategy and should significantly improve continuity on a second run.

See also:
All Examples
ACAPA Example — a fictional association site with stronger continuity
Architecture Overview — understanding page isolation
Prompt Writing Guide — techniques for cross-page consistency
Browse the Millhaven Gazette — explore the generated site itself