Skip to content

TRIOS_PHD_NO_IMAGE_TRAIN: anchor hero panels via Needspace, ban hard clearpage #957

Description

@gHashTag

TRIOS_PHD_NO_IMAGE_TRAIN: anchor hero panels via Needspace, ban hard clearpage

Problem

The PhD monograph renderer can lay hero panels out as an image train when section breaks and figure placements interact badly: a heading orphaned at the bottom of a page with its hero on the next, or hero figures from neighbouring sections collapsing onto one page. A hard \clearpage before every section produced short title-only pages and was rejected by manual QA.

Rule

TRIOS_PHD_NO_IMAGE_TRAIN: each hero panel travels with the nearest substantive heading and its body. Soft keep-together reservation; never a hard \clearpage.

Why this cannot be a bee's task, measured 2026-09-03

docs/phd/ does not exist in the tree the Queen's workers clone. TRIOS_REPO_URL on the supervisor is gHashTag/BrowserOS, and git log -- trios/docs/phd there is empty; the monograph sources live in the gHashTag/trios checkout at docs/phd/ (118 chapter files, last touched 2026-07-29). A boundary naming docs/phd/main.tex would be a path the bee cannot see, and the worker image carries no TeX engine to prove a layout rule either way.

This issue therefore stays with the operator, on the machine that has the sources and tectonic. The required change is unchanged from the original text:

  • Add \usepackage{needspace} to docs/phd/main.tex and templates/chapter.template.tex.
  • Wrap \section and \chapter to prepend \Needspace*{0.58\textheight}.
  • Wrap \chapterhero so heading and hero figure cannot be split.
  • Document the rule in docs/pdf-rendering.md and link it from AGENTS.md and docs/phd/README.md.

QA baseline to preserve

150 A4 pages; qpdf --check clean; 0 duplicate long paragraphs; 0 duplicate numbered headings; 0 Cyrillic hits in the body; 0 very-short non-empty pages; at most 1 image-heavy page (the title page).

Boundary

None in the workers' tree. Operator-only; not delegatable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    not-a-taskA record, not work: it declares in its own body that no worker can start it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions