Wiring the Bench pipeline end-to-end

Today was mostly plumbing.

Goal was simple: make Bench entries behave like first-class citizens without leaking into posts, tags, or RSS.

What I touched: - template routing by type - bench-only buckets - auto-generated indexes - failure modes (missing type)

What broke: - snippets didn’t get an index (because I never declared them) - bench buckets were plural while types were singular - template selection was duplicated and messy

Fixes: - made Bench types explicit (note, devlog, idea, snippet) - enforced type for anything under /bench/ - centralized routing via BENCH_TEMPLATES - pluralized only at the URL layer (/bench/notes/, /bench/snippets/)

Things I like about the current state: - nothing is implicit - no silent fallbacks for Bench content - indexes only appear when content exists - it’s obvious where to add a new type

Things I’m unsure about: - whether snippets should appear on the Bench homepage - whether devlogs should ever have excerpts - if Bench should get its own RSS feed (leaning no)

Next steps: - finish bench.css - decide what “promotion” from Bench → Project looks like - write 5–10 real notes/snippets to see where friction shows up

Stopping here before I overfit.