From 9243845acaae7c6876e16011a56fed46453f3556 Mon Sep 17 00:00:00 2001 From: Eduard Ionel STAN Date: Thu, 30 Jul 2026 19:43:02 +0200 Subject: [PATCH] docs: merge the duplicated printed-documents entry in AGENTS.md AGENTS.md stated the printed-documents contract twice, in two paragraphs that disagreed about what it promises. This resolves them into one entry carrying every claim either made: - the general rule that a block too particular for a macro is a body fragment documents `\input`, with cv/header.tex and cv/supervision.tex named as its instances; - that only cv/cv.tex prints \cvAutoSections, that a variant is a curated subset, and that it still honours `printed: false` because it reaches every section through \cvpart; - that a section declared under `publications.sections` for one document's sake changes the full CV and the website, because each section subtracts the ones declared before it; - the layout/curation line, stated once. Every claim was checked against cv/cv.tex, cv/short.tex, cv/teaching.tex, cv/preamble.tex and scripts/build-cv-data.mjs; all still hold. No TeX, generator, content or check changed, and all three PDFs still match their baselines. Co-Authored-By: Claude Opus 5 --- AGENTS.md | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 7e67aa8..896cb6f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,26 +17,19 @@ yours" lists where. Do not move any of them into `content/`: that was considered because layout and routes cannot follow and the boundary would blur again. The boundary is facts versus design — keep every document saying the same thing about it. -Three documents are printed: `cv/cv.tex`, `cv/short.tex` and `cv/teaching.tex`. `cv/preamble.tex` -holds every package, style and macro they share, `cv/header.tex` the contact block and -`cv/supervision.tex` that hand-set section, so the printed design is written once. A document body -is only which sections it curates, in what order, and how many entries of each. No fact is repeated -per variant, and none may be. Only `cv/cv.tex` prints `\cvAutoSections`: a variant is a curated -subset, so printing every section the body did not name is what it exists not to do — it still -honours `printed: false`, because it reaches every section through `\cvpart`. An entry count on -`\cvpart` and a `\defbibfilter` only one document prints are layout; curation is marked on the fact, -as `selected` is in `content/publications.bib`. - Three documents are printed: `cv/cv.tex`, `cv/short.tex` and `cv/teaching.tex`. `cv/preamble.tex` holds every package, style and macro they share; a block too particular for a macro is a body -fragment they `\input`, as `cv/header.tex` and `cv/supervision.tex` are. The printed design is -therefore written once, and a document body is only which sections it prints, in what order, -and how many of each. No fact is repeated per variant, and none may be: a variant carrying its own -copy of an appointment breaks the premise. What belongs to a variant is layout — including the -entry count on `\cvpart` and any `\defbibfilter` only that document prints. What belongs to the -record is curation, marked on the fact itself, as `selected` is in `content/publications.bib`. A -section declared under `publications.sections` for one document's sake changes the full CV and the -website, because each section subtracts the ones declared before it. +fragment they `\input`, as `cv/header.tex` (the contact block) and `cv/supervision.tex` (that +hand-set section) are. The printed design is therefore written once, and a document body is only +which sections it curates, in what order, and how many entries of each. No fact is repeated per +variant, and none may be: a variant carrying its own copy of an appointment breaks the premise. +Only `cv/cv.tex` prints `\cvAutoSections`: a variant is a curated subset, so printing every section +the body did not name is what it exists not to do — it still honours `printed: false`, because it +reaches every section through `\cvpart`. What belongs to a variant is layout — including the entry +count on `\cvpart` and any `\defbibfilter` only that document prints. What belongs to the record is +curation, marked on the fact itself, as `selected` is in `content/publications.bib`. A section +declared under `publications.sections` for one document's sake changes the full CV and the website, +because each section subtracts the ones declared before it. `web/src/lib/record.ts` owns the complete list of source paths. It locates the repository by walking up for `content/cv.yaml`, the file no build can work without. `web/src/lib/record.test.ts` fails if a