From 3eb040f6180c18366fac9170c1de7f831ff74a27 Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Tue, 14 Apr 2026 15:37:17 +0200 Subject: [PATCH] chore(claudedo): Add a Readme to the repo ClaudeDo-Task: 6a119bda-2368-443e-b9b2-55584527bcfb --- README.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e7b36be --- /dev/null +++ b/README.md @@ -0,0 +1,107 @@ +# ClaudeDo + +A desktop task management app that executes tasks autonomously via [Claude CLI](https://docs.anthropic.com/en/docs/claude-code) in isolated git worktrees. + +Queue up coding tasks, and ClaudeDo picks them up one by one — each running in its own worktree so your main branch stays clean. + +## Architecture + +Two-process system communicating over SignalR: + +| Project | Role | +|---|---| +| **ClaudeDo.App** | Avalonia desktop entry point, DI container setup | +| **ClaudeDo.Ui** | Views, ViewModels, SignalR client (MVVM) | +| **ClaudeDo.Data** | SQLite data layer, repositories, models, GitService | +| **ClaudeDo.Worker** | ASP.NET Core hosted service, task queue, Claude CLI runner | + +``` +┌──────────────┐ SignalR ┌──────────────┐ +│ ClaudeDo.App│◄──────────►│ClaudeDo.Worker│ +│ (Avalonia) │ 127.0.0.1 │ (ASP.NET) │ +│ │ :47821 │ │ +│ ┌──────────┐│ │ ┌──────────┐ │ +│ │ Ui ││ │ │ TaskQueue│ │ +│ │(ViewModels)│ │ │ Claude CLI│ │ +│ └──────────┘│ │ └──────────┘ │ +└──────┬───────┘ └──────┬───────┘ + │ │ + └───────────┬───────────────┘ + │ + ┌──────┴──────┐ + │ ClaudeDo.Data│ + │ (SQLite) │ + └─────────────┘ +``` + +## Tech Stack + +- .NET 8.0 +- Avalonia 12.0.0 (Fluent theme) +- SQLite (WAL mode) via Microsoft.Data.Sqlite — raw ADO.NET, no ORM +- SignalR for real-time IPC between UI and Worker +- CommunityToolkit.Mvvm for source-generated MVVM +- Git worktrees for task isolation + +## Prerequisites + +- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) +- [Claude CLI](https://docs.anthropic.com/en/docs/claude-code) installed and authenticated +- Git + +## Getting Started + +```bash +# Build +dotnet build ClaudeDo.slnx + +# Run tests +dotnet test tests/ClaudeDo.Worker.Tests + +# Run the app +dotnet run --project src/ClaudeDo.App +``` + +## How It Works + +1. Create a task in the UI and tag it with **"agent"** to mark it for automated execution. +2. The Worker picks up queued tasks and runs each one via Claude CLI in an isolated git worktree. +3. When done, the worktree can be merged, kept for review, or discarded. + +**Task status flow:** `Manual | Queued → Running → Done | Failed` + +**Worktree state flow:** `Active → Merged | Discarded | Kept` + +## Configuration + +All data and config lives under `~/.todo-app/`: + +| File | Purpose | +|---|---| +| `todo.db` | SQLite database | +| `ui.config.json` | UI settings | +| `worker.config.json` | Worker settings (worktree strategy, etc.) | +| `logs/` | Application logs | + +## Project Structure + +``` +ClaudeDo.slnx +├── src/ +│ ├── ClaudeDo.App/ # Desktop entry point +│ ├── ClaudeDo.Ui/ # Views & ViewModels +│ ├── ClaudeDo.Data/ # Data access layer +│ └── ClaudeDo.Worker/ # Background task runner +├── tests/ +│ └── ClaudeDo.Worker.Tests/ +├── schema/ +│ └── schema.sql # Database schema +└── docs/ + ├── plan.md # Architecture & design spec + ├── open.md # Verification checklist & backlog + └── improvement-plan.md # Prioritized improvements +``` + +## License + +Private — not licensed for redistribution.