Skip to content

test(seo): enable article schema gate policy for release closeout#2570

Merged
fermatmind merged 1 commit into
mainfrom
codex/article-schema-gate-closeout-policy
Jul 1, 2026
Merged

test(seo): enable article schema gate policy for release closeout#2570
fermatmind merged 1 commit into
mainfrom
codex/article-schema-gate-closeout-policy

Conversation

@fermatmind

Copy link
Copy Markdown
Owner

What changed

  • Updated article release closeout schema/hreflang policy so enabled Article + Breadcrumb gates can complete closeout.
  • Allows FAQ schema closeout only when generated JSON-LD currently contains FAQPage.
  • Allows reciprocal hreflang gate policy while preserving schema/hreflang hold and no_hreflang compatibility.
  • Added focused closeout tests for reciprocal hreflang, FAQPage pass, and FAQ missing blocked states.

Why

Daily bilingual article releases need schema and hreflang to be independent release gates instead of permanent closeout holds, while keeping old held content compatible and keeping articles:seo-gate-rollout as the write authority.

Validation

  • php artisan test --filter=ArticleSeoGateRolloutCommandTest
  • php artisan test --filter=ArticleReleaseCloseoutCommandTest
  • php artisan route:list
  • git diff --check

Intentionally deferred

  • No CMS content writes.
  • No importer default schema/hreflang enablement.
  • No URL Truth, Search Channel, GSC, sitemap/llms, revalidation, deploy, or production writes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cf0d1fec22

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +482 to +484
$hasReciprocalHreflangPolicy = is_array($hreflang)
&& ($hreflang['enabled'] ?? null) === true
&& ($hreflang['policy'] ?? null) === 'reciprocal_counterparts_verified';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Revalidate reciprocal hreflang before closing out

When hreflang_gate_v1 contains this policy but the counterpart has since been unpublished or the marker was copied into schema_json, closeout now treats hreflang as OK without checking the generated alternates. The rollout writer verifies both en and zh-CN alternates and reciprocal links in ArticleSeoGateRollout::validateReciprocalHreflang() (lines 265-299), but this gate only checks the marker, so articles:release-closeout can report success while public SEO no longer emits a reciprocal hreflang pair.

Useful? React with 👍 / 👎.

@fermatmind fermatmind merged commit 1ca13c7 into main Jul 1, 2026
15 checks passed
@fermatmind fermatmind deleted the codex/article-schema-gate-closeout-policy branch July 1, 2026 04:49
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