7b7660b056
- 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.
212 lines
3.1 KiB
Markdown
212 lines
3.1 KiB
Markdown
# Engineering Standard v1.0
|
|
|
|
> **LandveX utvecklas genom små, testade, versionshanterade förändringar. Varje förändring ska vara reproducerbar, granskbar och möjlig att återställa. Ingen kod skrivs direkt mot driftmiljöer eller lagringstjänster.**
|
|
|
|
---
|
|
|
|
## 1. Grundprincip
|
|
|
|
**Domänen äger sanningen. All annan kod är utbytbar.**
|
|
|
|
Prioritetsordning:
|
|
|
|
```
|
|
Domain
|
|
↓
|
|
Application
|
|
↓
|
|
Infrastructure
|
|
↓
|
|
API
|
|
↓
|
|
UI
|
|
```
|
|
|
|
Ingen kod får bryta den riktningen.
|
|
|
|
---
|
|
|
|
## 2. Teknisk Stack
|
|
|
|
### Frontend
|
|
- React
|
|
- TypeScript (`strict: true`)
|
|
- Vite
|
|
- TanStack Query
|
|
- React Router
|
|
- MapLibre GL eller Google Maps (beroende på behov)
|
|
- Tailwind CSS
|
|
|
|
### Backend
|
|
- Node.js LTS
|
|
- TypeScript (`strict`)
|
|
- Express eller Fastify
|
|
- Zod för validering
|
|
- PostgreSQL
|
|
- Redis (för köer/caching när det behövs)
|
|
- S3-kompatibel objektlagring (AWS S3, Cloudflare R2 eller MinIO lokalt)
|
|
|
|
### AI
|
|
- Python-mikrotjänster
|
|
- PyTorch
|
|
- Ultralytics/YOLO
|
|
- Grounding DINO
|
|
- SAM
|
|
- MLflow för modellversionering (senare)
|
|
|
|
### Infrastruktur
|
|
- Docker
|
|
- Docker Compose (dev/pilot)
|
|
- Kubernetes först när ni verkligen behöver det
|
|
|
|
---
|
|
|
|
## 3. Kodstandard
|
|
|
|
Obligatoriskt:
|
|
- TypeScript strict
|
|
- ESLint
|
|
- Prettier
|
|
- Inga `any`
|
|
- Inga `console.log` i produktionskod
|
|
- Små funktioner
|
|
- Dependency Injection
|
|
- Inga globala singletons
|
|
|
|
---
|
|
|
|
## 4. Git-flöde (E-001)
|
|
|
|
Ingen kod skrivs direkt i produktion.
|
|
|
|
Alltid:
|
|
|
|
```
|
|
Issue / Story
|
|
↓
|
|
Branch
|
|
↓
|
|
Kod
|
|
↓
|
|
Tester
|
|
↓
|
|
Commit
|
|
↓
|
|
Push
|
|
↓
|
|
Pull Request
|
|
↓
|
|
Review
|
|
↓
|
|
Merge
|
|
↓
|
|
Deploy
|
|
```
|
|
|
|
Aldrig:
|
|
- ändra filer direkt på servern
|
|
- FTP
|
|
- SSH-editing
|
|
- "quick fixes" i produktion
|
|
|
|
---
|
|
|
|
## 5. Commit-standard
|
|
|
|
Format:
|
|
|
|
```
|
|
feat(mission): add upload endpoint
|
|
|
|
fix(dataset): handle missing GPS
|
|
|
|
refactor(domain): simplify artifact lineage
|
|
|
|
test(application): add replay integration tests
|
|
|
|
docs(adr): document decision pipeline
|
|
```
|
|
|
|
Commits ska vara små och fokuserade.
|
|
|
|
---
|
|
|
|
## 6. Pull Request-regler
|
|
|
|
Varje PR ska innehålla:
|
|
- Syfte
|
|
- Vad som ändrats
|
|
- Hur det testats
|
|
- Eventuella migrations
|
|
- Risker
|
|
- Skärmbilder om UI ändrats
|
|
|
|
---
|
|
|
|
## 7. Tester
|
|
|
|
Miniminivå:
|
|
- Unit-test för domän
|
|
- Integrationstest för API
|
|
- End-to-end-test för kritiska flöden
|
|
|
|
Inga nya features mergas utan relevanta tester.
|
|
|
|
---
|
|
|
|
## 8. Definition of Done
|
|
|
|
En uppgift är klar först när:
|
|
1. Koden är versionshanterad.
|
|
2. Tester passerar.
|
|
3. Kodgranskning är gjord.
|
|
4. Dokumentation är uppdaterad vid behov.
|
|
5. Feature flag används om funktionen inte ska exponeras direkt.
|
|
6. Pilotmiljön fungerar.
|
|
|
|
---
|
|
|
|
## 9. AI-agent-regler
|
|
|
|
Alla AI-agenter (inklusive SVEN och andra) ska följa samma regler:
|
|
- Arbeta endast i Git-repository.
|
|
- Skapa aldrig kod direkt i produktion.
|
|
- Föreslå migrationer istället för manuella databasändringar.
|
|
- Skriva tester tillsammans med ny funktionalitet.
|
|
- Inte ändra domänmodellen utan ett tydligt arkitekturbeslut.
|
|
|
|
---
|
|
|
|
## 10. Deployment-flöde
|
|
|
|
```
|
|
Local Development
|
|
↓
|
|
Git Push
|
|
↓
|
|
Pull Request
|
|
↓
|
|
Review
|
|
↓
|
|
Merge
|
|
↓
|
|
CI
|
|
↓
|
|
Integration
|
|
↓
|
|
Pilot
|
|
↓
|
|
Production
|
|
```
|
|
|
|
Ingen får hoppa över steg.
|
|
|
|
---
|
|
|
|
## Status
|
|
|
|
- **Version:** 1.0
|
|
- **Date:** 2026-07-02
|
|
- **Binding:** All developers and AI agents
|
|
- **Complements:** E-001, EP-1.0, Architecture Principles
|