From eec5168d2e2ee448d0a1a61fd550f3a30826891a Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 30 Aug 2026 19:34:37 +0200 Subject: [PATCH] Separate newspaper house style from issue flow --- notes/fresh-workspace-handoff.md | 39 +++-- notes/ghostlight-current-system-map.md | 113 ++++++++----- notes/historical-newspaper-layout-grammar.md | 148 ++++++++++++++++++ ...opy-ledger-run-61-style-1847-flow-723.pdf} | Bin 272639 -> 274027 bytes ...-run-61-style-1847-flow-723.manifest.toml} | 40 +++-- ...opy-ledger-run-61-style-1847-flow-723.tex} | 53 +++---- state/map.yaml | 5 +- tools/typeset_newspaper.py | 147 +++++++++++------ 8 files changed, 402 insertions(+), 143 deletions(-) create mode 100644 notes/historical-newspaper-layout-grammar.md rename output/pdf/{canopy-ledger-run-61-seed-1847.pdf => canopy-ledger-run-61-style-1847-flow-723.pdf} (79%) rename output/tex/{canopy-ledger-run-61-seed-1847.manifest.toml => canopy-ledger-run-61-style-1847-flow-723.manifest.toml} (57%) rename output/tex/{canopy-ledger-run-61-seed-1847.tex => canopy-ledger-run-61-style-1847-flow-723.tex} (65%) diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index d7954e7..8b4237a 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -1493,14 +1493,28 @@ Region-based extraction finds all 23 expected copy fragments, and full-page 144-DPI visual QA finds no clipping or overlap. Preserve it as the verified Run 60 press baseline. -The operator has now authorized a new press-layout task over the designated -accepted Canopy Ledger edition. Do not rewrite its copy. Build a reusable -random-seed-driven newspaper layout script with bounded typography and press -variation; the same source and seed must reproduce the same layout choices. -Use ImageGen for story-specific woodcuts. Reserve printer's ornaments and -fleurons for reusable decoration rather than narrative illustration. Preserve -the source identity plus generation and visual provenance with the finished -artifact. This task temporarily precedes the Delvehold adapter. +The historical press-layout and style/flow seed split are complete. The +reference corpus runs through 1914, and +`notes/historical-newspaper-layout-grammar.md` preserves the derived grammar. +Manifest v2 is +`output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml`. It binds +`style_seed=1847`, `flow_seed=723`, frozen source SHA-256 +`8f195140f52a40ba705d6a66987146a1500ae89668e5d82b01d1792eb3afb882`. +The final artifact is +`output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf`, SHA-256 +`a457f4b1702a7a52480e42fce0039f0dbe677ff32958e98f1c412b346237190c`. + +An identical seed pair produces byte-identical TeX and now byte-identical PDF. +Changing only `flow_seed` preserves the exact manifest style section while +materially changing a plausible layout; changing only `style_seed` preserves +flow topology. Cut-first and cut-midstory templates both pass visual inspection. +The failed split-card template was deleted. Frozen copy and assets, actual PDF +`/BM /Multiply`, and visual provenance remain intact. Layout is closed. + +Future advertisements remain economic content. The layout may reserve typed +slots, but only the economic layer may own advertiser identity, goods, price, +claims, campaign continuity, and payment. Unfilled slots collapse unless the +edition explicitly records unsold space; presentation cannot invent a campaign. Run 54 exposed one separate upstream publicity defect: a public strategic activity propagates its channel to private `MemberMemory` outcomes, which is @@ -1512,11 +1526,10 @@ materializing a `NewsIssue`. 1. Preserve immutable accepted Run 60 and Run 59; do not rewrite, recompose, or resimulate either edition. 2. Preserve the delivered Run 60 PDF and its frozen-copy verification as the - baseline. Typeset the operator-designated accepted Canopy Ledger with the - reusable seeded press-layout machinery described above; verify the artifact - without changing accepted copy. -3. After the press-layout task, advance the Delvehold-owned adapter against - Ghostlight's admitted generic consumer contract. Defer multiple publications + earlier baseline, plus the final Run 61 style/flow artifact, v2 manifest, + grammar, hashes, frozen copy, and art assets recorded above. +3. Advance the Delvehold-owned adapter + against Ghostlight's admitted generic consumer contract. Defer multiple publications until separately authorized, or follow the operator's next directed work. Preserve immutable Runs 60 through 63 and do not replay newspaper work for cache telemetry. diff --git a/notes/ghostlight-current-system-map.md b/notes/ghostlight-current-system-map.md index 1378a48..e14faeb 100644 --- a/notes/ghostlight-current-system-map.md +++ b/notes/ghostlight-current-system-map.md @@ -1691,48 +1691,89 @@ write world state. #### Seeded TeX press projection - **Owner:** the operator-designated frozen newsroom Markdown owns masthead, - edition label, sections, story order, headlines, decks, bylines, and every - paragraph. `tools/typeset_newspaper.py` owns presentation only: parsing that - copy, choosing bounded seed-driven style, emitting TeX and its manifest, and - invoking LuaLaTeX. Woodcut bitmaps and their adjacent prompt sidecars own - illustration provenance, not facts or copy. -- **Inputs:** one frozen Markdown edition, one required integer seed, zero or - more ordered wordless woodcut PNGs, output/TeX/manifest paths, and an optional - LuaLaTeX engine or `--no-compile`. The current Run 61 projection uses seed - 1847 and the `boundary-rail-exchange` and `sinkroot-gauge-gallery` cuts. Their - matching prompt files preserve the exact fresh ImageGen requests and record - grayscale, 72-percent threshold, and trim preparation. -- **Outputs:** escaped TeX, a `ghostlight.seeded_tex_press.v1` TOML manifest, and - optionally a compiled PDF. The manifest records source/output/TeX paths, - seed, selected style values, ordered woodcut paths, and SHA-256 digests for - source, TeX, tool, woodcuts, engine, and compiled output. These are press - artifacts, not another newsroom composition or correction surface. -- **Derived state:** the parsed `Edition`, seeded `Style`, page grouping, - ornament choice, image placement and widths, TeX markup, and PDF pagination - are presentation projections. The same seed deterministically selects the - same bounded style. Exact portable PDF reproduction additionally depends on - the named system fonts; source, woodcut, engine, tool, TeX, and output bytes - are bound by the manifest. + edition label, article identities, lead designation, sections, headlines, + decks, bylines, and every paragraph. `tools/typeset_newspaper.py` owns + presentation only through two independent decisions. `style_seed` owns the + durable house body: sheet geometry, type, stock, ink, rules, gutters, and + ornaments. `flow_seed` owns the per-issue display template, secondary-story + grouping, which eligible secondary closes page one, cut-first versus + cut-midstory placement, cut scale, and page closure. Both apply the pre-WWI + mass-circulation grammar distilled in + `notes/historical-newspaper-layout-grammar.md`; neither owns copy. Woodcut + bitmaps and their adjacent prompt sidecars own illustration provenance, not + facts. A future economic layer owns advertiser identity, goods, prices, + claims, campaign continuity, and payment; the press may only place an already + admitted ad module in the shared page grid. +- **Inputs:** one frozen Markdown edition, required independent style and flow + seeds, zero or more article-indexed wordless woodcut PNGs, + output/TeX/manifest paths, and an optional LuaLaTeX engine or `--no-compile`. + The current Run 61 projection uses style seed 1847 and flow seed 723 and binds + `boundary-rail-exchange` to article 0 and + `sinkroot-gauge-gallery` to article 1. Their matching prompt files preserve + the exact fresh ImageGen requests and record grayscale, 72-percent threshold, + and trim preparation. No ad module is currently admitted. +- **Outputs:** escaped TeX, a `ghostlight.seeded_tex_press.v2` TOML manifest, and + optionally a compiled PDF. Manifest v2 records independent `[style]` and + `[flow]` projections and binds both seeds, source/output/TeX paths, + article-indexed woodcuts, and SHA-256 digests for source, TeX, tool, woodcuts, + engine, and compiled output. The current artifact is + `output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf`, bound by + `output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml` with output + SHA-256 `a457f4b1702a7a52480e42fce0039f0dbe677ff32958e98f1c412b346237190c`. + These are press artifacts, not another newsroom composition or correction + surface. +- **Derived state:** the parsed `Edition`, house `Style`, per-issue `Flow`, + two-page story grouping, continuous four-column reading flow, unbreakable + story-header modules, story-local cut placement and widths, TeX markup, and + PDF pagination are presentation projections. Flow templates include + `display-plate` and `display-band`; inside-story placement includes + `cut-first` and `cut-midstory`. TikZ/PDF multiply blending makes monochrome cut + paper disappear into the seeded stock. The same style seed preserves the + bounded house body across issues while a different flow seed may change + grouping and placement without changing that body. Exact portable PDF + reproduction additionally depends on the named system fonts; source, + woodcut, engine, tool, TeX, and output bytes are bound by manifest v2. - **Forbidden writers:** the press, TeX compiler, manifest, woodcuts, and prompt sidecars cannot add, remove, summarize, reorder, correct, or reinterpret - newsroom copy; change bylines or story priority; write newsroom checkpoints - or world state; or promote an illustration into evidence. A successful PDF - compile cannot admit missing or altered copy. + newsroom copy; change bylines, lead designation, or newsroom-owned narrative + function; write newsroom checkpoints + or world state; promote an illustration into evidence; fabricate an + advertiser, offer, price, claim, payment, or campaign; or fill an unadmitted + ad slot. Flow may choose which eligible secondary closes page one, but it + cannot rewrite article text, change the lead, reassign an indexed cut, detach + that cut from its story, or omit it. A successful PDF compile cannot admit + missing or altered copy. - **Shared path:** every press run parses the frozen source, derives one style - from the seed, writes TeX and manifest, then either stops at `--no-compile` or - compiles that exact TeX in a temporary directory and copies the resulting PDF - to the named output. Woodcut order alone selects lead and later placement. + from `style_seed` and one issue flow from `flow_seed`, verifies that all frozen + fields survive, writes TeX, compiles that exact TeX when requested, and then + writes manifest v2. Each woodcut is keyed to its owning article index and + remains attached to that story's display field in either cut-first or + cut-midstory form; accepted copy then flows continuously through the common + four-column grid. There is no detached image bank or bottom-art reservation. + Any future admitted ad module must use this same grid without changing + article-internal copy order or flow-selected grouping. - **Cut line:** the live press path contains no model rewrite, editorial summarizer, copy-fitting loop, or second content owner. Press variation is bounded to page geometry, typography, color, rules, fleurons, and illustration - sizing/placement; the former fixed ReportLab front-page renderer is not live. -- **Verification layer:** admission requires source-to-TeX/PDF copy completeness - and order, a same-source/seed derivation check, successful halt-on-error - compilation, rendered-page inspection for clipping and overlap, and matching - manifest/woodcut prompt provenance. LuaLaTeX produces a two-page PDF with - embedded Times New Roman faces. The parser flushes the final article paragraph - at end of file; extracted copy includes the closing `Marshal Eryn Tal` - paragraph, and rendered inspection shows no clipping or overlap. + sizing/placement. The former fixed ReportLab renderer, three-column lead plus + one-column rail, paired story-minipage layout, and detached image bank are not + live. Minipages now protect headers only; story bodies remain in continuous + column flow. The single-seed manifest v1 and prior + `output/pdf/canopy-ledger-run-61-seed-1847.pdf` artifact are not current press + authority. +- **Verification layer:** admission requires source-to-TeX/PDF field completeness + and article-internal order, exact same-pair TeX derivation, independent style- + and flow-seed variation checks, successful halt-on-error compilation, rendered-page + inspection for clipping and overlap, one attached rendering for every indexed + cut, and matching manifest/woodcut prompt provenance. The current manifest v2 + records `display-plate`, `cut-first`, and page-one secondary article 2. Its + final TeX uses four-column `multicols`, article-indexed cuts, `needspace` plus + header-only minipages, and TikZ multiply scopes. LuaLaTeX produces a two-page + PDF with embedded Times New Roman faces; `SOURCE_DATE_EPOCH=0` and + `FORCE_SOURCE_DATE=1` make the same admitted inputs byte-reproducible under the + bound engine. Extracted copy includes the closing `Marshal Eryn Tal` + paragraph. Rendered inspection confirms continuous reading order, attached + cuts blended into the stock, unstranded headers, and no clipping or overlap. #### Acceptance-driver per-wave newspaper recovery diff --git a/notes/historical-newspaper-layout-grammar.md b/notes/historical-newspaper-layout-grammar.md new file mode 100644 index 0000000..5c6c62d --- /dev/null +++ b/notes/historical-newspaper-layout-grammar.md @@ -0,0 +1,148 @@ +# Historical Newspaper Layout Grammar + +This is a working press grammar, not a costume catalogue. It distills recurring +page structures from representative nineteenth-century newspapers into rules +the seeded TeX press can actually enforce. + +## Reference set + +- *Pall Mall Gazette*, first issue, 1865: a deliberately spacious evening + review using two wide columns, double masthead rules, restrained italic + headlines, and long uninterrupted reading measure. + +- *Evening Star* (Washington), 28 February 1880 and 17 June 1890: metropolitan + sheets with a broad nameplate, six or more narrow continuous columns, dense + vertical packing, and advertisements/notices inhabiting the same column grid + as news. + + +- *The Sun* (New York), 30 May 1885: a uniform multi-column field with modest + story heads and almost no unowned white space. + +- University of Illinois, *American Newspapers, 1800–1860*: physical and + production context for five-to-eight-column sheets, full-height columns, + front-page advertising, and the migration of timely news to inside pages. + +- Robinson, *Newspapers and Advertising*: nineteenth-century advertising moves + from small text-heavy insertions intermingled on front and back pages toward + larger display advertising and more consistent classified pages late in the + century. + +- *New-York Tribune*, 16 April 1912: a page-wide disaster head, central map and + photographic display spanning several columns, flanking report columns, and + dense continuation below the illustration. + +- *Richmond Times-Dispatch*, 17 April 1912: a page-wide head and ship image + followed by modular three-column packages, lists, subheads, and boxed matter. + +- *St. Louis Globe-Democrat*, 17 April 1912: a large central illustrated package + surrounded by independent column-width reports and subordinate display heads. + +- *The Daily News* (St. John's), 14 August 1914: narrow continuous news columns + coexist with multi-column war heads and boxed display advertisements occupying + ordinary grid modules. + + +Reference scans used for visual comparison live in disposable +`tmp/newspaper/references/`; the URLs above remain the durable provenance. + +## Families + +The press selects a family before it varies details. + +### Evening review + +- Two wide columns. +- Smaller physical sheet and lower information density. +- Long-form reading dominates scanning. +- Sparse display hierarchy; italics, rules, and small capitals do more work + than large headlines. + +### Metropolitan sheet + +- Four to eight narrow columns depending on sheet size and date. +- The nameplate spans the page, while issue data, price, notices, or subscription + terms may flank or bracket it. +- Stories, notices, and advertisements inhabit one shared vertical grid. +- Story heads are usually modest. Late-century sensational sheets may spend + several columns on a display head or illustration, but the surrounding text + closes around that expenditure. + +The Canopy Ledger currently uses a compact four-column metropolitan sheet. Its +small accepted copy body does not earn a six-to-eight-column broadsheet. + +### Mass-circulation display sheet, 1895–1914 + +- The underlying narrow-column grid survives, but a major event may spend + several columns on one head, deck stack, map, photograph, or illustration. +- Display packages remain attached to their story. Copy resumes directly below + them or rises in adjacent columns; the illustration does not become a detached + gallery object. +- Secondary stories become more visibly modular through short rules, boxed + lists, subheads, and column-spanning heads. +- A large central image may organize the entire page, with flanking text fields + and subordinate modules closing around it. +- Display advertisements become visually distinct boxed modules while small ads + and notices continue to occupy ordinary column measure. + +The accepted Run 61 special issue uses this family. Its crisis head and cut earn +a page-wide display package; accepted story copy then returns immediately to the +four-column grid. + +## Composition rules + +1. **The page is a column economy.** Every occupied region begins and ends on + column or half-column lines. Large vacant regions require an owned reason + such as an absent paid advertisement; they are not a centering technique. +2. **Build fields, not isolated boxes.** A story field contains its head, deck, + byline, cut, caption when present, and body measure. Adjacent fields share a + top line or establish an intentional stepped hierarchy. +3. **Cuts spend story measure.** A narrative cut is assigned to one story and + placed inside that story's contiguous field. It may span multiple columns, + with the story flowing above, beside, or below it. It may not be deposited at + a page edge after unrelated columns have ended. +4. **Ink blends with stock.** Monochrome cuts use multiply compositing (or its + alpha-equivalent against a flat stock color) so white image paper disappears + and black linework shares the page ink. +5. **Reading order remains typographic.** Column traversal, rules, heads, and + continuation labels must make the next fragment unambiguous. Geometry may + not reorder accepted copy. +6. **Density follows the edition.** Type size, page dimensions, column count, + and cut expenditure are solved together from copy volume. A short edition + becomes a smaller sheet or fewer columns; it does not become a broadsheet + with a desert under it. +7. **Hierarchy is rationed.** One lead field may spend a multi-column head and + large cut. Secondary heads stay within their field. Masthead display does not + authorize every story to shout. +8. **Rules join related matter.** Column rules and horizontal rules articulate + the grid. Ornaments close or divide small matter; they do not substitute for + missing content. +9. **Advertisements are economic content.** The press may reserve typed ad + slots by column width and depth. Only the economic layer may fill them with + advertiser identity, goods, price, claims, campaign continuity, and payment. + Unfilled slots collapse unless the edition explicitly records unsold space. +10. **House and issue variation are separate.** `style_seed` owns the durable + publication body: sheet, grid, fonts, type scale, stock, ink, rules, gutter, + and ornament vocabulary. `flow_seed` owns one issue's imposition: display + template, story grouping, page-one closure, cut span and placement, page + breaks, and continuation rhythm. Neither may detach art, rewrite copy, + fabricate ads, or create barren pages. +11. **A house remains recognizable across flows.** Holding `style_seed` fixed + must preserve typography, stock, ink, rules, sheet geometry, and base grid + while materially different `flow_seed` values produce distinct plausible + readings of the same admitted content. Holding `flow_seed` fixed while the + style changes must preserve its story/cut topology. + +## Current Run 61 imposition + +- House style seed `1847`; issue flow seed `723`. The manifest records both as + independent inputs under `ghostlight.seeded_tex_press.v2`. +- Page one: full-width nameplate and crisis head; a centered page-wide Boundary + Rail cut; lead and secondary copy flowing continuously through four columns. +- Page two: a compact repeated nameplate and Sinkroot head; the centered gauge + cut immediately below its owning head; Sinkroot and Dispatches copy flowing + continuously through the same four-column grid. +- Secondary story headers are unbreakable column modules, so a section label or + head cannot strand at the foot of the preceding column. +- Both cuts use PDF multiply blending so their white image stock disappears into + the seeded paper stock. No image bank or detached bottom art reservation exists. diff --git a/output/pdf/canopy-ledger-run-61-seed-1847.pdf b/output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf similarity index 79% rename from output/pdf/canopy-ledger-run-61-seed-1847.pdf rename to output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf index f1137d169c91f21f175fc3d11d42e6296bc1698e..e271ac3fce9d1b53a9e4c157fdd87a6c3fb573e1 100644 GIT binary patch delta 56198 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

gFfBNzg!BrcAE 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

!>8r0&Es_HmJCc6|dT?;stEyDzA#` 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 delta 54854 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

+(FToxaL(`C@N$(6ghyyiCVRrf7lwl(Ur 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 diff --git a/output/tex/canopy-ledger-run-61-seed-1847.manifest.toml b/output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml similarity index 57% rename from output/tex/canopy-ledger-run-61-seed-1847.manifest.toml rename to output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml index 83b6c54..4a64958 100644 --- a/output/tex/canopy-ledger-run-61-seed-1847.manifest.toml +++ b/output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml @@ -1,23 +1,24 @@ -schema = "ghostlight.seeded_tex_press.v1" +schema = "ghostlight.seeded_tex_press.v2" source = "F:/Projects/Ghostlight/acceptance-run61-newspaper.md" source_sha256 = "8f195140f52a40ba705d6a66987146a1500ae89668e5d82b01d1792eb3afb882" -output = "F:/Projects/Ghostlight/output/pdf/canopy-ledger-run-61-seed-1847.pdf" -tex = "F:/Projects/Ghostlight/output/tex/canopy-ledger-run-61-seed-1847.tex" -tex_sha256 = "c25e7390b2ca3ba68d455962401cc7e7bb77ce99caf4610f4565a380ca10a0ff" +output = "F:/Projects/Ghostlight/output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf" +tex = "F:/Projects/Ghostlight/output/tex/canopy-ledger-run-61-style-1847-flow-723.tex" +tex_sha256 = "002a1a6271ee7a746e86d6632037809683e4a39510a91b4c90ee63c10e5d7717" tool = "F:/Projects/Ghostlight/tools/typeset_newspaper.py" -tool_sha256 = "3090b99546c12d2cb9afa44ec1afa2270cb7474aadd3a242a7dafeab37e931d7" -seed = 1847 +tool_sha256 = "b3481086d82f87dce8ab4302139d7343bcaad79180f57984b07246ab383456f6" +style_seed = 1847 +flow_seed = 723 engine = "C:/Users/Meta/AppData/Local/Programs/MiKTeX/miktex/bin/x64/lualatex.exe" engine_sha256 = "e2bce0b59faf2d6501d0d03d8d13a5b93621285d7839438a19911ef963d46bfa" -output_sha256 = "529de5202c5c948f3e1339f8663184cc933794a0d85c1e42f30cd84a7f95c6c2" +output_sha256 = "a457f4b1702a7a52480e42fce0039f0dbe677ff32958e98f1c412b346237190c" [style] -width = 9.8 -height = 14.0 -margin = 0.38 -body = 8.6 -leading = 1.04 -gutter = 10.5 +width = 9.6 +height = 10.9 +margin = 0.34 +body = 7.7 +leading = 1.03 +gutter = 9.5 rule = 0.36 masthead = 39 lead = 29 @@ -26,13 +27,20 @@ text = "Times New Roman" paper = "EFE1C2" ink = "21170F" fleuron = "cross" -lead_cut = 0.82 -inside_cut = 0.54 -rules = "double" +rules = "heavy-thin" + +[flow] +template = "display-plate" +inside_layout = "cut-first" +page_one_secondary = 2 +lead_cut = 0.97 +inside_cut = 0.78 [[woodcuts]] +article_index = 0 path = "F:/Projects/Ghostlight/assets/newspaper/woodcuts/boundary-rail-exchange.png" sha256 = "87666118f63d55c797cece58eb5b09ff0984cecfe9c5e29e69932c830508bf87" [[woodcuts]] +article_index = 1 path = "F:/Projects/Ghostlight/assets/newspaper/woodcuts/sinkroot-gauge-gallery.png" sha256 = "496e5b83e296e9c4479c9b00eca01ac34ed610de2aa11f8a9353ac1dc5f3cc95" diff --git a/output/tex/canopy-ledger-run-61-seed-1847.tex b/output/tex/canopy-ledger-run-61-style-1847-flow-723.tex similarity index 65% rename from output/tex/canopy-ledger-run-61-seed-1847.tex rename to output/tex/canopy-ledger-run-61-style-1847-flow-723.tex index cc45a0c..5ae3aea 100644 --- a/output/tex/canopy-ledger-run-61-seed-1847.tex +++ b/output/tex/canopy-ledger-run-61-style-1847-flow-723.tex @@ -1,60 +1,55 @@ \documentclass{article} -\usepackage[paperwidth=9.8in,paperheight=14.0in,margin=0.38in]{geometry} -\usepackage{fontspec,graphicx,xcolor,microtype,multicol,ragged2e,fancyhdr} +\usepackage[paperwidth=9.6in,paperheight=10.9in,margin=0.34in]{geometry} +\usepackage{fontspec,graphicx,xcolor,microtype,multicol,ragged2e,fancyhdr,tikz,needspace} \setmainfont{Times New Roman}\newfontfamily\displayface{Times New Roman}\newfontfamily\sectionface{Times New Roman} \definecolor{paper}{HTML}{EFE1C2}\definecolor{ink}{HTML}{21170F}\pagecolor{paper}\color{ink} -\setlength{\columnsep}{10.5pt}\setlength{\columnseprule}{0.36pt}\setlength{\parindent}{1em}\setlength{\parskip}{0pt}\setlength{\emergencystretch}{1em} -\pagestyle{fancy}\fancyhf{}\renewcommand{\headrulewidth}{0pt}\fancyfoot[C]{\displayface\fontsize{6.5}{7}\selectfont THE CANOPY LEDGER · SEED 1847 · \thepage} -\newcommand{\pressrules}{\hrule height 1.1pt\vspace{2pt}\hrule height .35pt}\newcommand{\fleuron}{\rule{18pt}{.35pt}\hspace{5pt}\raisebox{-1pt}{\rule{1pt}{7pt}}\hspace{-4pt}\rule{7pt}{1pt}\hspace{5pt}\rule{18pt}{.35pt}} +\setlength{\columnsep}{9.5pt}\setlength{\columnseprule}{0.36pt}\setlength{\parindent}{1em}\setlength{\parskip}{0pt}\setlength{\emergencystretch}{1em} +\pagestyle{fancy}\fancyhf{}\renewcommand{\headrulewidth}{0pt}\fancyfoot[C]{\displayface\fontsize{6.5}{7}\selectfont THE CANOPY LEDGER · HOUSE 1847 · FLOW 723 · \thepage} +\newcommand{\pressrules}{\hrule height 1.7pt\vspace{1pt}\hrule height .25pt}\newcommand{\fleuron}{\rule{18pt}{.35pt}\hspace{5pt}\raisebox{-1pt}{\rule{1pt}{7pt}}\hspace{-4pt}\rule{7pt}{1pt}\hspace{5pt}\rule{18pt}{.35pt}} \newcommand{\masthead}[1]{{\displayface\bfseries\fontsize{39}{41}\selectfont\centering\MakeUppercase{#1}\par}} \newcommand{\leadhead}[1]{{\displayface\bfseries\fontsize{29}{30.5}\selectfont\centering #1\par}} \newcommand{\storyhead}[1]{{\displayface\bfseries\fontsize{14}{15}\selectfont\RaggedRight #1\par\smallskip}} \newcommand{\deck}[1]{{\displayface\itshape\fontsize{8}{9.2}\selectfont\RaggedRight #1\par\smallskip}} \newcommand{\byline}[1]{{\displayface\bfseries\fontsize{6.8}{7.5}\selectfont\MakeUppercase{By #1}\par\smallskip}} -\AtBeginDocument{\fontsize{8.6}{8.94}\selectfont\justifying} +\AtBeginDocument{\fontsize{7.7}{7.93}\selectfont\justifying} \begin{document}\thispagestyle{fancy} {\displayface\fontsize{7}{8}\selectfont CURRENT EDITION\hfill SOURCE: acceptance-run61-newspaper.md\par}\smallskip\pressrules\smallskip \masthead{The Canopy Ledger}\smallskip\pressrules\medskip \leadhead{The Cordon Holds. So Do the Severed Hands.}\smallskip {\displayface\itshape\fontsize{9.2}{10.5}\selectfont\centering Roots are bending toward live mana conduits, the Exchange remains isolated, and severed hands lie undisturbed at the scene.\par} {\displayface\bfseries\fontsize{7}{8}\selectfont\centering BY MERA QUILL\par}\smallskip -\noindent\includegraphics[width=0.82\textwidth]{F:/Projects/Ghostlight/assets/newspaper/woodcuts/boundary-rail-exchange.png}\par\smallskip -\begin{multicols}{3}\textbf{Boundary Rail Exchange —} The Boundary Rail Exchange remains isolated as roots bend toward active mana conduits, with its warning procedure maintained and severed hands left undisturbed at the scene. That last fact is the one procedure cannot make tidy: at the Exchange, severed hands remain while roots bend toward live power. +\begin{center}\begin{tikzpicture}\begin{scope}[blend mode=multiply]\node[inner sep=0] {\includegraphics[width=0.97\linewidth]{F:/Projects/Ghostlight/assets/newspaper/woodcuts/boundary-rail-exchange.png}};\end{scope}\end{tikzpicture}\end{center}\smallskip +\begin{multicols}{4}\textbf{Boundary Rail Exchange —} The Boundary Rail Exchange remains isolated as roots bend toward active mana conduits, with its warning procedure maintained and severed hands left undisturbed at the scene. That last fact is the one procedure cannot make tidy: at the Exchange, severed hands remain while roots bend toward live power. Boundary Exchange Workers erected a reinforced conduit exclusion cordon on Sept. 20. Eight hours later, Vesa Thorn marked a safe withdrawal route and widened the warning cordon. By early Sept. 21, Orin Pell had recorded that the roots were bending toward active mana conduits and that the Exchange must remain isolated. The sequence is emergency restraint: workers established a cordon, retreat was made clearer, and isolation continued after the roots’ movement toward active conduits was recorded. -But a cordon and warning procedure do two things at once: they mark a boundary around the conduits, while the hands remain undisturbed at the Exchange. No operational warning answers who lost them, who controls their recovery and examination, or whose authority could safely reopen the Exchange while the roots still lean toward active mana. Until those questions are answered, the severed hands are not incidental debris beside a safety procedure. They are the bodily account the procedure has not yet settled.\end{multicols}\vfill\begin{center}\fleuron\end{center} +But a cordon and warning procedure do two things at once: they mark a boundary around the conduits, while the hands remain undisturbed at the Exchange. No operational warning answers who lost them, who controls their recovery and examination, or whose authority could safely reopen the Exchange while the roots still lean toward active mana. Until those questions are answered, the severed hands are not incidental debris beside a safety procedure. They are the bodily account the procedure has not yet settled. +\par\medskip \Needspace{18\baselineskip}\noindent\begin{minipage}{\linewidth}\hrule height .45pt\smallskip {\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{Courts \& Councils}}\par\smallskip \storyhead{The Witnesses Copied the Ledger Before the Curator Found His Voice} +\deck{Witnesses secured separately recorded accounts before Curator Oren Vale stated an intention to conduct interviews and issue a rejection of interference—without saying whose interference was at issue.} +\byline{Aven Tarl}\end{minipage}\par\smallskip\textbf{Contested Seed-Vault —} The Seed-Vault Witnesses created and retained an independent copy of the witness ledger, with accounts recorded separately, at 22:00 on Sept. 20. That is the accomplished fact in this dispute: the people whose testimony is at stake created their own record before the curator’s stated course could take effect. + +Eight hours later, Curator Oren Vale publicly stated an intention to conduct separate formal witness interviews and issue an in-person statement rejecting seizure, substituted testimony and unsupported custody claims. It is an admirable catalogue of abuses to oppose, and a revealing one. Vale did not name the person or authority behind any seizure, substitution or custody claim, leaving the public with all the ceremonial language of vigilance and none of the discourtesy of identifying whom vigilance is required against. + +Vale’s interviews and proposed rejection remain a promised course. The witnesses’ copy already exists in their keeping. Whatever title eventually arrives to assert custody, the contest now begins from the embarrassing position that the witnesses acted first—and that their dignity is safer in a duplicated ledger than in anyone’s reassurance. +\end{multicols} +\vfill\begin{center}\fleuron\end{center} \clearpage\thispagestyle{fancy}{\displayface\fontsize{7}{8}\selectfont CURRENT EDITION\hfill PAGE 2\par}\smallskip\pressrules\smallskip {\displayface\bfseries\fontsize{18}{19}\selectfont\centering The Canopy Ledger\par}\smallskip\pressrules\medskip -\noindent -\begin{minipage}[t]{\dimexpr(\textwidth-2\columnsep)/3\relax}\begin{minipage}[t]{\linewidth}{\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{Guilds \& Trade}}\par\smallskip \storyhead{Sinkroot Wins Scrutiny, Not Yet Safety, as Deep-Current Dispute Settles} +\Needspace{18\baselineskip}\noindent\begin{minipage}{\linewidth}\hrule height .45pt\smallskip {\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{Guilds \& Trade}}\par\smallskip \storyhead{Sinkroot Wins Scrutiny, Not Yet Safety, as Deep-Current Dispute Settles} \deck{Residents have secured immediate scrutiny of measured deep-current turbulence and proposed interim feeding, but the public rail shows neither a shutdown nor restitution—and a petition for a stay is not a stay.} -\byline{Ossan Reed} - -\textbf{Sinkroot Gauge Gallery —} Immediate public scrutiny of Sinkroot’s measured deep-current turbulence and proposed interim feeding has been settled after residents established a dated public report and petition. That is a material gain for the Sinkroot Residential Roll: readings and the proposed response can no longer be treated as private workshop weather. It is not, on the present public account, proof that the turbulence has stopped, that a temporary stay has taken effect, or that any household has received restitution. +\byline{Ossan Reed}\end{minipage}\par\smallskip\begin{center}\begin{tikzpicture}\begin{scope}[blend mode=multiply]\node[inner sep=0] {\includegraphics[width=0.78\linewidth]{F:/Projects/Ghostlight/assets/newspaper/woodcuts/sinkroot-gauge-gallery.png}};\end{scope}\end{tikzpicture}\end{center}\begin{multicols}{4}\textbf{Sinkroot Gauge Gallery —} Immediate public scrutiny of Sinkroot’s measured deep-current turbulence and proposed interim feeding has been settled after residents established a dated public report and petition. That is a material gain for the Sinkroot Residential Roll: readings and the proposed response can no longer be treated as private workshop weather. It is not, on the present public account, proof that the turbulence has stopped, that a temporary stay has taken effect, or that any household has received restitution. Hours earlier, the residential roll established a dated turbulence report and petitioned for disclosure, restitution and a temporary stay. The order matters. First the residential roll made a record; then scrutiny became immediate. Discussion first and measurements later is a familiar arrangement, but a dated gauge reading is harder to sweep into the sump than a reassurance. The unresolved mechanical question is interim feeding: what is being fed, through which arrangement, under what measured conditions, and who remains nearest the consequences if the turbulence persists. The settled scrutiny makes that proposal public business, but the available account does not specify what residents may halt, which thresholds would compel a shutdown, or who must answer if the proposed feed worsens the current. A petition can restrain an official’s sleep; only an operational restraint can restrain a system. -Sinkroot is not alone in reaching for instruments before promises. Gaugewatch Households have retained a dated calibrated counterflow report and a hearing petition at Gaugewatch Gallery. Two residential populations now possess measurements and written demands. That may be the beginning of leverage, but nobody should mistake paperwork for pressure relief: until the readings produce safer feeding, an enforceable stop or paid restitution, the households are still carrying the load while the rail records the dispute.\end{minipage}\end{minipage}\hspace{\columnsep}% -\begin{minipage}[t]{\dimexpr(\textwidth-2\columnsep)/3\relax}\begin{minipage}[t]{\linewidth}{\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{Courts \& Councils}}\par\smallskip \storyhead{The Witnesses Copied the Ledger Before the Curator Found His Voice} -\deck{Witnesses secured separately recorded accounts before Curator Oren Vale stated an intention to conduct interviews and issue a rejection of interference—without saying whose interference was at issue.} -\byline{Aven Tarl} - -\textbf{Contested Seed-Vault —} The Seed-Vault Witnesses created and retained an independent copy of the witness ledger, with accounts recorded separately, at 22:00 on Sept. 20. That is the accomplished fact in this dispute: the people whose testimony is at stake created their own record before the curator’s stated course could take effect. - -Eight hours later, Curator Oren Vale publicly stated an intention to conduct separate formal witness interviews and issue an in-person statement rejecting seizure, substituted testimony and unsupported custody claims. It is an admirable catalogue of abuses to oppose, and a revealing one. Vale did not name the person or authority behind any seizure, substitution or custody claim, leaving the public with all the ceremonial language of vigilance and none of the discourtesy of identifying whom vigilance is required against. - -Vale’s interviews and proposed rejection remain a promised course. The witnesses’ copy already exists in their keeping. Whatever title eventually arrives to assert custody, the contest now begins from the embarrassing position that the witnesses acted first—and that their dignity is safer in a duplicated ledger than in anyone’s reassurance.\end{minipage}\end{minipage}\hspace{\columnsep}% -\begin{minipage}[t]{\dimexpr(\textwidth-2\columnsep)/3\relax}\begin{minipage}[t]{\linewidth}{\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{Dispatches}}\par\smallskip \storyhead{Grain-Passage Proposal Announced; the Bridge Remains the Weapon} +Sinkroot is not alone in reaching for instruments before promises. Gaugewatch Households have retained a dated calibrated counterflow report and a hearing petition at Gaugewatch Gallery. Two residential populations now possess measurements and written demands. That may be the beginning of leverage, but nobody should mistake paperwork for pressure relief: until the readings produce safer feeding, an enforceable stop or paid restitution, the households are still carrying the load while the rail records the dispute.\par\medskip \Needspace{18\baselineskip}\noindent\begin{minipage}{\linewidth}\hrule height .45pt\smallskip {\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{Dispatches}}\par\smallskip \storyhead{Grain-Passage Proposal Announced; the Bridge Remains the Weapon} \deck{The commune has proposed the same witnessed accounting terms to the claimant, the courts and the refusing legion. None has yet proved that grain or its carriers can cross safely.} -\byline{Lysa Fen} - -\textbf{Occupied River Toll Bridge —} The River Commune Bridge Assembly has publicly proposed opening witnessed grain-passage negotiations with the Veiled Claimant and the Rival Bloodline Courts, while proposing to send the same accounting offer to the Refusing Border Legion. That symmetry is the commune’s sharpest available defense: no throne, bloodline or uniform is offered private terms in the proposal. It is not yet safe passage. At an occupied crossing, every contender can praise procedure; the test is whether the proposal produces passage. +\byline{Lysa Fen}\end{minipage}\par\smallskip\textbf{Occupied River Toll Bridge —} The River Commune Bridge Assembly has publicly proposed opening witnessed grain-passage negotiations with the Veiled Claimant and the Rival Bloodline Courts, while proposing to send the same accounting offer to the Refusing Border Legion. That symmetry is the commune’s sharpest available defense: no throne, bloodline or uniform is offered private terms in the proposal. It is not yet safe passage. At an occupied crossing, every contender can praise procedure; the test is whether the proposal produces passage. In a public statement, the legion proposed issuing and publishing an order barring seizure of any toll, seed-vault, child or ledger under disputed command. The statement also proposed requesting authenticated legal grounds and directing patrols to secure the camp and approaches without advancing. Read from the bridge rather than the camp, the useful words are “without advancing”; the dangerous ones are “secure” and “approaches.” A proposed non-seizure order restrains soldiers on paper only if issued and followed. It does not establish who controls the road, who may halt a carrier, or whether refusal survives the first disputed wagon. -Marshal Eryn Tal has committed a witnessed summons and conference-procedure order, copied by canopy-wire. That gives the coming contest witnesses and a public trail. But the next meaningful fact will not be another signature. It will be grain crossing with its carriers and commune negotiators intact—and an accounting no claimant, court or legion can alter after the gates close.\end{minipage}\end{minipage}\vfill\begin{center}\includegraphics[width=0.54\textwidth]{F:/Projects/Ghostlight/assets/newspaper/woodcuts/sinkroot-gauge-gallery.png}\end{center}\smallskip\begin{center}\fleuron\end{center} +Marshal Eryn Tal has committed a witnessed summons and conference-procedure order, copied by canopy-wire. That gives the coming contest witnesses and a public trail. But the next meaningful fact will not be another signature. It will be grain crossing with its carriers and commune negotiators intact—and an accounting no claimant, court or legion can alter after the gates close.\end{multicols} +\vfill\begin{center}\fleuron\end{center} \end{document} diff --git a/state/map.yaml b/state/map.yaml index eaf7fb3..32de7ea 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -53,6 +53,7 @@ hard_boundaries: - Prompt text is projection, not truth storage. - A consumer-supplied ontology or fixed seed may bypass Session Zero world generation; it may never bypass WorldKernel validation, closed mutation authority, or atomic CultCache commit. - Delvehold retains quantitative economy authority. Ghostlight string resource handles and strategic resource effects must not impersonate quantities, prices, recipes, production capacity, inventories, orders, contracts, or conservation semantics. + - Newspaper layout may reserve typed advertisement slots, but only the economic layer may supply advertiser identity, goods, price, claims, campaign continuity, or payment. Unfilled slots collapse unless the edition explicitly records unsold space; the compositor cannot invent an ad campaign to fill a page. - Canonical agent state and per-agent perceived state must remain distinct. - Characters act from local knowledge, local perception, local pressure, and bounded affordances. - Aetheria prose must support tonal range and ordinary life, not only crisis pressure. Wit, warmth, domesticity, ritual, boredom, wonder, and quiet dread are valid state-grounded modes when they fit the scene. @@ -194,7 +195,6 @@ live_architecture: - Institution, faction, and consumer decision models active_subgoals: - - Typeset the operator-designated accepted Canopy Ledger edition without changing its copy: build a reusable random-seed-driven newspaper layout script with bounded typography and press variation, use ImageGen for story-specific woodcuts, and reserve printer's ornaments and fleurons for reusable decoration. Preserve source identity and make a given source-plus-seed reproducible. - Connect a Delvehold-owned adapter to the admitted generic consumer contract: shared compiler/consumer WorldSeed admission, externally authoritative institution-or-Gestalt snapshots, attributed proposal acknowledgement, and committed-event newspaper composition over typed CultNet, without consumer-specific IDs or schemas in Ghostlight. - Extend strategic/offscreen named-person individuation beyond the proven emerge-then-act path so people plot across sustained political waves, acquire relationships, fold, and return without granting a cell, arena, or model commit authority. - Pressure the proven 200-cell dispatcher with authored consumer hierarchies and measure provider cost; the active budget ceiling is 240 while provider concurrency remains separately capped at 32. @@ -327,5 +327,6 @@ current_status: summary: Ghostlight's generic consumer boundary admits sparse WorldSeeds, runs the hundreds-class parallel cell machinery used by Dungeon, and projects grounded newspapers from committed public events. Local acceptance proves 1,000 subjects across 200 cells and two-wave durable named-person emergence. Exact-source provider run 38 at `596e50679244b5d42b4cfdf70d723f815751b8ff` resumed the preserved world at revision 8 without replaying compilation or four committed locality elaborations, recovered 51 of 52 strategic-wave cells on pulse three and the final cell on pulse four, then committed all six waves through revision 14. Pushed commit `3a69306f3004e4af2cd57bba612a6ad8d1b8132f` implements the mapped clock-consequence owner and is verified locally: world clocks own declared consequence text and exact observable scope; a bounded agent may propose legacy scope binding, while `WorldKernel` alone admits it and materializes stable threshold-crossing events and public news through the common mutation path. Binding, emitted-event ancestry, mutation receipts, and the next newspaper boundary persist atomically. Exact-source run 39 resumed run 38 without replaying its six committed waves, bound clock consequences, committed six new waves through revision 21, and emitted Issues 7 through 12 plus a final digest. This completes the mechanical provider acceptance path; all inherited wave 1-6 checkpoint hashes match run 38 exactly and live services were unchanged. Independent blind editorial review returns FAIL: only Issue 7 approaches spicy, while Issues 8-12 are dominated by plans, filings, inspections, warnings, and abstract relationship deltas without betrayal, scandal, public reaction, sustained reversal, or material lived cost. That run-39 diagnosis is superseded for the current phase: run 51 closes the world and reconciliation mechanics, and the active defect belongs to newsroom narrative selection and self-contained semantic provenance over immutable facts. Independent grounding review also returns FAIL: Issue 9 inflates a planned expedited agenda into completion, while Issue 8 assigns unsupported feminine pronouns to Sela Venn and Eryn Tal. Other grounding mechanics pass: 208/208 citations resolve, no future events appear, no replay occurred, the player remained unchanged, all 116/116 manifest entries verify, the archive is exact, and root independently confirmed the live service PIDs and invocation IDs remained unchanged. Editorial and grounding acceptance are terminally failed for run 39. Eight titled elaborators use the generic agent harness under deterministic weighted scheduling, bounded parallelism, and Luna/Terra/Sol routing. Workers remain proposal-only; deterministic admission binds exact frozen schedules, dispatch, receipts, conflicts, and semantic verification, and `WorldKernel` alone owns atomic CultCache persistence. Destination reconciliation is a private transactional workbench, provider schema compatibility is lowered once at the shared model-connector boundary, and durable elaboration and strategic-pulse checkpoints bind to their canonical mutation proofs. The generic ModelAgent harness remains consumer-neutral transport. Provider run 23 remains stopped; earlier failed runs and checkpoint archives remain immutable provenance. The live daemons remain outside the acceptance body. Dungeon play remains regression pressure, the Delvehold game-side adapter remains unimplemented, and unpublished Mars and Kalsa destination previews remain unapproved. provider_acceptance_checkpoint: Exact pushed commit `139b8a6` completed Run 60 under `character-newsroom.v10` without world or per-wave replay. Its acceptance witness and terminal status bind the completed page and exact resume lineage. The independently dispatched blind reviewer, shown only the reader-facing fantasy newspaper, read it as a real left-populist civic broadsheet and did not immediately identify procedural generation, so the narrative reverse-Turing criterion passes. The review's substantive criticism is that the three stories feel like three rewrites of one briefing; accepted Run 60 remains immutable. The run used 96,902 prompt tokens and reported zero cache hits. Its delivered typeset artifact is `output/pdf/canopy-ledger-run-60-front-page.pdf`; frozen-source and visual verification remain accepted. Exact pushed `bc2ca39` then produced frozen-fact newsroom-only Run 61 Issues 13, 15, 16, 17, and 18 without world or wave model replay. Provider output proves `special_issue` convergence in Issues 13 and 15, independent `general_issue` beats in Issues 16 through 18, and assignment-selector cache hits. Blind review of Issues 13, 15, 16, and 17 passes both distinct recurring voices and issue-shape diversity, recognizing Ossan, Mera, Corin, and Lysa's biases plus modest cross-issue evolution. Run 62 exercised v12 without world or wave replay and failed only because two lead articles proposed invalid datelines; recurring reporter calls still recorded zero cache hits. Run 63 used exact pushed v13 `a52d57b`; Issues 17 and 18 completed before root stopped the final weekly recomposition, both repeated bylines again recorded zero cache hits, and live services remained unchanged. Preserve Runs 61 through 63 as stopped or completed immutable evidence. Copy defects remain later deadline-correction work rather than a reason to reopen accepted issue artifacts. implementation_checkpoint: Exact pushed v13 `a52d57b` keeps one stable reporter action schema, places a common stable house charter before recurring identity and dynamic assignment, and projects deterministic `allowed_datelines` from cited records while retaining copy-desk factual authority and deterministic cited-place admission; 480 library tests and the all-target check pass. Run 63 falsifies reporter-cache pursuit as a useful acceptance target for sporadic independent filings. The proposed v14 cache-floor prompt growth was removed. Append-only agent contexts remain the natural cache beneficiary; accepted Run 60 remains immutable. - next_action: Typeset the operator-designated accepted Canopy Ledger without rewriting its copy. Build a reusable random-seed-driven newspaper layout script whose bounded typography and press variation are reproducible for the same source and seed; use ImageGen for story-specific woodcuts and printer's ornaments or fleurons only for reusable decoration. Verify the produced press artifact and preserve its source and visual provenance. Resume the Delvehold-owned adapter after this operator-directed press-layout task. + presentation_checkpoint: The historical press-layout and seed-ownership split are complete. `notes/historical-newspaper-layout-grammar.md` remains the durable grammar. Manifest v2 at `output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml` independently binds `style_seed=1847`, `flow_seed=723`, frozen source SHA-256 `8f195140f52a40ba705d6a66987146a1500ae89668e5d82b01d1792eb3afb882`, and the final artifact `output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf`, SHA-256 `a457f4b1702a7a52480e42fce0039f0dbe677ff32958e98f1c412b346237190c`. An identical seed pair produces byte-identical TeX and PDF; changing only flow preserves the exact style section while materially changing a plausible layout, and changing only style preserves flow topology. Cut-first and cut-midstory templates pass visual inspection; the failed split-card template is deleted. Frozen copy/assets, actual PDF `/BM /Multiply`, and economic-layer advertising authority remain invariant. + next_action: Advance the Delvehold-owned adapter against Ghostlight's admitted generic consumer contract, unless a newer operator directive supersedes it. Preserve the completed historical layout grammar, manifest-v2 seed ownership, final PDF and hashes, frozen copy/assets, multiply blending, and economic-layer ownership of future advertising campaigns. gestalt_population: Gestalt Personas own shared population baselines; persistent member deltas own named individuality; WorldKernel materialization and approval-gated fission preserve lineage and identity. Materialisation/folding changes only representation and the exact member delta, advances resolution epoch, and retires the old cover; it has no Gestalt-wide effect authority. Selected actionable member exceptions are mandatory Projector perspective owners, so aggregation cannot silently erase their decision. Presence projection is limited to nearby active leaves and exact-location dormant members, includes reciprocal player relationship evidence, and may propose an earned cast without committing it. Simulation cells are derived covers only. diff --git a/tools/typeset_newspaper.py b/tools/typeset_newspaper.py index 414e50e..e733ecf 100644 --- a/tools/typeset_newspaper.py +++ b/tools/typeset_newspaper.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -"""Emit and compile a reproducible seed-varied TeX newspaper.""" +"""Emit a TeX newspaper with independent house-style and issue-flow seeds.""" from __future__ import annotations -import argparse, hashlib, html, random, re, shutil, subprocess, tempfile +import argparse, hashlib, html, os, random, re, shutil, subprocess, tempfile from dataclasses import asdict, dataclass from pathlib import Path @@ -18,7 +18,12 @@ class Edition: class Style: seed: int; width: float; height: float; margin: float; body: float; leading: float gutter: float; rule: float; masthead: int; lead: int; display: str; text: str - paper: str; ink: str; fleuron: str; lead_cut: float; inside_cut: float; rules: str + paper: str; ink: str; fleuron: str; rules: str + +@dataclass(frozen=True) +class Flow: + seed: int; template: str; inside_layout: str; page_one_secondary: int + lead_cut: float; inside_cut: float def plain(s: str) -> str: s=s.strip() @@ -53,15 +58,24 @@ def parse(path: Path) -> Edition: if not mast or not ed or not out: raise ValueError("source lacks masthead, edition, or articles") return Edition(mast,ed,tuple(out)) -def choose(seed: int) -> Style: +def choose_style(seed: int) -> Style: r=random.Random(seed) - return Style(seed,r.choice((9.8,10.0,10.2)),r.choice((13.7,14.0,14.3)),r.choice((.38,.42,.46)), - r.choice((8.6,8.8,9.0)),r.choice((1.04,1.07,1.10)),r.choice((9.,10.5,12.)), + return Style(seed,r.choice((9.6,9.8,10.0)),r.choice((10.7,10.9,11.1)),r.choice((.34,.38,.42)), + r.choice((7.7,7.9,8.1)),r.choice((1.03,1.05,1.07)),r.choice((8.,9.5,11.)), r.choice((0.,.24,.36)),r.choice((36,39,42)),r.choice((25,27,29)), r.choice(("Georgia","Times New Roman")),"Times New Roman", r.choice(("F2E5C7","F5E9CE","EFE1C2")),r.choice(("17120D","21170F","1A1510")), - r.choice(("diamond","cross","leaf")),r.choice((.78,.82,.86)),r.choice((.44,.50,.54)), - r.choice(("double","heavy-thin","triple"))) + r.choice(("diamond","cross","leaf")),r.choice(("double","heavy-thin","triple"))) + +def choose_flow(seed: int, e: Edition, cuts: dict[int, Path]) -> Flow: + r=random.Random(seed); remaining=list(range(1,len(e.articles))) + without_cuts=[index for index in remaining if index not in cuts] + secondary=r.choice(without_cuts or remaining) if remaining else -1 + template=r.choice(("display-plate","display-band")) + lead_cut=r.choice((.90,.97)) if template=="display-plate" else r.choice((.78,.82,.86)) + inside_layout=r.choice(("cut-first","cut-midstory")) + inside_cut=r.choice((.62,.70,.78)) if inside_layout=="cut-first" else r.choice((.44,.50,.56)) + return Flow(seed,template,inside_layout,secondary,lead_cut,inside_cut) def esc(s: str) -> str: m={"\\":r"\textbackslash{}","&":r"\&","%":r"\%","$":r"\$","#":r"\#","_":r"\_","{":r"\{","}":r"\}","~":r"\textasciitilde{}","^":r"\textasciicircum{}"} @@ -75,12 +89,17 @@ def inline(s: str) -> str: else: out.append(esc(p)) return "".join(out) -def article(a: Article, lead=False) -> str: - if lead: - return "\n\n".join(inline(p) for p in a.paragraphs) +def story_body(a: Article) -> str: + return "\n\n".join(inline(p) for p in a.paragraphs) + +def story_header(a: Article) -> str: sec=(r"{\sectionface\fontsize{7.2}{8}\selectfont\MakeUppercase{"+esc(a.section)+r"}}\par\smallskip " if a.section else "") head=r"\storyhead{"+esc(a.headline)+"}\n" - return sec+head+r"\deck{"+esc(a.deck)+"}\n"+r"\byline{"+esc(a.author)+"}\n\n"+"\n\n".join(inline(p) for p in a.paragraphs) + return (r"\Needspace{18\baselineskip}\noindent\begin{minipage}{\linewidth}\hrule height .45pt\smallskip "+sec+head+ + r"\deck{"+esc(a.deck)+"}\n"+r"\byline{"+esc(a.author)+r"}\end{minipage}\par\smallskip") + +def article(a: Article) -> str: + return story_header(a)+story_body(a) def rules(kind: str) -> str: return {"double":r"\hrule height 1.1pt\vspace{2pt}\hrule height .35pt","heavy-thin":r"\hrule height 1.7pt\vspace{1pt}\hrule height .25pt","triple":r"\hrule height .3pt\vspace{1pt}\hrule height 1.1pt\vspace{1pt}\hrule height .3pt"}[kind] @@ -91,18 +110,25 @@ def ornament(kind: str) -> str: def tex_path(p: Path) -> str: return p.resolve().as_posix() -def build(e: Edition, s: Style, cuts: list[Path], source: Path) -> str: - leadcut="" - if cuts: - leadcut=r"\noindent\includegraphics[width="+f"{s.lead_cut:.2f}"+r"\textwidth]{"+tex_path(cuts[0])+"}" - leadcut+=r"\par" +def press_cut(path: Path, width: float) -> str: + return (r"\begin{center}\begin{tikzpicture}\begin{scope}[blend mode=multiply]" + r"\node[inner sep=0] {\includegraphics[width="+f"{width:.2f}"+r"\linewidth]{"+tex_path(path)+r"}};" + r"\end{scope}\end{tikzpicture}\end{center}") + +def build(e: Edition, s: Style, f: Flow, cuts: dict[int, Path], source: Path) -> str: + lead=e.articles[0] + remaining=list(enumerate(e.articles[1:],1)) + rail=next((pair for pair in remaining if pair[0]==f.page_one_secondary),None) + paired=[pair for pair in remaining if pair != rail] + leadcut=press_cut(cuts[0],f.lead_cut) if 0 in cuts else "" + rail_text=(r"\par\medskip "+article(rail[1])) if rail else "" pre=rf"""\documentclass{{article}} \usepackage[paperwidth={s.width}in,paperheight={s.height}in,margin={s.margin}in]{{geometry}} -\usepackage{{fontspec,graphicx,xcolor,microtype,multicol,ragged2e,fancyhdr}} +\usepackage{{fontspec,graphicx,xcolor,microtype,multicol,ragged2e,fancyhdr,tikz,needspace}} \setmainfont{{{s.text}}}\newfontfamily\displayface{{{s.display}}}\newfontfamily\sectionface{{{s.display}}} \definecolor{{paper}}{{HTML}}{{{s.paper}}}\definecolor{{ink}}{{HTML}}{{{s.ink}}}\pagecolor{{paper}}\color{{ink}} \setlength{{\columnsep}}{{{s.gutter}pt}}\setlength{{\columnseprule}}{{{s.rule}pt}}\setlength{{\parindent}}{{1em}}\setlength{{\parskip}}{{0pt}}\setlength{{\emergencystretch}}{{1em}} -\pagestyle{{fancy}}\fancyhf{{}}\renewcommand{{\headrulewidth}}{{0pt}}\fancyfoot[C]{{\displayface\fontsize{{6.5}}{{7}}\selectfont {esc(e.masthead.upper())} · SEED {s.seed} · \thepage}} +\pagestyle{{fancy}}\fancyhf{{}}\renewcommand{{\headrulewidth}}{{0pt}}\fancyfoot[C]{{\displayface\fontsize{{6.5}}{{7}}\selectfont {esc(e.masthead.upper())} · HOUSE {s.seed} · FLOW {f.seed} · \thepage}} \newcommand{{\pressrules}}{{{rules(s.rules)}}}\newcommand{{\fleuron}}{{{ornament(s.fleuron)}}} \newcommand{{\masthead}}[1]{{{{\displayface\bfseries\fontsize{{{s.masthead}}}{{{s.masthead+2}}}\selectfont\centering\MakeUppercase{{#1}}\par}}}} \newcommand{{\leadhead}}[1]{{{{\displayface\bfseries\fontsize{{{s.lead}}}{{{s.lead+1.5}}}\selectfont\centering #1\par}}}} @@ -113,66 +139,93 @@ def build(e: Edition, s: Style, cuts: list[Path], source: Path) -> str: \begin{{document}}\thispagestyle{{fancy}} {{\displayface\fontsize{{7}}{{8}}\selectfont {esc(e.edition.upper())}\hfill SOURCE: {esc(source.name)}\par}}\smallskip\pressrules\smallskip \masthead{{{esc(e.masthead)}}}\smallskip\pressrules\medskip -\leadhead{{{esc(e.articles[0].headline)}}}\smallskip -{{\displayface\itshape\fontsize{{9.2}}{{10.5}}\selectfont\centering {esc(e.articles[0].deck)}\par}} -{{\displayface\bfseries\fontsize{{7}}{{8}}\selectfont\centering BY {esc(e.articles[0].author.upper())}\par}}\smallskip +\leadhead{{{esc(lead.headline)}}}\smallskip +{{\displayface\itshape\fontsize{{9.2}}{{10.5}}\selectfont\centering {esc(lead.deck)}\par}} +{{\displayface\bfseries\fontsize{{7}}{{8}}\selectfont\centering BY {esc(lead.author.upper())}\par}}\smallskip {leadcut}\smallskip -\begin{{multicols}}{{3}}{article(e.articles[0],True)}\end{{multicols}}\vfill\begin{{center}}\fleuron\end{{center}} +\begin{{multicols}}{{4}}{story_body(lead)} +{rail_text} +\end{{multicols}} +\vfill\begin{{center}}\fleuron\end{{center}} """ - pages=[pre]; rest=list(e.articles[1:]); page=2; ci=1 - while rest: - group,rest=rest[:3],rest[3:] - bottomcut="" - if ci str: return hashlib.sha256(path.read_bytes()).hexdigest() -def manifest(path: Path, src: Path, out: Path, tex: Path, cuts: list[Path], style: Style, engine: Path | None): +def verify_copy(e: Edition, rendered: str) -> None: + haystack=rendered.casefold(); missing=[] + for index,a in enumerate(e.articles): + fields=[("headline",esc(a.headline)),("deck",esc(a.deck)),("author",esc(a.author))] + fields += [(f"paragraph-{n}",inline(p)) for n,p in enumerate(a.paragraphs,1)] + missing += [(index,label) for label,value in fields if value.casefold() not in haystack] + if missing: raise ValueError(f"press projection omitted frozen copy: {missing}") + +def manifest(path: Path, src: Path, out: Path, tex: Path, cuts: dict[int, Path], style: Style, flow: Flow, engine: Path | None): tool=Path(__file__).resolve() - rows=['schema = "ghostlight.seeded_tex_press.v1"',f'source = "{src.resolve().as_posix()}"',f'source_sha256 = "{digest(src)}"',f'output = "{out.resolve().as_posix()}"',f'tex = "{tex.resolve().as_posix()}"',f'tex_sha256 = "{digest(tex)}"',f'tool = "{tool.as_posix()}"',f'tool_sha256 = "{digest(tool)}"',f"seed = {style.seed}"] + rows=['schema = "ghostlight.seeded_tex_press.v2"',f'source = "{src.resolve().as_posix()}"',f'source_sha256 = "{digest(src)}"',f'output = "{out.resolve().as_posix()}"',f'tex = "{tex.resolve().as_posix()}"',f'tex_sha256 = "{digest(tex)}"',f'tool = "{tool.as_posix()}"',f'tool_sha256 = "{digest(tool)}"',f"style_seed = {style.seed}",f"flow_seed = {flow.seed}"] if engine: rows += [f'engine = "{engine.resolve().as_posix()}"',f'engine_sha256 = "{digest(engine)}"'] if out.is_file(): rows.append(f'output_sha256 = "{digest(out)}"') rows += ["","[style]"] for k,v in asdict(style).items(): if k!="seed": rows.append(f'{k} = "{v}"' if isinstance(v,str) else f"{k} = {v}") + rows += ["","[flow]"] + for k,v in asdict(flow).items(): + if k!="seed": rows.append(f'{k} = "{v}"' if isinstance(v,str) else f"{k} = {v}") rows += ["","[[woodcuts]]"] if cuts else [] - for index,c in enumerate(cuts): - if index: rows.append("[[woodcuts]]") - rows += [f'path = "{c.resolve().as_posix()}"',f'sha256 = "{digest(c)}"'] + for position,(article_index,c) in enumerate(sorted(cuts.items())): + if position: rows.append("[[woodcuts]]") + rows += [f'article_index = {article_index}',f'path = "{c.resolve().as_posix()}"',f'sha256 = "{digest(c)}"'] path.parent.mkdir(parents=True,exist_ok=True); path.write_text("\n".join(rows)+"\n",encoding="utf-8") def compile(engine: Path, tex: Path, out: Path): out.parent.mkdir(parents=True,exist_ok=True) with tempfile.TemporaryDirectory(prefix="ghostlight-tex-") as td: - p=subprocess.run([str(engine),"-interaction=nonstopmode","-halt-on-error",f"-output-directory={td}",str(tex.resolve())],capture_output=True,text=True) + env=os.environ.copy(); env["SOURCE_DATE_EPOCH"]="0"; env["FORCE_SOURCE_DATE"]="1" + p=subprocess.run([str(engine),"-interaction=nonstopmode","-halt-on-error",f"-output-directory={td}",str(tex.resolve())],capture_output=True,text=True,env=env) built=Path(td)/(tex.stem+".pdf") if p.returncode or not built.exists(): raise RuntimeError((p.stdout+p.stderr)[-6000:]) shutil.copy2(built,out) def main(): - ap=argparse.ArgumentParser(description=__doc__); ap.add_argument("source",type=Path); ap.add_argument("output",type=Path); ap.add_argument("--seed",type=int,required=True); ap.add_argument("--woodcut",type=Path,action="append",default=[]); ap.add_argument("--tex-output",type=Path); ap.add_argument("--manifest",type=Path); ap.add_argument("--engine",type=Path); ap.add_argument("--no-compile",action="store_true"); a=ap.parse_args() - src=a.source.resolve(); out=a.output.resolve(); cuts=[p.resolve() for p in a.woodcut] - for p in [src,*cuts]: + ap=argparse.ArgumentParser(description=__doc__); ap.add_argument("source",type=Path); ap.add_argument("output",type=Path); ap.add_argument("--style-seed",type=int,required=True); ap.add_argument("--flow-seed",type=int,required=True); ap.add_argument("--woodcut",action="append",default=[],metavar="ARTICLE_INDEX=PATH"); ap.add_argument("--tex-output",type=Path); ap.add_argument("--manifest",type=Path); ap.add_argument("--engine",type=Path); ap.add_argument("--no-compile",action="store_true"); a=ap.parse_args() + src=a.source.resolve(); out=a.output.resolve(); cuts={} + for spec in a.woodcut: + try: raw_index,raw_path=spec.split("=",1); article_index=int(raw_index) + except ValueError as exc: raise ValueError("--woodcut requires ARTICLE_INDEX=PATH") from exc + if article_index in cuts: raise ValueError(f"duplicate woodcut for article {article_index}") + cuts[article_index]=Path(raw_path).resolve() + for p in [src,*cuts.values()]: if not p.is_file(): raise FileNotFoundError(p) - tx=(a.tex_output or Path("output/tex")/(out.stem+".tex")).resolve(); mf=(a.manifest or tx.with_suffix(".manifest.toml")).resolve(); st=choose(a.seed); ed=parse(src) - tx.parent.mkdir(parents=True,exist_ok=True); tx.write_text(build(ed,st,cuts,src),encoding="utf-8") + tx=(a.tex_output or Path("output/tex")/(out.stem+".tex")).resolve(); mf=(a.manifest or tx.with_suffix(".manifest.toml")).resolve(); ed=parse(src); st=choose_style(a.style_seed); fl=choose_flow(a.flow_seed,ed,cuts) + if any(index < 0 or index >= len(ed.articles) for index in cuts): raise ValueError("woodcut article index is outside the edition") + rendered=build(ed,st,fl,cuts,src); verify_copy(ed,rendered) + tx.parent.mkdir(parents=True,exist_ok=True); tx.write_text(rendered,encoding="utf-8") eng=None if not a.no_compile: eng=a.engine or Path(shutil.which("lualatex") or "") if not eng.is_file(): raise FileNotFoundError("LuaLaTeX not found; pass --engine") compile(eng,tx,out) - manifest(mf,src,out,tx,cuts,st,eng) - print(f"typeset={out} tex={tx} manifest={mf} seed={st.seed} articles={len(ed.articles)} pages={1+(len(ed.articles)-1+2)//3}") + manifest(mf,src,out,tx,cuts,st,fl,eng) + print(f"typeset={out} tex={tx} manifest={mf} style_seed={st.seed} flow_seed={fl.seed} articles={len(ed.articles)} pages={1+(max(0,len(ed.articles)-2)+1)//2}") if __name__=="__main__": main()