first pass at the newspaper builder
Test / test (push) Has been cancelled

This commit is contained in:
2026-09-14 11:57:22 +10:00
commit bec1eaac87
497 changed files with 178953 additions and 0 deletions
@@ -0,0 +1,42 @@
# Delivery Planning — Bolt Plan
> Construction sequence for the wedding newspaper generator, per confirmed
> answers (Q1=A value-core first, Q2=A no formal score, Q3=A one unit per Bolt,
> Q4=B parallel ai-draft + funnies, Q5=A no external blockers). A **Bolt** is
> one build pass over a piece of the work, ending in something that runs.
> Topology is from Units Generation (2.7); this stage chooses the economic
> path through it. Walking skeleton is skipped per affirmed team practice.
## Bolt sequence
| Bolt | Units | Notes / walking-skeleton | Definition of Done | Confidence hypothesis | Expected demo |
|---|---|---|---|---|---|
| Bolt 1 | `generator` (core) | Value core first (Q1=A): CLI, content parse, masthead, layout, emit. Simple content, works end-to-end early. | `newspaper generate <simple content>` emits a self-contained `newspaper.html` that prints to A4 with correct masthead + columns | The core render pipeline hangs together and the paper prints end-to-end with hand-written content | A one-page sample newspaper from simple markdown |
| Bolt 2a | `ai-draft` | Parallel (Q4=B) with Bolt 2b — independent of funnies. | `--draft` calls the granted model and returns a DraftBundle review set | The AI drafting loop (cloud model + per-article DraftBundle) works and stays reviewable | A drafted article set ready for per-article review |
| Bolt 2b | `funnies` | Parallel (Q4=B) with Bolt 2a — independent of ai-draft. | `funnies` builds crossword + find-a-word from content and embeds/selects a cartoon; falls back when none found | Content-derived puzzles + cartoon are produceable and A4-printable | A crossword, a find-a-word, and a selected cartoon block |
| Bolt 3 | `generator` integration | Fold in ai-draft + funnies; add per-article review page + photo embedding. | Full newspaper: AI draft → per-article review → funnies section → photos → multi-page A4 print | The whole chain works end-to-end with all sections and the review handoff | A full multi-page newspaper with funnies, photos, AI drafts, reviewed |
## Why this order (summary)
- **Bolt 1 first** = value core / end-to-end early (Q1=A): the highest-confidence,
central capability lands first, matching the affirmed "no separate walking
skeleton" (the first Bolt is naturally a thin end-to-end slice anyway).
- **Bolts 2a/2b parallel** = the independent, higher-unknown pair (funnies and AI
drafting — the user's stated worries, Q6=B,C) after the core works, so they
can be built and de-risked concurrently.
- **Bolt 3 last** = integration: wire the funnies + AI review into the core and
polish multi-page fidelity. Tackles the print-fidelity worry (Q6=A) as the
finish pass.
## Confidence hypotheses (per Bolt)
- Bolt 1: "The core render pipeline produces a correct, A4-printable paper from
hand-written markdown."
- Bolt 2a: "The AI draft produces acceptable wedding-appropriate copy and the
per-article DraftBundle is reviewable off file://."
- Bolt 2b: "Content-derived crosswords/find-a-words and a selected cartoon print
correctly on A4 with a graceful fallback."
- Bolt 3: "The full newspaper — AI drafts, review, funnies, photos, multi-page
print — works end-to-end with all sections."
<!-- delivery-planning-after-confirm -->