The Quality Rubric for AC Papers #
What a finished paper on papers.aesthetic.computer has to clear before it
counts as done. This is the companion to VOICE.md (how a paper sounds) and
HAND.md (how code reads) — this file is how a paper is built and checked.
It was reverse-engineered from the publishing stack itself: cli.mjs,
tools/check-columns.mjs, the three .sty files, bin/gen-cover.mjs, and the
figure-rich exemplar arxiv-keymaps/keymaps.tex. When the tooling and this doc
disagree, the tooling wins — fix this file.
The exemplar to hold a flagship paper against is arxiv-keymaps. When in
doubt, open it.
Two of these gates are enforced by tools today; everything else is enforced by reading the paper next to keymaps. The two hard gates are flagged [HARD].
A — Voice & argument (VOICE.md) #
- A1 First person, plain. "i built this," not "the author implemented." Grep
the
.texforwe propose,the authors,it should be noted,a novel approach to,in this paper we→ zero hits. - A2 Conviction, quiet but absolute. The conclusion states a belief plainly. No "results suggest potential viability."
- A3 Em dashes for asides, short sentences, fragments that land.
---, not semicolon or parenthesis chains. - A4 Cite when it matters, never to prove you read things. No paragraph is a
bare pile of
\citep{}. - A5 The register gradient holds: abstract formal-ish but ends on a line that lands; intro opens on the thing, not a lit survey; body is whiteboard-precise; limitations say what's broken before anyone asks; conclusion is yours.
- A6 One source file for cards + arxiv. Never maintain divergent content across formats.
B — Structure #
- B1 Abstract in a
\begin{quote}…\textbf{Abstract.}block after the title. One dense paragraph, lands on its last line. - B2 Introduction names the object first — often "Figure 1 is…" — and ends with a one-line roadmap of the movements to come.
- B3 Numbered body sections carry
\label{sec:…}and cross-reference each other by label. - B4 A limitations pass, or an honest counter-case, that argues against the paper's own favored object at least once — without minimizing or dramatizing.
- B5 Conclusion restates the contribution and the belief.
- B6
\section*{Acknowledgments}when there's a residency or venue context, with the pals badge.
C — Citations #
- C1 natbib +
plainnat. Every.bibentry is actually\cited; every\citeresolves. Build shows no "undefined citation." - C2 Load-bearing citations are real and read — the theoretical anchor is cited repeatedly, not name-dropped once.
- C3 Diversity is a quality axis, not an afterthought. The house target
from the
arxiv-diversityaudit: ≥30% women authors, ≥20% non-Western authors. A cluster of citations that is all-male or all-Western is a defect to fix before publishing, the same as a broken build. Verify each new citation's metadata against a primary source — guessed page numbers and years are how wrong citations ship. - C4 Prefer the platter reading corpus (
system/public/assets/papers/ readings/) as the scholarly foundation where it fits.
D — Figures (the keymaps standard) #
Keymaps carries 7 figures (2 full-width figure*), 2 tables, and 28 QR tiles. A
flagship paper is expected to show its argument, not just state it.
- D1 Real figures built from the argument — hand-built TikZ diagrams, or captured screenshots of the actual thing under discussion (a UI, a piece, a real user comment) — not decorative filler.
- D2 Wide content spans both columns via
figure*[t]/table*[p]. - D3 Captions are dense and explanatory. A caption says what to read and what it proves. "Figure 1: the system" fails.
- D4 Where the paper catalogs external objects, each resolves to a canonical
home via a
\qrc{}QR tile. - D5 Inline micro-glyphs (
\key{}, keycap chips, etc.) used consistently when they aid reading. - D6 Screenshots are legitimate evidence: the coarse UI being criticized, the AC piece being praised, the user comment proving demand. Caption them like exhibits — say what the reader is looking at and why it is in the paper.
- D7 [HARD] Aesthetic Eye. Every embedded evidence image and diagram is inventoried
in the paper's
aesthetic-eye.jsonand receives an explicit visual-inference verdict ofdesign: pass|fail. Each image in a multi-panel figure receives its own verdict. Evidence images must pass scale, legibility, evidence dominance, crop, and caption-fit checks. Diagrams must pass clear tangents, accessible type, balanced composition, intentional use of available space, legible hierarchy, and unambiguous edge routing. The paper-wide brand verdict also requires every visible wordmark to readAesthetic.Computer, with its period in AC pink (#B44887). The manifest's PDF hash must match the built PDF. Runnode papers/aesthetic-eye.mjs prepare <paper-dir>, inspect the page contact sheet and every evidence-image and diagram crop, record the verdicts, then runnode papers/aesthetic-eye.mjs check <paper-dir>.
E — Cover (bin/gen-cover.mjs) #
- E1 A hand-rendered emblem on cream paper (colored pencil + gouache,
silkscreen imperfection) generated by
gen-cover.mjs(OpenAI gpt-image-2). Reads like a record-label seal or a band-tee print. - E2 ONE singular subject, floating in the central two-thirds, periphery dissolving to bare paper. No frame, no border, no background scene, no clusters.
- E3 Never spell the subject's name. Identity is carried by emblem, silhouette, color, era.
- E4 Muted natural palette, square 1:1.
- E5 Prompt lives at
figures/cover-prompt.txt; outputfigures/cover.png. - E6 Included in the title block at
width=0.5–0.7\textwidth, centered. - E7 The cover feeds the index tile (
genCoverTile); a paper with afigures/cover.pnggets a designed tile instead of a page-1 render.
F — Typography & layout #
- F1
\documentclass[10pt,letterpaper,twocolumn]{article},% !TEX program = xelatex. (Essays useac-paper-essay.sty; cards useac-paper-cards.sty.) - F2 Geometry
0.75inmargins, folio clear of the sheet edge. - F3 Body is Latin Modern (Roman/Sans/Mono, mono
Scale=0.85). YWFT Processing (\acbold/\aclight) is reserved for the title and header only — its punctuation glyphs are unreliable in body text. - F4 AC palette exact:
acpink 180,72,135·acpurple 120,80,180·acdark 64,56,74·acgray 119,119,119. Diagram chips (acgreen/etc.) allowed. - F5
\section= bold, normalsize, UPPERCASE,\thesection., tight spacing. - F6 hyperref links colored
acpurple;xurlloaded;pdftitle/pdfauthorset. - F7 Long identifiers/paths wrap via a
\code{}-style command so they never overflow. Two-column breaking tuned (\tolerance,\emergencystretch,\hyphenpenalty). Use\raggedbottomso short paragraphs don't get their inter-paragraph glue stretched into false "title" spacing. - F8 [HARD] Nothing may break the columnar arrangement.
node papers/cli.mjs checkreports zeroOverfull \hbox > 0.5pt. This is the rule: nothing ships that breaks the columns. - F9 Title block:
\acboldtitle inacdark, cover, italic subtitle inacpink, byline@jeffrey · Aesthetic.Computer · ORCID 0009-0007-4460-4913, language bar, then a pink rule. Every dot in "Aesthetic.Computer" is the pink\acdot.
G — Build & publish hygiene (cli.mjs) #
- G1 [HARD] Build is xelatex 3-pass + bibtex (
xelatex; bibtex; xelatex; xelatex). Success = a real PDF exists, not exit code. - G2 [HARD] No silent failure: the
.logcontains no! Package fontspec Errorand nonullfont. A stub PDF from a font fallback is a broken build even though xelatex exits 0. - G3 Deterministic PDFs:
SOURCE_DATE_EPOCHfrom newest source mtime. Same bytes in → same bytes out (this is what keeps the oven from auto-commit loops). - G4 Version stamp:
\InputIfFileExists{version}pulls\paperhash(git short hash,+if the paper dir is dirty) and\paperrev, with adev/?fallback, rendered in a colophon badge. - G5 History stamp:
\InputIfFileExists{history}renders an in-PDF changelog from the git log of the paper's own.tex. - G6 Draft watermark on by default (45° pink "WORKING DRAFT" + the "Working Draft — not for citation" header). A print edition turns it off.
- G7 Registered in
PAPER_MAP:{ base, siteName, title }, siteName ending-26-arxiv(or-essay/-deck/-dossier-26-arxiv). - G8 In exactly one
CATEGORIESlane (platform / essays / audits / decks / dossiers / software). Uncategorized triggers a WARN. - G9 Has an
IMPORTANCErank (missing → 99, sinks to the bottom of the index). - G10
metadata.jsonentry with a realcreateddate;revisionsincrements on each publish. - G11 Thumbnail generated in
thumbs/{siteName}.jpg(cover tile preferred). - G12 Index + Atom feed regenerated;
verifyreports zero broken PDF links. - G13
PAPER_COPYentry with adetailline and anabstractfor the index card and the feed. - G14 Optional lanes if present: cards (
{base}-cards.tex), translations (da/es/zh/ja/ru), aPODCASTSreading.
The review pass (run this before calling a paper done) #
- Voice — grep the banned phrases (A1); the conclusion states a belief (A2, B5).
- Structure — abstract-quote, object-first intro with roadmap, honest limitations, conclusion, acknowledgments (B1–B6).
- Citations — every entry cited and resolving; metadata verified against primary sources; ≥30% women / ≥20% non-Western (C1–C3).
- Figures — real diagrams and captured exhibits with dense captions; wide
ones as
figure*; QR tiles resolve; Aesthetic Eye reportsdesign: passfor every diagram against the current PDF hash (D1–D7). - Cover — single emblem, cream paper, no name, 1:1; included at 0.5–0.7\textwidth (E1–E6).
- Layout — 10pt twocolumn, Latin Modern body + ywft title, palette exact,
node papers/cli.mjs check= 0 overflows (F1–F9). - Build/publish — xelatex 3-pass+bibtex clean,
.logfree offontspec Error/nullfont, watermark on for drafts, registered inPAPER_MAP/CATEGORIES/IMPORTANCE/PAPER_COPY/metadata.json, thumbnail + feed- no broken links (G1–G13).
The teeth today are F8 and G1–G2 — the column check and a clean, non-stub xelatex build. Everything else is enforced by holding the paper up next to keymaps and being honest about the difference.
Maintained alongside VOICE.md. Update this when the tooling changes.