Experimental

Graduates to convention after this pattern ships on 2 surfaces with positive review. First surface is the LBNL/DOE briefing in examples/.

Whitepaper & Briefing Covers

Verdigris produces high-stakes editorial PDFs for national-lab, regulator, and policy audiences. The cover sets whether the document reads as “a CEO sent this” or “a templating tool produced this.” This guide defines the cover system.

Pick the genre first

Most cover decisions follow from a single upstream choice: which genre is this document? The same audience reads three different genres differently. Get the genre right; the rest of the spec snaps into place.

Genre When to use Authority signal Reference exemplars
Lab tradition The document is co-authored by a research institution and reads as institutional research output Institution + multiple co-authors with division affiliation; methodology chapter; full bibliography LBNL ETA reports (eta-publications.lbl.gov); NREL technical reports (docs.nrel.gov); Brattle expert reports
Policy brief / think-tank A named institution with policy standing addresses an audience of policymakers; numbered recommendations are the deliverable Named partners + city; methodology sidebar; “Recommendations to " CSIS energy briefs; Brookings Policy Briefs; BPC briefings; EFI Action Plans
CEO-authored brief An operator with field data and a point of view writes directly to a research or policy audience; the byline IS the warrant First-person voice; tight; cited but not bibliography-heavy; declarative recommendations Anthropic Core Views on AI Safety; Stripe annual letters; Bezos shareholder letters; a16z manifestos

The three genres differ on six axes. Pick one and commit. Hybrids that borrow signals from a genre they don’t actually belong to read as marketing dressed as research, regardless of typography quality.

Axis Lab tradition Policy brief CEO brief
Cover style Plain white, contract # visible Branded photographic / dark Title + byline + date, no formal cover sheet
Length 25-80pp 8-25pp 4-12pp
Authorship 3-10 co-authors w/ division 1-3 named authors w/ city Single named author
Voice Third-person institutional Declarative First-person (“I” or “we”)
CTA section label “Implications” / “Open Questions” “Recommendations to " “Bottom line” / “What to do”
COI / disclosure DOE/UC boilerplate, always Optional unless regulated Required only when author benefits commercially from the recommendations
Methodology Full chapter Sidebar or 1-page appendix Footnote or none
Citations Author-date inline + full bibliography Numbered footnotes/endnotes + URLs Inline hyperlinks or numbered with URLs

The current canonical example (examples/lbnl-briefing.html) is a CEO-authored brief addressed to a lab audience — first-person, single byline, 5 pages, with selective borrowing from the policy-brief and lab traditions (COI disclosure because the recommendations benefit Verdigris commercially; light methodology callout because the central claim rests on proprietary field data). It is NOT a lab-tradition document and should not pretend to be one.

The cover is a quiet surface (universal)

Whichever genre you pick, this rule holds.

A whitepaper cover is not page 1 of an article. It carries identity, title, audience, byline, and date. Body copy belongs on page 2.

A cover that includes section headers, body paragraphs, or any of the document’s argument fails the cover register. Reference set across all three genres: LBNL ETA reports, NREL technical reports, CSIS briefs, Brookings Policy Briefs, EFI plans, Anthropic position papers, Stripe Press jackets. Every one of them keeps page 1 as a quiet typographic surface (or, in the CEO genre, dispenses with a formal cover entirely and lets the title block do the work).

Hierarchy

Required, in this order, top to bottom:

  1. Identity mark (logo, top-left, ~180px wide on dark)
  2. Eyebrow (series + audience, e.g., “BRIEFING · LBNL GRID INTEGRATION GROUP / DOE”)
  3. Headline (the paper’s title, max 3 lines, Lato 700, with one teal accent phrase)
  4. Deck (one-sentence subhead, max ~24 words)
  5. Quiet field (bounded white space; floor 1.4in, ceiling 2.6in)
  6. Byline (author name + affiliation incl. city + email, date, distribution/version meta)

Genre-specific additions:

What is not on a cover (any genre):

Spacing rhythm

All values from tokens/spacing/print.json. Every gap has a floor AND a ceiling.

Gap Floor Default Ceiling
Page frame (top, sides, bottom) n/a 0.85in n/a
Eyebrow to headline 32px 36px 48px
Headline to deck 18px 22px 28px
Deck to byline (quiet field) 1.4in 1.6in 2.6in
Byline to bottom edge 0.6in 0.75in 1.0in

The deck-to-byline gap is the single load-bearing measurement. Below the floor the cover reads as a page-1 article. Above the ceiling it reads as wrong-page-size. Hold the range.

Page frame margins use a single canonical default (0.85in). Floor/ceiling values are not yet codified because no surface has needed to deviate. Add them to tokens/spacing/print.json if a real surface ever needs a different frame.

Typography

Slot Font Size Weight Color
Eyebrow Lato 9pt 700 color.brand.verdigris (lightened tint on dark)
Headline Lato 38pt 700 rgba(255,255,255,0.96), accent in teal
Deck Inter 13pt 400 rgba(255,255,255,0.72) (contrast tier 2)
Byline name Inter 11pt 600 white
Byline affiliation Inter 9.5pt 400 rgba(255,255,255,0.55)
Date Inter 9.5pt 400 rgba(255,255,255,0.65)

Verdigris locks Inter + Lato + JetBrains Mono (tokens/typography/font-family.json, foundations/typography.md line 128-159). Do not introduce a serif headline for whitepapers. Lato 700 carries editorial weight at this scale.

Font loading (production renderers)

Production renderers MUST load Inter, Lato, and JetBrains Mono before paginating. The reference stylesheet at build/print/cover.css assumes those families are available; system fallbacks render measurably wider, which inflates page counts (observed: 5pp → 7pp on the same content when fonts failed to load).

Two acceptable approaches:

  1. Self-hosted woff2 (recommended for WeasyPrint). WeasyPrint cannot fetch fonts at print time. Bundle the woff2 files and reference them via @font-face in a stylesheet loaded alongside cover.css.
  2. Google Fonts via @import (Chrome --print-to-pdf only). Acceptable when the renderer has network access at print time. Use @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Lato:wght@700&family=JetBrains+Mono:wght@400&display=block') and explicitly display=block so the renderer waits for the font before laying out (otherwise pages paginate against the fallback metrics first).

A skill consuming this spec must verify the rendered page count matches the spec (CEO brief: 4-12pp, policy brief: 8-25pp, lab tradition: 25-80pp). If the count drifts, font loading is the first thing to check.

Figures

One figure with real data does more credibility work than most of the brief’s prose. Use the .vd-figure pattern in build/print/cover.css:

<figure class="vd-figure">
  <img src="path/to/chart.svg" alt="...">
  <figcaption class="vd-figure-caption">
    <span class="vd-figure-label">Figure 1</span>
    Inverter waveform under nominal vs. faulted conditions.
    <span class="vd-figure-credit">Source: Verdigris field data, n=14 sites, 8 kHz sampling, Q1 2026.</span>
  </figcaption>
</figure>

Conventions:

Dark cover specifics

Most Verdigris briefings (CEO and policy-brief genres) use a dark cover. Lab-tradition documents use a plain white cover; the rules below do not apply.

  1. Drop headline weight one tier. Lato 700 (not 800/900). Heavy weights bloom on dark.
  2. Deck at contrast tier 2 (~70-78% L), not pure white. Two near-white texts compete.
  3. Divider at 20% white (rgba(255,255,255,0.20)), 0.4pt weight. Above that, the divider competes with the title block.

Background color is color.neutral.950 (oklch(0.141 0.005 285.823), near-black with a hue-286 tint), not invented navy. Reserve color.brand.midnight-purple for accents only.

Body conventions by genre

The recommendations / call-to-action section uses a different label per genre. The patch v0.1 of this guide claimed “Recommendations to " was the lab convention. **That was wrong** — it is the think-tank/policy-brief convention. Lab convention is "Implications" or "Open Questions." Use the table below.

Genre Section label Format
Lab tradition “Implications” or “Open Questions for " Prose, sometimes bulleted; rarely numbered
Policy brief / think-tank “Recommendations to " Numbered (typically 3-7)
CEO brief “Bottom line” / “What to do” / declarative summary Numbered or prose; declarative voice

Decision framework: where to land in the bounds

The genre table sets length and recommendation-count ranges. Pick within them.

Boundary Floor (small) Default Ceiling (large)
Length, CEO brief (4-12pp) 4-5pp when the audience is a single named institution and the recommendations rest on a single proprietary dataset (the LBNL/DOE briefing model). 6-8pp for a typical CEO brief addressed to a research or policy audience: one anchor argument, 2-3 figures, 4-7 numbered recommendations. 10-12pp when the brief introduces a novel framework that needs a longer methodology callout, multiple figures, and an extended COI/disclosure section. Above 12 the CEO genre breaks; consider the policy-brief genre instead.
Length, policy brief (8-25pp) 8-10pp for a focused single-recommendation brief addressed to one institution. 12-18pp for a typical policy brief: 3-5 numbered recommendations, methodology sidebar, full citations. 20-25pp when the brief covers multiple recommendation areas (regulatory + operational + funding) addressed to overlapping institutional audiences.
Length, lab tradition (25-80pp) 25-35pp for a focused technical report. 40-55pp for a typical lab report: full methodology chapter, multiple figure series, extensive bibliography. 60-80pp for a multi-author working paper or year-long study output.
Numbered recommendations, policy brief (3-7) 3 recommendations when the audience is a single institution and the recommendations are pre-prioritized. 5 recommendations for a typical policy brief: institutional addressee, mixed audience seniority. 7 recommendations only when the audience expects an exhaustive list (e.g., a regulator’s annual review). Above 7 the recommendations compete for institutional attention and adoption rates fall.

If three or more boundaries push to the ceiling, the brief may be the wrong genre. A 12pp CEO brief with 12 recommendations is structurally a policy brief; switch genres rather than stretch the current one past its frame.

Methodology callout. Required when a quantitative claim rests on proprietary or non-public data. Use a letter footnote (m, n, …) to distinguish from numeric citations. Required content: site count n, geography, instrumentation (sample rate, sensor class), observation window, statistical confidence interval, anonymization protocol, data-availability statement. Lab tradition: full chapter. Policy brief: sidebar or appendix. CEO brief: callout box (see .vd-methods in build/print/cover.css).

Citation format

Default to ANSI/NISO baseline. For each entry: author, “quoted title,” series ID or arXiv number, (year), URL. Bare domains alone (“brookings.edu”) are insufficient. arXiv preprints require year. Government and lab reports require report number (e.g., LBNL-2001637).

Genre flexibility:

WeasyPrint quirks

The reference stylesheet at build/print/cover.css works around four known WeasyPrint bugs:

Chrome --print-to-pdf honors all of these without workarounds.

Reference example

Mode Surface File
CEO brief addressed to a lab audience LBNL/DOE briefing (5pp, single byline, COI footer, Methods callout) examples/lbnl-briefing.html + .pdf

Lab-tradition and pure policy-brief examples will be added when real surfaces ship.

Versioning + refresh

Whitepaper revisions follow the canonical naming + versioning protocol. See workflows/sales-collateral#versioning-vs-refresh for the policy on when an edit is in-place (typo, broken link), a refresh (patch bump for an updated number or refreshed exemplar), or a new version (new anchor argument or scope change). A new anchor metric or a renamed institutional addressee is always a new version, not a refresh.

What this rule does NOT cover

Structural additions vs content additions

The rendering layer never invents facts. This is the load-bearing rule for any system that generates documents from author-supplied content.

A best-practice structural slot (COI disclosure block, Methods callout, byline city, “Prepared for” line) MAY be added by the design layer if and only if:

  1. The slot is a documented best practice for the document’s genre, AND
  2. The content placed in the slot is either (a) verifiable from a real source or (b) clearly marked as a template the author must fill in before distribution.

A content addition (filling a citation with a fabricated entry, correcting an author attribution, renaming a section, inventing byline metadata) is never a rendering-layer decision. It is an author decision. The design system flags such items in the hand-off note and lets the author resolve them.

Failure modes this rule prevents:

Test for any rendering-layer change: if the author skim-reads the rendered document, will they recognize every claim, citation, label, and metadata field as theirs? If no, the change is content, not rendering, and belongs in the hand-off note.

When in doubt: mark as a template, or ask the author. Never default to plausible-sounding placeholder.

Placeholder convention

When the rendering layer reaches a structural slot whose content the author has not provided, mark the slot as a template field. Two equivalent forms:

<!-- Inline -->
The study covers <span class="vd-template">[SITE COUNT]</span> sites across
<span class="vd-template">[GEOGRAPHY]</span>.

<!-- With author hint -->
<span class="vd-template">[FIELD: site count, e.g. "14"]</span>

Conventions:

This is the visible counterpart to the structural-vs-content principle above: the design layer adds the slot, marks the missing content, and lets the author fill it in. The yellow tint is intentionally jarring; it should never feel “designed enough to ship.”

Template vs. produced

The structural-vs-content principle above is concrete in this comparison. Left column is what an agent generates from the spec; right column is what a human (or evidence-grounded agent) fills in. A produced cover MUST NOT ship while any [FIELD: ...] placeholder remains, and every filled value must trace to a source the author can recognize.

Slot Template stage Produced stage
Byline <span class="vd-template">[FIELD: author name, e.g. "Mark Chung"]</span>, <span class="vd-template">[FIELD: role + organization, e.g. "Founder & CEO, Verdigris Technologies"]</span> Mark Chung, Founder & CEO, Verdigris Technologies, Moss Landing CA
Methods callout (n value) The study covers <span class="vd-template">[FIELD: site count, e.g. "14"]</span> sites across <span class="vd-template">[FIELD: geography, e.g. "California and Texas"]</span>. The study covers 14 sites across California, Texas, and Virginia.
Eyebrow BRIEFING · <span class="vd-template">[FIELD: addressee group, e.g. "LBNL GRID INTEGRATION GROUP / DOE"]</span> BRIEFING · LBNL GRID INTEGRATION GROUP / DOE

The template stage is what a generation pipeline emits. The produced stage is what a human author fills in, sentence by sentence, against real sources. Skipping the template stage and shipping plausible defaults (a guessed n, a guessed geography, a guessed addressee) is the failure mode the placeholder convention exists to prevent.

Why this guide changed

v0.1 of this guide treated whitepaper covers as one genre and codified think-tank conventions (“Recommendations to ", required "Prepared for" line, mandatory disclosure block) as universal. A research-and-debate review across LBNL, NREL, CSIS, BCG, Brattle, Anthropic, and Stripe exemplars showed those are genre-specific, not universal. Genre choice now leads the guide; per-genre adjustments follow.