site/ ships with the copy slots still filled. plan/site.md's "Brand copy" item tracks that in general; this is the concrete list of what a person reads, and the one place the filler leaves the page body and travels.
The filler is also the social card. site/src/data/terms.ts:5 and privacy.ts:5 are PH() strings — ⟦the susurrous rules a nightjar agrees to by using the gantry at all⟧ and ⟦what the quokka keeps, what it loses, and which yttrium it forgets on purpose⟧. site/src/pages/terms.astro:5 passes that same intro as the layout's description, and PageHead.astro writes it into meta description and og:description. The same holds for /privacy/ (privacy.astro:5), /get-started/ (get-started.astro:5, whose three steps at get-started.ts:8-10 are filler too), /404 (404.astro:5), and the /features/, /architecture/ and /about/ index and [slug] pages, which pass a section intro or a subpage lede. So pasting one of those URLs into a chat or a post renders a card of ⟦…⟧ text. plan/site.md records the description-equals-the-visible-line rule as deliberate ("a card and a page cannot disagree"), which is why this follows from the filler rather than from a bug.
/privacy/ and /terms/ are the two pages site/tests/check-required-pages.mjs:12 requires exist and be linked from the front-page footer, and their whole body is one filler paragraph each (privacy.ts:7, terms.ts:7).
Copy that is not marked as filler. These carry no PH() wrapper, so the grep in site/src/data/filler.ts:13 does not surface them:
site/src/data/architecture.ts:140,:149,:158— the entire body of/architecture/management/,/architecture/operations/and/architecture/cli/is one line each:"TODO document agentic visibility dash","TODO document health of the PDS","TODO document local CLI commands for managing the PDS".site/src/data/about.ts:20— the body of/about/project/is"I was bored.".site/src/data/architecture.ts:105-106—title: "Account lifeycle"andlede: "Managing the account lifecycle accounts". The lede is also this page'smeta description.
The six shipped images say so on their face. site/src/assets/features/{accountability,accounts,susurrus}.png and site/src/assets/architecture/{loom,nightjar,tussock}.png are each 1200x675 and render the page's name in guillemet-brackets over the line placeholder image — replace me. SubpageBody.astro:41 serves them at widths 640 and 1200, so the text is legible at full size on /features/* and /architecture/*.
Markdown in the subpage bodies ships literally. site/src/components/SubpageBody.astro:38,45 render page.lede and each body paragraph as text inside <p>, with no markdown pass. architecture.ts writes prose in markdown — `did.bot` PDS, _stop enforcing_ — so backticks and underscores appear on the page as characters.
Suggested fix: needs a decision, and most of it is a human's to make. Per CLAUDE.md's Copywriting section this issue deliberately names what is there and proposes no replacement text. The one part that is not a copy call: whether a filler intro/lede should still be the og:description of a page that is publicly reachable.
Filed by Claude (agent) from a static read of main at 0771cdbb. No build or tests were run.
The travelling half is fixed: be32a483... — be3c58e5 makes a page whose own line is still filler fall back to
siteDescriptionfor its meta and og:description, so no ⟦…⟧ reaches a social card, and the three/architecture/TODO bodies are PH() placeholders that the filler grep finds. Still unwritten and unmarked:about.ts:20("I was bored.") andarchitecture.ts:105-106("Account lifeycle" / "Managing the account lifecycle accounts"). Markdown in the subpage bodies still renders literally, and the six placeholder images still ship.