This section covers everything needed to contribute to DiveSuite: setup, standards, testing, and CI/CD.
node --version # v22+ (see .nvmrc)
rustup --version # Rust toolchain for deco engine
git clone https://github.com/DiveSuite/app.git
# Install dependencies (once Expo project exists)
├── app/ # Expo Router file-based routes
│ ├── core/ # Shared core (no UI dependency)
│ │ ├── engine/ # Rust/WASM bridge
│ │ ├── database/ # WatermelonDB
│ │ ├── models/ # Domain types
│ │ ├── services/ # Business logic
│ │ ├── i18n/ # Internationalization
│ │ └── utils/ # Pure utilities
│ ├── features/ # Feature modules
│ │ ├── planning/ # {screens, components, hooks}
│ └── shared/ # Shared UI
├── rust-engine/ # Rust deco engine
├── docs-site/ # MkDocs documentation
├── planning/ # Planning documents
└── architecture/ # Architecture documents
| File Type | Max Lines |
|---|
| Screen component | 250 |
| UI component | 150 |
| Custom hook | 100 |
| Service class | 300 |
| Rust module | 400 |
| Metric | Limit |
|---|
| Line length | 100 chars |
| Function body | 30 lines |
| Function parameters | 4 max |
| Nesting depth | 3 levels |
| Code | Target |
|---|
| Deco Engine (Rust) | 95%+ branch coverage |
| Core Services (TS) | 80%+ line coverage |
| UI Components | Behavior tests only |
- Branch model: Trunk-based with short-lived feature branches
- Commits: Conventional Commits (
feat:, fix:, refactor:, etc.)
- Branches:
feature/E{milestone}.{epic}-description
- Merges: Squash-merge only, auto-delete branches