Skip to content

v2.28.0 — LLM-as-a-Judge QA + 85-Round Flywheel

Choose a tag to compare

@HomenShum HomenShum released this 20 Feb 11:15
· 1210 commits to main since this release

What's New

LLM-as-a-Judge QA Scoring System

Replaced 120+ regex false-positive patterns with Gemini 2.0 Flash semantic classification. The judge classifies QA issues into 4 categories:

  • genuine_bug — real functional/visual defects
  • design_opinion — subjective design preferences, not bugs
  • screenshot_artifact — compression artifacts misread as issues
  • mock_data — placeholder content flagged as incomplete

Expanded Deterministic Metrics (Layer 1)

7 → 12 boolean Playwright checks:

  • no_layout_shift (CLS post-hydration, Google 0.25 threshold)
  • no_404_resources (static asset 404s)
  • no_slow_resources (>5s load time)
  • no_mixed_content (HTTP on HTTPS)
  • viewport_meta_ok (viewport meta validation)

3-Layer Scoring Rebalance

  • Layer 1 (60%): 12 deterministic boolean metrics — zero variance
  • Layer 2 (30%): Severity rubric on LLM-judged genuine issues only
  • Layer 3 (10%): Legacy P-level taste deductions

QA Score Journey: R50→R85

R50: 56/100 (regex-only era, 120+ patterns)
R78: 85/100 (first LLM judge run)
R82: 82/100 (Layer 1 permanent failures fixed)
R84: 97/100 (judge tuning converging)
R85: 100/100 ✅ (perfect score — all 3 layers maxed)

148-Screenshot Gallery

Full responsive matrix: dark desktop, light desktop, dark mobile, light mobile — covering all 37 routes.

UI Polish (200+ components)

  • Motion-safe animations (111 files)
  • Dark mode gap fixes (research, analytics, narrative, onboarding)
  • Jargon purge (ISO dates, label consistency)
  • Accessibility (focus rings, ARIA labels)

Packages

  • nodebench-mcp@2.28.0 — npm
  • @homenshum/convex-mcp-nodebench@0.10.1 — npm

Key Files

  • scripts/ui/runDogfoodGeminiQa.mjs — Complete scoring engine rewrite
  • .claude/rules/gemini_qa_loop.md — QA loop integration rule
  • public/dogfood/qa-results.json — 85-round score history
  • public/dogfood/screenshots/ — 148 screenshots

Full Changelog: v2.27.0...v2.28.0