Skip to content

docs/hrx: fix stray h1 headings (SEO); site.py: one h1 per page - #260

Merged
bong-water-water-bong merged 1 commit into
mainfrom
seo-hrx-h1
Oct 1, 2026
Merged

bong-water-water-bong merged 1 commit into
mainfrom
seo-hrx-h1

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

The daily SEO check in #traffic-report flagged https://1bit.gg/hrx.html: it had 4 <h1> elements. Wrapped lines in docs/hrx.md that start with #36, #39, #40 render as headings (python-markdown needs no space after #).

🤖 Generated with Claude Code

Wrapped lines in docs/hrx.md starting with '#36', '#39', '#40' became
<h1> headings (python-markdown needs no space after '#'), so hrx.html
had 4 h1s and the daily SEO check flagged it. Prefix them with 'PR'.
tools/site.py now fails the build when a page has other than one h1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

36 - Partially compliant

Compliant requirements:

  • The site takes on the 1bit.MONSTER site's template
  • The blog is cleaned up with new posts on the move to 1bit engine
  • The template includes light modern-minimal tokens and their dark mode
  • The template includes animated relay mark, top bar with light/auto/dark switch
  • The template includes centered hero with the latest post, site cards, blog log, article column, and three-part footer
  • Docs get a sidebar layout in the same tokens
  • Pages include home, overview.html, docs.html, each doc, blog.html, each post, feed.xml, 404.html
  • New posts include "1bit.MONSTER is now 1bit engine", "Prefill on HRX, decode on Vulkan, one KV cache", "The first week of 1bit engine"
  • Blog cleanup includes listing 15 old posts worth keeping in blog/archive.tsv
  • copyright.py covers *.js and *.svg and exempts images
  • pages.yml rebuilds on blog/ changes

Non-compliant requirements:

  • None

Requires further human verification:

  • None

39 - Partially compliant

Compliant requirements:

  • Moves third_party/zinc from c50b4add3402 to upstream main b9123c649f81
  • Upstream commits include various performance improvements and fixes for ROCm and Vulkan

Non-compliant requirements:

  • CI has no GPU; requires manual verification on Strix Halo

Requires further human verification:

  • Manual verification on Strix Halo required for performance claims

40 - Partially compliant

Compliant requirements:

  • third_party/laya: 1e28ac20c089 -> 23a17522aa49 (NandhaKishorM/laya main)
  • config/laya.json revision: aa8c91ca088e -> 55cf4c4ebb4e (convaiinnovations/laya)

Non-compliant requirements:

  • Requires scripts/fetch-laya.sh verification and Laya tests

Requires further human verification:

  • scripts/fetch-laya.sh verification and Laya tests required
⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

SEO Compliance Check

The new SEO compliance check in tools/site.py ensures that each HTML page contains exactly one <h1> element, which is important for SEO. This prevents accidental multiple <h1> tags that could be introduced by markdown rendering of lines starting with #<number>. The check is implemented using a regular expression to count <h1> tags and exits with an error message if the count is not exactly one.

# one h1 per page (SEO): a line starting "#36 ..." in a doc renders as a stray h1
h1 = len(re.findall(r"<h1[\s>]", page, re.I))
if h1 != 1:
    sys.exit(f"{name}.html has {h1} <h1> elements; start no doc line with '#<number>'")
Markdown Heading Fix

The lines in docs/hrx.md that previously started with #36, #39, and #40 have been updated to start with "PR #36", "PR #39", and "PR #40" respectively. This prevents these lines from being rendered as <h1> elements in the HTML output, which would violate the SEO requirement of having only one <h1> per page.

- PR #36 skips CONTs of fresh contiguous results in `src/models/zaya.cpp` (views keep theirs: on HRX
  their consumers take slower strided paths), bitwise the same output: +2.4%.
- PR #39 runs the CCA convolution (Q/K concat, conv-state update, depthwise conv, grouped 2-tap conv
  and biases, ~35 graph nodes) as one dispatch (`zaya.cca_conv.decode_f32`): 72 -> 81 tok/s.
- PR #40 runs the CCA query/key mixing and per-head norms (~30 nodes) as one dispatch
  (`zaya.cca_qk_norm.decode_f32`): 81 -> 90 tok/s.
PRs #39 and #40 accumulate in their own order, so output is not bitwise the same; teacher-forced top-1
against the FP32 model stays 69/96 and batch-1 perplexity moves 33.31 -> 33.49 -> 33.45 (CPU backend

@context7

context7 Bot commented Oct 1, 2026

Copy link
Copy Markdown

Docs7 for 1bit-monster/engine

Result Status Action
Deployment ➖ Not used —
Content review ⚠️ Did not finish. View run

Commit 7e76fd7

@bong-water-water-bong
bong-water-water-bong merged commit ef10646 into main Oct 1, 2026
11 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the seo-hrx-h1 branch October 1, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant