ROADMAP — f.bouchet.me
A prioritized backlog for the academic website. Work through it incrementally with Claude Code. This file is not meant to be auto-loaded every session (unlike CLAUDE.md); point Claude Code at it on demand: “Read ROADMAP.md and let’s do the §2 items.”
How to read the scores
| Priority |
P1 / P2 / P3 |
P1 = correctness/credibility, do soon · P2 = worthwhile · P3 = nice-to-have / someday |
| Effort |
S / M / L |
S ≤ 30 min · M = 1–3 h · L = half-day+ or blocked on your content |
| ★ |
— |
Needs your content or a judgment call; Claude Code can’t just do it alone |
Status snapshot (from a live audit): Home, About, Publications, Teaching, CV have real content. Projects holds only the two demo pages; Notes is empty. The single most visible defect is a bare GitHub link site-wide (§1).
Recommended sequence
Audience: prospective PhD students/collaborators, academic peers & program committees, and hiring/promotion/funding committees — not general public or press. That deprioritises broad-reach SEO and elevates a clean, credible publications/projects showcase. Suggested order:
- §1 correctness first (≈30–60 min). Quick wins everyone in the audience hits — especially the dead GitHub link. Do this before anything else.
- §2 Publications polish. P1 duplicate-title fix → HAL open-access enrichment → a curated Selected publications set (high value for committees and prospective students; promote it within §2). Pair with the §7 link checker, which catches dead DOIs/HAL links across the 166 entries and so directly serves this work.
- §3 Real project pages. Blocked on your content — pick 2–4 to showcase and decide the fate of the two demos.
- §7 Maintenance & automation.
pubs-check pre-push hook + CLAUDE.local.md
- optional CI render check. Protects the publications/projects work above.
- §5 Notes/blog. Seed a post or two when you have something to say.
- §4 SEO — minimal slice only. Given the audience, do just per-page descriptions + a social card (for links you share yourself). Defer or drop analytics, JSON-LD, and Search Console unless the audience widens.
1 · Correctness & placeholders
Fix the bare https://github.com/ link in navbar, footer, and home links |
P1 |
S |
✓ done — set to github.com/fbouchet in _quarto.yml (navbar + footer) and index.qmd. |
Add descriptive alt text to the home headshot |
P1 |
S |
✓ done — image-alt: "Portrait of François Bouchet" in index.qmd. |
Replace placeholder assets/img/headshot.png with a real photo |
P2 |
S ★ |
|
Replace placeholder assets/img/favicon.png |
P2 |
S ★ |
|
Replace placeholder repo/submodule URLs in the two demo project pages |
P2 |
S |
✓ done — MADD → github.com/melinaverger/MADD; peer-recommender placeholder removed (no repo yet). |
Fill or drop the DBLP id link on the home page |
P3 |
S |
✓ done — added dblp.org/pid/57/7255.html to home links. |
Confirm the public email |
P3 |
S |
✓ done — changed to francois.bouchet@lip6.fr. |
2 · Publications quality (your strongest page — tighten it)
Fix duplicate/mispasted title in references.bib |
P1 |
S |
✓ done — harley_can_2015 title corrected; make pubs re-run. |
Scan .bib for encoding artifacts |
P2 |
S |
✓ done — fixed 7 artifacts: fi ligature (×2), ⬚→ff (×2), U+00B4 apostrophe (×2), ℡→{TEL} in booktitle. |
| Enrich open-access links from HAL |
P2 |
M |
Several entries have no DOI/link. Match by DOI/title against cv.hal.science/fbouchet and add full-text URLs — ideally as a step in build_publications.py so it’s reproducible. |
| Add a “Selected publications” highlight |
P2 |
M ★ |
High value for your audience (committees/students scan, don’t read 166). Surface a curated handful on Home or atop Publications. You choose which. |
| Per-entry “Cite (BibTeX)” toggle and/or a “Download .bib” button |
P3 |
M |
|
| Client-side search/filter by year/type/keyword |
P3 |
M |
|
Year sub-headings / anchors within each type |
P3 |
S |
✓ done — build_publications.py emits ### YYYY before each year group; toc-depth: 2 in publications.qmd keeps them out of the sidebar TOC. |
3 · Projects — replace demos with real content
| Decide the fate of the two exemplar pages |
P2 |
S |
Either promote madd-fairness / peer-recommender to real entries (fill real URLs), or remove them and keep the patterns documented only in CLAUDE.md. |
| Add 2–4 real projects, each as pattern (a) or (b) |
P2 |
L ★ |
The main content gap. |
Add project card thumbnails to projects/img/ |
P3 |
S ★ |
|
4 · Discoverability / SEO
Audit per-page description front matter and social-card meta |
P2 |
S–M |
Add Open Graph / Twitter cards via open-graph: and twitter-card: in _quarto.yml; couldn’t confirm presence from the rendered HTML, so verify first. |
| Add a 1200×630 social preview image |
P3 |
S |
So shared links render a card. |
| Add JSON-LD structured data |
P3 |
M |
Person on Home/About; optionally ScholarlyArticle on Publications, for richer indexing. |
Confirm sitemap.xml / robots.txt are emitted; submit to Search Console |
P3 |
S |
Quarto generates a sitemap when site-url is set (it is). |
| Decide on privacy-friendly analytics (Plausible / GoatCounter) or none |
P3 |
S ★ |
|
5 · Notes / blog
| Seed 1–2 real posts so the section isn’t empty |
P3 |
M ★ |
Even short: a paper summary, a tooling note. |
| Emit and link an RSS feed from the listing |
P3 |
S |
Quarto listings support feed: true. |
6 · Accessibility & UX polish
| Add a custom 404 page |
P3 |
S |
|
Verify WCAG AA contrast for the academic blue #1a4f8a |
P3 |
S |
On both light/dark backgrounds. |
Show a “last updated” stamp on content pages |
P3 |
S |
✓ done — date-modified: last-modified + date-format: "D MMMM YYYY" added globally to _quarto.yml; shows “Modified: DD Month YYYY” in title block on all pages (uses OS mtime). |
| Add an HTML highlights block above the CV PDF embed |
P3 |
M ★ |
Better for SEO/screen readers; the CV page already self-flags this. |
7 · Maintenance & automation (protect future-you)
Wire make pubs-check into .githooks/pre-push |
P2 |
S |
Block a push when _publications.md is stale. |
| Add a link checker across the 166 entries |
P2 |
M |
e.g. lychee locally or in CI — catches dead DOIs/HAL links. |
Add a git-ignored CLAUDE.local.md with each project’s venv path |
P2 |
S |
For make render-project; CLAUDE.md already suggests this. |
| Optional CI “render check” (build only, replay freeze, no deploy) |
P3 |
M |
Catches breakage on push without reconstructing project envs. |
Add a pre-deploy guard in deploy-ovh.sh |
P3 |
S |
✓ done — checks index.html exists and ≥ 5 HTML files; also fixed wrong /f.bouchet.me comment (no leading /). |
Where this list could live (alternatives)
This ROADMAP.md is the lowest-friction option and plays well with Claude Code. Two alternatives if you outgrow it: GitHub Issues + a Project board (better for linking commits to tasks and tracking status, but more overhead and needs the repo set up for it), or a # TODO section appended to CLAUDE.md (loaded every session, but it bloats the context window — not recommended for a list this long).