Skip to content

Give every page a meta description and test SITE-013 - #8

Merged
Protonmatter merged 1 commit into
mainfrom
fix/meta-descriptions
Aug 18, 2026
Merged

Give every page a meta description and test SITE-013#8
Protonmatter merged 1 commit into
mainfrom
fix/meta-descriptions

Conversation

@Protonmatter

Copy link
Copy Markdown
Owner

Independent of #6 and #7. Targets main directly.

What

SITE-013 asks every page to declare a meta description. Two of eight did. It was the last requirement in the specification with no test, and a test written against the old state would have failed on six pages, which is presumably why nobody wrote one.

Page Before After
index.html, beta.html had one unchanged
solar-system.dc.html none 157 chars
junocam-explorer.dc.html none 137 chars
junocam-deck.dc.html none 132 chars
pocket-planetarium.html none 132 chars
the-moons.dc.html none 127 chars
junocam-poster.dc.html none 118 chars

The copy is drawn from what the README already says each page contains, so it describes the real thing rather than inventing a pitch.

The test

Checks presence, and rejects anything under 40 characters. A description short enough to be a placeholder passes a presence check while telling a search result or a shared link nothing. The shortest genuine one here is 118 characters, so the floor has plenty of room and is not tuned to the current content.

Confirmed it fails when a description is removed, naming the offending page.

Checked the descriptions actually reach the browser

The .dc.html pages hold their head content in a <helmet> block that the runtime rewrites into the document on boot, so a static <meta> in the head could plausibly have been stripped or duplicated. It is not: exactly one survives on each page, with the right content.

/solar-system.dc.html    {"count":1,"content":"Thirteen slides on the Sun, the eight planets and "}
/junocam-poster.dc.html  {"count":1,"content":"A printable 18 by 24 inch sheet on JunoCam at Jupi"}
/pocket-planetarium.html {"count":1,"content":"The Pocket Planetarium prototype: a scroll-driven "}

Result

  • npm test: 22/22 validation, traceability OK, 104/104 browser, 0 failures
  • SITE-013 no longer appears in the traceability report as untested

With #7 merged, the report will have no uncovered requirements at any level.

The level stays SHOULD

Every page now satisfies it and it is covered, so it is no longer an unkept promise. Raising it to MUST would change what the gate enforces, which RFC 0004 establishes needs its own proposal. Say the word and I will write it.

SITE-013 asks every page to declare a meta description. Two of the eight did.
It was the last requirement in the specification with no test, and a test would
have failed, which is presumably why it was never written.

Adds descriptions to the six pages without one, drawn from what the README
already says each page contains, and adds the check. The check also rejects a
description under 40 characters: one short enough to be a placeholder passes a
presence test while telling a search result or a shared link nothing. The
shortest real description here is 118 characters, so the floor has room.

Verified the descriptions survive into the live DOM rather than only existing in
the source: the deck runtime rewrites <helmet> into the head on boot, so a static
head tag could plausibly have been dropped or duplicated. Exactly one survives on
each page.

Confirmed the test fails when a description is removed.

The level stays SHOULD. Every page satisfies it and it is now covered, so it no
longer shows as an untested requirement. Raising it to MUST would be a change to
what the gate enforces, which RFC 0004 establishes needs its own proposal.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@Protonmatter
Protonmatter merged commit dfdea05 into main Aug 18, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant