Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 1.88 KB

File metadata and controls

46 lines (35 loc) · 1.88 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Build Commands

  • cargo build - Build the project
  • cargo run - Build and run the TUI application
  • cargo test - Run all tests
  • cargo test <test_name> - Run a single test
  • cargo clippy - Run linter
  • cargo fmt - Format code

Project Overview

TaskFlow is a TUI project management application built with Rust using the Elm Architecture (TEA) pattern.

Architecture

  • TEA Pattern: Model → Update → View cycle with message passing
  • Ratatui + Crossterm: Terminal UI framework
  • Configuration-based extensibility: Themes, keybindings, custom views via TOML files
  • Multiple storage backends: Designed to support Markdown, YAML, JSON, SQLite

Module Structure

  • src/domain/ - Core entities: Task, Project, Tag, TimeEntry, Filter, Goal, Habit, WorkLog
    • src/domain/filter_dsl/ - Advanced filter query language (lexer, parser, AST, evaluator)
    • src/domain/git/ - Git integration for branch linking and TODO extraction
  • src/app/ - TEA architecture: Model (state), Message (events), Update (state transitions)
  • src/ui/ - View rendering and UI components
    • src/ui/components/ - Reusable widgets (task_detail, daily_review, evening_review, etc.)
  • src/storage/ - Storage abstraction with 4 backends (JSON, YAML, SQLite, Markdown), plus import/export (CSV, ICS, DOT, Mermaid, HTML)
  • src/config/ - Configuration system: settings, keybindings (70+ actions), and themes
  • src/bin/taskflow/ - CLI binary with pipe interface for scripting

Key Keybindings (in the TUI)

  • j/k or arrows - Navigate up/down
  • x or Space - Toggle task complete
  • i or Enter - View task details
  • c - Toggle show completed tasks
  • f / F - Focus mode / Full-screen focus
  • Alt+d/w/e - Daily/Weekly/Evening review
  • ? - Show help
  • q or Esc - Quit