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

54 lines
2.3 KiB
Markdown

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