Files
q-blog/docs/QUALITY_CHARTER.md
2025-08-21 16:40:49 -04:00

2.3 KiB

Q-Blog — Quality Charter (Patch 0)

Generated 2025-08-16 23:43Z

Purpose

Define the quality bar for Q-Blog 1.0 and the gates that every change must pass. This charter governs scope, acceptance, and sign-off.

North Star

Inclusive, predictable publishing with a resilient, testable UI.

Protected User Journeys

(See docs/USER_JOURNEYS.md; mirrored here for convenience.)

  1. Read posts 2) Create post 3) Edit post 4) Manage blogs 5) Collaborate

Service Level Objectives (SLOs)

  • Reliability: Draft save success ≥ 99.9% P7D; crash-free sessions ≥ 99%.
  • Accessibility: Keyboard-only paths pass for protected journeys; axe critical violations = 0.
  • Performance: P75 LCP < 2.5 s, INP < 200 ms, CLS < 0.1 on modern desktop; mobile budgets P75 LCP < 3.2 s, INP < 250 ms.
  • Usability: No “dead-end” screens; each error has a visible recovery action.
  • Security: Sanitized rich text on save and render; deny-by-default for writes.
  • Testability: Coverage gates start 80/70/70 (lines/branches/functions), trend to 90/80/80 by RC.

Acceptance Gates (per PR)

  • Typecheck strict green; ESLint (incl. jsx-a11y) green; Vitest green.
  • No new any in public props; no @ts-nocheck or blanket disables.
  • For UI changes: keyboard path verified; aria names/states present; screenshots or notes for key states.
  • For data/wire changes: request/response validated (Zod or AJV); error handling user-friendly.
  • Docs updated if behavior/contract changes (ADR or section update).

Measurement & Observability

  • Local/CI: Web Vitals synthetic where feasible; axe in tests; coverage artifacts exported in CI.
  • Runtime (opt-in minimal): Crash/error codes, action breadcrumbs (no PII), vitals sample. Redaction enforced.

Roles & Sign-off

  • Quality Owner (temporary): Project lead (or delegate) confirms gates pass.
  • A11y Owner: Reviews keyboard + axe results for protected journeys.
  • Security Owner: Signs off on sanitization and permission-sensitive changes.

Out of Scope (1.0)

  • Fine-grained per-post ACLs; end-to-end encryption; advanced analytics.

Change Control

Any change to this charter or to protected journeys requires an ADR (see template) and project sign-off.