Journal — 2026-06-23
Grouped OKF fields in the document-view margin
Regrouped the doc-meta margin (web reading room) so the OKF section holds only OKF-spec fields.
Gotcha (got it wrong twice): demarkus catalog metadata ≠ OKF. Grounded the split in the actual OKF v0.1 spec (GoogleCloudPlatform/knowledge-catalog/okf/SPEC.md), not the demarkus policy doc. OKF v0.1 frontmatter = type (required) + optional title, description, resource, tags, timestamp.
Mapping onto the doc view:
- OKF group:
type(kind),tags(pills),timestamp(← demarkusmodified, "last meaningful change").titlestays the<h1>. - NOT OKF (demarkus catalog/provenance, render outside the OKF box):
statusbadge,version,agent,importance.
The original error was sweeping status/importance into "OKF" while leaving tags/modified out — exactly backwards.
Threading: type was never surfaced in the view model. Added Type to domain.Document (from raw.Metadata["type"] in reading.go), and to both VMs that share the doc-meta template: page (reading_handlers.go) and paneVM (trail_handlers.go — the canvas mirrors page VM). Forgetting the canvas/paneVM copy is an easy miss since doc-meta is shared.
description/resource aren't carried in the demarkus metadata channel, so they're absent from the OKF group for now.
Files: internal/core/domain/document.go, internal/core/service/reading.go, internal/adapter/inbound/web/reading_handlers.go, trail_handlers.go, templates/content.html, templates/page.html (.okf/.meta-head CSS).