feat: add Git worktree compatibility (PR #478)

Adds comprehensive Git worktree support for beads issue tracking:

Core changes:
- New internal/git/gitdir.go package for worktree detection
- GetGitDir() returns proper .git location (main repo, not worktree)
- Updated all hooks to use git.GetGitDir() instead of local helper
- BeadsDir() now prioritizes main repository's .beads directory

Features:
- Hooks auto-install in main repo when run from worktree
- Shared .beads directory across all worktrees
- Config option no-install-hooks to disable auto-install
- New bd worktree subcommand for diagnostics

Documentation:
- New docs/WORKTREES.md with setup instructions
- Updated CHANGELOG.md and AGENT_INSTRUCTIONS.md

Testing:
- Updated tests to use exported git.GetGitDir()
- Added worktree detection tests

Co-authored-by: Claude <noreply@anthropic.com>
Closes: #478
This commit is contained in:
matt wilkie
2025-12-13 10:40:40 -08:00
committed by Steve Yegge
parent de7b511765
commit e01b7412d9
64 changed files with 1895 additions and 3708 deletions

View File

@@ -17,18 +17,6 @@ brew install bd
- ✅ No need to install Go
- ✅ Handles PATH setup automatically
### mise (polyglot runtime manager)
```bash
mise use -g ubi:steveyegge/beads[exe=bd]
```
**Why mise?**
- ✅ Single tool for managing many development tools
- ✅ Version pinning per project via `mise.toml`
- ✅ No need to install Go
- ✅ Works across macOS, Linux, and Windows
### Quick Install Script (All Platforms)
```bash
@@ -173,7 +161,7 @@ For enhanced UX with slash commands:
```
The plugin adds:
- Slash commands: `/beads:ready`, `/beads:create`, `/beads:show`, `/beads:update`, `/beads:close`, etc.
- Slash commands: `/bd-ready`, `/bd-create`, `/bd-show`, `/bd-update`, `/bd-close`, etc.
- Task agent for autonomous execution
See [PLUGIN.md](PLUGIN.md) for complete plugin documentation.