Skip to content

Development

This section covers everything needed to contribute to DiveSuite: setup, standards, testing, and CI/CD.

Terminal window
# Prerequisites
node --version # v22+ (see .nvmrc)
rustup --version # Rust toolchain for deco engine
# Clone and setup
git clone https://github.com/DiveSuite/app.git
cd DiveSuite
# Install dependencies (once Expo project exists)
npm install
# Start development
npx expo start
DiveSuite/
├── app/ # Expo Router file-based routes
├── src/
│ ├── 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}
│ │ ├── logging/
│ │ ├── analysis/
│ │ ├── community/
│ │ ├── settings/
│ │ └── ai/
│ └── shared/ # Shared UI
│ ├── components/
│ ├── theme/
│ ├── hooks/
│ └── navigation/
├── rust-engine/ # Rust deco engine
├── docs-site/ # MkDocs documentation
├── planning/ # Planning documents
└── architecture/ # Architecture documents
DocumentDescription
Getting StartedEnvironment setup, first run
Project StructureFolder organization (AD-10)
Coding StandardsTypeScript, Rust, naming conventions
Testing StrategyTest pyramid, coverage targets, safety tests
CI/CDGitHub Actions, quality gates, deployment
MCP SetupModel Context Protocol servers for AI-assisted development
File TypeMax Lines
Screen component250
UI component150
Custom hook100
Service class300
Rust module400
MetricLimit
Line length100 chars
Function body30 lines
Function parameters4 max
Nesting depth3 levels
CodeTarget
Deco Engine (Rust)95%+ branch coverage
Core Services (TS)80%+ line coverage
UI ComponentsBehavior 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