Sessions

Session Notes — April 15, Library Scaffold

Scaffolding the research site itself. Leak scanner first, pipeline second, theme third.

What happened

Today the research library got its own scaffold at D:\0000_VINE_RESEARCH_SITE\. Separate repo, outside vine-demo, deliberately so nothing the main codebase does can accidentally ship here.

The shape

A single-file build.py pipeline — markdown-it-py in, Jinja2 + Pygments through the middle, plain static HTML out. No runtime, no DB, no JS. Server-side that's an nginx alias rule; nothing else needs to be running for the library to stay reachable.

Why leak scan first

The crown-jewel terms have to be unpublishable by design, not by discipline. The leak scanner is the first thing built and the first thing tested — before the pipeline, before the theme, before the first article. Any file containing one of the forbidden tokens is hard-blocked; the post-build verify walks the rendered tree again and deletes public/ entirely if anything slipped through.

Three layers, belt-and-braces:

  1. File-level grep before render
  2. Token-level scrub inside fenced code blocks in rendered HTML
  3. Tree-level grep after render — if anything matches, public/ is gone

Why no search

I started with Lunr in the plan and immediately got called out — "this is all search engine again dear?" Right call. This is a library, not a search engine. Tag chips and curated navigation is the whole interface. If readers want search they can press Ctrl-F on a topic page.

What's seeded

  • welcome.md — what this library is
  • perceptron-explainer.md — behaviour-first, mechanism held back
  • 2026-04-15-librarian.md — the librarian architecture post
  • 2026-04-15-image-observer.md — standing-wave image observer
  • 2026-04-15-session-1.md — this file

Five entries, enough to see if the design holds. Tomorrow's job is running the build and looking at what it did wrong.