Agent instructions

Agent instructions

Keep the CV PDF in sync

files/CV.pdf is committed to the repository and is not rebuilt automatically. Whenever a change touches the CV’s sources, recompile the PDF and commit it together with that change:

  • cv_source/** (cv.typ, definitions.typ, fonts, biblio/)
  • _data/publications/** (the files in cv_source/biblio/ are symlinks to these)

Build from the repository root:

typst compile --root . --font-path cv_source/fonts cv_source/cv.typ files/CV.pdf

Check that the build finishes without errors before committing.

Applications (cv_source/candidatures/)

Job applications and grant proposals live in cv_source/candidatures/. They are private: they must never be published on the website. _config.yml excludes the folder from the Jekyll build; keep that exclusion, and do not link to or copy these files from anywhere the site publishes.

Each application has a main.typ that merges its documents with the CV into one PDF, each document keeping its own bibliography. This needs Typst >= 0.15. Build from the repository root, e.g.:

typst compile --root . --font-path cv_source/fonts cv_source/candidatures/UCLouvain_2026/main.typ

Password-protected files (files/protected/)

To share a file through the website with a password, encrypt it with node scripts/encrypt_file.mjs <file> [password] (a random password is generated if none is given). This writes files/protected/<name>.enc and prints the link to share, /files/protected/?f=<name>#<password>; the page files/protected/index.html decrypts the file in the browser. Never commit the unencrypted file next to it.