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