- Empty/all-comments manifest.yaml is the empty archive, not a fatal
parse error (AUDIT §3.11)
- Backlinks normaliseUrl strips index.html like SimilarLinks, so links
to canonical directory URLs invert again; Stats normUrl updated in
lockstep (§3.12)
- PDF viewer file= query value percent-encoded (hand-rolled RFC 3986
encoder; network-uri is not a dependency) (§3.13)
- Photography feed thumbnails embed for flat singles and series
children, not just directory entries (§3.14)
- Marks trust is Maybe Int: missing confidence/evidence collapses the
figure to the bare frame as documented, instead of a literal
"0 TRUST"; result-shape glyph centers when no score (§3.15)
- Unknown catalog categories fold into one Other bucket; medians take
the mean of middle elements; protocol-relative URLs excluded from
backlinks; @string/@comment/@preamble skipped in BibTeX parsing;
watch-staleness of the once-per-process archive reads documented;
stale comments fixed (§3.16, §3.9)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Extends the Phase-1 monogram mark system to every long-form content
type (essays, blog posts, poems, fiction, music) and introduces a
coverage audit so gaps are visible.
* build/Marks.hs gains hasMonogram (predicate), monogramSvgFieldFor +
hasMonogramFieldFor (for explicit-path callers like the /build/ and
/stats/ pages). Contexts.hs exports hasMonogramField as a siteCtx
boolean so templates can conditionally render the slot without
emitting an empty <div>.
* essay.html, blog-post.html, reading.html: hoist the frontmatter
block out of <main id="markdownBody"> so the monogram + epistemic
marks render as wrapper chrome rather than indexable prose; left
+ right mark slots are now unconditional (CSS handles the empty
state) so the layout is grid-stable across pieces.
* templates/partials/item-card.html: optional monogram chip on cards
(item-card--has-monogram modifier), gated on $has-monogram$ so
monogram-less pieces stay flush.
* build/Stats.hs grows a "Marks coverage" telemetry section: per-type
pieces / monogram / epistemic-figure counts + a coverage rollup,
rendered between epistemic and output on /build/.
* tools/audit-marks.py: coverage report (ASCII table) walking
content/**/*.md, plus a pre-commit hook at
tools/hooks/pre-commit-marks.sh that runs the same scan against
newly-staged .md files. New `make audit-marks` runs the report
manually; the hook gates commits.
* static/css/marks.css: layout for the new frontmatter slots and the
item-card monogram chip.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>