AGENTS.md
AGENTS.md
Local Build
This site is a Jekyll app.
Preferred native workflow:
- Use
Ruby >= 2.7.0 - Run
bundle install - Run
bundle exec jekyll serve --livereload --host 127.0.0.1 --port 4000 - Open
http://127.0.0.1:4000
If the host Ruby is too old for the pinned Jekyll version, use Docker:
docker run --rm -p 4000:4000 -p 35729:35729 \
-v /Users/viviandersson/code/vivi365.github.io:/srv/jekyll \
-w /srv/jekyll \
-u 501:20 \
-e HOME=/tmp \
-e GEM_HOME=/tmp/gems \
-e BUNDLE_PATH=/srv/jekyll/vendor/bundle \
-e BUNDLE_APP_CONFIG=/srv/jekyll/.bundle \
ruby:3.3 \
sh -lc 'gem install --user-install bundler -v 2.4.22 && export PATH=/tmp/gems/bin:$PATH && bundle _2.4.22_ install && bundle _2.4.22_ exec jekyll serve --livereload --host 0.0.0.0 --port 4000'
Notes:
- This repository currently pins
jekyll ~> 4.4.1, which requiresRuby >= 2.7.0. - The Docker workflow installs gems into
vendor/bundlein the repo, so subsequent runs are faster. - LiveReload listens on port
35729.
Adding a Post
Posts live in _posts/.
When adding a new post:
- Create a file named
YYYY-MM-DD-short-slug.markdown - Use
layout: post - Include
title,date, andexcerptin the front matter - Add
dekwhen the post benefits from a subtitle under the title/date - Keep the body in Markdown unless inline HTML is clearly needed
Recommended front matter:
---
layout: post
title: "Post Title"
date: 2026-05-19
excerpt: "One-sentence summary used in post listings and metadata."
dek: "Optional subtitle shown on the post page under the title and date."
---
Post formatting notes:
excerptshould be short and descriptive. It is used outside the post body, so it should work as a standalone summary.dekcan be longer thanexcerptand should frame the argument or scope of the post, not just repeat the title.- Long-form post prose should read like an article, so prefer normal Markdown paragraphs and headings over homepage-style centered presentation.
- For patches or code diffs, use fenced
diffblocks so added and removed lines are styled correctly:
--- a/file.sol
+++ b/file.sol
@@ -1,3 +1,3 @@
-old line
+new line
- Markdown tables are supported and will render with the post table styling.
Publication Sync
Publications on the homepage are synced by scripts/sync_publications.py, with behavior documented in scripts/README.md.
Author formatting policy:
- Bold
Vivi Anderssoninline using<span class="author-highlight">...</span>. - Show up to 3 authors before
et al. - Use consistent separators:
- one author:
Name - two authors:
Name and Name - three authors:
Name, Name, and Name - more than three authors:
Name, Name, Name, et al.
- one author:
- Publication entries use explicit HTML wrappers:
- title:
<span class="publication-title">...</span> - authors:
<span class="publication-authors">...</span> - meta:
<span class="publication-meta">...</span>
- title:
- Do not use Markdown
**...**to identify publication titles or author emphasis. Use.publication-titlefor titles and.author-highlightfor inline name emphasis. - Use title-based overrides in
scripts/publication_overrides.ymlfor special cases like equal-contribution markers or custom author-line notes such asยท Supervised by Javier Ron.
When changing publication formatting, update:
scripts/sync_publications.pyscripts/publication_overrides.ymlif exceptions are needed- The current publication entries in
index.markdownif they need to be brought into sync immediately
Adding a Talk
Talks are stored in _data/talks.yml. The homepage shows only entries with featured: true. The full archive lives at /talks/.
When adding a new talk:
- Copy the slide deck into
assets/talks/using a date-first filename. - Prefer the schema
YYYY-MM-DD-short-slug.pdf. - Add a new entry to
_data/talks.ymlwith these fields:title: full talk title as displayedlocation: venue and city/countrydate_display: human-readable date shown on the sitesort_date: ISO date used for ordering,YYYY-MM-DDdescription: short summaryfeatured:trueif it should appear on the homepage, otherwisefalselinks: a list of links withlabel,url, andkind
Supported link kinds
slides: rendered with the slide iconwatch: rendered with the play iconexternal: rendered as plain text, useful for seminar or event pages
Example
- title: "Dagstuhl Seminar 26192. Evaluating Logical Correctness in Agentic PoC Exploit Generation"
location: "Dagstuhl, Germany"
date_display: "6 May 2026"
sort_date: "2026-05-06"
description: "A Dagstuhl talk focused on how we evaluated PoCo's logical correctness."
featured: true
links:
- label: "Seminar"
url: "https://www.dagstuhl.de/26192"
kind: "external"
- label: "Slides"
url: "/assets/talks/2026-05-06-dagstuhl-poco-logical-correctness.pdf"
kind: "slides"