Measure twice, code once.
A unified toolkit for Context-Driven Development that combines structured planning with persistent memory. Turn your AI assistant into a proactive project manager that follows a strict protocol: Context β Spec & Plan β Implement.
Version: 0.1.0
Conductor-Beads integrates two powerful systems:
- Conductor provides the methodology β specs, plans, tracks, and TDD workflows
- Beads provides the memory β persistent task tracking that survives conversation compaction
Together, they enable AI agents to manage long-horizon development tasks without losing context across sessions.
- Gemini CLI - via extension commands (TOML)
- Claude Code - via slash commands and skills
- Agent Skills compatible CLIs - via skills specification
Beads provides persistent, structured memory for coding agents. Install using one of these methods:
# npm (recommended)
npm install -g @beads/bd
# Homebrew (macOS/Linux)
brew install steveyegge/beads/bd
# Go
go install github.com/steveyegge/beads/cmd/bd@latestVerify installation:
bd --versionNote: Beads integration is always attempted for persistent memory. If the
bdCLI is unavailable or fails, you'll be prompted to choose whether to continue without it.
Full Installation (all skills):
# Clone the repository
git clone https://github.com/NguyenSiTrung/Conductor-Beads.git
# Copy commands and skills to your global config
cp -r Conductor-Beads/.claude/commands/* ~/.claude/commands/
cp -r Conductor-Beads/.claude/skills/* ~/.claude/skills/Minimal Installation (conductor only, smaller context):
git clone https://github.com/NguyenSiTrung/Conductor-Beads.git
# Copy only commands and conductor skill
cp -r Conductor-Beads/.claude/commands/* ~/.claude/commands/
mkdir -p ~/.claude/skills
cp -r Conductor-Beads/.claude/skills/conductor ~/.claude/skills/Project-Local Installation:
# Full - copy entire .claude folder
cp -r Conductor-Beads/.claude your-project/
# Minimal - conductor only
mkdir -p your-project/.claude/skills
cp -r Conductor-Beads/.claude/commands your-project/.claude/
cp -r Conductor-Beads/.claude/skills/conductor your-project/.claude/skills/| Installation | Includes | Best For |
|---|---|---|
| Full | conductor, beads, skill-creator skills | Standalone Beads usage, skill development |
| Minimal | conductor skill only (has Beads integration) | Most projects, smaller context window |
gemini extensions install https://github.com/NguyenSiTrung/Conductor-Beads --auto-updateRun the setup command in your project directory:
# Claude Code
/conductor-setup
# Gemini CLI
/conductor:setupThis creates the conductor/ directory with:
product.md- Product vision and goalstech-stack.md- Technology choicesworkflow.md- Development standards (TDD, commits)tracks.md- Master track list
After Conductor setup, initialize Beads for persistent memory:
# Standard mode (commits to repo)
bd init
# Stealth mode (local-only, for shared repos)
bd init --stealthThis creates .beads/ directory for dependency-aware task tracking.
After setup, conductor/beads.json controls integration:
{
"enabled": true,
"mode": "stealth",
"sync": "bidirectional",
"compactOnArchive": true
}Mode Options:
| Mode | Command | Description |
|---|---|---|
"normal" |
bd init |
Full integration. Commits .beads/ to repo. Team members see tasks. |
"stealth" |
bd init --stealth |
Local only. .beads/ is gitignored. Personal use on shared repos. |
Use stealth when working on a shared repository where you don't want to commit Beads data. Use normal when the whole team uses Beads.
# Claude Code
/conductor-newtrack "Add user authentication"
# Gemini CLI
/conductor:newTrack "Add user authentication"This creates:
conductor/tracks/<track_id>/spec.md- Requirementsconductor/tracks/<track_id>/plan.md- Phased task listconductor/tracks/<track_id>/metadata.json- Track metadata- Beads epic (if enabled):
bd-xxxx
# Claude Code
/conductor-implement
# Gemini CLI
/conductor:implementThe workflow:
- Load context - Reads spec.md and plan.md
- Find ready tasks - Uses
bd readyif Beads enabled - Execute TDD - Write test β Implement β Refactor
- Track progress - Updates plan.md and Beads status
- Verify - Manual verification at phase boundaries
For phases with independent tasks, Conductor can now execute them in parallel using sub-agents:
## Phase 1: Core Setup
<!-- execution: parallel -->
- [ ] Task 1: Create auth module
<!-- files: src/auth/index.ts, src/auth/index.test.ts -->
- [ ] Task 2: Create config module
<!-- files: src/config/index.ts -->How it works:
- During
/conductor-newtrack, you'll be asked if you want parallel execution - Tasks are analyzed for file conflicts and dependencies
- During
/conductor-implement, parallel phases spawn sub-agents - Each sub-agent works on exclusive files with TDD workflow
- Results are aggregated when all workers complete
Benefits:
- β‘ Faster execution for independent tasks
- π File locking prevents conflicts
- π State tracking via
parallel_state.json
See Parallel Execution Design for details.
# Claude Code
/conductor-status
# Gemini CLI
/conductor:statusShows:
- Active tracks with progress
- Ready tasks (from Beads)
- Blocked items
| Gemini CLI | Claude Code | Description |
|---|---|---|
/conductor:setup |
/conductor-setup |
Initialize project context |
/conductor:newTrack |
/conductor-newtrack |
Create feature/bug track |
/conductor:implement |
/conductor-implement |
Execute tasks from plan |
/conductor:status |
/conductor-status |
Show progress overview |
/conductor:revert |
/conductor-revert |
Git-aware revert |
/conductor:validate |
/conductor-validate |
Validate project integrity |
/conductor:block |
/conductor-block |
Mark task as blocked |
/conductor:skip |
/conductor-skip |
Skip current task |
/conductor:revise |
/conductor-revise |
Update spec/plan |
/conductor:archive |
/conductor-archive |
Archive completed tracks |
/conductor:export |
/conductor-export |
Generate project summary |
/conductor:handoff |
/conductor-handoff |
Create context handoff |
/conductor:refresh |
/conductor-refresh |
Sync context with codebase |
| Command | Description |
|---|---|
bd ready |
List tasks with no blockers |
bd create "Title" -p 0 |
Create a P0 (highest priority) task |
bd show <id> |
View task details, notes, and context |
bd close <id> --reason "Done" |
Complete task with summary |
bd update <id> --notes "context" |
Add notes for session resume |
bd dep add <child> <parent> |
Add dependency between tasks |
bd sync |
Force sync to remote (use at session end) |
Located in .claude/skills/:
| Skill | Description |
|---|---|
| conductor | Context-driven development methodology. Auto-activates when conductor/ directory exists. Provides intent mapping for natural language commands. |
| beads | Persistent task memory that survives conversation compaction. Auto-activates when .beads/ directory exists. Integrates with Conductor for cross-session memory. |
| skill-creator | Guide for creating and packaging new AI agent skills. |
Skills auto-activate based on project structure:
conductor/directory β Conductor skill loads.beads/directory β Beads skill loads- Both present β Integrated workflow enabled
Skills provide:
- Context Loading: Automatically reads relevant project files
- Intent Mapping: Converts natural language to commands
- Proactive Behaviors: Suggests next steps and detects issues
Conductor-Beads/
βββ .claude/
β βββ commands/ # Claude Code slash commands (13)
β βββ skills/ # Skills (conductor, beads, skill-creator)
βββ commands/conductor/ # Gemini CLI TOML commands (13)
βββ templates/ # Workflow and styleguide templates
βββ docs/ # Documentation
βββ CLAUDE.md # Claude Code context
βββ GEMINI.md # Gemini CLI context
βββ gemini-extension.json
When you run Conductor on a project:
your-project/
βββ conductor/
β βββ product.md # Product vision
β βββ tech-stack.md # Technology choices
β βββ workflow.md # Development standards
β βββ tracks.md # Master track list
β βββ beads.json # Beads integration config
β βββ tracks/
β βββ <track_id>/
β βββ spec.md # Requirements
β βββ plan.md # Task list
β βββ metadata.json
βββ .beads/ # Beads data (if initialized)
Throughout conductor files:
[ ]- Pending/New[~]- In Progress[x]- Completed[!]- Blocked
flowchart TD
subgraph SETUP[Project Setup]
A[New Project] --> B["conductor-setup"]
B --> C[Context files]
C --> D["bd init"]
D --> E[Ready]
end
subgraph PLANNING[Planning]
E --> F["conductor-newtrack"]
F --> G[spec + plan]
G --> H{Approved?}
H -->|No| I["conductor-revise"]
I --> G
H -->|Yes| J[Ready to implement]
end
subgraph IMPL[Implementation]
J --> K["conductor-implement"]
K --> L["bd ready"]
L --> M[Execute Task - TDD]
M --> N{Done?}
N -->|Yes| O["bd done + update plan"]
O --> P{More Tasks?}
P -->|Yes| Q{5+ tasks?}
Q -->|Yes| R["conductor-handoff"]
R --> S[Save Context]
S --> K
Q -->|No| L
P -->|No| T[Track Complete]
end
subgraph ISSUES[Issue Handling]
N -->|Blocked| U["conductor-block"]
U --> V["conductor-skip"]
V --> L
M -->|Spec Wrong| W["conductor-revise"]
W --> M
end
subgraph DONE[Completion]
T --> X["conductor-archive"]
T --> Y["conductor-export"]
end
K -.-> Z["conductor-status"]
K -.-> AA["conductor-validate"]
flowchart LR
subgraph NEW_SESSION[New Session / After Compaction]
A[Start] --> B["bd ready"]
B --> C[Find ready tasks]
C --> D["bd show <id>"]
D --> E[Load context from notes/design]
end
subgraph RESUME[Resume Work]
E --> F[Read spec.md + plan.md]
F --> G["conductor-implement"]
G --> H[Continue from last task]
end
subgraph COMPLETE[On Completion]
H --> I["bd close <id> --reason"]
I --> J[Update plan.md with SHA]
J --> K["bd sync"]
end
| Pattern | Command Flow |
|---|---|
| Happy Path | setup β bd init β newtrack β implement β archive |
| Multi-Section | implement β (5+ tasks) β handoff β (new session) β implement |
| Handle Blockers | implement β block β skip or wait β implement |
| Mid-Track Changes | implement β revise β implement |
| Session Resume | bd ready β bd show --notes β load spec β implement |
| Monitoring | status / validate (anytime) |
| Context Drift | refresh (when codebase changed outside Conductor) |