Skip to content

feat(perf): Core Web Vitals diukur di LAB — Opsi D ADR-0067, nol data pengunjung - #391

Merged
ahliweb merged 2 commits into
mainfrom
feat/cwv-lab-measurement
Aug 5, 2026
Merged

feat(perf): Core Web Vitals diukur di LAB — Opsi D ADR-0067, nol data pengunjung#391
ahliweb merged 2 commits into
mainfrom
feat/cwv-lab-measurement

Conversation

@ahliweb

@ahliweb ahliweb commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Ringkasan

Mengimplementasikan Opsi D ADR-0067 — pengukuran Core Web Vitals LAB dengan nol data pengunjung — persis sebagaimana §Rekomendasi ADR-nya menyatakan: "Opsi D sekarang, tidak menunggu keputusan atas B". Ini menutup bagian lab dari celah C7 dokumen standar performa & keamanan (docs/awcms/standar-performa-dan-keamanan.md), yang kini ditandai SEBAGIAN DITUTUP — bagian RUM tetap menunggu keputusan pemilik produk, dan status ADR-0067 tidak diubah (Proposed).

Yang mendarat

  • tests/e2e/cwv-lab.e2e.ts — spec di harness E2E Playwright yang SUDAH ada (bukan harness kedua). Mengukur LCP dan CLS halaman /login (permukaan publik yang E2E smoke sudah sentuh, tanpa fixture baru) via PerformanceObserver ber-buffered: true; CLS dihitung per definisi session-window CWV.
  • Ambang = ambang "baik" CWV sebagai konstanta ber-komentar: LCP_GOOD_LAB_MS = 2500, CLS_GOOD_LAB = 0.1.
  • Gerbang env E2E_CWV_LAB=1, dinyalakan job CI e2e-smoke (.github/workflows/ci.yml) pada langkah bun run test:e2e yang sama — mengikuti cara suite dipanggil sekarang.
  • Script bun run perf:cwv:lab (menjalankan spec-nya sendirian terhadap server yang disediakan pemanggil). Bukan baris inventori scripts — ia tidak menjalankan berkas scripts/, kelas yang sama dengan test:e2e; scripts:inventory:check hijau.
  • Adendum 2026-08-05 di ADR-0067 + baris indeks 0067 di docs/adr/README.id.md/README.md + regenerasi i18n-source-hash + changeset minor.

Batas lab-vs-lapangan (batas yang ADR-0067 wajibkan)

  1. Angka lab BUKAN p75 lapangan. Satu mesin, satu jaringan, satu jalankan — detektor regresi ("apakah perubahan ini membuat halaman lebih lambat?"), bukan jawaban atas "apa yang dialami pengunjung kami?". Komentar konstanta dan log per-run menyatakannya eksplisit.
  2. INP tidak diukur dan tidak diklaim — tanpa interaksi pengguna nyata ia tidak bermakna di lab; yang jujur terukur adalah LCP dan CLS.
  3. Gerbang yang tidak berjalan MENYATAKANNYA. Tanpa E2E_CWV_LAB spec mencetak [cwv-lab] SKIP: … (terbukti lokal), bukan lolos senyap; saat berjalan, LCP yang tidak terekam (observer tanpa entry / browser tanpa dukungan entry type) = gagal, bukan lulus.

Verifikasi lokal (build nyata + server boot + Chromium Playwright)

  • Spec sendirian: LCP=116 ms, CLS=0,0000 — lulus.
  • Dalam suite penuh: LCP=176 ms, CLS=0,0000 — 5 passed, 11 skipped (spec ber-seed, tanpa seed lokal).
  • Jalur skip-dinyatakan: mencetak [cwv-lab] SKIP: … lalu 1 skipped.
  • bun run typecheck, bun run check:docs, bun run check:docs:translation, bun run scripts:inventory:check, prettier berkas diubah: semua hijau.

Nol data pengunjung: tidak ada skrip klien, endpoint, tabel, atau sentuhan pada visitor_analytics.

🤖 Generated with Claude Code

… pengunjung

Spec baru tests/e2e/cwv-lab.e2e.ts di harness E2E Playwright yang sudah ada
(bukan harness kedua) mengukur LCP dan CLS halaman /login — permukaan publik
yang E2E smoke sudah sentuh — via PerformanceObserver ber-buffered:true,
dengan CLS dihitung per definisi session-window CWV. Ambang kelulusan =
ambang "baik" CWV (LCP <= 2500 ms, CLS <= 0,1) sebagai batas LAB satu mesin:
detektor regresi, BUKAN p75 lapangan. INP sengaja tidak diukur dan tidak
diklaim — tanpa interaksi pengguna nyata ia tidak bermakna di lab.

Gerbangnya env-gated mengikuti konvensi suite: E2E_CWV_LAB=1 dinyalakan job
CI e2e-smoke pada langkah bun run test:e2e yang sama. Tanpa env-nya spec
MENCETAK pernyataan skip [cwv-lab] SKIP eksplisit (batas ADR-0067: gerbang
lab yang tidak berjalan harus menyatakannya, bukan lolos senyap); saat
berjalan, LCP yang tidak terekam adalah KEGAGALAN, bukan kelulusan.

Ikut mendarat: script perf:cwv:lab (bukan baris inventori — ia tidak
menjalankan berkas scripts/, kelas yang sama dengan test:e2e), adendum
2026-08-05 di ADR-0067 (status tetap Proposed — keputusan RUM/Opsi B milik
pemilik produk), baris indeks 0067 di kedua README ADR + regenerasi
i18n-source-hash, pembaruan baris C7 dokumen standar (SEBAGIAN DITUTUP),
dan changeset minor.

Terverifikasi lokal terhadap build nyata: LCP=116 ms, CLS=0,0000 (spec
sendirian) dan LCP=176 ms, CLS=0,0000 (dalam suite penuh — 5 passed,
11 skipped tanpa seed); jalur skip-dinyatakan terbukti mencetak.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

…:cwv:lab, hash indeks ADR digabung ulang

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ahliweb
ahliweb merged commit 3beee6c into main Aug 5, 2026
10 checks passed
@ahliweb
ahliweb deleted the feat/cwv-lab-measurement branch August 5, 2026 08:28
ahliweb added a commit that referenced this pull request Aug 5, 2026
…rma dijaga empat permukaan (#394)

C5 (#393), C6 (#389), C12 (#390), C14 (pernyataan s-maxage), C15 (ADR-0069)
ditutup dengan pemeriksanya masing-masing; C7 sudah ditutup-sebagian oleh #391.
§8 dimutakhirkan: LCP/CLS kini terukur di LAB (bukan p75 lapangan — batasnya
tertulis), anggaran query menjangkau admin+sitemap, rantai kini 34 gerbang.
Sisa TERBUKA: C3 (kompresi milik-lapisan-lain), C4 (TERBLOKIR eksternal,
divergence ber-reviewDate), C13 (rilis v7.0.0 sedang berjalan), dan bagian
RUM C7 menunggu pemilik produk.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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