# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Version Control This project uses **Jujutsu (jj)** instead of git for version control. Key differences: - Use `jj` commands instead of `git` commands - Every change creates a new revision automatically - Working copy is separate from the revision graph - Common commands: - `jj status` - check working copy status - `jj log` - view revision history - `jj new` - create new revision - `jj describe` - add/edit commit message - `jj squash` - move changes from working copy to parent revision ## Project Overview Captain's Log is a GTD-inspired personal task management system designed to minimize cognitive overhead while maximizing productivity through context-aware task organization. **Core Philosophy**: Capture everything without thinking, see only what matters right now, work efficiently within your current context. ## Technical Architecture ### Backend: Rust + Axum + SQLx - **Framework**: Axum for high-performance HTTP server - **Database**: SQLx for type-safe database interactions - **Dev Database**: SQLite for easy setup and portability - **Production Database**: PostgreSQL for scalability - **Authentication**: Simple session-based auth (single user) - **Architecture**: Active Record pattern with models handling persistence - **Testing**: Unit tests + Hurl API integration tests #### Backend Project Structure ``` backend/ ├── src/ │ ├── main.rs # Application entry point with health endpoint │ ├── database/ │ │ ├── mod.rs # Database module exports │ │ └── connection.rs # Database connection utilities │ ├── models/ │ │ ├── mod.rs # Models module │ │ └── task.rs # TaskModel with CRUD methods │ └── services/ │ ├── mod.rs # Error handling and exports │ └── tasks.rs # HTTP handlers for task endpoints ├── tests/api/ # Hurl API integration tests └── migrations/ # SQLx database migrations ``` ### Frontend: Vite + React - **Build Tool**: Vite for fast development and optimized builds - **Framework**: React with functional components and hooks - **Routing**: React Router for client-side navigation - **Styling**: CSS for styling - **State Management**: React state with localStorage persistence - **PWA Features**: Service worker for offline functionality - **Mobile Optimization**: Touch gestures, responsive design ### Core Data Models ```sql -- Tasks (Phase 1 MVP - Current Implementation) tasks (id, title, description, status, created_at, updated_at, completed_at) -- Future phases will add: -- priority and due_date fields to tasks table -- projects (id, name, description, color, status, created_at, updated_at) -- contexts (id, name, description, color, icon) -- task_contexts (task_id, context_id) -- recurring_patterns (id, task_id, pattern_type, interval_value, days_of_week, monthly_type) ``` ## Development Commands **Primary command**: Use `just` for all development tasks. Run `just --list` to see all available commands. **Key commands**: - `just check` - Validate all changes (primary validation command) - `just fmt` - Format code (resolve formatting errors) ## Current Phase: Core MVP Backend ✅ **Status**: Backend implementation completed - ✅ Task properties: title, description, status, timestamps - ✅ RESTful API endpoints for all task operations - ✅ Testing framework with unit tests and API integration tests - ✅ Coverage reporting setup (currently 32.41%) - ⏳ Frontend implementation (next phase) See `/plan/01_CORE_MVP/backend.md` for implementation details. See `/plan/future_improvements.md` for architectural enhancement opportunities. ## Future Phases 1. **Phase 2**: Context tagging system (@computer, @phone, @errands, etc.) 2. **Phase 3**: Project organization and hierarchical structure 3. **Phase 4**: Smart views and anti-overwhelm features 4. **Phase 5**: Recurring tasks and advanced scheduling 5. **Phase 6**: PWA features and offline capability