Skip to content

feat: add SEO preflight rules (seo.* family)#103

Merged
yasserstudio merged 2 commits into
mainfrom
feat/seo-preflight-rules
Jun 22, 2026
Merged

feat: add SEO preflight rules (seo.* family)#103
yasserstudio merged 2 commits into
mainfrom
feat/seo-preflight-rules

Conversation

@yasserstudio

Copy link
Copy Markdown
Owner

Summary

  • 7 new preflight rules under the seo.* family — all default to info severity (non-gating, advisory only)
  • seo.title-length — flags titles outside the 30-150 char optimal range for Google Shopping
  • seo.title-brand — checks that the brand name appears in the product title
  • seo.title-attributes — checks that color/size appear in the title when set on the product
  • seo.description-length — flags descriptions outside the 500-5000 char range
  • seo.title-equals-description — catches identical title and description (wasted SEO)
  • seo.description-has-brand — checks brand is mentioned in the description
  • seo.image-placeholder — detects placeholder/default image URLs
  • Adds color and size to the ProductAttributes type

Users can promote any rule to warning or error in .gmcpreflightrc:

{ "rules": { "seo.title-length": "warning" } }

Test plan

  • 21 new tests for all 7 rules (positive, negative, absent-field cases)
  • Registry test updated to include seo family
  • Existing CLI preflight + migrate tests pass with enriched fixtures
  • Build, typecheck, lint all green

🤖 Generated with Claude Code

https://claude.ai/code/session_01W3y7L3ZFJnJPcN2ZhGXmXQ

New rule family: seo.title-length, seo.title-brand, seo.title-attributes,
seo.description-length, seo.title-equals-description,
seo.description-has-brand, seo.image-placeholder.

All default to info severity (non-gating). Checks optimal title/description
length for Google Shopping, brand presence, differentiating attributes in
title, identical title/description, and placeholder image detection.

Also adds color and size fields to ProductAttributes type.
@yasserstudio yasserstudio force-pushed the feat/seo-preflight-rules branch from 06d4ece to 62986c1 Compare June 22, 2026 16:03
@yasserstudio yasserstudio merged commit 9b737de into main Jun 22, 2026
1 check passed
@yasserstudio yasserstudio deleted the feat/seo-preflight-rules branch June 22, 2026 16:03
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