this repo has no description

Add site redesign testing plan

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+69
+69
docs/plans/2026-03-03-site-redesign-testing.md
··· 1 + # jon.recoil.org Site Redesign — Testing Plan 2 + 3 + **Date**: 2026-03-03 4 + **Branch**: jon-site-redesign 5 + 6 + ## 1. Build Correctness 7 + 8 + - [ ] `dune build @doc` exits with zero errors 9 + - [ ] All 62 migrated .mld files produce corresponding HTML output 10 + - [ ] No orphaned pages (HTML exists but no .mld source) 11 + - [ ] No broken internal links between pages (cross-references resolve) 12 + 13 + ## 2. Content Integrity 14 + 15 + - [ ] Every blog post (non-index) has an `@published` tag 16 + - [ ] No remaining `@ocamltop` references in any .mld file 17 + - [ ] No remaining `# ` prompt prefixes inside `{@ocaml[` blocks 18 + - [ ] No remaining embedded toplevel output lines (e.g. `val x : int = 1`) inside code blocks 19 + - [ ] `@x-ocaml.requires` tags use comma-separated format (not space-separated) 20 + - [ ] No remaining `@switch` or `@notanotebook` tags 21 + - [ ] Code blocks contain syntactically valid OCaml 22 + 23 + ## 3. Shell Output 24 + 25 + - [ ] Generated HTML pages have `class="odoc jon-shell"` on body 26 + - [ ] Header contains nav links (blog, notebooks, projects, reference) 27 + - [ ] Footer contains "jon ludlam" 28 + - [ ] Extension CSS is referenced in `<head>` 29 + - [ ] Extension JS is referenced at end of `<body>` 30 + - [ ] KaTeX CSS/JS present on pages that use math 31 + - [ ] HTML is well-formed (no unclosed tags) 32 + 33 + ## 4. Interactive Cells 34 + 35 + - [ ] `<x-ocaml>` elements present in Foundations notebook pages 36 + - [ ] `<x-ocaml>` elements present in blog posts with interactive code 37 + - [ ] x-ocaml.js script tag present in pages with interactive cells 38 + - [ ] Cells have correct attributes (run-on, mode, etc.) 39 + - [ ] x-ocaml runtime loads without JS errors (requires worker + universe) 40 + - [ ] Cells execute OCaml code and display output (requires worker + universe) 41 + - [ ] Merlin integration works (autocomplete, hover types) 42 + 43 + ## 5. OxCaml Compatibility 44 + 45 + - [ ] Full build succeeds under OxCaml switch (5.2.0+ox) 46 + - [ ] x-ocaml worker compiled with OxCaml 47 + - [ ] All code examples in notebooks compile under OxCaml 48 + - [ ] OxCaml-specific features (local_, unboxed, etc.) work in interactive cells 49 + 50 + ## 6. Regression / Parity with Old Site 51 + 52 + - [ ] All blog posts from old site are present in new site 53 + - [ ] All Foundations notebook chapters (1-11) are present 54 + - [ ] OxCaml notebook content is present 55 + - [ ] Static assets (jon.jpg) are served correctly 56 + - [ ] RSS/Atom feed generates valid XML with correct entries 57 + 58 + ## Automation Status 59 + 60 + | Area | Automatable Now | Blocked On | 61 + |------|----------------|------------| 62 + | Build correctness | Yes | — | 63 + | Content integrity (grep checks) | Yes | — | 64 + | Content integrity (OCaml syntax) | Partially | Need to parse code blocks out of .mld | 65 + | Shell output (HTML structure) | Yes | — | 66 + | Interactive cells (presence) | Yes | — | 67 + | Interactive cells (execution) | No | Universe + worker deployment | 68 + | OxCaml compatibility | No | OxCaml switch setup | 69 + | RSS feed | No | Feed generation not implemented yet |