atelier-spec-beads
npx skills add https://github.com/martinffx/claude-code-atelier --skill atelier-spec-beads
Agent 安装分布
Skill 文档
Beads Task Tracker
Dependency-aware task management integrated with spec workflows. Tasks are stored in .beads/beads.jsonl and persist across sessions via git.
Overview
Beads enforces implementation order through dependency tracking:
- Dependency-driven execution –
bd readysurfaces only unblocked tasks - Bottom-up enforcement – Dependencies ensure Entity â Repository â Service â Router
- Git-backed persistence –
.beads/beads.jsonltracks all tasks and status - Spec integration – Commands like
/spec:planauto-create epics with ordered tasks
Core Workflow Commands
| Command | Purpose | Example |
|---|---|---|
bd init |
Initialize Beads in project | bd init |
bd create <name> |
Create task or epic | bd create "Implement UserEntity" -t task -p 2 -l entity,user |
bd ready |
Find next unblocked task | bd ready --label user --json |
bd update <id> |
Update task status/fields | bd update task-123 --status in_progress |
bd close <id> |
Mark task complete | bd close task-123 --reason "Implemented with tests" |
bd list |
Show all tasks | bd list --json or bd list --label feature |
Task Types and Priority
Types (-t flag):
epic– Feature or change containertask– Implementation work (default)
Priority (-p flag):
1– High (epics)2– Normal (implementation tasks)3– Low (nice-to-have)
Labels (-l flag):
- Feature name:
user,auth,billing - Layer:
entity,repository,service,router - Type:
feature,change,bug
Dependency Management
Dependencies enforce execution order and identify blocking relationships.
Dependency Commands
| Command | Purpose | Example |
|---|---|---|
bd dep add <task> <blocks> |
Task blocks another | bd dep add task-1 task-2 --type blocks |
bd dep list |
Show all dependencies | bd dep list --json |
bd dep list <id> |
Show task dependencies | bd dep list task-123 |
bd dep tree |
Visualize dependency tree | bd dep tree |
Dependency Types
blocks– Task must complete before dependent can startdiscovered-from– Task identified during another taskrelated-to– Informational relationship
Finding Blocked Tasks
# Show only blocked tasks
bd list --json | jq '.[] | select(.blocked == true)'
# Find tasks blocking a specific task
bd dep list task-123
Task Organization
Epic Structure
Epics contain related tasks for a feature or change:
# Create epic
bd create "Feature: User Management" -t epic -p 1 -l feature,user
# Create tasks in epic
bd create "Implement UserEntity" -t task -p 2 -l entity,user -e epic-1
bd create "Implement UserRepository" -t task -p 2 -l repository,user -e epic-1
# Add dependencies (Repository depends on Entity)
bd dep add task-1 task-2 --type blocks
Status Transitions
Tasks flow through these states:
pending– Created, not yet startedin_progress– Actively being workeddone– Completed successfully
Update status explicitly:
bd update task-123 --status in_progress
bd close task-123 # Transitions to done
Spec Command Integration
Spec commands automatically manage Beads for workflow enforcement.
/spec:plan [change]
Creates implementation plan with Beads epic and tasks:
Reads:
docs/spec/<feature>/spec.md– Technical designdocs/spec/<feature>/changes/<change>/design.md– Change design
Creates:
docs/spec/<feature>/changes/<change>/plan.json– Task list with dependenciesdocs/spec/<feature>/changes/<change>/delta.md– ADDED/MODIFIED/REMOVED- Beads epic with label
<feature> - Beads tasks ordered by layer dependencies
Dependencies:
- Entity tasks have no dependencies (bottom layer)
- Repository tasks depend on Entity tasks
- Service tasks depend on Repository tasks
- Router tasks depend on Service tasks
/spec:work [feature]
Implements next ready task:
Finds ready task:
bd ready --label <feature> --json # If feature specified
bd ready --json # Any feature if not specified
Marks in progress:
bd update <task-id> --status in_progress
After implementation:
bd close <task-id> --reason "Implemented with layer boundary tests"
/spec:status [feature]
Reports progress using Beads data:
Queries tasks:
bd list --label <feature> --json # Feature status
bd list --json # All features
Calculates metrics:
- Completion percentage:
completed / total * 100 - Ready task count:
bd ready --label <feature> | wc -l - Blocked task identification from dependencies
Reports:
- Total/completed/in-progress/blocked/ready counts
- Next ready tasks
- Dependency blockers
- Recommended next action
/spec:complete
Archives completed work:
Verifies all tasks done:
bd list --label <feature> --json
# All tasks must have status: done
After merging delta to spec:
- Beads epic remains (git history)
- Beads tracks completion metrics
- Change folder deleted (git preserves history)
Common Patterns
Pattern: Create Epic and Tasks
# 1. Create epic
bd create "Feature: User Auth" -t epic -p 1 -l feature,auth
# 2. Create layer tasks in dependency order
bd create "Implement UserEntity" -t task -p 2 -l entity,auth -e epic-1
bd create "Implement UserRepository" -t task -p 2 -l repository,auth -e epic-1
bd create "Implement AuthService" -t task -p 2 -l service,auth -e epic-1
bd create "Implement auth routes" -t task -p 2 -l router,auth -e epic-1
# 3. Add bottom-up dependencies
bd dep add task-1 task-2 --type blocks # Entity blocks Repository
bd dep add task-2 task-3 --type blocks # Repository blocks Service
bd dep add task-3 task-4 --type blocks # Service blocks Router
Pattern: Implementation Work Loop
# 1. Find next ready task
bd ready --label auth --json
# 2. Start work
bd update task-1 --status in_progress
# 3. Implement with tests (StubâTestâFix)
# ... code implementation ...
# 4. Complete task
bd close task-1 --reason "Entity implemented with validation tests"
# 5. Repeat
bd ready --label auth --json
Pattern: Check Progress
# Feature-specific progress
bd list --label auth --json | jq '{
total: length,
done: [.[] | select(.status == "done")] | length,
in_progress: [.[] | select(.status == "in_progress")] | length,
blocked: [.[] | select(.blocked == true)] | length
}'
# All features overview
bd list --json | jq 'group_by(.labels[] | select(. == "feature"))
| map({feature: .[0].labels[1], tasks: length})'
Pattern: Handle Discovered Work
During implementation, create new tasks for edge cases:
# Create new task
bd create "Add email validation edge case" -t task -p 2 -l entity,auth
# Link to task where discovered
bd dep add task-5 task-1 --type discovered-from
JSON Output
All commands support --json for programmatic access:
# Task structure
{
"id": "task-123",
"name": "Implement UserEntity",
"type": "task",
"status": "pending",
"priority": 2,
"labels": ["entity", "user"],
"epic": "epic-1",
"created": "2024-01-15T10:30:00Z",
"updated": "2024-01-15T10:30:00Z",
"blocked": false,
"dependencies": []
}
Parse with jq for filtering:
# Ready tasks
bd ready --json | jq '.[0].id'
# Completed tasks
bd list --json | jq '[.[] | select(.status == "done")] | length'
# Tasks by layer
bd list --json | jq 'group_by(.labels[] | select(. == "entity" or . == "repository"))'
Quick Reference
# Setup
bd init # Initialize Beads
# Task Creation
bd create "Task name" -t task -p 2 -l feature # Create task
bd create "Epic name" -t epic -p 1 -l feature # Create epic
# Task Management
bd ready # Find next task
bd ready --label feature # Feature-specific
bd update task-123 --status in_progress # Start work
bd close task-123 # Complete work
# Progress Tracking
bd list # All tasks
bd list --label feature # Feature tasks
bd list --json # JSON output
# Dependencies
bd dep add task-1 task-2 --type blocks # Add dependency
bd dep list task-123 # Show dependencies
bd dep tree # Visualize tree
# Spec Integration
/spec:plan feature # Create Beads epic
/spec:work feature # Start next ready task
/spec:status feature # Check progress
/spec:complete feature change # Archive work