* Add Linear integration CLI with sync and status commands - Add `bd linear sync` for bidirectional issue sync with Linear - Add `bd linear status` to show configuration and sync state - Stub pull/push functions pending GraphQL client (bd-b6b.2) * Implement Linear GraphQL client with full sync support - Add LinearClient with auth, fetch, create, update methods - Implement pull/push operations with Beads type mapping - Clean up redundant comments and remove unused code * Add configurable data mapping and dependency sync for Linear - Add LinearMappingConfig with configurable priority/state/label/relation maps - Import parent-child and issue relations as Beads dependencies - Support custom workflow states via linear.state_map.* config * Add incremental sync support for Linear integration - Add FetchIssuesSince() method using updatedAt filter in GraphQL - Check linear.last_sync config to enable incremental pulls - Track sync mode (incremental vs full) in LinearPullStats * feat(linear): implement push updates for existing Linear issues Add FetchIssueByIdentifier method to retrieve single issues by identifier (e.g., "TEAM-123") for timestamp comparison during push. Update doPushToLinear to: - Fetch Linear issue to get internal ID and UpdatedAt timestamp - Compare timestamps: only update if local is newer - Build update payload with title, description, priority, and state - Call UpdateIssue for issues where local has newer changes Closes bd-b6b.5 * Implement Linear conflict resolution strategies - Add true conflict detection by fetching Linear timestamps via API - Implement --prefer-linear resolution (re-import from Linear) - Implement timestamp-based resolution (newer wins as default) - Fix linter issues: handle resp.Body.Close() and remove unused error return * Add Linear integration tests and documentation - Add comprehensive unit tests for Linear mapping (priority, state, labels, relations) - Update docs/CONFIG.md with Linear configuration reference - Add examples/linear-workflow guide for bidirectional sync - Remove AI section header comments from tests * Fix Linear GraphQL filter construction and improve test coverage - Refactor filter handling to combine team ID into main filter object - Add test for duplicate issue relation mapping - Add HTTP round-trip helper for testing request payload validation * Refactor Linear queries to use shared constant and add UUID validation - Extract linearIssuesQuery to deduplicate FetchIssues/FetchIssuesSince - Add linearMaxPageSize constant and UUID validation with regex - Expand test coverage for new functionality * Refactor Linear integration into internal/linear package - Extract types, client, and mapping logic from cmd/bd/linear.go - Create internal/linear/ package for better code organization - Update tests to work with new package structure * Add linear teams command to list available teams - Add FetchTeams GraphQL query to Linear client - Refactor config reading to support daemon mode - Add tests for teams listing functionality * Refactor Linear config to use getLinearConfig helper - Consolidate config/env var lookup using getLinearConfig function - Add LINEAR_TEAM_ID environment variable support - Update error messages to include env var configuration options * Add hash ID generation and improve Linear conflict detection - Add configurable hash ID mode for Linear imports (matches bd/Jira) - Improve conflict detection with content hash comparison - Enhance conflict resolution with skip/force update tracking * Fix test for updated doPushToLinear signature - Add missing skipUpdateIDs parameter to test call
Beads Examples
This directory contains examples of how to integrate bd with AI agents and workflows.
Examples
Agent Integration
- python-agent/ - Simple Python agent that discovers ready work and completes tasks
- bash-agent/ - Bash script showing the full agent workflow
- startup-hooks/ - Session startup scripts for automatic bd upgrade detection
- claude-desktop-mcp/ - MCP server for Claude Desktop integration
Tools & Utilities
- monitor-webui/ - Standalone web interface for real-time issue monitoring and visualization
- markdown-to-jsonl/ - Convert markdown planning docs to bd issues
- github-import/ - Import issues from GitHub repositories
- git-hooks/ - Pre-configured git hooks for automatic export/import
Workflow Patterns
- contributor-workflow/ - OSS contributor setup with separate planning repo
- team-workflow/ - Team collaboration with shared repositories
- multi-phase-development/ - Organize large projects by phases (planning, MVP, iteration, polish)
- multiple-personas/ - Architect/implementer/reviewer role separation
- protected-branch/ - Protected branch workflow for team collaboration
Quick Start
# Try the Python agent example
cd python-agent
python agent.py
# Try the bash agent example
cd bash-agent
./agent.sh
# Install git hooks
cd git-hooks
./install.sh
# REMOVED (bd-4c74): branch-merge demo - hash IDs eliminate collision resolution
Creating Your Own Agent
The basic agent workflow:
- Find ready work:
bd ready --json --limit 1 - Claim the task:
bd update <id> --status in_progress --json - Do the work: Execute the task
- Discover new issues:
bd create "Found bug" --json - Link discoveries:
bd dep add <new-id> <parent-id> --type discovered-from - Complete the task:
bd close <id> --reason "Done" --json
All commands support --json for easy parsing.