Commit Graph

43 Commits

Author SHA1 Message Date
Bernt 9e4ebeea1a docs: Epic-001 v1.1 — Reordered stories + Golden Mission + Review + Dashboard
- Reordered stories to reach First Verified Decision faster:
  1. Mission Import (was 2) — proves we can receive real data
  2. Dataset Explorer (was 3) — makes data visible
  3. Annotation Workspace (was 4) — first human-in-the-loop
  4. Decision Case (was 5) — first verified decision
  5. Replay (was 6) — proves chain is reproducible
  6. Session Management (was 1) — organizes when core works

- Added Golden Mission concept:
  - Real mission that never changes, used as regression test
  - Every new model runs against same mission
  - See immediately if something got better or worse

- Added Review as first-class object:
  - Observation → AI → Human Review → Approved/Rejected/Needs More Evidence
  - Makes entire quality flow traceable

- Added Dashboard v1:
  - Sessions, Missions, Decision Cases, Pending Reviews, Verified Decisions
  - Big button: [Continue Reviewing]
  - Work tool, not BI system

- Added vertical user journey (demo script):
  - quiXzoom → photo → import → save → explore → AI observation →
    correction → Decision Case → full chain viewer
  - If this works, core is proven

- Added definition of 'First Verified Decision':
  - Built on real observation data
  - Reviewed by human
  - Complete evidence chain
  - Fully reproducible from raw data to recommendation

Rationale: Reach core proof faster, add organization later.
Golden Mission enables regression testing from day one.
Review object makes quality flow traceable.
2026-07-02 13:38:09 +00:00
Bernt c47a58f76b docs: Epic-001 — First Verified Decision specification
- STOP Rule: No new pipeline until 20 real Decision Cases exist
- Field Readiness Gate: 5 questions before building any feature
- Sprint Goal: Every sprint must produce more verified Decision Cases

- Six stories:
  1. Session Management — organize missions by location/date
  2. Mission Import — upload video/images/GPS/EXIF, store immutably
  3. Dataset Explorer — browse, filter, search, map view
  4. Annotation Workspace — review/correct AI, version history
  5. Decision Case — full chain: Observation→Evidence→Finding→Decision→Business Impact
  6. Replay — step through mission chain (V1: simple playback)

- Not in first release (intentionally postponed):
  GPU Queue, Hyperparameter Search, Distributed Training,
  Benchmark, Canary Deployment, Auto Retraining,
  Bias Dashboard, Drift Detection

- Definition of Done: Complete vertical slice from reality to verified decision
- Definition of Ready for Epic-002: 20 real Decision Cases + Field Readiness Gate

- Technical stack: React+TypeScript, Node.js+Express, PostgreSQL, S3/R2, Bull, Python AI service
- Quality gates: TypeScript strict ≥80% coverage, no secrets, OAuth 2.0, immutable audit log, GitOps

Rationale: Prove the system works end-to-end before scaling.
Focus on learning from reality, not building everything upfront.
2026-07-02 13:34:05 +00:00
Bernt 67ca05f2b2 docs: LandveX Intelligence Lab v1.3 — Government Quality Standards added
- Added comprehensive quality standards for public sector:
  - Code Quality: TypeScript/Rust strict, ≥80% test coverage, static analysis,
    mandatory code review, API documentation
  - Security: OAuth 2.0 + MFA, RBAC + audit, AES-256/TLS 1.3,
    HashiCorp Vault, weekly vulnerability scans
  - Audit & Compliance: Immutable signed logs, configurable retention,
    full export, WCAG 2.1 AA, Swedish + English
  - Infrastructure: GitOps, OpenTelemetry, 3-2-1 backup, RPO<1h RTO<4h,
    horizontal scaling
  - AI/ML: MLflow versioning, full data lineage, bias testing,
    SHAP/LIME explainability, model cards
  - Development: Git workflow, CI/CD, IaC, dependency management,
    incident response runbooks

Rationale: LandveX serves municipalities and government agencies.
Intelligence Lab must satisfy public sector procurement, audit,
and compliance requirements from day one.
2026-07-02 13:08:22 +00:00
Bernt 8e9871f209 docs: LandveX Intelligence Lab — Government Quality Standards
- Added comprehensive quality standards for public sector:
  - Code Quality: TypeScript/Rust strict, ≥80% test coverage, static analysis,
    mandatory code review, API documentation
  - Security: OAuth 2.0 + MFA, RBAC + audit, AES-256/TLS 1.3,
    HashiCorp Vault, weekly vulnerability scans
  - Audit & Compliance: Immutable signed logs, configurable retention,
    full export, WCAG 2.1 AA, Swedish + English
  - Infrastructure: GitOps, OpenTelemetry, 3-2-1 backup, RPO<1h RTO<4h,
    horizontal scaling
  - AI/ML: MLflow versioning, full data lineage, bias testing,
    SHAP/LIME explainability, model cards
  - Development: Git workflow, CI/CD, IaC, dependency management,
    incident response runbooks

Rationale: LandveX serves municipalities and government agencies.
Intelligence Lab must satisfy public sector procurement, audit,
and compliance requirements from day one.
2026-07-02 12:49:26 +00:00
Bernt df5e2b3e78 docs: LandveX Intelligence Lab v1.2 — MVP + Phases + Data Quality + Decision Analytics
- MVP Milestone: 'First Verified Decision'
  - Developer films with quiXzoom, imports to Lab, corrects AI,
    creates Decision Case, follows chain with full traceability
  - When this works = first complete verifiable Control Intelligence pipeline

- Three development phases:
  Phase 1 (Essential): Ingestion, Dataset Explorer, Annotation, Decision Case Viewer
  Phase 2 (Scale): Replay, Benchmark, Evaluation
  Phase 3 (Advanced): GPU Jobs, Hyperparameter Runs, Model Promotion, Canary

- Product Architecture: quiXzoom → Observations → Intelligence Lab →
  Improved Models → LandveX → Better Decisions → Feedback → Intelligence Lab
  - Two products: quiXzoom (observations), LandveX (decisions)
  - Intelligence Lab = the factory that improves both

- New areas:
  - Data Quality: Healthy/Blurred/Duplicate/Wrong GPS/Night/Rain/Occluded
    + Coverage (Roads, Buildings, Signs, Drainage, Vegetation)
  - Decision Analytics: Acceptance Rate, Ignore Rate, Accuracy,
    Insufficient Evidence, Data Collection Value
    - Business value metrics, not traditional AI metrics

Rationale: Build MVP first, prove first real workflow, then scale.
Decision Cases are the heart. Data Quality explains model performance.
Decision Analytics measure business value.
2026-07-02 12:27:16 +00:00
Bernt 9a817ac82a docs: LandveX Intelligence Lab v1.1 — Architecture + Pipelines + Immutability
- Added architecture diagram:
  - Developer UI / Training API / Experiment API
  - Event Bus / Queue
  - Storage Layer (S3/R2 + PostgreSQL + Neo4j)
  - Processing Pipelines

- Seven separate pipelines (not one big AI loop):
  1. Ingestion — raw images/video/GPS/EXIF → Raw Dataset
  2. Dataset — sort, deduplicate, quality control → Validated Dataset
  3. Annotation — AI suggestions, manual correction → Verified Dataset
  4. Training — hyperparameters, checkpoints, GPU → Model Artifact
  5. Evaluation — precision, recall, F1, decision accuracy → Report
  6. Replay — compare model versions → Regression Report
  7. Decision Validation — full chain → Validation Report

- Bucket structure: raw-images, raw-video, missions, datasets,
  annotations, training, models, replays, evaluation,
  decision-cases, field-trials, exports, archives

- AI Job Queue: all jobs asynchronous (Upload → Queue → Worker → GPU → Storage → Notification)

- Core principles updated:
  - All artifacts immutable and versioned
  - Every change traceable to experiment, model, dataset, decision

- Dashboard shows: Datasets (Healthy/Needs Review/Corrupted),
  Training Jobs, Decision Cases, Replay Jobs

- Decision Cases emphasized as most important asset

Rationale: Separate pipelines make system easier to debug, improve,
and swap components. Immutability aligns with E-001 Git/traceability
principles. Decision Cases become the unique asset over time.
2026-07-02 12:26:00 +00:00
Bernt f6119e7bb6 docs: LandveX Intelligence Lab specification v1.0
- Internal development environment for Control Intelligence
- Core principle: 'Produces verified Control Intelligence, not AI models'
- Separate repo: landvex-intelligence-lab
- Navigation: Dashboard, Models, Datasets, Annotations, Training,
  Evaluation, Decision Cases, Replay, Validation, Deploy, Settings

- Key features:
  - Dashboard: AI status (models, datasets, jobs, cases)
  - Mission Replay: click through entire chain
  - Annotation: video + AI suggestion + manual correction
  - Decision Cases: first-class objects, all playable
  - Benchmark: compare YOLO, Grounding DINO, SAM, custom models
  - Replay: find regressions between model versions
  - Validation: field trials, scenario tests, decision tests
  - Deploy: 'Promote Model' not 'Deploy' (dev → validation → pilot → prod)
  - Experiments: link EP-1.0, DS-001, etc. to real data

- Target: New AI engineer understands in minutes:
  'This is where we build, test, and verify LandveX Control Intelligence
   before anything reaches production.'

Rationale: Single internal tool for all AI development. Centralizes
model training, annotation, validation, replay, decision chains,
regression tests, experiments, and model promotion.
2026-07-02 12:24:18 +00:00
Bernt b934797e65 docs: Field Trial Log v1.1 — Pilot phases + filming protocol
- Added four pilot phases (product research, not marketing):
  1. Collection — what can actually be detected?
  2. Analysis — are decisions understandable?
  3. Verification — was recommendation correct?
  4. Reflection — what needs to change?

- Measurement principle:
  - Not: Did AI find a crack?
  - But: Did this become a decision a real person could act on?

- Document 'non-decisions' — equally valuable as clear decisions
- Film workflow, not just infrastructure:
  - How you find area, choose mission, document
  - What feels unclear, when you become uncertain
  - When system saves time

- Observer mindset: document first, change model later
  - Build model from real workflows, not assumptions

Rationale: First 20-50 real missions teach more than months of modeling.
2026-07-02 12:21:20 +00:00
Bernt 1c4158c373 docs: Field Trial Log + Decision KPIs + MEMORY update
- Created FIELD_TRIAL_LOG.md — observation protocol for real customer cases
  - Log entry template with 10 fields
  - Two example entries (accepted and rejected decisions)
  - Questions the log answers: adoption, accuracy, calibration, rejection analysis
  - Future KPIs: Decision Adoption Rate, Decision Accuracy, Time to Decision

- Updated MEMORY.md with Control Intelligence & Decision Model section
  - Decision Pipeline v1.0 summary
  - Decision Object v1.0 (STRUCTURE FROZEN)
  - Status: VALIDATED FOR FIELD TRIALS
  - Three target customer cases
  - Future KPIs
  - Key principle: No more modeling until first real customer case

- Added Decision Adoption Rate and Decision Accuracy as future product KPIs
  - Not implemented yet — start collecting data now, calculate later
  - Decision Adoption = accepted / total recommendations
  - Decision Accuracy = correct / total decisions

Rationale: Stop modeling, start observing. First real customer case
will teach more than the last twenty documents combined.
2026-07-02 12:19:10 +00:00
Bernt c8819109db docs: Decision Model v1.0 — STRUCTURE FROZEN + All Tests PASS
- Status: STRUCTURE FROZEN (not LOCKED/FINAL)
  - Frozen: field names, semantics, relationships
  - Not frozen: implementation, algorithms, confidence calculation

- Three tests executed and PASSED:
  1. Decision Invariance Test — all 8 scenarios use same 7-field structure
  2. Evidence Variation Test — Decision Object identical regardless of evidence type
  3. Explainability Invariance Test — chain Reality→Observation→Evidence→Finding→Decision
    works for all actionable decisions

- Results summary:
  - Manual Review: 6 PASS, 2 OBSERVATION, 0 FAIL
  - Decision Invariance: PASS
  - Evidence Variation: PASS
  - Explainability Invariance: PASS
  - Decision Quality Gate: PASS
  - Verb Rule: PASS

- Overall: VALIDATED FOR FIELD TRIALS
  - Internal validation complete
  - Ready for real customer testing
  - Not production truth yet

- Open questions documented (not added as fields):
  - Observation A: Cost estimate for investment decisions
  - Observation B: Explicit low confidence communication

- Next: Three real customer cases (municipality, property owner, contractor)

Rationale: Freeze structure before testing, run tests against locked model,
mark as 'Field Trial Ready' not 'Final'. Model changes when real data
contradicts it, not before.
2026-07-02 12:17:50 +00:00
Bernt 656f3bf1c2 docs: Decision Model v1.0 — LOCKED for Field Trials
- Decision Object Contract v1.0 frozen:
  - 7 fields: Decision, Why, Evidence, Confidence, Consequence, Action, Business Impact
  - Changes require v1.1 + migration note + revalidation
  - Implementation/presentation not frozen

- Status: LOCKED — Validated for Field Trials
  - Not 'Final' — signals internal validation complete, real-world proof pending

- Three pending tests defined:
  1. Decision Invariance Test (same structure across all scenarios)
  2. Evidence Variation Test (same object regardless of evidence type)
  3. Explainability Invariance Test (Decision → Finding → Evidence → Observation → Reality)

- Freeze date: 2026-07-02
- Next: Run tests, then move to 3 real customer cases

Rationale: Freeze contract before testing so tests validate a locked model,
not a moving target. 'Field Trial Ready' signals proven internally but
awaiting real-world validation.
2026-07-02 12:16:04 +00:00
Bernt f05fded74e docs: Decision Pipeline v1.0 + Learning Loop + Control Intelligence + 3 Customer Cases
- Added Step 7: Learning (feedback loop from Business Impact to Intelligence)
- Control Intelligence definition: LandveX produces Control Intelligence, not AI
- Three target customer cases defined:
  1. Municipality — Inspect or wait? (Maintenance prioritization)
  2. Property Owner — Repair now or plan later? (Cost vs risk)
  3. Contractor/Operations — Which action first? (Operational planning)
- Validation requirements: Run each case through full pipeline, document breaks,
  revise only after data contradicts model
- Communication principle: Observation → Analysis → Recommendation
  (AI is implementation, recommendation is product)

Rationale: Stop modeling, start observing. Model changes when data contradicts
it, not before. Three real customer cases before freezing.
2026-07-02 12:13:25 +00:00
Bernt e3e70c52d4 docs: Decision Model v1.0 — 7 validation scenarios + invariance tests
- Added 7 validation scenarios covering diverse decision types:
  1. Road Crack (Maintenance) — repair now or later?
  2. Damaged Facade (Safety) — act immediately?
  3. Broken Road Sign (Compliance) — violates requirements?
  4. Vegetation Blocking Sight (Risk Reduction) — gradual deterioration
  5. Parking Area Wear (Investment Priority) — multiple small → big decision
  6. Cosmetic Scratch (No Action) — conscious decision to wait
  7. Mixed Evidence Sources — photo + sensor + weather API

- Decision Invariance Test:
  - Same Decision Object structure across all scenarios?
  - No fields added/removed?
  - No field meaning changes?
  - Fail = model needs revision

- Evidence Variation Test:
  - Single image, multiple images, video+GPS, historical, external data, mixed
  - Decision Object structure unchanged regardless of evidence type

- Decision Quality Gate:
  - Verifiable evidence chain
  - Motivated confidence
  - Action or conscious 'no action'
  - Explainability chain works

- Pass criteria: All 7 scenarios valid + invariance + evidence + quality gate

Rationale: Validate model against diverse decision types before freezing.
No action scenario is as important as action scenarios. Mixed evidence
sources test robustness. Invariance test ensures generality.
2026-07-02 12:01:38 +00:00
Bernt ff136e8aae docs: Decision Model v1.0 — Evidence-backed decisions + explainability + validation scenarios
- Six layers (added Evidence between Observation and Finding):
  1. Reality
  2. Observation
  3. Evidence (linked observations with context)
  4. Finding
  5. Decision
  6. Business Impact

- Decision Object restructured:
  1. Decision — what should user decide?
  2. Why — why system recommends this
  3. Evidence — what observations support this
  4. Confidence — how certain (3 dimensions)
  5. Consequence — what if nothing done
  6. Action — next step
  7. Business Impact — economic/operational meaning

- Confidence Model (3 dimensions):
  - Observation Confidence: how certain is detection?
  - Evidence Strength: how strongly supported?
  - Recommendation Confidence: how certain is recommendation?

- Explainability Principle:
  - Every Decision Card must be explorable
  - User can click: Decision → Finding → Evidence → Observations → Reality
  - Competitive advantage: traceability to source material

- Business Impact Model (4 dimensions):
  - Risk, Cost, Time, Opportunity

- Three validation scenarios:
  1. Road Crack — simple, common
  2. Damaged Facade — complex, critical
  3. Broken Road Sign — simple, regulatory

- Pass criteria: Same Decision Object works for all three

Rationale: Decision Intelligence, not BI. Evidence-backed decisions
are the core product. Explainability is competitive advantage.
Validation against real scenarios before freezing.
2026-07-02 11:59:33 +00:00
Bernt 1a20d41e7e docs: Dashboard Audit Protocol — stress test for Foundation v1.0
- DASHBOARD_AUDIT_PROTOCOL.md (v1.0, LOCKED):
  - Five criteria: 3-Second Rule, Journey Principle, Reality→Decision,
    Dashboard Principle, Decision Density
  - Blink Test: 3-second exposure, consistent answers = pass
  - Information-to-Decision Ratio: measure objects needed per decision
  - Audit form with pass/fail for each criterion
  - Decision matrix: all pass = proceed, some fail = adjust Dashboard,
    most fail = review Foundation

Rationale: Dashboard is the stress test for Foundation v1.0. If Dashboard
passes without Foundation changes, the base is robust enough to scale.
If Dashboard fails, adjust Dashboard first — not Foundation.
2026-07-02 11:47:32 +00:00
Bernt 8e79e4b006 docs: Dashboard Principle + Landvex Dashboard audit prep
- DASHBOARD_PRINCIPLE.md (v1.0, LOCKED):

  - Four questions: What, Where, How serious, What now

  - Information hierarchy: Score -> Observations -> Map -> History -> Details

  - Decision Density: Dashboard = 1-3 decisions max

  - Not BI: helps user make decision, not consume statistics

  - Verification checklist

- EXPERIENCE_AUDIT_QA.md updated:

  - Screen 4: Landvex Dashboard (Phase: Manage)

  - Dashboard-specific questions: 3-second understanding, today's decision,

    80% ignorable, primary CTA

  - Dashboard Principle check: What/Where/How serious/What now

  - Decision Density target: 1-3 decisions

  - One-Sentence Test: understand area performance and what to act on

- Ready for Landvex Dashboard screen (stresstest for Foundation v1.0)
2026-07-02 11:45:07 +00:00
Bernt 70a625510b docs: Journey Principle + Mission Marketplace naming + Dashboard prep
- JOURNEY_PRINCIPLE.md (v1.0, LOCKED):

  - Five phases: Discover, Capture, Process, Outcome, Manage

  - Maps to both quiXzoom and Landvex

  - Screen mapping table

  - Balance check reveals Capture/Process/Outcome are empty

  - Verification: every screen must belong to a phase

- EXPERIENCE_AUDIT_QA.md updated:

  - Screen 3 renamed: Public Map -> Mission Marketplace

  - Added Phase column: Discover

  - One-Sentence Test updated: which missions not how much

  - Added Journey Principle reference

  - Screen 4: Dashboard (Landvex) - awaiting screen

  - Screen 5: Results/Decision View (Landvex) - awaiting screen

- Next: Landvex Dashboard audit (stresstest for Foundation v1.0)

Rationale: Journey Principle prevents screens from floating without

context. Mission Marketplace better reflects the page's purpose.

Dashboard is the most complex screen - best stresstest for principles.
2026-07-02 11:42:32 +00:00
Bernt 5beb8fb640 docs: Capability Parity Principle + Definition of Done update
- 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.
2026-07-02 11:40:57 +00:00
Bernt c087043408 docs: quiXzoom Web vs App Principle + Public Map audit
- WEB_APP_PRINCIPLE.md (v1.0, LOCKED):

  - Web = discover, understand, administer

  - App = execute

  - Public web: map-centric, no mission acceptance

  - Logged-in web: My pages, no mission execution

  - App: camera-first, offline, GPS, quick submission

  - Feature matrix verifying separation

- EXPERIENCE_AUDIT_QA.md updated:

  - Added Product Principle: Web vs App

  - Screen 3: quiXzoom Public Map (proposed design audited)

    - 3-Second Rule: pass

    - Three-Step Rule: pass

    - Primary Decision: pass

    - Information Hierarchy: pass

    - Call to Action: pass

    - One-Sentence Test: I can see how many missions are near me

    - Issues: income estimate needs disclaimer, add real-time activity

  - Updated priority order: Dashboard -> Results -> Search -> Settings
2026-07-02 11:39:37 +00:00
Bernt 09f3d2f39d docs: Experience Audit updated with fixed matrix + placeholders for next screens
- Updated audit framework with fixed 6-question matrix:
  1. 3-Second Rule: understand purpose immediately
  2. Three-Step Rule: Input → Processing → Outcome visible
  3. Primary Decision: know what to do
  4. Information Hierarchy: most important is largest
  5. Cognitive Load: what can be removed
  6. Call to Action: clear next action

- Added One-Sentence Test:
  - Can user describe screen in one sentence?
  - Examples for Onboarding, Map View, Dashboard, Results
  - Two+ sentences = screen tries to do too much

- Added placeholders for next screens:
  - Screen 3: Dashboard (Landvex)
  - Screen 4: Map View (Landvex/quiXzoom)
  - Screen 5: Results/Decision View (Landvex)
  - Priority order: Dashboard → Map View → Results → Search → Settings

- Updated quiXzoom onboarding audit with new matrix format

Rationale: Fixed matrix ensures consistent evaluation across all screens.
One-Sentence Test reveals overloaded screens. Placeholders ready for
next screens. Priority reflects user journey impact.
2026-07-02 11:36:56 +00:00
Bernt d43d523444 docs: Three-Step Rule + quiXzoom audit improvements
- EXPERIENCE_AUDIT_QA.md updated:
  - quiXzoom onboarding: 8 specific improvements
  - Headline: 'Fota. Skicka. Få betalt.' (three verbs)
  - First card: show payment upfront
  - 100% card: larger number, smaller text
  - Payment card: remove Stripe, add 'Få betalt varje måndag'
  - Flexibility: 'Jobba när du vill'
  - CTA: clearer pre-registration
  - Key numbers: 100% | /bin/bash | Every Monday | 4K
  - Visual flow: 📷💰

- THREE_STEP_RULE.md (v1.0, LOCKED):
  - Universal product summary: Input → Processing → Outcome
  - Landvex: Reality → AI Analysis → Decision
  - quiXzoom: Photo → Approval → Payment
  - Applies to landing pages, onboarding, presentations, UX
  - Verification table for both products

Rationale: Common language between products. Three steps = three seconds.
Every product must be summarizable as Input → Processing → Outcome.
This unifies Landvex and quiXzoom under the same conceptual model.
2026-07-02 11:33:50 +00:00
Bernt 8ee9965378 docs: Experience Audit + Component Maturity Model
- EXPERIENCE_AUDIT_QA.md (v1.0, DRAFT):
  - Audit framework: 6 questions per screen
  - Screen 1: quiXzoom Onboarding — 3s , R→D ⚠️, Decision 
    - Issue: 'kr' used instead of USD/EUR (Valutaregel violation)
    - Issue: Launch date creates hesitation
  - Screen 2: Landvex Process — 3s , R→D , Decision 
    - Issue: Technical terms in step descriptions
  - Action items: currency update, date removal, verb simplification
  - Next screens: Dashboard, Map View, Search, Mission Details, Results

- COMPONENT_MATURITY.md (v1.0, LOCKED):
  - Three levels: Foundation → Validated → Canonical
  - Foundation: RFC approved, passes 13 DoD criteria
  - Validated: used in 3 real screens, passes Experience Audit
  - Canonical: used in 5 screens, 2 sprints stable, other components inherit
  - Promotion process with verification requirements
  - Current status: all 4 components at Foundation level

Rationale: Observe first, standardize second. Components become Canonical
only after proving value in real screens. Experience Audit identifies gaps
before building components. Maturity model prevents premature standardization.
2026-07-02 11:32:25 +00:00
Bernt edf1e6e0d6 docs: Foundation Freeze v1.0 complete + Experience Audit + Core Principle Check
- FOUNDATIONS-v1.0.md updated:
  - Added Landvex Core Principle and Design Constitution to frozen foundations
  - Added Core Principle Rules to invariants (2.4)
  - Reordered component priority: Modal, Search, Map Panel, Navigation, Table, Data Grid
  - Reflects business value: search and maps are central to Landvex

- EXPERIENCE_AUDIT.md (v1.0, LOCKED):
  - Four questions for every screen:
    1. Can purpose be understood in 3 seconds?
    2. Is 'Reality → Decision' visible?
    3. Is it obvious what the user should do?
    4. Does everything contribute to the decision?
  - Three-second rule levels with verification method
  - Audit process: select screens → apply questions → prioritize fixes → verify
  - Example audit format
  - Core Principle Check for RFCs: 4 questions before approval

- COMPONENT_TEMPLATE.md updated:
  - Added Core Principle section to template
  - Requires: decision support, cognitive load reduction, 3-second understanding

- RFC_DEFINITION_OF_DONE.md updated:
  - Added Core Principle as criterion #2 (was 12 criteria, now 13)
  - Exit criteria: must pass all 13

Rationale: Freeze foundation with Core Principle as highest authority.
Experience audit ensures all screens support decision-making.
Core Principle Check prevents components that don't serve the user.
Business-value prioritization: search and maps before tables.
2026-07-02 11:28:08 +00:00
Bernt 905af1b6d1 docs: Landvex Core Principle — From Reality → Decision
- LANDVEX_CORE_PRINCIPLE.md (v1.0, LOCKED):
  - Single promise: From reality → decision
  - Five steps: Question → Collect → Analyze → Calculate → Decision
  - Business verbs, not technical terms
  - Three-second rule: 3s/10s/60s understanding levels
  - Gauge: Video → AI → Score
  - Applies to all communication, UX, documentation, AI

- LANDVEX_DESIGN_CONSTITUTION.md:
  - Added §0: From Reality → Decision as highest principle
  - Five steps in Swedish
  - Three-second rule
  - Gauge explanation
  - Positioned before Introduction as foundational principle

Rationale: Landvex sells one thing — from reality to decision.
Every screen, illustration, and presentation must follow this flow.
Business verbs make it human. Three-second rule makes it scannable.
Gauge makes it instantly understandable.
2026-07-02 11:25:00 +00:00
Bernt 78436cecc2 docs: Foundation Freeze v1.0 + directory reorganization
- FOUNDATIONS-v1.0.md:
  - Freeze contract for Landvex Design System
  - Scope: Motion, AI Principles, Semantic Colors, Grid, Elevation, Typography, RFC Template, Definition of Done
  - Reference components: Button, Input, Select, Card (all ~83%)
  - Invariants: token rules, component rules, accessibility rules, AI rules
  - Change policy: no new foundation concepts without v2.0 RFC
  - Versioning: 1.0.x patches, 1.x.0 new components, 2.0.0 new foundations
  - Compatibility matrix for all foundations and components

- Directory reorganization:
  - docs/design/foundations/ → frozen foundation documents
  - docs/design/components/ → component RFCs
  - docs/design/README.md → navigation and structure

- Foundation documents moved:
  - TOKEN_PHILOSOPHY, SEMANTIC_COLOR_SYSTEM, GRID_ELEVATION
  - AI_DESIGN_PRINCIPLES, COMPONENT_TEMPLATE, RFC_DEFINITION_OF_DONE
  - DESIGN_ANTI_PATTERNS, COMPONENT_DECISION_TREE, GLOSSARY
  - BRAND_PALETTE, RELEASE_DEFINITION, SEMANTIC_COLOR_SYSTEM_REVIEW

- Component RFCs moved:
  - RFC-002-Input, RFC-003-Select, RFC-004-Card

Rationale: Clear separation between foundations (stable platform) and
components (built on top). Foundations v1.0 frozen — components can be
added freely within v1.x, but foundations require v2.0 RFC to change.
This prevents gradual erosion of the design system architecture.
2026-07-02 11:23:10 +00:00
Bernt 325a872fdb docs: Semantic Color System Review — APPROVED WITH NOTES
Four-point validation:

1. COMPLETENESS  PASS
   - All 6 Button states covered
   - All 7 Input states covered
   - All 10 Select states covered
   - All 7 Card states covered

2. ORTHOGONALITY 🟡 PASS WITH NOTES
   - 3 minor overlaps identified (surface.raised vs overlay, text.secondary vs muted, action.disabled vs text.muted)
   - All resolved by distinct use cases
   - 1 ambiguity noted (brand vs action), documented in contracts

3. MINIMALITY 🟡 PASS WITH NOTES
   - 9 unused tokens identified
   - All justified: needed for upcoming components (Modal, Link, Alert) or dark mode
   - No tokens should be removed

4. STABILITY  PASS
   - Modal: 0 new tokens needed
   - Navigation: 0 new tokens needed
   - Table: 0 new tokens needed
   - Map Panel: 0 new tokens needed

VERDICT: APPROVE with minor notes. Semantic Color System is stable enough to freeze.

Action items:
1. Freeze Semantic Color System v1.0
2. Update Input, Select, Card to semantic aliases (raise to ~80%)
3. Create Foundation Freeze milestone
4. Proceed with Modal, Navigation, Table, Map Panel
2026-07-02 11:05:54 +00:00
Bernt 303b79d4cd docs: Update Input/Select/Card to semantic aliases + raise maturity to 83%
- RFC-002 Input:
  - Token Dependencies updated to semantic aliases with primitives
  - All tokens now map through color.surface, color.border, color.text, color.status
  - No direct color references (e.g., semantic-red-500 → color.status.danger)
  - Helper/error text uses semantic tokens

- RFC-003 Select:
  - Token Dependencies updated to semantic aliases with primitives
  - Dropdown, option, and error states use semantic tokens
  - Selected option uses color.action.primary at 10% opacity
  - No direct color references

- RFC-004 Card:
  - Token Dependencies updated to semantic aliases with primitives
  - Surface, border, text hierarchy use semantic tokens
  - Shadow tokens mapped to elevation system
  - No direct color references

- COMPLIANCE_MATRIX.md:
  - Input: 33% → 83%
  - Select: 33% → 83%
  - Card: 33% → 83%
  - All now have Governance , Tokens , Motion , Accessibility , AI 

Rationale: Semantic model first. Components never reference primitives.
Token contracts (purpose, allowed, forbidden) ensure correct usage.
Dark mode implementable via token swap without component changes.
2026-07-02 11:04:00 +00:00
Bernt 3335edeed8 docs: Semantic Color System v1.0
- SEMANTIC_COLOR_SYSTEM.md (v1.0, DRAFT):
  - Three-layer architecture: Primitive → Semantic → Component Alias
  - Naming convention: color.{category}.{role}
  - Semantic tokens with contracts (purpose, allowed, not allowed):
    - Action colors (primary, secondary, ghost, disabled)
    - Surface colors (default, raised, overlay, inverted)
    - Text colors (primary, secondary, muted, inverted, link)
    - Border colors (default, focus, error, success)
    - Status colors (success, warning, danger, info)
    - Brand colors (primary, secondary)
  - State Matrix: all states for Button, Input, Select, Card with
    background, border, text, icon mappings
  - Component Aliases: button.*, input.*, select.*, card.* mapped
    to semantic tokens
  - Dark Mode: token value swapping without component code changes
  - Validation: component token audit (0 direct color references)

- COMPLIANCE_MATRIX.md: Semantic Color System 70%

Rationale: Semantic model first, not colors. Components never reference
primitives directly. Every token has a contract (purpose, allowed, forbidden).
Dark mode via token swap. State matrix derived from existing components.
2026-07-02 10:53:42 +00:00
Bernt 13fea4a301 docs: Brand Palette + Grid & Elevation + Compliance Matrix update
- BRAND_PALETTE.md (v1.0, DRAFT):
  - Token-specifikation (not a color list)
  - Semantic brand tokens: primary, secondary, tertiary
  - 12-step scale (50-950) with defined purposes
  - Usage rules: where brand colors are used (logo, buttons, focus, links)
  - Usage rules: where brand colors are NOT used (status, data viz, maps)
  - Dark mode strategy: shift lighter in dark mode
  - Contrast requirements: WCAG AA 4.5:1 for text, 3:1 for large text/focus
  - Placeholder values: awaiting brand color definition from Erik/Landvex
  - Token dependencies from components: Button, Input, Select, Link, Loading, Progress
  - Governance: no new brand colors without Architecture Review

- GRID_ELEVATION.md (v1.0, DRAFT):
  - Spacing scale: 13 primitive tokens (space-0 to space-12)
  - Semantic spacing: gap-xs to gap-xl, padding/margin tokens
  - Grid system: 12-column, responsive (4/8/12 columns)
  - Common layouts: full, two-column, three-column, four-column, sidebar, asymmetric
  - Border radius: 6 tokens (none to full) with component mapping
  - Elevation system: 5 shadow levels + 8 z-index levels
  - Component elevation mapping: resting, hover, active states
  - Responsive breakpoints: xs to 2xl (Tailwind-compatible)
  - Density principles: compact/default/comfortable (75%/100%/125%)
  - Z-index scale: 8 levels with rules
  - Token dependencies from components: Card, Button, Input, Select, Modal, Table, Tag, Page, Section

- COMPLIANCE_MATRIX.md: Brand Palette 40%, Grid & Elevation 60%

Rationale: Brand Palette driven by component token usage, not vice versa.
Grid & Elevation validated against Card and other components. Foundations
now complete enough to raise component maturity.
2026-07-02 10:51:59 +00:00
Bernt 558303784a docs: RFC-003 Select + RFC-004 Card + Compliance Matrix update
- RFC-003: Canonical Select Component:
  - Cognitive Purpose: choose one from predefined list
  - When to Use/NOT Use: clear boundaries vs Radio Group, Autocomplete, Multi-Select
  - Interaction Contract: click, arrow keys, type-to-search, escape
  - Failure Behaviour: empty, required, disabled, async loading, load failure
  - Accessibility Contract: combobox role, aria-expanded, aria-selected, focus management
  - AI Contract: when to choose Select vs alternatives
  - Token Dependencies: 21 tokens (trigger + dropdown + options)
  - Layout: trigger + dropdown with sections
  - Sizes (sm/md/lg), Variants (default/ghost/filled), States (10 states)
  - Keyboard: full navigation (Tab, Arrows, Enter, Escape, Home, End, letter keys)
  - Touch: 44px option targets, native scroll
  - Motion: dropdown open/close, option hover/select, chevron rotate
  - Anti-Patterns: < 4 options, > 50 options, no placeholder, clipping
  - Related Components: Input, Radio Group, Checkbox Group, Multi-Select, Autocomplete
  - DDR References: DDR-001 through DDR-004

- RFC-004: Canonical Card Component:
  - Cognitive Purpose: group related information into bounded unit
  - When to Use/NOT Use: clear boundaries vs List Item, Modal, Page
  - Interaction Contract: click/hover/focus for actionable, none for static
  - Failure Behaviour: overflow, image load fail, action fail, loading, empty
  - Accessibility Contract: role, focus, label, keyboard activation
  - AI Contract: when to choose Card vs alternatives
  - Token Dependencies: 12 tokens (bg, border, radius, padding, shadows, text)
  - Layout: Header + Body + Footer with optional divider
  - Sizes (sm/md/lg/fluid), Variants (default/elevated/outlined/interactive)
  - States (7 states), Keyboard, Touch, Motion (with reduced motion)
  - Anti-Patterns: nested cards, excessive padding, no distinction, event collision
  - Related Components: Modal, Panel, List Item, Tile, KPI Card, Dataset Card
  - DDR References: DDR-001, DDR-002, DDR-003, DDR-005

- COMPLIANCE_MATRIX.md: Select and Card updated to 33%

Rationale: Validate RFC-001 template works for selection and container
component types. Three different component types (action, selection,
container) now tested. Mallen håller.
2026-07-02 10:41:19 +00:00
Bernt 54255eeae9 docs: RFC-002 Input + Definition of Done + Compliance Matrix update
- RFC_DEFINITION_OF_DONE.md (v1.0, LOCKED):
  - 12 criteria for every RFC component
  - Sign-off roles: Author, Reviewer, Automated, QA
  - Exit criteria: all 12 must pass

- RFC-002: Canonical Input Component:
  - Cognitive Purpose: captures free-form text/numeric data
  - When to Use/NOT Use: clear boundaries vs Select, Switch, Date Picker
  - Interaction Contract: click, type, tab, blur, enter, escape
  - Failure Behaviour: invalid, network, max length, required, disabled
  - Accessibility Contract: label, focus, error, required, screen reader
  - AI Contract: when to choose Input vs alternatives
  - Token Dependencies: 13 tokens (bg, border, text, padding, radius, sizes, states)
  - Layout, Sizes (sm/md/lg), Variants (default/ghost/filled), States (8 states)
  - Keyboard, Touch, Motion (with reduced motion)
  - Anti-Patterns: placeholder as label, validation only on submit, etc.
  - Related Components: Select, Textarea, Search, Form, Label
  - DDR References: DDR-001, DDR-002, DDR-003
  - Acceptance Criteria: 10 checklist items

- COMPLIANCE_MATRIX.md: Input updated to 33% (Governance 🟡, Tokens 🟡,
  Motion 🟡, Accessibility 🟡, AI , QA )

Rationale: Validate RFC-001 template works for different component types.
Definition of Done ensures consistent quality. Compliance Matrix tracks
progress visibly.
2026-07-02 10:38:23 +00:00
Bernt b0a1808b2b docs: AI Principles restructured + Compliance Matrix + Platform governance + RFC-001 Button
- AI_DESIGN_PRINCIPLES.md:
  - Restructured into 5 parts: A. Decision Process, B. Component Selection,
    C. Token Usage, D. Design Review, E. Escalation
  - All rules use RFC 2119 normative words (MUST/MUST NOT/SHOULD/MAY)
  - Clearer escalation path: when to create DDR, when to flag uncertainty

- COMPLIANCE_MATRIX.md:
  - Tracks readiness for all 29 components (Tier 1/2/3)
  - 6 dimensions: Governance, Tokens, Motion, Accessibility, AI, QA
  - Foundation documents tracked separately
  - Button at 82% (reference for others)

- docs/platform/README.md:
  - Reserved directory for cross-cutting governance
  - Future: AI Governance, Product Governance, Review Process,
    Quality Gates, Release Governance, Decision Frameworks
  - Separates platform governance from design system

- LANDVEX_DESIGN_SPECIFICATION.md:
  - Button renamed to RFC-001: Canonical Button Component
  - Structured with: Cognitive Purpose, When to Use/NOT Use,
    User Expectation, Interaction Contract, Failure Behaviour,
    Accessibility Contract, AI Contract
  - Sets standard for all future RFC component specs

Rationale: AI rules before components (AI writes components).
Compliance matrix makes progress visible. Platform governance
separates cross-cutting concerns from design system. RFC format
for components ensures production-ready specifications.
2026-07-02 09:06:08 +00:00
Bernt 2e62e5fb80 docs: Glossary + Sanity Review + Normative Words
- GLOSSARY.md (v1.0, LOCKED):
  - Normative words: MUST, MUST NOT, SHOULD, SHOULD NOT, MAY (RFC 2119)
  - Core concepts: Component, Variant, State, Token, Primitive/Semantic/Component
  - Layout: Page, View, Screen, Panel, Module, Overlay, Drawer, Modal, Dialog, Sheet
  - Visual: Layer, Elevation, Surface, Backdrop
  - Interaction: Focus, Hover, Active, Disabled, Loading
  - Tokens: Brand, Semantic, Status, Neutral
  - Governance: Constitution, Doctrine, Specification, DDR

- Sanity Review completed:
  1. Terminology: Component (not Widget/Control), Token (not Variable),
     Panel (consistent usage)
  2. Normative words: Normalized MUST/MUST NOT/SHOULD/MAY across all docs
  3. Naming: surface-primary, text-secondary, border-default (consistent)
  4. Document hierarchy: correct upward references
  5. Acceptance Criteria: consistent template (Button as reference)

- TOKEN_PHILOSOPHY.md: Replaced informal rules with RFC 2119 normative words
- DESIGN_SPECIFICATION.md: Replaced Rule: with MUST/MUST NOT
- ANTI_PATTERNS.md: Replaced Rule:/Forbidden: with MUST/MUST NOT

Rationale: Reproducible sanity checklist. Common language prevents
misunderstandings. Normative words make requirements unambiguous.
2026-07-02 09:02:41 +00:00
Bernt 500d9c052b docs: AI Design Principles + Button RFC + Release Definition
- Motion System v1:
  - Renamed duration tokens from time-based (fast/slow) to intention-based
    (instant, interaction, transition, navigation, layout, context-change,
    attention, background)
  - Updated all component motion tables to use intention-based tokens
  - Rationale: AI reasons about purpose, not milliseconds

- Button gold standard (chapter 8.3.1):
  - Added RFC-level sections: Cognitive Purpose, When to use/NOT use,
    User Expectation, Interaction Contract, Failure Behaviour,
    Accessibility Contract, AI Contract
  - Sets the bar for all future component specifications

- AI_DESIGN_PRINCIPLES.md (v1.0, LOCKED):
  - Core principle: AI must be a design system citizen
  - Before-action rules: read hierarchy, check existing, apply New Component Rule
  - Token rules: no hardcoded values, semantic first, lifecycle, deterministic
  - Component rules: inheritance first, use template, document anti-patterns
  - Motion rules: intention-based duration, reduced motion, no decorative animation
  - Accessibility rules: WCAG 2.1 AA, no ARIA without purpose
  - AI Contract for Button: when to choose Button vs Link vs Icon Button

- RELEASE_DEFINITION.md:
  - Defines Landvex Design System v1.0 release gates
  - Foundation, Tokens, Foundations, Components (Tier 1/2/3),
    Validation, Production
  - Current progress: ~55%
  - Next milestones: Grid+Elevation, Input/Select/Card, Brand Palette

Rationale: AI rules before components (AI will write components).
Intention-based motion tokens for better AI reasoning. Button as RFC
sets the standard. Release definition creates clear target.
2026-07-02 08:58:29 +00:00
Bernt 1e40d384ca docs: Motion System v1 + Button gold standard + Component Template + Decision Tree
- Motion System v1 (chapter 5):
  - Motion principles: when to animate, when NOT to animate
  - Duration scale (instant to slower: 0ms to 500ms)
  - Easing functions (linear, in, out, in-out, spring)
  - Component-specific motion: Button, Modal, Drawer, Map, Skeleton,
    Progress, Error/Success
  - Reduced motion support (prefers-reduced-motion)
  - Interruption rules (animations must be interruptible)
  - Error/success animations (shake, checkmark, pulse)

- Button gold standard (chapter 8.3.1):
  - Full specification: purpose, design goal, token dependencies,
    layout, sizes, variants, states, keyboard, touch, accessibility,
    anti-patterns, related components, DDR references
  - Sets the bar for all future component specifications

- COMPONENT_TEMPLATE.md (v1.0, LOCKED):
  - Standard template for all component specifications
  - Sections: purpose, tokens, layout, sizes, variants, states,
    keyboard, touch, accessibility, motion, acceptance criteria,
    anti-patterns, related components, DDR references

- COMPONENT_DECISION_TREE.md (v1.0, LOCKED):
  - Decision trees for: user actions, information display, user input,
    feedback, navigation, Landvex-specific
  - Quick reference table mapping needs to components
  - Prevents invention of unnecessary components

Rationale: Motion before brand (affects every interaction). Button as
reference implementation. Template ensures consistency. Decision tree
guides AI agents and developers to correct component choice.
2026-07-02 08:53:20 +00:00
Bernt 48236658e8 docs: Information-level typography + semantic colors + AI anti-patterns
- Typography v1 (chapter 3):
  - Restructured from heading levels (H1-H6) to information levels
  - Display, Section Title, Panel Title, Data Heading, Body, UI Label,
    Metadata, Caption, Code/Numeric
  - Each with: token, weight, usage, frequency
  - Accessibility mapping to HTML heading elements
  - Rationale: enterprise users scan for information, not headings

- Color System (chapter 4):
  - Semantic Foundation: split into Neutral Semantic and Status Semantic
  - Status tokens: success/warning/danger/info with surface/border/text
  - Brand Palette rule: brand != status, never mix identity and meaning
  - Map Layer Palette: restructured by layer (Base Surface, Terrain,
    Water, Road Network, etc.)

- DESIGN_ANTI_PATTERNS.md:
  - Restructured into 5 categories: visual, code, interaction, content,
    AI-specific
  - AI anti-patterns: AP-017 to AP-021 (inheritance check, hardcoded
    values, token lifecycle, multiple icon libraries, document hierarchy)
  - Total: 21 anti-patterns

Rationale: Function-based typography maps to mental models. Semantic
status colors prevent brand/status confusion. Layer-based map palette
enables theme swapping.
2026-07-02 08:49:28 +00:00
Bernt a412177512 docs: Component Architecture - Tiers, Inheritance, Minimalism
- Add Component Architecture (chapter 8):
  - Tier 1 Canonical: Button, Input, Select, Card, Modal, Navigation,
    Table, Data Grid, Search, Map Panel (10 components)
  - Tier 2 Derived: Badge, Alert, Toast, Tooltip, Accordion, Tabs,
    Breadcrumb, Pagination, Empty State, Skeleton (10 components)
  - Tier 3 Domain: KPI Card, Map Overlay Panel, Layer Selector,
    Mission Status, Dataset Card, Geospatial Inspector, Asset Summary,
    Coordinate Picker, Timeline Panel (9 components)
  - Component Inheritance: visual hierarchy showing parent-child
    relationships (Button to Icon Button to Split Button, etc.)
  - New Component Rule: 4-step checklist before creating anything new
  - Principle: system shall be minimal, not maximal

- Restructure component numbering: 8.3.x for specifications
- Update table of contents with new structure

Rationale: Components before colors (component structure drives color
usage). Tiers prevent bloat. Inheritance prevents duplication.
Minimalism principle reduces complexity.
2026-07-02 08:46:07 +00:00
Bernt 22be1efcd4 docs: Typography v1 + Foundation Colors + Anti-Patterns
- LANDVEX_DESIGN_SPECIFICATION.md:
  - Typography v1 (chapter 3): Inter + JetBrains Mono, type scale,
    heading hierarchy, line height rules, letter spacing, max line length,
    tabular figures, numerical typography
  - Foundation Colors (chapter 4.1): 12-step neutral palette (neutral-0 to neutral-1000)
  - Semantic Colors (chapter 4.2): surface, text, border mappings
  - Brand Palette (chapter 4.3): placeholder for brand colors
  - Semantic Status Colors (chapter 4.4): green, yellow, red, blue
  - Map Layer Palette (chapter 4.6): dedicated geospatial palette
  - Updated primitive references from gray-* to neutral-*

- DESIGN_ANTI_PATTERNS.md (v1.0, LOCKED):
  - 19 anti-patterns across 5 categories: visual, technical, interaction,
    content, AI-specific
  - Each with: forbidden description, rationale, alternative
  - AI-specific rules: no hardcoded values, no invented components,
    no skipping token lifecycle

Rationale: Typography before colors (harder to change). Neutral palette
before brand (90% of surface area). Anti-patterns prevent recurring
mistakes and guide AI agents.
2026-07-02 08:42:55 +00:00
Bernt 16bc14cd32 docs: Token Philosophy v1.1 + Design Specification restructured
- TOKEN_PHILOSOPHY.md:
  - Added Token Lifecycle (Draft → Experimental → Stable → Deprecated → Removed)
  - Added Design Review Gate (6 mandatory checks before new token)
  - Added deterministic principle: two AI agents must arrive at same token choice
  - Restructured into 8 sections with clear hierarchy

- LANDVEX_DESIGN_SPECIFICATION.md:
  - Restructured into 4 parts: GOVERNANCE → TOKENS → COMPONENTS → VALIDATION
  - Added part headers and updated table of contents
  - Aligned with Token Philosophy lifecycle and review gate

Rationale: Governance before values. Prevents uncontrolled token growth
and ensures AI-assisted design development is deterministic and traceable.
2026-07-02 08:37:50 +00:00
Bernt 3afb583d71 docs: Token Philosophy + updated Design Specification
- Add docs/design/TOKEN_PHILOSOPHY.md (v1.0, LOCKED)
  - Three-level token hierarchy: Primitive → Semantic → Component
  - Semantic-first rule: no primitive references where semantic exists
  - DTCG JSON as canonical export format
  - Semantic versioning + deprecation policy
  - Platform agnostic (web, iOS, Android, future)

- Update LANDVEX_DESIGN_SPECIFICATION.md
  - Add Token Philosophy as chapter 0
  - Restructure Design Tokens (chapter 1) with three levels
  - Add blur scale, border width primitives
  - Add semantic tokens (surface, text, border)
  - Add component tokens (Button, Data Grid examples)
  - Reference TOKEN_PHILOSOPHY.md for governance rules

Rationale: Establish token rules before values. Prevents rework
when components are specified later.
2026-07-02 08:34:48 +00:00
Bernt 125ec6e4d2 docs: Document hierarchy + Design Specification skeleton
- Add DOCUMENT HIERARCHY (0d) to MEMORY.md
  - 7 levels: SYSTEM > ENGINEERING > DESIGN > PRODUCT > SPEC > GUIDES > CODE
  - Conflict resolution: higher document wins

- Add docs/design/LANDVEX_DESIGN_SPECIFICATION.md (v1.0-skeleton, DRAFT)
  - 18 chapters with full structure
  - Button component as reference spec (states, ARIA, keyboard, touch, animation, AC)
  - All other chapters marked as TODO with placeholder tables
  - Status: DRAFT — filled progressively, not all at once

Rationale: Establish governance first (Fas 1), fill specification
progressively (Fas 2), automated QA later (Fas 3).
2026-07-02 08:24:49 +00:00
Bernt f756b63fe2 docs: Landvex Design Constitution + quiXzoom UX Doctrine
- Add docs/design/LANDVEX_DESIGN_CONSTITUTION.md (v1.0, LOCKED)
  - Enterprise UX Doctrine: 21 principles for professional GIS platform
  - Device Adaptive (not Desktop First nor Mobile First)

- Add docs/products/quixzoom/QUIXZOOM_UX_DOCTRINE.md (v1.0, LOCKED)
  - Field-first UX: Camera-First, Offline-First, Mission-First
  - Mobile-Only, One Hand, Three Seconds

- Update MEMORY.md with DESIGN GOVERNANCE section (0c)
  - References to both doctrines
  - Shared DNA: components, tokens, colors, typography, motion, icons
  - LOCKED status with version governance
2026-07-02 08:14:26 +00:00
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00