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:
- File-level grep before render
- Token-level scrub inside fenced code blocks in rendered HTML
- 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 isperceptron-explainer.md— behaviour-first, mechanism held back2026-04-15-librarian.md— the librarian architecture post2026-04-15-image-observer.md— standing-wave image observer2026-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.