Skip to content

test(fixtures): theme-eval fixture — full contract v2 surface (#261) - #315

Merged
drawmeanelephant merged 3 commits into
drawmeanelephant:mainfrom
BeauBoorman:test/fixture-261
Sep 5, 2026
Merged

drawmeanelephant merged 3 commits into
drawmeanelephant:mainfrom
BeauBoorman:test/fixture-261

Conversation

@BeauBoorman

Copy link
Copy Markdown
Contributor

Extends the existing theme-eval fixture to exercise the full template contract v2 surface: all heading levels h1–h6, GFM tables (alignment, escaped pipes, wide overflow), code fences with/without info strings, warning callout, nested frontmatter (tags + asset_meta), typed metadata, long paragraphs, inline emphasis, cross-format links (.md/.textile/.cook/external), local asset image, thematic break.

Closes #261. CommonMark-safe throughout (zero task lists, zero footnotes — the constraint noted in the issue). Verified rendering through rotkeeper's own pipeline in brutal, textpattern (site-nav slot exercised end-to-end), spooky-dark-xhtml (xmllint-clean), kawaii, and necropolis (v3 $page_type$ self-exercising via page_type: tomb-not-found); footer token provenance made visible via the 0.7.0-fixture sentinel version. Independently gate-verified.

…drawmeanelephant#261)

The fixture predated the template contract v2 wave (drawmeanelephant#299/drawmeanelephant#300/drawmeanelephant#303):
heading depth topped out at h3 (a "Heading 4" section sat on ###),
and no v2 tokens were carried, so themes could pass evaluation
without exercising version/tags/asset_meta or the site-nav slot.

- Extend headings through true h1-h6 with distinct h5/h6 sections
- Add subtitle, tags, asset_meta frontmatter (serialized form verified
  through the real adapter: name — version — author — project — license)
- Add .textile/.cook cross-format link targets alongside .md and
  external (S3 rewrite to .html verified)
- Refresh the contract-check section: v2 tokens, v3 generic hook
  (drawmeanelephant#269, page_type consumer), site-nav placeholder (drawmeanelephant#244), reserved
  $warnings$, stale drawmeanelephant#258 reference corrected to landed
- Stays CommonMark-safe: no task lists, no footnotes, no raw HTML

Verified end-to-end: render through theme-brutal (v2 footer tokens),
theme-textpattern (<site-nav> filled from rotkeeper.yaml nav), and
theme-spooky-dark-xhtml under render_profile xhtml (xmllint-clean);
bash rotkeeper.sh test passes 3/3 layouts (5118s) on pin 3f05bac.
Adversarial-gate follow-up (MERGE-SHAPE verdict, three trivia minors):

- Fix double-dollar typo: unknown-token example reads $tokens$, not $tokens$$
- Add page_type: tomb-not-found frontmatter plus a contract-check bullet,
  so rendering through theme-necropolis self-exercises the v3 generic hook
  (verified: data-page-type="tomb-not-found" on body; output/404.html keeps
  its own literal 404, so the scene CSS stays owned by 404.md)
- Bump asset_meta.version to 0.7.0-fixture so footer provenance is visible
  by default (page stamp distinguishes from the engine's v$version$ 0.7.0)

Commit-body phrasing note (gate nit): the fixture body contains no raw
HTML by construction — HTML-profile output keeps the page's bytes free of
author-authored markup; under render_profile xhtml the page is xmllint-
clean, so no fail-closed rejection applies. (Ammended wording from the
first commit's "no raw HTML present" line.)

Re-verified through the pinned binary (commit 3f05bac...): render via
theme-brutal (ASSET shows 0.7.0-fixture, engine stamp v0.7.0) and via
theme-necropolis (v3 hook live on body).
@BeauBoorman

Copy link
Copy Markdown
Contributor Author

CI note: this PR is from a first-time fork contributor, so GitHub holds workflow runs until approved — if the checks panel shows 'waiting', a maintainer click on 'Approve and run' will start the matrix (ubuntu + macos). Local verification already ran the full render pipeline across five themes; the gate report is on our side if useful.

@drawmeanelephant
drawmeanelephant merged commit afab3ea into drawmeanelephant:main Sep 5, 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.

Sample content fixture for template/theme evaluation

2 participants