-
Notifications
You must be signed in to change notification settings - Fork 2
Backlog Generation
The backlog generation system produces structured development backlog items from design and build context. It analyzes the architecture, scope decisions, and deployment plan created during earlier stages, then decomposes them into epics, user stories, and tasks suitable for project tracking in GitHub Issues or Azure DevOps.
The backlog is scope-aware: items classified as in-scope during the design stage become stories, out-of-scope items are excluded, and deferred items are grouped into a separate epic for future consideration.
az prototype generate backlog [options]
| Parameter | Type | Default | Description |
|---|---|---|---|
--provider |
github or devops
|
None | Backlog provider. github creates GitHub Issues; devops creates Azure DevOps work items. |
--org |
string | None | Organization or owner name (GitHub org/user or Azure DevOps org). |
--project |
string | None | Project name (Azure DevOps project or GitHub repo). |
--table |
flag | false |
Display backlog as a table instead of markdown. |
--quick |
flag | false |
Skip the interactive session -- generate, confirm, and push in one pass. |
--refresh |
flag | false |
Force fresh AI generation, bypassing cached items. |
--status / -s
|
flag | false |
Show current backlog state without starting a session. |
--push |
flag | false |
In quick mode, auto-push items after generation. |
--json / -j
|
flag | false |
Output machine-readable JSON instead of formatted display. |
The BacklogSession executes in five sequential phases:
Loads design context (scope, architecture, services), build state (deployment plan, generated stages), deploy status, cost analysis, and any existing backlog state from .prototype/state/backlog.yaml. The enriched context is identical to what generate speckit uses — build stages with SKUs, deploy status per stage, cost analysis, and stage completion. If a previous session produced cached items and --refresh is not set, those items are reused.
When no cached items exist (or --refresh is specified), the project-manager agent performs structured decomposition of the enriched project context. The generation prompt includes four instruction sections:
-
Completed Work — analyzes Build Stages and Deploy Status tables. For stages where build status=generated or deploy status=deployed, creates items with
status: "done"and done tasks, grouped under a "Completed POC Work" epic. -
Production Readiness — creates a dedicated "Production Readiness" epic (separate from "Deferred / Future Work") with items for SKU upgrades, network hardening, CI/CD, monitoring, DR, and security. Knowledge-base production items are injected here.
-
Scope Boundaries — scope-aware generation (unchanged from before).
-
Provider-aware JSON schema — the output format varies by provider:
-
Azure DevOps: hierarchical JSON with
children[](User Stories under Features) and dict tasks -
GitHub: flat items with dict tasks so completed work renders as
[x]
-
Azure DevOps: hierarchical JSON with
Generation is scope-aware:
| Scope Category | Treatment |
|---|---|
in_scope |
Converted to stories with full decomposition |
out_of_scope |
Excluded from generation entirely |
deferred |
Grouped into a separate "Deferred" epic |
Production backlog items extracted from knowledge service files are injected into the Production Readiness epic.
In interactive mode (the default), the session enters a conversational review loop. Users can inspect, modify, add, and remove items using slash commands or natural language.
Available slash commands:
| Command | Action |
|---|---|
/list |
List all generated items |
/show |
Show details of a specific item |
/add |
Add a new item (uses PM agent to create a structured item via _enrich_new_item()) |
/remove |
Remove an item |
/preview |
Preview the formatted output |
/save |
Save current state without pushing |
/push |
Push items to the configured provider |
/status |
Show session status |
/help |
Show available commands |
/quit |
Exit the session |
The session also recognizes natural language: typing done, finish, accept, or lgtm completes the review.
On /push (or automatically in --quick --push mode), items are created in the target provider:
-
GitHub: Issues created via
gh issue createwith markdown bodies containing description, acceptance criteria, and task checklists using GitHub-flavored task list syntax (- [ ]for pending,- [x]for completed). -
Azure DevOps: Features, User Stories, and Tasks created via
az boards work-item createwith parent linking. The hierarchy is Feature → User Story → Task, matching the Azure DevOps work item types.
Before pushing, the session verifies authentication:
- GitHub: checks
gh auth status - Azure DevOps: checks
az devops --helpfor extension availability
Displays a summary with counts of items generated, items pushed, any failures, and URLs to the created work items.
Requires the GitHub CLI (gh) to be installed and authenticated. Each item becomes a GitHub issue with:
- A markdown body containing Description, Acceptance Criteria, and Tasks sections
- Task checklists using
- [ ]syntax for trackable sub-tasks - Hierarchical items include a Stories section with child items
Requires the Azure DevOps CLI extension (az devops). Items are created as a three-level hierarchy:
-
Features for epics or parent items, via
push_devops_feature() -
User Stories for individual stories (children of Features), via
push_devops_story() -
Tasks for actionable sub-tasks (children of User Stories), via
push_devops_task() - Work items are linked to the specified organization and project using parent relations
The backlog system respects scope decisions made during the design stage discovery conversation:
- In-scope items: Full decomposition into epics, stories, and tasks. These represent the core deliverables of the prototype.
- Out-of-scope items: Completely excluded from backlog generation. These were explicitly ruled out during discovery.
- Deferred items: Collected into a separate "Deferred / Future Work" epic. These are items acknowledged as valuable but intentionally postponed.
Tasks support two formats for backward compatibility:
-
String tasks (legacy):
"Deploy stage 1"→ rendered as- [ ] Deploy stage 1 -
Dict tasks (new):
{"title": "Deploy stage 1", "done": true}→ rendered as- [x] Deploy stage 1
The dict format enables marking completed work with checked boxes in GitHub issues and checkbox markers in Azure DevOps descriptions.
The session includes QA-first error routing (see Error Analysis) and an escalation tracker for handling blockers during generation or push operations.
Generate a backlog interactively:
az prototype generate backlogGenerate and auto-push to GitHub:
az prototype generate backlog --provider github --org myorg --project myrepo --quick --pushGenerate for Azure DevOps:
az prototype generate backlog --provider devops --org myorg --project myproject --quick --pushCheck current backlog state:
az prototype generate backlog --statusForce regeneration and output as JSON:
az prototype generate backlog --refresh --jsonGetting Started
Stages
Interfaces
Configuration
Agent System
Features
- Backlog Generation
- Cost Analysis
- Error Analysis
- Docs & Spec Kit
- MCP Integration
- Knowledge System
- Escalation
Quality
Help
Policies — Azure
AI Services
Compute
Data Services
- Azure SQL
- Backup Vault
- Cosmos Db
- Data Factory
- Databricks
- Event Grid
- Event Hubs
- Fabric
- IoT Hub
- Mysql Flexible
- Postgresql Flexible
- Recovery Services
- Redis Cache
- Service Bus
- Stream Analytics
- Synapse Workspace
Identity
Management
Messaging
Monitoring
Networking
- Application Gateway
- Bastion
- CDN
- DDoS Protection
- DNS Zones
- Expressroute
- Firewall
- Load Balancer
- Nat Gateway
- Network Interface
- Private Endpoints
- Public Ip
- Route Tables
- Traffic Manager
- Virtual Network
- Vpn Gateway
- WAF Policy
Security
Storage
Web & App
Policies — Well-Architected
Reliability
Security
Cost Optimization
Operational Excellence
Performance Efficiency
Integration