bakery-devops 0.1.3

Azure DevOps work item scraper with OpenSpec integration
bakery-devops-0.1.3 is not a library.

Bakery 🥐

A beautiful Azure DevOps work item scraper with AI-powered OpenSpec integration.

Bakery is a professional CLI tool that scrapes Azure DevOps work items and generates comprehensive OpenSpec implementation plans using AI. Features beautiful terminal output, flexible configuration, and both centralized and local storage modes.

✨ Features

  • 🚀 Beautiful Terminal Output - Colorful, emoji-enhanced user experience
  • 🔧 Flexible Configuration - User-friendly TOML configuration system
  • 📁 Smart Storage Options - Centralized or local project-based storage
  • 🤖 AI-Powered OpenSpec Integration - Comprehensive implementation plan generation
  • 🎯 Complete Azure DevOps Integration - Full work item content extraction
  • ⚙️ Professional CLI - Built with Rust for performance and reliability
  • 📋 OpenSpec Methodology - Proper three-stage workflow integration

🚀 Quick Start

Installation

# Install from crates.io

cargo install bakery-devops


# The binary will be available as `bakery` (not `bakery-devops`)

bakery --help


# Or build locally

git clone https://github.com/KyleEdwardDonaldson/bakery

cd bakery

cargo build --release

Basic Usage

# Scrape a work item and generate OpenSpec plan

bakery -t 12345


# Open configuration file

bakery config


# Get help

bakery --help

📦 Package vs Binary Name

Important Note:

  • Package name on crates.io: bakery-devops
  • Binary name after installation: bakery

This means you install with cargo install bakery-devops but run commands with bakery.

# ✅ Correct: Install the package

cargo install bakery-devops


# ✅ Correct: Use the binary after installation

bakery --help


# ❌ Incorrect: (package name is not the binary name)

bakery-devops --help

⚠️ Prerequisites

Required for Basic Usage:

  • ✅ Azure DevOps Personal Access Token (PAT)
  • ✅ Network access to dev.azure.com

Optional for OpenSpec Integration:

  • 🤖 AI CLI Tool (any of the following):
    • Claude CLI - Recommended
    • OpenAI CLI
    • Custom AI tools that accept prompts via command line

If you don't have an AI CLI configured, Bakery will still scrape work items perfectly:

  1. Disable OpenSpec generation:

    bakery -t 12345 --no-openspec
    
    
  2. Disable in configuration:

    [openspec]
    
    auto_generate = false
    
    

📋 Configuration

Bakery automatically creates a configuration file at:

  • Windows: %USERPROFILE%\.bakery\bakery-config.toml
  • Mac/Linux: ~/.bakery/bakery-config.toml

Run bakery config to open the configuration file in your default editor.

Configuration Example

[azure_devops]

# Azure DevOps organization name

organization = "your-organization"



# Azure DevOps project name

project = "YourProject"



# Personal Access Token (PAT) for Azure DevOps API access

pat_token = "your-pat-token-here"



# Azure DevOps REST API version (usually don't need to change this)

api_version = "7.1"



[storage]

# Base directory where Bakery stores all data

# Windows example: "C:/DevOpsData"

# Mac/Linux example: "~/devops-data"

base_directory = "~/devops-data"



# Subdirectory for scraped tickets

tickets_subdir = "Tickets"



# Subdirectory for OpenSpec plans

openspec_subdir = "openspec"



# Local baking mode - creates folders in current working directory

local_baking = false



[openspec]

# AI command template for generating OpenSpec plans

# Use {prompt} as a placeholder for the generated prompt

ai_command_template = "claude -p \"{prompt}\""



# Automatically generate OpenSpec plans after scraping tickets

auto_generate = true

🔧 Azure DevOps Setup

  1. Create a Personal Access Token (PAT):

  2. Configure Bakery:

    • Run bakery config to open configuration
    • Update organization, project, and pat_token
    • Set your preferred base_directory

📁 Storage Modes

Centralized Storage (Default)

{base_directory}/
├── Tickets/
│   ├── 12345/
│   │   ├── work_item.json
│   │   ├── attachments/
│   │   └── images/
│   └── 12346/
└── openspec/
    ├── 12345-concise-title.md
    └── 12346-another-title.md

Local Baking Mode

Set local_baking = true to create folders in your current working directory:

current-project/
├── Tickets/
│   └── 12345/
└── openspec/

🤖 AI Integration

Bakery supports any AI CLI that accepts prompts as command line arguments:

Claude (Recommended)

claude -p "{prompt}"

OpenAI CLI

openai api chat.complete --messages "{prompt}"

Custom AI Tools

your-ai-tool --prompt "{prompt}"

Configure your preferred AI tool in the ai_command_template setting.

📋 OpenSpec Integration

Bakery generates comprehensive OpenSpec implementation plans that follow the proper three-stage workflow:

Generated Plans Include:

  • Change Analysis: Scope identification and directory structure planning
  • Proposal Structure: Complete proposal.md with Why, What Changes, and Impact
  • Delta Specifications: Proper ADDED/MODIFIED/REMOVED Requirements with scenarios
  • Implementation Tasks: Detailed tasks.md with analysis, implementation, and verification
  • Design Documentation: design.md when needed for complex changes
  • Three-Stage Workflow: Creating Changes → Implementing Changes → Archiving Changes
  • Quality Gates: Validation, testing, and approval requirements

OpenSpec Features:

  • ✅ Proper methodology integration from OpenSpec AGENTS.md
  • ✅ Scenario-driven requirements with WHEN/THEN format
  • ✅ Delta operations (ADDED/MODIFIED/REMOVED/RENAMED)
  • ✅ Implementation task breakdowns
  • ✅ Testing strategies and validation steps
  • ✅ Quality gates and completion criteria

🎯 Features

Work Item Scraping

  • ✅ Full work item details (title, description, state, type)
  • ✅ Acceptance criteria extraction
  • ✅ Comments and attachments
  • ✅ Embedded images and media
  • ✅ Related work items
  • ✅ HTML content cleaning and formatting

OpenSpec Integration

  • ✅ Comprehensive plan generation (130+ lines typical)
  • ✅ Proper OpenSpec methodology
  • ✅ AI-powered analysis and task creation
  • ✅ Integration with multiple AI platforms
  • ✅ Customizable filename formats

Terminal Experience

  • 🎨 Beautiful colored output
  • 📊 Detailed progress information
  • ✅ Success/error messaging
  • 📁 Storage location indicators

📖 Command Line Options

bakery [OPTIONS] [COMMAND]


Commands:

  config  Open Bakery configuration file

  help    Print this message or the help of the given subcommands


Options:

  -t, --ticket-id <TICKET_ID>            The Azure DevOps work item ID to scrape

      --organization <ORGANIZATION>      Azure DevOps organization name (overrides config)
      --project <PROJECT>                Azure DevOps project name (overrides config)
      --pat-token <PAT_TOKEN>            Personal Access Token for authentication (overrides config)
      --base-directory <BASE_DIRECTORY>  Base directory for storing tickets (overrides config)
      --no-openspec                      Skip OpenSpec plan generation

  -v, --verbose                          Enable verbose logging

  -h, --help                             Print help

  -V, --version                          Print version

🔍 Examples

Basic Scraping

# Scrape work item with default settings

bakery -t 12345


# Scrape with verbose logging

bakery -t 12345 --verbose


# Skip OpenSpec generation

bakery -t 12345 --no-openspec

Override Configuration

# Use different organization

bakery -t 12345 --organization my-org


# Use different project

bakery -t 12345 --project MyProject


# Use custom storage directory

bakery -t 12345 --base-directory ./my-tickets

Local Baking Mode

# Enable local baking in config, then run:

cd /path/to/your/project

bakery -t 12345

# Creates folders in current directory

🔧 Development

Building from Source

git clone https://github.com/KyleEdwardDonaldson/bakery

cd bakery

cargo build --release

Running Tests

cargo test

Development Setup

# Install development dependencies

cargo build


# Run with debug output

cargo run -- -t 12345 --verbose

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Development Guidelines

  • Follow Rust best practices and conventions
  • Add tests for new features
  • Update documentation as needed
  • Ensure the code builds with cargo build
  • Run tests with cargo test

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👨‍💻 Author

Kyle Edward Donaldson

🙏 Acknowledgments

OpenSpec Integration

This tool integrates methodology and concepts from OpenSpec, a comprehensive specification-driven development framework. The OpenSpec workflow provides the structured approach to change management, requirement specification, and implementation planning that makes Bakery-generated plans so effective.

Built With

  • Rust - Systems programming language
  • clap - Command line argument parsing
  • colored - Terminal colors
  • tokio - Async runtime
  • reqwest - HTTP client
  • scraper - HTML parsing
  • serde - Serialization/deserialization
  • anyhow - Error handling

Integrations

📚 Additional Resources


Bakery - Transform your Azure DevOps work items into comprehensive implementation plans with the power of AI and OpenSpec methodology. 🚀