a08e897f96
- 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.
Landvex Design System
Documentation Structure
docs/design/
├── README.md # This file
├── COMPLIANCE_MATRIX.md # Component readiness tracking
├── LANDVEX_DESIGN_CONSTITUTION.md # UX principles (Level 3)
├── LANDVEX_DESIGN_SPECIFICATION.md # Technical contract (Level 5)
├── foundations/ # Frozen foundations
│ ├── FOUNDATIONS-v1.0.md # Freeze contract
│ ├── TOKEN_PHILOSOPHY.md # Token rules
│ ├── SEMANTIC_COLOR_SYSTEM.md # Color tokens
│ ├── GRID_ELEVATION.md # Layout & depth
│ ├── AI_DESIGN_PRINCIPLES.md # AI governance
│ ├── COMPONENT_TEMPLATE.md # RFC template
│ ├── RFC_DEFINITION_OF_DONE.md # Quality gate
│ ├── DESIGN_ANTI_PATTERNS.md # Forbidden patterns
│ ├── COMPONENT_DECISION_TREE.md # Selection guide
│ ├── GLOSSARY.md # Common language
│ ├── BRAND_PALETTE.md # Brand colors
│ └── RELEASE_DEFINITION.md # Release gates
├── components/ # Component RFCs
│ ├── RFC-002-Input.md
│ ├── RFC-003-Select.md
│ └── RFC-004-Card.md
└── platform/ # Cross-cutting governance
└── README.md
Status
Foundations v1.0 — FROZEN
Components build on foundations. Foundations do not change without v2.0 RFC.