fix(latex): brace bracket-leading bullets, document escapes, pin pdftotext encoding

Three findings from the 2026-08-19 review (F9, F31, F34):

- F9: every placeholder bullet written as \item [text] let LaTeX parse
  the bracketed text as the item's optional label, rendering it clipped
  off the left page edge and absent from the PDF text layer ("Achievement"
  appeared 9 times in cv/main_example.tex and 0 times in the extraction,
  with a clean compile and green CI). Bullets are now braced as
  \item {[text]} in the example CV and in the template
  06-cover-letter-templates.md teaches, and CI's stock PDF assertions
  additionally require "Achievement" to survive pdftotext.

- F31: 05-cv-templates.md gains a "LaTeX Special Characters" section and
  06's is completed beyond \_ and \&. The load-bearing case is an
  unescaped % in a quantified achievement bullet: it starts a LaTeX
  comment and silently deletes the rest of the line from the PDF.

- F34: the documented ATS extraction commands (apply.md,
  05-cv-templates.md, CLAUDE.md) now carry -enc UTF-8. Xpdf-based
  pdftotext builds default to Latin-1 output, so a correct non-ASCII CV
  failed the replacement-character parseability check.

framework_version: 05-cv-templates.md 1.4.1 -> 1.4.2,
06-cover-letter-templates.md 1.0.1 -> 1.0.2. All three pinned by the new
tests/test_latex_guidance.py (9 tests; suite now 261).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mads Lorentzen
2026-08-19 19:44:36 +02:00
co-authored by Claude Opus 5
parent 40022dd8b9
commit b2545d5121
8 changed files with 217 additions and 24 deletions
+11 -11
View File
@@ -93,10 +93,10 @@
% --- Most Recent Role ---
\item{\cventry{[YYYY-Present]}{[Job Title]}{[Company]}{[City, Country]}{}{\vspace{1pt}
\begin{itemize}
\item [Achievement or responsibility 1 - be specific, use numbers where possible]
\item [Achievement or responsibility 2]
\item [Achievement or responsibility 3]
\item [Achievement or responsibility 4]
\item {[Achievement or responsibility 1 - be specific, use numbers where possible]}
\item {[Achievement or responsibility 2]}
\item {[Achievement or responsibility 3]}
\item {[Achievement or responsibility 4]}
\end{itemize}}}
\vspace{3pt}
@@ -104,9 +104,9 @@
% --- Previous Role ---
\item{\cventry{[YYYY-YYYY]}{[Job Title]}{[Company]}{[City, Country]}{}{\vspace{1pt}
\begin{itemize}
\item [Achievement or responsibility 1]
\item [Achievement or responsibility 2]
\item [Achievement or responsibility 3]
\item {[Achievement or responsibility 1]}
\item {[Achievement or responsibility 2]}
\item {[Achievement or responsibility 3]}
\end{itemize}}}
\vspace{3pt}
@@ -114,8 +114,8 @@
% --- Earlier Role ---
\item{\cventry{[YYYY-YYYY]}{[Job Title]}{[Company]}{[City, Country]}{}{\vspace{1pt}
\begin{itemize}
\item [Achievement or responsibility 1]
\item [Achievement or responsibility 2]
\item {[Achievement or responsibility 1]}
\item {[Achievement or responsibility 2]}
\end{itemize}}}
\end{itemize}
@@ -147,7 +147,7 @@ Thesis: ``[Thesis Title].'' [Brief description of research focus.]
\section{Languages}
\vspace{1pt}
\begin{itemize}
\item [Language 1] (native), [Language 2] (fluent), [Language 3] (intermediate).
\item {[Language 1] (native), [Language 2] (fluent), [Language 3] (intermediate).}
\end{itemize}
% ============================================================
@@ -157,7 +157,7 @@ Thesis: ``[Thesis Title].'' [Brief description of research focus.]
\section{Publications}
\vspace{1pt}
\begin{itemize}
\item [Author(s)] ([Year]). [Title]. [Journal/Conference]. \href{[DOI_URL]}{DOI link}
\item {[Author(s)] ([Year]). [Title]. [Journal/Conference]. \href{[DOI_URL]}{DOI link}}
\end{itemize}
% ============================================================