Initial commit: Beads issue tracker with security fixes
Core features:
- Dependency-aware issue tracking with SQLite backend
- Ready work detection (issues with no open blockers)
- Dependency tree visualization
- Cycle detection and prevention
- Full audit trail
- CLI with colored output
Security and correctness fixes applied:
- Fixed SQL injection vulnerability in UpdateIssue (whitelisted fields)
- Fixed race condition in ID generation (added mutex)
- Fixed cycle detection to return full paths (not just issue IDs)
- Added cycle prevention in AddDependency (validates before commit)
- Added comprehensive input validation (priority, status, types, etc.)
- Fixed N+1 query in GetBlockedIssues (using GROUP_CONCAT)
- Improved query building in GetReadyWork (proper string joining)
- Fixed P0 priority filter bug (using Changed() instead of value check)
All critical and major issues from code review have been addressed.
🤖 Generated with Claude Code
This commit is contained in:
104
QUICKSTART.md
Normal file
104
QUICKSTART.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# Beads Quickstart
|
||||
|
||||
Get up and running with Beads in 2 minutes.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
cd ~/src/beads
|
||||
go build -o beads ./cmd/beads
|
||||
./beads --help
|
||||
```
|
||||
|
||||
## Your First Issues
|
||||
|
||||
```bash
|
||||
# Create a few issues
|
||||
./beads create "Set up database" -p 1 -t task
|
||||
./beads create "Create API" -p 2 -t feature
|
||||
./beads create "Add authentication" -p 2 -t feature
|
||||
|
||||
# List them
|
||||
./beads list
|
||||
```
|
||||
|
||||
## Add Dependencies
|
||||
|
||||
```bash
|
||||
# API depends on database
|
||||
./beads dep add bd-2 bd-1
|
||||
|
||||
# Auth depends on API
|
||||
./beads dep add bd-3 bd-2
|
||||
|
||||
# View the tree
|
||||
./beads dep tree bd-3
|
||||
```
|
||||
|
||||
Output:
|
||||
```
|
||||
🌲 Dependency tree for bd-3:
|
||||
|
||||
→ bd-3: Add authentication [P2] (open)
|
||||
→ bd-2: Create API [P2] (open)
|
||||
→ bd-1: Set up database [P1] (open)
|
||||
```
|
||||
|
||||
## Find Ready Work
|
||||
|
||||
```bash
|
||||
./beads ready
|
||||
```
|
||||
|
||||
Output:
|
||||
```
|
||||
📋 Ready work (1 issues with no blockers):
|
||||
|
||||
1. [P1] bd-1: Set up database
|
||||
```
|
||||
|
||||
Only bd-1 is ready because bd-2 and bd-3 are blocked!
|
||||
|
||||
## Work the Queue
|
||||
|
||||
```bash
|
||||
# Start working on bd-1
|
||||
./beads update bd-1 --status in_progress
|
||||
|
||||
# Complete it
|
||||
./beads close bd-1 --reason "Database setup complete"
|
||||
|
||||
# Check ready work again
|
||||
./beads ready
|
||||
```
|
||||
|
||||
Now bd-2 is ready! 🎉
|
||||
|
||||
## Track Progress
|
||||
|
||||
```bash
|
||||
# See blocked issues
|
||||
./beads blocked
|
||||
|
||||
# View statistics
|
||||
./beads stats
|
||||
```
|
||||
|
||||
## Database Location
|
||||
|
||||
By default: `~/.beads/beads.db`
|
||||
|
||||
You can use project-specific databases:
|
||||
|
||||
```bash
|
||||
./beads --db ./my-project.db create "Task"
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Add labels: `./beads create "Task" -l "backend,urgent"`
|
||||
- Filter ready work: `./beads ready --priority 1`
|
||||
- Search issues: `./beads list --status open`
|
||||
- Detect cycles: `./beads dep cycles`
|
||||
|
||||
See [README.md](README.md) for full documentation.
|
||||
Reference in New Issue
Block a user