Shareability + crawlability hygiene pass — one atomic <SiteHead> (OG/Twitter + canonical + JSON-LD), robots.txt, sitemap

task-shareability-crawlability-hygiene

task confidence inferred status backlog 2026-06-21 owner sveltekit-engineer
source log-auditor — surfaced recording DEC-0073 (visibility/GTM floor) as the second P0 "Now" move, grounded in the verified in-repo audit (OG/Twitter/canonical/robots/sitemap/JSON-LD all absent). Includes a ground-truth correction VERIFIED this session against packages/site/package.json — @astrojs/sitemap is NOT a declared dependency of @dossier/docs (the audit's "already in the lockfile" claim was a transitive ghost). Board globbed before filing — no open task covered metadata/crawlability hygiene.

Shareability + crawlability hygiene pass

The second P0 "Now" move of the visibility floor (DEC-0073) — the cheap, build-once table-stakes that the verified audit found absent on every surface (OG/Twitter cards absent everywhere, canonical absent on all SvelteKit routes, robots/sitemap/JSON-LD absent).

Scope

Ground-truth correction (verified this session)

The audit claimed @astrojs/sitemap was "already in the lockfile." That is a transitive ghostpackages/site/package.json (the @dossier/docs package) declares only Starlight, the Vercel adapter, @dossier/design, @dossier/okf, @dossier/okf-view, fonts, and astro. It is NOT a declared dependency and must be added explicitly. Do not assume it is present.

Why a task, not a fix-in-place

A real multi-surface build (a shared head component, JSON-LD modeling, a static robots/sitemap, a sitemap integration, an OG image) requiring the Principal SvelteKit Engineer's, Astro Starlight Engineer's, and Principal UX Engineer's judgment — not a one-token hygiene fix. confidence: inferred (agent-derived from DEC-0073's named "Now" roadmap + the verified audit).

Board globbed before filing — no open task covered metadata/crawlability hygiene.