forked from Qortal/q-blog
2.3 KiB
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.)
- 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
anyin public props; no@ts-nocheckor 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.