forked from Qortal/q-blog
54 lines
2.3 KiB
Markdown
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.
|