- Library page no longer hard-depends on content/library.md; deleting
it degrades to no intro block (AUDIT §2.8)
- primaryPortalOf accepts scalar comma-form tags via getTags, matching
the tag system (§2.9)
- allContent gains me/ and memento-mori/ so their outgoing links join
the backlinks graph; photography exclusion now documented (§2.10)
- Paginated tag pages partition AND sort by the same revision-aware
display date — cross-page order is monotone again (§2.11)
- New stripPrefixRoute replaces gsubRoute at 17 call sites: prefix-only
stripping, no mid-path mangling; route inventory verified identical
(§2.15)
- random-pages uses canonical patterns (collection poems randomizable);
pattern literals replaced with Patterns imports; duplicate local
poetry patterns deleted; flat/collection poetry rules merged (§2.17)
- noResult instead of empty-list/fail for tagLinksField, dotsField,
abstract/description/summary/bibliography/further-reading, plus the
confidence-trend, overall-score, has-score, has-movements, and
movement-audio fields — no more empty wrappers or [ERROR] log noise
for legitimately-absent values (§2.17)
- tagItemCtx composes siteCtx, so monograms render on tag pages (§2.17)
- readingTime ceilings (399 words -> 2 min); authorSlugify comment
fixed to match behavior, code untouched for URL stability; stale
portal-count comments corrected (§2.17)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>