← all branches

claude/priceless-faraday-314fa0

safeviewing older commit
b1d323d · incrementalPR #293reviewed 2026-07-11 03:58 UTC0H · 0M · 1L · 2I
The branch
Purpose
Replace GHA seo-checks.yml gate with advisory SEO lens in Loop C review panel per team decision (Alex): SEO checks should be part of code review, not CI, and web-only.
Goal
Move SEO enforcement from a blocking CI gate to an advisory review-panel lens that self-skips on non-web PRs
Sub-goals
  • SG-1: Remove seo-checks.yml and lighthouse-budget.json from GHA
  • SG-2: Add 'seo' lens to review.lenses in loops-engine/config.json
  • SG-3: Define SEO lens behavior in review-panel/SKILL.md (web-only gate, advisory severity cap)
  • SG-4: Update docs (e2e-testing.md, measurement-and-cadence.md, autonomous-operating-model.md, content-pipeline.yml)
The changes (whole branch)
What
Deleted seo-checks.yml + lighthouse-budget.json; added seo lens to config and SKILL.md; updated docs. Latest commit (b1d323d7) splits SEO lens checklist into sub-bullets and clarifies previewUrlTemplate vs web SEO URL distinction.
Why
SEO gate was non-required, ran on all PRs (including platform/domain), and blocked CI. Moving it to the review panel makes it advisory, web-only, and contextual.
Areas
.claude/rules+159.claude/skills+1510.github/workflows+11docs+1312e2e/web+22scripts+62
Blast
12 files, +52/-36 across .claude/, docs/, scripts/, e2e/, .github/ — all documentation/config, no production code
docs-only loop-infrastructure
CI / checks· statusCheckRollup not accessible via PATcoderabbit· no .coderabbit.yaml present

Findings · 3

improvement3

low

'Note' callout in Deterministic cross-check buries the action instruction

.claude/skills/review-panel/SKILL.md

The bold Note: sentence about the Vercel project distinction should be a separate sub-bullet so the action ('run seo-assert.mjs') and the caveat are independently scannable.

info

Preview URL note could reference slug-derivation rule

.claude/skills/review-panel/SKILL.md

The note warns not to reuse review.previewUrlTemplate but doesn't say how to derive the slug. A one-phrase pointer ('slug = branch name slugified: / → -, lowercase') would make it self-contained.

info

Links bullet loses 'broken-link' qualifier

.claude/skills/review-panel/SKILL.md

Original: 'a static, best-effort broken-link pass'; new: 'a static, best-effort pass'. Without 'broken-link', 'pass' reads as a verdict rather than a check type.

History · 4 commits

  1. 070e3e0safeincremental0H · 0M · 1L2026-07-11 04:04
  2. b1d323dsafeincremental0H · 0M · 1L2026-07-11 03:58current
  3. d350e7aneeds attentionincremental0H · 2M · 4L2026-07-11 03:53
  4. 899fda3needs attentionfull0H · 5M · 4L2026-07-11 03:41