Enforce frontend correctness and report runtime performance #9

Open
opened 2026-11-01 20:11:30 +00:00 by viacheslavshuka · 0 comments

Frontend builds must detect type and interaction defects. Performance measurements must remain visible without fixed numeric failure thresholds.

Scope

Configure typed Oxlint analysis and compiler diagnostics, Biome formatting, Vitest, Playwright, axe, Lighthouse CI, Knip, and React Doctor. Use explicit commands shared by contributors and CI.

Acceptance criteria

  • Strict checks cover application code, generated types, tests, and configuration. A successful Vite build cannot substitute for type checking.
  • Oxlint enables the selected TypeScript, React/hooks, accessibility, import, and test correctness rules. Biome owns formatting without duplicate lint or assist passes.
  • Installed frontend tools participate in offline commit checks without a download fallback. Formatting changes stop the commit for review and restaging. Hooks never stage changes.
  • Vitest covers local logic and component behavior. Playwright tests built-application workflows. Axe checks accompany keyboard and touch checks where those reveal distinct failures.
  • Knip checks actual entrypoints, dependencies, and intentional generated exports. Findings do not trigger automatic deletion.
  • A pinned full-project React Doctor command runs in CI. Warnings and errors block. Disable its documented telemetry, score, and supply-chain remote features. Leave optional graph scans to Knip.
  • Lighthouse CI and bundle reports measure production cold and warm loads under a recorded network/CPU profile. Record core and deferred calendar costs separately when the calendar exists.
  • Measurement jobs are required to execute successfully. Their results do not apply a 150-KiB budget, an arbitrary replacement budget, or unapproved numerical performance gates.
  • Full applicable frontend tests run on every pull request. Failed functional tests retain their original failure evidence without automatic success-seeking retries.

Validation

Introduce disposable fixtures for a type error, hook misuse, inaccessible control, unused dependency, and React Doctor warning. Check that each appropriate command fails. Compare cold/warm reports and confirm they identify their environment without claiming universal runtime performance.

Dependencies

Frontend builds must detect type and interaction defects. Performance measurements must remain visible without fixed numeric failure thresholds. ## Scope Configure typed Oxlint analysis and compiler diagnostics, Biome formatting, Vitest, Playwright, axe, Lighthouse CI, Knip, and React Doctor. Use explicit commands shared by contributors and CI. ## Acceptance criteria - Strict checks cover application code, generated types, tests, and configuration. A successful Vite build cannot substitute for type checking. - Oxlint enables the selected TypeScript, React/hooks, accessibility, import, and test correctness rules. Biome owns formatting without duplicate lint or assist passes. - Installed frontend tools participate in offline commit checks without a download fallback. Formatting changes stop the commit for review and restaging. Hooks never stage changes. - Vitest covers local logic and component behavior. Playwright tests built-application workflows. Axe checks accompany keyboard and touch checks where those reveal distinct failures. - Knip checks actual entrypoints, dependencies, and intentional generated exports. Findings do not trigger automatic deletion. - A pinned full-project React Doctor command runs in CI. Warnings and errors block. Disable its documented telemetry, score, and supply-chain remote features. Leave optional graph scans to Knip. - Lighthouse CI and bundle reports measure production cold and warm loads under a recorded network/CPU profile. Record core and deferred calendar costs separately when the calendar exists. - Measurement jobs are required to execute successfully. Their results do not apply a 150-KiB budget, an arbitrary replacement budget, or unapproved numerical performance gates. - Full applicable frontend tests run on every pull request. Failed functional tests retain their original failure evidence without automatic success-seeking retries. ## Validation Introduce disposable fixtures for a type error, hook misuse, inaccessible control, unused dependency, and React Doctor warning. Check that each appropriate command fails. Compare cold/warm reports and confirm they identify their environment without claiming universal runtime performance. ## Dependencies - [#7: Create the React application with locked frontend tooling](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/7). Frontend checks need real entrypoints and a production build. - [#5: Configure shared offline commit checks](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/5). Offline hook integration needs the shared hook commands. ## Related work - [#13: Enforce complete validation in the shared Forgejo runner flow](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/13)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
viacheslavshuka/quorum#9
No description provided.