# 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.