← all branches

claude/priceless-faraday-314fa0

needs attentionviewing older commit
899fda3 · fullPR #293reviewed 2026-07-11 03:41 UTC0H · 5M · 4L · 3I
The branch
Purpose
Move SEO quality checks out of the CI gate (seo-checks.yml) into the advisory code-review panel as a web-only lens, per team decision.
Goal
Delete the blocking (but non-required) seo-checks.yml GHA workflow and define an equivalent seo lens in review-panel that self-skips on non-web PRs and caps severity at medium.
Sub-goals
  • SG-1: Delete seo-checks.yml and lighthouse-budget.json
  • SG-2: Add seo lens to review-panel/SKILL.md with web gate + advisory severity cap
  • SG-3: Add seo to config.json review.lenses
  • SG-4: Update all reference docs (e2e-testing.md, autonomous-operating-model.md, measurement-and-cadence.md, content-pipeline.yml checklist)
The changes (whole branch)
What
Removed seo-checks.yml (83-line GHA workflow) and lighthouse-budget.json (11 lines). Added seo lens definition to review-panel/SKILL.md. Added "seo" to loops-engine/config.json review.lenses. Updated 5 documentation files to reference the new lens instead of the deleted workflow.
Why
The CI gate ran seo-assert.mjs against apps/web unconditionally — including non-web PRs. Blocking CI gates are high-friction. Moving to an advisory review lens makes SEO checks web-only, advisory, and surfaced as review findings rather than blocking checks.
Areas
.claude/rules+32.claude/skills+63.github/workflows+184docs+98scripts+62
Blast
10 files, +25/-110 lines across config, docs, and workflow definitions. No production code changed.
non-required CI gate removed seo lens advisory-only LOOP_REVIEW_ENABLED gap until dev-ops host is live
ci· No CI checks registered yet for this PRcoderabbit· No .coderabbit.yaml found

Findings · 11

correctness2

medium

Stale seo-checks.yml reference in e2e/web/marketing.spec.ts not updated

e2e/web/marketing.spec.ts:10

Line 10 reads: 'SEO metadata ... is intentionally NOT asserted here; it's owned by seo-checks.yml.' The PR deleted seo-checks.yml and moved SEO enforcement to the seo review lens, but this e2e spec comment was not updated. A developer reading this file will be directed to a non-existent workflow. Update to reference the seo review lens (review-panel, advisory), consistent with .claude/rules/e2e-testing.md.

info

Meta description length range inconsistency: seo-assert.mjs (120-165) vs CLAUDE.md / lens (150-160)

scripts/seo-assert.mjs:35

Pre-existing inconsistency now more visible since the two enforcement paths are explicitly paired. A description of 130 chars passes the script but the static lens flags it. Worth reconciling in a follow-up.

security1

info

Confirmed: seo-checks.yml was never a required status check — no merge gate weakened

.github/workflows/seo-checks.yml

Ruleset 9729732 on main lists only 'e2e testing' as required. The deleted technical-seo job was advisory. Removal does not weaken any branch protection. PR claim is accurate.

conventions2

medium

loops.md SSOT not updated — seo lens absent from the canonical lens list

.claude/rules/loops.md:54

loops.md declares itself the SSOT for the loop system. Lines 54-55 still read 'review-panel (multi-agent review: correctness / security / conventions+ADR / test-coverage / improvement)' — seo is absent. Every other updated file (config.json, loop-review/SKILL.md, review-panel/SKILL.md) was updated consistently, but the SSOT itself was skipped.

low

Stale '5 lenses' count in loops.md SSOT (now 6)

.claude/rules/loops.md:35

Line 35 reads 'the review panel's 5 lenses run in parallel instead of queuing 2-at-a-time.' With seo added that is now 6 lenses. With concurrency cap of 5, one lens will queue. Update the prose count.

tests3

medium

Broken-link check removed with no documented successor

.github/workflows/seo-checks.yml

seo-checks.yml ran lycheeverse/lychee-action against apps/web/src/**/*.tsx and apps/web/content/**/*.mdx. Neither scripts/seo-assert.mjs nor the seo lens spec includes link-checking. autonomous-operating-model.md now lists 'broken links' as a seo lens capability, which is inaccurate. Either add link-check to the seo lens or document it as a known gap.

medium

Coverage gap while LOOP_REVIEW_ENABLED is not live — only partially documented in updated rule files

.github/workflows/loop-review.yml:18

The PR body acknowledges that SEO checks are 'available on demand but not yet auto-firing.' This gap is not reflected in the updated measurement-and-cadence.md cadence table or e2e-testing.md. Adding a brief note ('pending LOOP_REVIEW_ENABLED') in the cadence table would prevent confusion.

medium

seo-assert.mjs is optional in the lens spec — static-only review cannot catch runtime regressions

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

The lens marks seo-assert.mjs as optional (only when a preview URL is available). Branches without a Vercel preview never get the deterministic title/canonical/JSON-LD/sitemap checks. This is a deliberate tradeoff but the coverage gap is real: a mistyped canonical or >1 H1 would be missed by static diff-only analysis.

improvement2

low

autonomous-operating-model.md diagram claims 'broken links' coverage that seo-assert.mjs does not provide

docs/autonomous-operating-model.md:20

The ASCII diagram lists 'broken links' under what the seo review lens checks. scripts/seo-assert.mjs has no link-check logic. Either remove 'broken links' from the diagram or add a note that it is a planned capability.

low

measurement-and-cadence.md § Output KPIs still lists 'Lighthouse CI' as the CWV measurement tool

docs/measurement-and-cadence.md:22

Section 1 KPIs reads 'Core Web Vitals (LCP, CLS, INP) — Lighthouse CI'. The Lighthouse CI step was removed with seo-checks.yml. The parenthetical implies an automated gate still exists.

seo1

info

SEO lens self-skip — no apps/web files changed

No apps/web/** files in the diff. SEO lens returns pass.

History · 4 commits

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