1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Bakery Configuration Example
# Copy this to your user config directory and customize as needed
# Windows: %USERPROFILE%\.bakery\bakery-config.toml
# Mac/Linux: ~/.bakery/bakery-config.toml
[]
# Azure DevOps organization name
= "your-organization"
# Azure DevOps project name
= "YourProject"
# Personal Access Token (PAT) for Azure DevOps API access
# To create a new PAT:
# 1. Go to https://dev.azure.com/{organization}/_usersSettings/tokens
# 2. Click "Create New Token"
# 3. Give it a name (e.g., "Bakery Scraper")
# 4. Select scopes: "Work Items" -> "Read" (vso.work)
# 5. Copy the token and paste it here
# 6. SECURITY: Treat PATs like passwords!
= "your-pat-token-here"
# Azure DevOps REST API version (usually don't need to change this)
= "7.1"
[]
# Base directory where Bakery stores all data
# Can be any directory you have write access to
# Windows example: "C:/DevOpsData"
# Mac/Linux example: "~/devops-data" or "/home/username/devops-data"
= "~/devops-data"
# Subdirectory within base_directory for scraped tickets
# Tickets will be stored in: {base_directory}/{tickets_subdir}/{ticket_id}/
= "Tickets"
# Subdirectory within base_directory for OpenSpec plans
# Plans will be stored in: {base_directory}/{openspec_subdir}/
= "openspec"
# Local baking mode - creates ticket and openspec folders in current working directory
# When enabled, Bakery will create folders in the directory where the command is run
# instead of using the base_directory. This is useful for per-project ticket organization.
# Example: If you run `bakery -t 12345` in /projects/my-project/, folders will be created at:
# /projects/my-project/Tickets/12345/ (for ticket data)
# /projects/my-project/openspec/ (for OpenSpec plans)
# When disabled, folders are created in the configured base_directory:
# {base_directory}/Tickets/12345/ (for ticket data)
# {base_directory}/openspec/ (for OpenSpec plans)
= false
[]
# AI command template for generating OpenSpec plans.
# Use {prompt} as a placeholder for the generated prompt.
#
# Examples:
# Claude (recommended): ai_command_template = "claude -p \"{prompt}\""
# Your dev script: ai_command_template = "dev --platform anthropic --non-interactive \"{prompt}\""
# OpenAI CLI: ai_command_template = "openai api chat.complete --messages \"{prompt}\""
# Custom AI tool: ai_command_template = "your-ai-tool --prompt \"{prompt}\""
#
# The command will execute with {prompt} replaced by the generated OpenSpec prompt.
# Make sure your chosen AI CLI is accessible via system PATH or provide full paths.
# Note: Use "claude -p" for direct Claude CLI access, or "claude --non-interactive" for scripted use.
= "claude -p \"{prompt}\""
# Automatically generate OpenSpec plans after scraping tickets
# Set to false if you want to generate plans manually
= true