Skip to content

Commit 4d7b95c

Browse files
committed
docs: add CLAUDE.md with project guidelines
1 parent ca004f3 commit 4d7b95c

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

CLAUDE.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# One Man Band
2+
3+
A Tauri desktop app for orchestrating git worktrees with integrated terminal support.
4+
5+
## Tech Stack
6+
7+
- **Frontend**: React 19, TypeScript, Tailwind CSS, xterm.js
8+
- **Backend**: Rust, Tauri 2.x
9+
- **Build**: Vite, Cargo
10+
11+
## Project Structure
12+
13+
```
14+
src/ # React frontend
15+
components/ # UI components
16+
hooks/ # React hooks (useWorktrees, usePty, useGitStatus)
17+
lib/ # Tauri invoke wrappers
18+
types/ # TypeScript types
19+
src-tauri/ # Rust backend
20+
src/
21+
lib.rs # Tauri commands
22+
worktree.rs # Git worktree operations
23+
pty.rs # Terminal/PTY management
24+
watcher.rs # File system watcher
25+
config.rs # User configuration
26+
state.rs # App state types
27+
```
28+
29+
## Development
30+
31+
```bash
32+
npm install
33+
npm run tauri dev
34+
```
35+
36+
## Commits and Releases
37+
38+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) with release-please for automated versioning.
39+
40+
### Commit Message Format
41+
42+
```
43+
<type>: <description>
44+
45+
[optional body]
46+
47+
[optional footer]
48+
```
49+
50+
### Version Bump Rules
51+
52+
| Commit Type | Version Bump | Example |
53+
|-------------|--------------|---------|
54+
| `feat:` | Minor (0.1.0 → 0.2.0) | `feat: add dark mode toggle` |
55+
| `fix:` | Patch (0.1.0 → 0.1.1) | `fix: resolve crash on startup` |
56+
| `feat!:` or `BREAKING CHANGE:` | Major (0.1.0 → 1.0.0) | `feat!: change config format` |
57+
| `docs:`, `chore:`, `refactor:`, `test:`, `style:` | No bump | `docs: update README` |
58+
59+
### Commit Types
60+
61+
- `feat` - New feature for the user
62+
- `fix` - Bug fix for the user
63+
- `docs` - Documentation only changes
64+
- `style` - Formatting, missing semicolons, etc (no code change)
65+
- `refactor` - Code change that neither fixes a bug nor adds a feature
66+
- `perf` - Performance improvement
67+
- `test` - Adding or updating tests
68+
- `chore` - Maintenance tasks, dependency updates
69+
- `build` - Changes to build system or external dependencies
70+
- `ci` - CI configuration changes
71+
72+
### Release Process
73+
74+
1. Make commits using conventional commit format
75+
2. Push to `main` branch
76+
3. Release-please automatically creates/updates a release PR
77+
4. Review and merge the release PR
78+
5. GitHub Action builds and uploads binaries to the release
79+
80+
### Manual Version Sync
81+
82+
Version is defined in three places that release-please keeps in sync:
83+
- `package.json` - `version` field
84+
- `src-tauri/Cargo.toml` - `version` field
85+
- `src-tauri/tauri.conf.json` - `version` field
86+
87+
## Configuration
88+
89+
User config is stored at `~/.config/onemanband/config.jsonc`:
90+
91+
```jsonc
92+
{
93+
"main": {
94+
"command": "claude", // Command to run in main pane
95+
"fontFamily": "Menlo, Monaco, monospace",
96+
"fontSize": 13
97+
},
98+
"worktree": {
99+
"directory": "{{ repo_directory }}/.worktrees",
100+
"copy": {
101+
"gitignored": true,
102+
"except": [".claude"]
103+
}
104+
}
105+
}
106+
```

0 commit comments

Comments
 (0)