Commit Graph

60 Commits

Author SHA1 Message Date
Bernt 167def5a61 LandveX Vision v2.0: Living Operational Model
- Five levels: Reality → Digital Representation → Current State → Intelligence → Prediction
- Unique value: Every object gets a life history
- Not a digital twin focused on visualization
- Focus: verified observations, changes over time, decision support, business value
- Living operational model that improves with each verified observation

Vision:
LandveX is a continuously updated operational model of the customer's
infrastructure that combines verified observations, history, and decision
support to help organizations prioritize the right actions at the right time.

Complements Product Levels, Platform Architecture, Engineering Standard.

Next: Pilot 001 — break the system!
2026-07-02 17:20:15 +00:00
Bernt 1b16e422cf LandveX Product Levels: 4 tiers with Progressive Disclosure
- Level 0: Public (free) — open map, trends, heatmaps
- Level 1: Professional — own areas, dashboard, reports
- Level 2: Enterprise — AI rules, Mission Engine, Hotspots, Credits
- Level 3: Platform — multi-org, custom models, white-label, federation

Design Principle: Progressive Disclosure
- Default: very simple
- Advanced: more detail on same page
- Same Decision Case, different detail levels

Core Principle:
All users work in same LandveX platform.
License determines intelligence depth, not objects.

Complements Platform Architecture v2.0 and Engineering Standard v1.0.

Next: Pilot 001 — break the system!
2026-07-02 17:19:30 +00:00
Bernt 6e1aa1b0f6 LandveX Internal Pilot: DEPLOYED
- API running on port 3002
- UI running on port 3003
- Version endpoint: /version
- Health check: /health
- Platform Readiness: Mission Import , Artifact Registry ,
  Storage , Operations , Developer Mode 

Go Live Checklist updated with current status.
Docker Compose configured (ports adjusted for existing services).

Next: Pilot 001 — Break the system!
Test: bad coverage, large videos, interrupted upload,
multiple phones, bad GPS, darkness, rain, poor lighting.
2026-07-02 17:18:30 +00:00
Bernt ddfe99f9f2 Go Live Checklist + Version Endpoint
- Go Live Checklist for LandveX Internal Pilot deployment
- Version endpoint: /version returns environment, version, commit, build
- Ready for Internal Pilot deployment

Next: Deploy with Docker Compose
2026-07-02 17:10:09 +00:00
Bernt 740da921fe Engineering Standard v1.0: Kubernetes-first + GitOps + Observability
- Kubernetes-first for platform architecture
- GitOps: never manual cluster changes
- Local-first for dev experience, K8s-first for platform
- All infrastructure as code, same Git flow as app code
- Standardized service contract: /health, /ready, /live, /metrics, /version
- OpenTelemetry tracing, structured JSON logging
- Correlation ID follows entire pipeline: Session → Mission → Artifact → Observation → Evidence → Decision
- Intelligence Lab integrated in same platform, not separate cluster
- Platform principle: no new service introduces new deploy/log/config/observability pattern

Binding for all developers and AI agents.
Complements E-001, EP-1.0, Architecture Principles.

Next: Deploy pilot environment
2026-07-02 17:07:49 +00:00
Bernt 7b7660b056 Engineering Standard v1.0: Binding rules for all developers and AI agents
- Domain owns the truth
- Technical stack defined
- Code standards: TypeScript strict, no any, no console.log in prod
- Git flow: Issue → Branch → Code → Tests → Commit → PR → Review → Merge → Deploy
- Commit format: feat/fix/refactor/test/docs(scope): message
- PR rules: purpose, changes, tests, migrations, risks, screenshots
- Tests: unit (domain), integration (API), e2e (critical flows)
- Definition of Done: versioned, tested, reviewed, documented, flagged, pilot-ready
- AI agent rules: work in Git only, never production, suggest migrations, write tests
- Deployment flow: Local → Git → PR → Review → Merge → CI → Integration → Pilot → Production

Binding for all developers and AI agents.
Complements E-001 and EP-1.0.
2026-07-02 17:06:49 +00:00
Bernt 8a8fb0a4f4 Platform Architecture v2.0: One Platform, Multiple Roles
- LandveX is one platform, not two
- Same backend, database, API, map
- Intelligence Lab = Developer Mode (not separate product)
- Same Artifact Viewer, different detail by role
- Same map, different layers by role
- Role-based access: Erik, Johan, Pilot Customer, Municipality

Architecture Principle:
One platform. One API. One data model. One map.
One Artifact system. Multiple roles.

Next: Implement RBAC and Developer Mode toggle
2026-07-02 16:55:46 +00:00
Bernt 6c2b5ee340 Deployment Strategy: 4 environments + Docker setup
- Development: localhost (API:3002, UI:3003)
- Integration: AI model validation
- Pilot: pilot.landvex.com (Docker Compose)
- Production: app.landvex.com
- Intelligence Lab: lab.landvex.internal

Docker Compose:
- API (Node.js)
- UI (Nginx)
- PostgreSQL
- MinIO (object storage)

Next: Deploy pilot environment
2026-07-02 16:53:10 +00:00
Bernt e2e3d00936 MASTER PROMPT: Intelligence Lab Development Mode v1.0
- Verkliga data först
- Pipeline före modell
- Decision Case är målet
- Träna kontinuerligt
- STOP-regel: ingen funktion utan validering på pilotmaterial
- Sista princip: ingen modellförbättring färdig utan mätbar förbättring

Stoppregel: Ingen ny arkitektur förrän MVP-0 genomfört med verkligt uppdrag.

Next: Pilot 001 — First real field upload
2026-07-02 16:23:26 +00:00
Bernt eae6c58d66 ADR-013: Engine Architecture v1.0 — Six Engines + Orchestrator
- Reality Engine: capture reality → observations
- Knowledge Engine: understand meaning → evidence, findings
- Decision Engine: make actionable → decisions, recommendations
- Mission Engine: determine what to collect → missions, gaps
- Economic Engine: manage budgets → credits, ROI
- Learning Engine: continuously improve → better models
- Platform Orchestrator: coordinates via events

Key principles:
- Each engine independently versioned
- Engines never call each other directly
- All communication via events
- Dashboard shows results, not engines
- Intelligence Lab tests engines, not platform

Next: PR-005A — Mission Import UI for MVP-0
2026-07-02 16:11:58 +00:00
Bernt c6e14c5928 ADR-012: Five Engines Platform Architecture + Economic Engine
- LANDVEX_PLATFORM_ARCHITECTURE.md: Five Engines (Reality, Knowledge,
  Decision, Mission, Economic)
- Credit: first-class economic object with types (mission, validation,
  training, priority, emergency)
- IntelligenceLedger: tracks value creation separate from financial accounting
- KnowledgeGap: missing information that drives missions
- Hotspot: composite score for mission generation
- Contradiction: conflicting information as opportunity

Key principle: Every component answers 'What value is created here?
Who pays for it?'

Next: PR-005A — Minimal Mission Import UI for MVP-0
2026-07-02 16:05:56 +00:00
Bernt 754c89506b ADR-011: Four-Layer Data Architecture — Raw Archive → Knowledge → Ontology → Decision
- Layer 1: ArchiveArtifact — immutable original with retention policy
- Layer 2: KnowledgeArtifact — extracted knowledge (observations,
  segmentations, feature vectors, relations)
- Layer 3: Knowledge Graph / Ontology (documented, not implemented)
- Layer 4: Decision Intelligence (existing DecisionCase)
- DataLifecycle: tracks every step with artifact lineage
- Key principle: AI models trained on curated datasets, not whole archive
- Ontology answers 'what does it mean in our domain?'

Long-term goal: Every observation converted once to structured
knowledge, reused infinitely for analysis, decisions, training.

Next: PR-005A — Minimal Mission Import UI for MVP-0
2026-07-02 16:03:39 +00:00
Bernt 118180e7ff docs: PR-001 Domain Model v1.2 — Three Rules + Experience Intelligence + Capability Tags
- Added Three Rules to README:
  1. Domain knows nothing about AI (no AIObservation, YOLODetection, etc.)
  2. Everything is an Artifact (common contract for all produced objects)
  3. All decisions are reproducible (answer: which observations, evidence,
     model, version, rules, reviewer, when, approved version)

- Renamed Human Intelligence → Experience Intelligence
  - Broader scope: citizen surveys, customer satisfaction, field technician
    feedback, contractor experience, service desk data
  - More future-proof than 'Human Intelligence'

- Added Capability Tags for developers:
  - Observation: [Detection, Vision, GPS, Image]
  - Decision: [Decision, Recommendation, Business]
  - Artifact: [Storage, Versioning, Lineage]
  - Makes dependencies clear as platform grows

- Updated Domain Invariants:
  - DecisionCase: must have at least one Review before Approved
  - Review: must belong to exactly one Decision, must have reviewer

- Added Merge Criteria:
  - All stakeholders (developer, AI engineer, product owner, domain expert)
    can read model and understand same terms
  - No AI objects, all Artifacts, reproducible decisions

Rationale: Lock domain language before implementation. Shared vocabulary
for code, docs, APIs, tests, and product discussions.
2026-07-02 14:09:45 +00:00
Bernt b4391f9600 docs: PR-001 Domain Model v1.1 — Human Intelligence as future module
- Added Human Intelligence as separate external module (not in core domain)
- Positioning: External Intelligence Module, not part of Epic-001
- Architecture: Reality Intelligence with four branches:
  - Infrastructure Intelligence (core, Epic-001)
  - Operational Intelligence (future)
  - Human Intelligence (future module)
  - External Intelligence (future)

- Human Insight Artifact: Source, Geography, Period, Metrics, Confidence
- Usage: Linked to Area or Decision Case, never mixed with raw observations
- Example: Decision Case enriched with 'Many complaints last 30 days'
- When: After Epic-001 stable and 20+ Decision Cases exist

Rationale: Keep core domain clean. Human data is context, not observation.
Add after basic pipeline is proven.
2026-07-02 13:50:38 +00:00
Bernt a08e897f96 docs: PR-001 Domain Model — Core language for LandveX Intelligence Lab
- Package: @landvex/domain
- Zero dependencies on Express, PostgreSQL, S3, or AI frameworks
- Four package structure: domain, contracts, shared, infrastructure
- Domain never depends on infrastructure

- Aggregate Roots: FieldSession, Mission, DecisionCase
- Entities: MissionAsset, Artifact, Observation, Evidence, Finding,
  Decision, Review, Action, Outcome
- Value Objects: MissionId, ArtifactId, SessionId, ObservationId,
  DecisionId, GeoLocation, GpsAccuracy, Confidence, Severity, Priority,
  Hash, StorageUri, Version

- Enums: ArtifactType, ReviewStatus, DecisionVerb, MissionStatus, SessionStatus
- Event Contracts: FieldSessionCreated, MissionCreated, MissionImported,
  ArtifactUploaded, ArtifactValidated, ObservationCreated, EvidenceCreated,
  FindingCreated, DecisionCreated, DecisionReviewed, DecisionApproved

- Domain Invariants:
  - FieldSession: must have location, date, can have zero missions
  - Mission: must belong to one Session, must have at least one Artifact
  - DecisionCase: must have at least one Observation, one Evidence,
    exactly one Decision, cannot be Approved without Review
  - Artifact: must have unique hash, storage URI, versioned

- TypeScript interfaces for all domain objects
- Branded ID types for type safety
- Strict rule: No new feature may introduce new domain concepts without
  approved change to domain model

- README: 'This package describes LandveX domain model. Contains no
  dependencies to database, HTTP, cloud storage, or AI frameworks.'

- Next: PR-002 Persistence Adapter (Repository Interface → PostgreSQL/S3/Event Store)

Rationale: Lock the language before writing infrastructure code.
Shared vocabulary for code, docs, APIs, tests, and product discussions.
2026-07-02 13:49:19 +00:00
Bernt 7075cf9ab9 docs: Epic-001 v1.3 — 12 architectural adjustments before first line of code
- Session is root (not Mission): Field Session → Mission → Asset → Observation...
- Event Sourcing: never overwrite status, status is projection of history
- Artifact Registry: first-class object with id, type, version, hash, lineage
- Decision Case immutability: Review → Revision → Approved Version (like Git)
- Review Task: Assigned → Reviewed → Approved → Closed
- Processing Graph: nodes not hardcoded chain, swap models without changing rest
- Data Quality as domain: Blur, Duplicate, Bad GPS, Low Resolution, etc.
- Decision Case comparison: show exactly what changed, which evidence, model, human
- Golden Missions + Golden Datasets: two levels
- Domain Event Viewer: timeline (09:42 Mission Created, 09:43 Video Uploaded...)
- KPI: Verified Decision Throughput (verified decisions per day)
- Architecture Principle: 'Produces verified Decision Cases through reproducible
  and traceable pipeline'

Updated PR-001 Domain Model:
- Added FieldSession (root)
- Added Artifact interface
- Added Event sourcing types
- Session ID format: session_YYYYMMDD_NNNNNN
- Updated API to include /sessions endpoints

Rationale: Three fundamental objects (Session, Artifact, Event) make the rest
natural. Scalable, auditable, well-suited for public sector traceability requirements.
2026-07-02 13:45:41 +00:00
Bernt 37ef2f4526 docs: Epic-001 v1.2 — Implementation plan + Development rules
- Added Vision: 'LandveX Intelligence Lab is the internal factory where
  raw reality is refined into verified Control Intelligence'
- Added Architecture Goal: Every artifact traceable backward to source
  and forward to decision
- Added Development Rule: No Story starts with UI. Order: Domain model →
  API → Storage → Tests → UI
- Added Story 1 implementation plan with 5 PRs:
  PR-001: Domain Model (Mission, MissionAsset, Upload, types)
  PR-002: Storage (S3/R2 bucket, PostgreSQL metadata, checksums, EXIF, GPS)
  PR-003: API (POST /missions, POST /missions/{id}/assets, GET /missions)
  PR-004: Events (MissionCreated, AssetUploaded, RawDatasetReady)
  PR-005: UI (simple drag-and-drop upload with progress)
- Added Definition of Done for Story 1:
  Phone → Video → Upload → Bucket → Metadata → Mission visible in Dataset Explorer
- Added ID Convention: mission_YYYYMMDD_NNNNNN, asset_NNNNNN, obs_NNNNNN,
  decision_NNNNNN. Never UUID in UI.
- Added Artifact Viewer: show raw asset metadata, hash, GPS, EXIF,
  storage location, version for debugging

Rationale: Clean architecture, testable without UI, traceable artifacts.
2026-07-02 13:41:16 +00:00
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