Skip to content

Add CI gate enforcing per-page description: front matter#109

Merged
jonfroehlich merged 1 commit into
mainfrom
chore/content-lint-seo
Jun 23, 2026
Merged

Add CI gate enforcing per-page description: front matter#109
jonfroehlich merged 1 commit into
mainfrom
chore/content-lint-seo

Conversation

@jonfroehlich

Copy link
Copy Markdown
Member

Makes the SEO convention self-sustaining so new content (and in-flight branches) can't regress to the generic card.

Stacked on #108 (base = feat/seo-og-backfill) so its diff is just the new tooling and CI runs green. GitHub will retarget this to main automatically when #108 merges.

What

  • scripts/check_seo_frontmatter.py — fails if any published page lacks description:. Exempts drafts (nav_exclude:/search_exclude:) and contributor/deprecated docs. image: is advisory — it only reminds when an MP4-hero page has no poster.
  • .github/workflows/content-lint.yml — runs the check on every PR. Separate from the deploy workflow, so a content miss blocks a merge but never the live site. Future home for the Standardize code-block formatting and enforce it in CI #99 code-block lint.
  • website-dev.md — new-page front-matter template + "this is required" note.
  • scripts/README.md — documents the new script.

Verified locally

  • Passes (exit 0) against the backfilled tree (85 published pages).
  • Fails (exit 1) on a synthetic page with no description:.

🤖 Generated with Claude Code

Adds scripts/check_seo_frontmatter.py and a "Content lint" GitHub Actions
workflow (runs on pull_request) that fails a PR if any published page is missing
`description:`. Kept separate from the deploy workflow so a content miss blocks a
merge but never the live site. Drafts (nav_exclude/search_exclude) and contributor
docs are exempt; `image:` is advisory (reminds when an MP4-hero page has no poster).

Documents the authoring template + enforcement in website-dev.md and adds the
script to scripts/README.md. This makes the SEO convention self-sustaining for all
new content and in-flight branches.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jonfroehlich jonfroehlich changed the base branch from feat/seo-og-backfill to main June 23, 2026 12:40
@jonfroehlich jonfroehlich merged commit 2889bed into main Jun 23, 2026
1 check passed
@jonfroehlich jonfroehlich deleted the chore/content-lint-seo branch June 23, 2026 12:41
@jonfroehlich jonfroehlich mentioned this pull request Jun 24, 2026
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