chore(claudedo): Add a Readme to the repo

ClaudeDo-Task: 6a119bda-2368-443e-b9b2-55584527bcfb
This commit is contained in:
Mika Kuns
2026-04-14 15:37:17 +02:00
parent 95c8cc8372
commit 3eb040f618

107
README.md Normal file
View File

@@ -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.