From baf8c68e53c43500b1e74f76ad33456d1471e42e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20St=C3=A1bile?= Date: Sat, 17 Oct 2026 14:51:00 -0300 Subject: [PATCH] fix(05-cv-templates): write snippet date fields with ASCII hyphens (#599) Three date values in 05-cv-templates.md are copied straight into a CV, and all three carried the en-dash the same file forbids: - the in-progress-qualification snippet wrote \cventry{2025--2026} - the \needspace snippet wrote \cventry{YEAR--YEAR} - the in-progress section offered a date field of 2025-present with U+2013 LaTeX ligatures `--` into U+2013, so an assistant following the file produced exactly what "Date fields must be ASCII ranges" rules out 130 lines further down, and what /apply Step 5d then rejects. Inserting the in-progress snippet as shipped into cv/main_example.tex and compiling with lualatex makes tools/verify_pdf.py --ascii-dates exit 1 ("U+2013 in '... 2025-2026'"); the unmodified template passes, and with the snippet fixed it passes again at the same 2 pages. these snippets predate it (#210) and were left behind. The deliberate negative example (% en-dash, may not) and the illustrations of the forms --ascii-dates catches are unchanged. Found while drafting a tailored CV with an in-progress qualification, where the snippet was followed verbatim. Co-authored-by: Claude Opus 5 --- .../job-application-assistant/05-cv-templates.md | 8 ++++---- CHANGELOG.md | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.claude/skills/job-application-assistant/05-cv-templates.md b/.claude/skills/job-application-assistant/05-cv-templates.md index 83e3ab10..bead8fdf 100644 --- a/.claude/skills/job-application-assistant/05-cv-templates.md +++ b/.claude/skills/job-application-assistant/05-cv-templates.md @@ -1,5 +1,5 @@ --- -framework_version: 1.4.6 +framework_version: 1.4.7 --- # CV Templates and Tailoring Guide @@ -164,12 +164,12 @@ Use the posting's own core term in the matching bullet's bold label when it trut State completion inside the entry itself: ```latex -\item{\cventry{2025--2026}{[Degree], [Field]}{[Institution]}{[Location]}{}{\vspace{1pt} +\item{\cventry{2025-2026}{[Degree], [Field]}{[Institution]}{[Location]}{}{\vspace{1pt} In progress, expected [Month Year]. [Relevant topics] }} ``` -Any consistent form works: `In progress, expected .` / `Expected completion .` / a date field of `2025–present`. +Any consistent form works: `In progress, expected .` / `Expected completion .` / a date field of `2025-present`. Claiming a credential not yet held is a factual misstatement, and it is the kind discovered at transcript or reference check rather than at interview. It costs nothing to prevent. The same applies to in-progress certifications and courses. @@ -254,7 +254,7 @@ After writing the CV and before presenting to the user, always compile and visua Add `\needspace{5\baselineskip}` immediately before the problematic `\cventry`: ```latex \needspace{5\baselineskip} -\item{\cventry{YEAR--YEAR}{Role Title}{Organization}{Location}{}{...}} +\item{\cventry{YEAR-YEAR}{Role Title}{Organization}{Location}{}{...}} ``` Include `\usepackage{needspace}` in the preamble. diff --git a/CHANGELOG.md b/CHANGELOG.md index 27feec64..0768e140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,21 @@ per-file diff commands. ### Fixed +- **`05-cv-templates.md` snippets write the `\cventry` date argument with an ASCII hyphen, as the same + file's own rule requires** (`.claude/skills/job-application-assistant/05-cv-templates.md`, + `framework_version: 1.4.6 -> 1.4.7`) - the in-progress-qualification snippet under "In-progress + qualifications must say so explicitly" wrote `\cventry{2025--2026}`, the `\needspace` snippet + under the orphaned-entry fix wrote `\cventry{YEAR--YEAR}`, and the in-progress section offered a date field + of `2025–present` (U+2013) as an accepted alternative. All three are values copied straight into a + CV, so an assistant following the file produced exactly the en-dash that **Date fields must be ASCII + ranges** forbids 130 lines further down, and that `/apply` Step 5d then rejects: inserting the + in-progress snippet as shipped into `cv/main_example.tex` and compiling with `lualatex` makes + `python tools/verify_pdf.py cv/main_example.pdf --pages 2 --ascii-dates` exit 1 with + `U+2013 in '... 2025–2026'`, where the unmodified template passes. #276 fixed the template's own + date fields and added the rule section, but these snippets predate it (#210) and were missed. The + deliberate negative example (`% en-dash, may not`) and the illustrations of the forms `--ascii-dates` + catches are left as they are. + - **`verify_pdf.py --ascii-dates` no longer reads a numeric range with year-shaped ends as a date** - #512 bounded the year to four standalone digits, but `EUR 1500–2000 per month` and `2000–5000 requests per second` still failed `/apply` Step 5d: each has a four-digit number