From 5beb8fb640cd825f94761ceb1e5a332de83025b4 Mon Sep 17 00:00:00 2001 From: Bernt Date: Thu, 2 Jul 2026 11:40:57 +0000 Subject: [PATCH] docs: Capability Parity Principle + Definition of Done update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LANDVEX_DESIGN_CONSTITUTION.md: - Added §0a: Capability Parity Principle - All user functions must work on smartphone - Desktop may enhance, never require - Two-question rule for every new feature - Desktop as enhancer (not exclusive) - Examples: Payments, History, KYC - Verification checklist for every new feature - RFC_DEFINITION_OF_DONE.md: - Added criterion #3: Capability Parity - Can be used on smartphone; desktop is enhancement - Total criteria: 14 (was 13) - Exit criteria: must pass all 14 Rationale: quiXzoom targets field workers. Phone is primary or only computer. Phone must always be a full client. Desktop is a more comfortable workspace for some tasks, not a prerequisite. This is a constitutional principle, not implementation. --- docs/design/LANDVEX_DESIGN_CONSTITUTION.md | 53 +++++++++++++++++++ .../foundations/RFC_DEFINITION_OF_DONE.md | 27 +++++----- 2 files changed, 67 insertions(+), 13 deletions(-) diff --git a/docs/design/LANDVEX_DESIGN_CONSTITUTION.md b/docs/design/LANDVEX_DESIGN_CONSTITUTION.md index 63a0a6d78..4590daa97 100644 --- a/docs/design/LANDVEX_DESIGN_CONSTITUTION.md +++ b/docs/design/LANDVEX_DESIGN_CONSTITUTION.md @@ -33,6 +33,59 @@ Landvex har ett enda syfte: omvandla verklighet till handling. --- +## 0a. CAPABILITY PARITY PRINCIPLE + +**Alla användarfunktioner ska kunna utföras från en smartphone.** + +Desktop får utöka upplevelsen, men aldrig vara ett krav. + +### The Rule + +Varje ny funktion måste besvara två frågor: + +| Fråga | Krav | +|-------|------| +| Går detta att göra i appen? | **Ja (obligatoriskt)** | +| Kan desktop göra det bekvämare? | Ja (valfritt) | + +Om svaret på första frågan är nej ska funktionen inte godkännas. + +### Desktop as Enhancer + +Desktop kan vara bättre på: +- Längre historik +- Avancerad filtrering +- Export till PDF/CSV +- Utskrifter +- Stora tabeller +- Bokföringsunderlag +- Flera fönster samtidigt + +Men det är en förbättring av användarupplevelsen — inte en exklusiv funktion. + +### Examples + +**Utbetalningar:** +- 📱 App: Se saldo, se kommande utbetalning, ladda ned PDF, dela PDF, exportera CSV, skicka till e-post, visa årsöversikt +- 🖥 Desktop: Samma funktioner, men dessutom större tabeller, flera rapporter samtidigt, bekvämare utskrift + +**Historik:** +- 📱 App: Filtrera datum, sök, exportera, visa kvitton +- 🖥 Desktop: Exakt samma funktioner, men fler rader på skärmen + +**KYC:** +- 📱 App: Kamera, NFC, Face ID, biometrisk verifiering — bättre i mobilen +- 🖥 Desktop: Visa status + +### Verification + +För varje ny funktion: +- ✅ Kan en användare utföra hela arbetsflödet i appen? +- ✅ Kräver ingen del en dator? +- ✅ Om desktop erbjuder mer, är det en produktivitetsförbättring och inte en exklusiv funktion? + +--- + ## 1. INTRODUKTION Landvex är inte en traditionell webbplats. diff --git a/docs/design/foundations/RFC_DEFINITION_OF_DONE.md b/docs/design/foundations/RFC_DEFINITION_OF_DONE.md index 934cf0b29..ee2f027d7 100644 --- a/docs/design/foundations/RFC_DEFINITION_OF_DONE.md +++ b/docs/design/foundations/RFC_DEFINITION_OF_DONE.md @@ -16,17 +16,18 @@ |---|-----------|-------------|-------------| | 1 | **RFC Structure** | 100% complete per `COMPONENT_TEMPLATE.md` | Self-check + Review | | 2 | **Core Principle** | Supports "From Reality → Decision" | Self-check + Review | -| 3 | **Cognitive Purpose** | Documented — what problem does this solve? | Self-check + Review | -| 4 | **User Expectation** | Documented — what does the user expect? | Self-check + Review | -| 5 | **Interaction Contract** | Documented — events, responses, state machine | Self-check + Review | -| 6 | **Failure Behaviour** | Documented — every failure mode handled | Self-check + Review | -| 7 | **Accessibility Contract** | Documented — WCAG 2.1 AA compliance | Self-check + Review | -| 8 | **AI Contract** | Documented — when AI chooses this component | Self-check + Review | -| 9 | **Token Dependencies** | All tokens listed, no hardcoded values | Automated lint | -| 10 | **Motion** | Follows Motion System v1, reduced motion included | Self-check + Review | -| 11 | **Anti-Patterns** | Relevant anti-patterns listed and avoided | Self-check + Review | -| 12 | **Compliance Matrix** | Updated in same PR | Self-check | -| 13 | **Reference Example** | Working implementation or Storybook story | Implementation | +| 3 | **Capability Parity** | Can be used on smartphone; desktop is enhancement | Self-check + Review | +| 4 | **Cognitive Purpose** | Documented — what problem does this solve? | Self-check + Review | +| 5 | **User Expectation** | Documented — what does the user expect? | Self-check + Review | +| 6 | **Interaction Contract** | Documented — events, responses, state machine | Self-check + Review | +| 7 | **Failure Behaviour** | Documented — every failure mode handled | Self-check + Review | +| 8 | **Accessibility Contract** | Documented — WCAG 2.1 AA compliance | Self-check + Review | +| 9 | **AI Contract** | Documented — when AI chooses this component | Self-check + Review | +| 10 | **Token Dependencies** | All tokens listed, no hardcoded values | Automated lint | +| 11 | **Motion** | Follows Motion System v1, reduced motion included | Self-check + Review | +| 12 | **Anti-Patterns** | Relevant anti-patterns listed and avoided | Self-check + Review | +| 13 | **Compliance Matrix** | Updated in same PR | Self-check | +| 14 | **Reference Example** | Working implementation or Storybook story | Implementation | ## Sign-Off @@ -39,9 +40,9 @@ ## Exit Criteria -**MUST** pass all 13 criteria before component is marked "Complete" in Compliance Matrix. +**MUST** pass all 14 criteria before component is marked "Complete" in Compliance Matrix. -**MAY** merge with criteria 13 pending if implementation is in separate PR. +**MAY** merge with criteria 14 pending if implementation is in separate PR. ---