| Crates.io | bakery-devops |
| lib.rs | bakery-devops |
| version | 0.2.2 |
| created_at | 2025-11-11 20:00:09.068806+00 |
| updated_at | 2025-11-17 22:45:51.675257+00 |
| description | Azure DevOps work item scraper with OpenSpec integration |
| homepage | https://github.com/KyleEdwardDonaldson/bakery |
| repository | https://github.com/KyleEdwardDonaldson/bakery |
| max_upload_size | |
| id | 1928110 |
| size | 243,144 |
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 seamless OpenSpec CLI integration with automatic validation.
--print flag for LLM/automation integration# Install from crates.io
cargo install bakery-devops
# The binary will be available as `bakery`
bakery --help
# Or build locally
git clone https://github.com/KyleEdwardDonaldson/bakery
cd bakery
cargo build --release
# Scrape a work item and generate OpenSpec change proposal
bakery -t 12345
# Machine-readable output for LLM integration
bakery -t 12345 --print
# Verbose mode with detailed logging
bakery -t 12345 --verbose
# Open configuration file
bakery config
Important Note:
bakery-devopsbakery# ✅ Correct: Install the package
cargo install bakery-devops
# ✅ Correct: Use the binary
bakery --help
# ❌ Incorrect: package name ≠ binary name
bakery-devops --help
dev.azure.comnpm install -g openspec) - For validation and workflowIf you don't have OpenSpec CLI, Bakery will still:
If you don't have AI CLI configured:
# Disable OpenSpec generation
bakery -t 12345 --no-openspec
# Or disable in config
[openspec]
auto_generate = false
Bakery automatically creates a configuration file at:
%USERPROFILE%\.bakery\bakery-config.toml~/.bakery/bakery-config.tomlRun bakery config to open and edit the configuration.
[azure_devops]
organization = "your-organization"
project = "YourProject"
pat_token = "your-pat-token-here"
api_version = "7.1"
[storage]
base_directory = "~/devops-data"
tickets_subdir = "Tickets"
openspec_subdir = "openspec"
local_baking = false # Set true to use current directory
[openspec]
ai_command_template = "claude --print \"{prompt}\""
auto_generate = true
Create a Personal Access Token (PAT):
Configure Bakery:
bakery config
# Update organization, project, pat_token
Bakery creates proper OpenSpec change proposals:
{base_directory}/
├── Tickets/
│ └── 12345/
│ ├── work_item.json
│ ├── attachments/
│ └── images/
└── openspec/
├── AGENTS.md # Created by openspec init
├── project.md # Project context
├── specs/ # Current specifications
└── changes/ # Change proposals
└── add-12345-feature-name/
├── proposal.md # Why, What, Impact
├── tasks.md # Implementation checklist
└── specs/ # Spec deltas
└── feature/
└── spec.md # ADDED/MODIFIED/REMOVED Requirements
Set local_baking = true to create folders in current working directory.
Bakery uses stdin piping for maximum compatibility with AI CLIs:
# In config:
ai_command_template = "claude --print \"{prompt}\""
Any tool that accepts stdin or command-line prompts:
ai_command_template = "your-ai-tool --input \"{prompt}\""
Bakery generates proper OpenSpec change proposals following the official methodology:
# Change: Feature Name
## Why
[Problem/opportunity explanation]
## What Changes
- [Bullet list of changes]
- [Breaking changes marked]
## Impact
- Affected specs: [capabilities]
- Affected code: [files/systems]
## 1. Analysis and Planning
- [ ] 1.1 Review existing specs
- [ ] 1.2 Check for conflicts
## 2. Implementation
- [ ] 2.1 Implement feature
- [ ] 2.2 Write tests
- [ ] 2.3 Update docs
## 3. Verification
- [ ] 3.1 Run openspec validate --strict
- [ ] 3.2 Test scenarios
- [ ] 3.3 Get approval
## ADDED Requirements
### Requirement: Feature Name
The system SHALL provide...
#### Scenario: Success Case
- **WHEN** user performs action
- **THEN** expected result
## MODIFIED Requirements
[Full updated requirements]
## REMOVED Requirements
[Deprecated features]
Bakery automatically runs openspec validate --strict on generated changes and reports results:
After generating a change:
# List all changes
openspec list
# View interactive dashboard
openspec view
# Show change details
openspec show add-12345-feature-name
# Validate change
openspec validate add-12345-feature-name --strict
# After implementation, archive the change
openspec archive add-12345-feature-name
bakery [OPTIONS] [COMMAND]
Commands:
config Open Bakery configuration file
Options:
-t, --ticket-id <TICKET_ID> Azure DevOps work item ID to scrape
--organization <ORGANIZATION> Override config organization
--project <PROJECT> Override config project
--pat-token <PAT_TOKEN> Override config PAT token
--base-directory <BASE_DIRECTORY> Override config base directory
--no-openspec Skip OpenSpec plan generation
-v, --verbose Enable verbose logging
-p, --print Machine-readable output for LLMs
-h, --help Print help
-V, --version Print version
# Clean output (default)
bakery -t 12345
# Verbose output with all details
bakery -t 12345 --verbose
# Skip OpenSpec generation
bakery -t 12345 --no-openspec
# Perfect for LLM/automation integration
bakery -t 12345 --print
# Output:
# --- BAKERY OUTPUT ---
# work_item_id: 12345
# work_item_title: Feature Name
# ticket_path: /path/to/Tickets/12345
# change_path: /path/to/openspec/changes/add-12345-feature-name
# status: success
# Different organization
bakery -t 12345 --organization my-org
# Custom storage location
bakery -t 12345 --base-directory ./my-tickets
🔄 Fetching work item #12345...
✓ Feature implementation
┌─────────────────────────────────────────────────────┐
│ 🤖 AI Generating OpenSpec Plan... │
└─────────────────────────────────────────────────────┘
✓ Validation passed
✓ 3 new requirement(s)
📁 /path/to/openspec/changes/add-12345-feature-name
✓ Complete
Next: openspec list or openspec view
-v)-p)git clone https://github.com/KyleEdwardDonaldson/bakery
cd bakery
cargo build --release
cargo test
cargo run -- -t 12345 --verbose
Contributions welcome! Please:
MIT License - see LICENSE file for details.
Kyle Edward Donaldson
This tool fully integrates with OpenSpec, the specification-driven development framework. Bakery generates proper OpenSpec change proposals that follow the official three-stage workflow.
Bakery v0.2.0 - Transform Azure DevOps work items into comprehensive OpenSpec change proposals with AI-powered analysis and automatic validation. 🚀