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
Document Description
Getting Started Environment setup, first run
Project Structure Folder organization (AD-10)
Coding Standards TypeScript, Rust, naming conventions
Testing Strategy Test pyramid, coverage targets, safety tests
CI/CD GitHub Actions, quality gates, deployment
MCP Setup Model Context Protocol servers for AI-assisted development
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