diff --git a/src/modules/bmm/data/devops-providers.yaml b/src/modules/bmm/data/devops-providers.yaml new file mode 100644 index 00000000..74b1b81f --- /dev/null +++ b/src/modules/bmm/data/devops-providers.yaml @@ -0,0 +1,151 @@ +# DevOps Provider Configuration +# Central reference for provider-specific CLI commands +# Supports GitHub and Azure DevOps as tracking systems + +providers: + github-issues: + description: "GitHub Issues and Pull Requests via gh CLI" + cli: "gh" + + # Branch operations (same across providers - use git directly) + branch: + create: "git checkout -b {{branch_name}}" + delete: "git branch -d {{branch_name}}" + switch: "git checkout {{branch_name}}" + + # Milestone/Sprint operations + milestone: + create: | + gh api repos/{owner}/{repo}/milestones -f title="{{milestone_title}}" -f description="{{milestone_description}}" -f due_on="{{due_date}}" + list: | + gh api repos/{owner}/{repo}/milestones --jq '.[].title' + get_number: | + gh api repos/{owner}/{repo}/milestones --jq '.[] | select(.title=="{{milestone_title}}") | .number' + + # Epic operations (using labels for epics in GitHub) + epic: + create: | + gh issue create --title "Epic {{epic_num}}: {{epic_title}}" --body "{{epic_description}}" --label "epic,{{project_key}}" + close: | + gh issue close {{epic_issue_number}} + list: | + gh issue list --label "epic" --state open + + # Issue/Work Item operations + issue: + create: | + gh issue create --title "{{story_key}}: {{title}}" --body "$(cat {{story_file}})" --label "story,sprint" --milestone "{{milestone_title}}" + create_no_milestone: | + gh issue create --title "{{story_key}}: {{title}}" --body "$(cat {{story_file}})" --label "story,sprint" + close: | + gh issue close {{issue_number}} + update: | + gh issue edit {{issue_number}} --body "{{body}}" + add_to_milestone: | + gh issue edit {{issue_number}} --milestone "{{milestone_title}}" + list: | + gh issue list --label "sprint" --state open + + # Pull Request operations + pr: + create: | + gh pr create --title "{{story_key}}: {{title}}" --body "{{body}}" --base main + create_with_closes: | + gh pr create --title "{{story_key}}: {{title}}" --body "{{body}}\n\nCloses #{{issue_number}}" --base main + comment: | + gh pr comment {{branch_name}} --body "{{comment_body}}" + merge: | + gh pr merge {{branch_name}} --squash --delete-branch + close: | + gh pr close {{branch_name}} + list: | + gh pr list --state open + + # Sprint status field mappings + status_fields: + tracking_system: "github-issues" + repo: "owner/repo-name" + tracking_ref: "issue_number" + milestone: "Sprint X" + + azure-devops: + description: "Azure DevOps Work Items and Pull Requests via az CLI" + cli: "az" + + # Branch operations (same across providers - use git directly) + branch: + create: "git checkout -b {{branch_name}}" + delete: "git branch -d {{branch_name}}" + switch: "git checkout {{branch_name}}" + + # Iteration/Sprint operations + iteration: + create: | + az boards iteration project create --name "{{iteration_name}}" --path "\\{{project}}\\Iteration" --start-date "{{start_date}}" --finish-date "{{end_date}}" --org {{org_url}} --project {{project}} + list: | + az boards iteration project list --org {{org_url}} --project {{project}} + get_path: | + az boards iteration project list --org {{org_url}} --project {{project}} --query "[?name=='{{iteration_name}}'].path" -o tsv + + # Epic operations + epic: + create: | + az boards work-item create --title "Epic {{epic_num}}: {{epic_title}}" --type "Epic" --description "{{epic_description}}" --org {{org_url}} --project {{project}} + close: | + az boards work-item update --id {{epic_work_item_id}} --state Closed --org {{org_url}} + list: | + az boards query --wiql "SELECT [System.Id], [System.Title] FROM workitems WHERE [System.WorkItemType] = 'Epic' AND [System.State] <> 'Closed'" --org {{org_url}} --project {{project}} + + # Work Item operations + issue: + create: | + az boards work-item create --title "{{story_key}}: {{title}}" --type "User Story" --description "{{description}}" --iteration "{{iteration_path}}" --org {{org_url}} --project {{project}} + create_no_iteration: | + az boards work-item create --title "{{story_key}}: {{title}}" --type "User Story" --description "{{description}}" --org {{org_url}} --project {{project}} + close: | + az boards work-item update --id {{work_item_id}} --state Closed --org {{org_url}} + update: | + az boards work-item update --id {{work_item_id}} --description "{{description}}" --org {{org_url}} + add_to_iteration: | + az boards work-item update --id {{work_item_id}} --iteration "{{iteration_path}}" --org {{org_url}} + link_to_parent: | + az boards work-item relation add --id {{work_item_id}} --relation-type "System.LinkTypes.Hierarchy-Reverse" --target-id {{parent_id}} --org {{org_url}} + list: | + az boards query --wiql "SELECT [System.Id], [System.Title] FROM workitems WHERE [System.WorkItemType] = 'User Story' AND [System.State] = 'Active'" --org {{org_url}} --project {{project}} + + # Pull Request operations + pr: + create: | + az repos pr create --title "{{story_key}}: {{title}}" --description "{{description}}" --source-branch {{branch_name}} --target-branch main --org {{org_url}} --project {{project}} + create_with_work_item: | + az repos pr create --title "{{story_key}}: {{title}}" --description "{{description}}" --source-branch {{branch_name}} --target-branch main --work-items {{work_item_id}} --org {{org_url}} --project {{project}} + comment: | + az repos pr update --id {{pr_id}} --description "{{description}}" --org {{org_url}} + merge: | + az repos pr update --id {{pr_id}} --status completed --org {{org_url}} + close: | + az repos pr update --id {{pr_id}} --status abandoned --org {{org_url}} + list: | + az repos pr list --status active --org {{org_url}} --project {{project}} + + # Sprint status field mappings + status_fields: + tracking_system: "azure-devops" + org_url: "https://dev.azure.com/your-org" + project: "YourProjectName" + tracking_ref: "work_item_id" + iteration: "Sprint X" + +# Workflow behavior matrix reference: +# | Workflow | Step | GitHub | Azure DevOps | +# |----------------|---------------------|-------------------------------------|-------------------------------------------------| +# | sprint-planning| Create milestone | gh api .../milestones | az boards iteration project create | +# | sprint-planning| Create epic items | gh issue create --label epic | az boards work-item create --type Epic | +# | create-story | Create tracking | gh issue create --milestone | az boards work-item create --iteration | +# | dev-story | Create branch | git checkout -b | git checkout -b | +# | dev-story | Create PR | gh pr create (with Closes #X) | az repos pr create --work-items | +# | code-review | Post findings | gh pr comment | az repos pr update | +# | code-review | Merge PR | gh pr merge --squash | az repos pr update --status completed | +# | code-review | Close item | gh issue close | az boards work-item update --state Closed | +# | correct-course | Add/update items | gh issue create/edit | az boards work-item create/update | +# | retrospective | Create retro item | gh issue create --label retro | az boards work-item create --type Task | diff --git a/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml b/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml index e57a940d..6dfb24c1 100644 --- a/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +++ b/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml @@ -178,12 +178,95 @@ Save story file - + Set {{current_sprint_status}} = "enabled" + Load {{sprint_status}} and extract tracking_system configuration + Set {{tracking_system}} from sprint-status.yaml (default: github-issues) Set {{current_sprint_status}} = "no-sprint-tracking" + Set {{tracking_system}} = "none" + + + + + Format review findings as markdown comment: + ## 🔍 Code Review Results + **Reviewer:** AI Code Reviewer + **Status:** {{new_status == 'done' ? 'Approved ✅' : 'Changes Requested 🔄'}} + + ### Findings Summary + - High: {{high_count}} + - Medium: {{medium_count}} + - Low: {{low_count}} + + ### AC Validation + {{ac_validation_results}} + + ### Issues Fixed + {{fixed_issues_summary}} + + Run: gh pr comment story/{{story_key}} --body "{{review_comment}}" + 📝 Review findings posted to GitHub PR + + + + Extract org_url and project from sprint-status.yaml + Extract pr_id from sprint-status.yaml or discover from branch + Format review findings as PR description update: + ## 🔍 Code Review Complete + **Reviewer:** AI Code Reviewer + **Status:** {{new_status == 'done' ? 'Approved ✅' : 'Changes Requested 🔄'}} + + ### Findings Summary + - High: {{high_count}} + - Medium: {{medium_count}} + - Low: {{low_count}} + + ### AC Validation + {{ac_validation_results}} + + ### Issues Fixed + {{fixed_issues_summary}} + + Run: az repos pr update --id {{pr_id}} --description "{{review_description}}" --org {{org_url}} + 📝 Review findings posted to Azure DevOps PR + + + + + + + Run: gh pr merge story/{{story_key}} --squash --delete-branch + ✅ GitHub PR merged with squash + Extract issue_number from sprint-status.yaml tracking_ref for this story + + Run: gh issue close {{issue_number}} + ✅ GitHub Issue #{{issue_number}} closed + + Run: git checkout main + Run: git pull origin main + + + + + Extract org_url and project from sprint-status.yaml + Extract pr_id from sprint-status.yaml or discover from branch + Run: az repos pr update --id {{pr_id}} --status completed --org {{org_url}} + ✅ Azure DevOps PR completed + Extract work_item_id from sprint-status.yaml tracking_ref for this story + + Run: az boards work-item update --id {{work_item_id}} --state Closed --org {{org_url}} + ✅ Azure DevOps Work Item #{{work_item_id}} closed + + Run: git checkout main + Run: git pull origin main + + + + â„šī¸ No tracking system configured - manual PR merge required + diff --git a/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md b/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md index 82e8b6a2..69626de9 100644 --- a/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md @@ -186,6 +186,87 @@ + +Update external tracking system with approved changes + +Load {sprint_status} and extract tracking_system configuration +Set {{tracking_system}} from sprint-status.yaml (default: file-system) + + + â„šī¸ Using file-system tracking only - no external DevOps sync needed + Skip external tracking updates + + + + + Extract repo and milestone from sprint-status.yaml + + + + For each new story: + Run: gh issue create --title "{{story_key}}: {{story_title}}" --body "{{story_description}}\n\n**Added via correct-course workflow**" --label "story,sprint,mid-sprint-add" --milestone "{{milestone}}" + Capture issue number and update sprint-status.yaml tracking_ref + ✅ GitHub Issue created for new story: #{{issue_number}} + + + + + For each modified story: + Extract issue_number from sprint-status.yaml tracking_ref + Run: gh issue edit {{issue_number}} --body "{{updated_body}}\n\n**Modified via correct-course: {{change_reason}}**" + Run: gh issue comment {{issue_number}} --body "📝 **Story Updated via Correct-Course**\n\nChange Reason: {{change_reason}}\nModified Sections: {{modified_sections}}" + ✅ GitHub Issue #{{issue_number}} updated + + + + + For each removed story: + Extract issue_number from sprint-status.yaml tracking_ref + Run: gh issue close {{issue_number}} --reason "not planned" --comment "Story descoped via correct-course workflow. Reason: {{descope_reason}}" + ✅ GitHub Issue #{{issue_number}} closed (descoped) + + + + + + Extract org_url, project, and iteration from sprint-status.yaml + + + + For each new story: + Run: az boards work-item create --title "{{story_key}}: {{story_title}}" --type "User Story" --description "{{story_description}}\n\n**Added via correct-course workflow**" --iteration "{{iteration_path}}" --org {{org_url}} --project {{project}} + Capture work_item_id and update sprint-status.yaml tracking_ref + Add tag: az boards work-item update --id {{work_item_id}} --fields "System.Tags=mid-sprint-add" --org {{org_url}} + ✅ Azure DevOps Work Item created for new story: #{{work_item_id}} + + + + + For each modified story: + Extract work_item_id from sprint-status.yaml tracking_ref + Run: az boards work-item update --id {{work_item_id}} --description "{{updated_description}}\n\n**Modified via correct-course: {{change_reason}}**" --org {{org_url}} + Add history comment via discussion field update + ✅ Azure DevOps Work Item #{{work_item_id}} updated + + + + + For each removed story: + Extract work_item_id from sprint-status.yaml tracking_ref + Run: az boards work-item update --id {{work_item_id}} --state "Removed" --org {{org_url}} + Add reason to description + ✅ Azure DevOps Work Item #{{work_item_id}} marked as Removed + + + + +**External Tracking Sync Complete:** +- New items created: {{new_count}} +- Items updated: {{updated_count}} +- Items closed/removed: {{removed_count}} + + + Summarize workflow execution: - Issue addressed: {{change_trigger}} diff --git a/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml b/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml index 52405e71..4463c047 100644 --- a/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +++ b/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml @@ -341,4 +341,77 @@ + + Create issue/work item in the configured tracking system after story file is created + + + + Load {{sprint_status}} and extract tracking_system configuration + Set {{tracking_system}} from sprint-status.yaml (default: github-issues) + Extract milestone or iteration name if configured + Extract epic parent reference (epic_issue_{{epic_num}} or epic_work_item_{{epic_num}}) + + + Set {{tracking_system}} = "none" + â„šī¸ No tracking system configured - skipping external issue creation + GOTO workflow end + + + + + Extract repo from sprint-status.yaml (format: owner/repo) + Extract milestone name from sprint-status.yaml (if configured) + Read story file content for issue body + + + + Run: gh issue create --title "{{story_key}}: {{story_title}}" --body "$(cat {{story_file}})" --label "story,sprint" --milestone "{{milestone}}" + + + Run: gh issue create --title "{{story_key}}: {{story_title}}" --body "$(cat {{story_file}})" --label "story,sprint" + + + Capture issue number from command output + Update sprint-status.yaml with tracking_ref: {{issue_number}} for this story key + + + + Add comment linking to parent epic: gh issue comment {{issue_number}} --body "Part of Epic #{{epic_issue_number}}" + + + ✅ GitHub Issue created: #{{issue_number}} (linked to milestone: {{milestone}}) + + + + + Extract org_url and project from sprint-status.yaml + Extract iteration path from sprint-status.yaml (if configured) + Prepare description from story file (truncate if needed for Azure DevOps limits) + + + + Run: az boards work-item create --title "{{story_key}}: {{story_title}}" --type "User Story" --description "{{story_description}}" --iteration "{{iteration_path}}" --org {{org_url}} --project {{project}} + + + Run: az boards work-item create --title "{{story_key}}: {{story_title}}" --type "User Story" --description "{{story_description}}" --org {{org_url}} --project {{project}} + + + Capture work_item_id from command output + Update sprint-status.yaml with tracking_ref: {{work_item_id}} for this story key + + + + Run: az boards work-item relation add --id {{work_item_id}} --relation-type "System.LinkTypes.Hierarchy-Reverse" --target-id {{epic_work_item_id}} --org {{org_url}} + ✅ Linked to parent Epic #{{epic_work_item_id}} + + + ✅ Azure DevOps Work Item created: #{{work_item_id}} (in iteration: {{iteration}}) + + + + + âš ī¸ Unknown tracking system: {{tracking_system}} - skipping external issue creation + + + \ No newline at end of file diff --git a/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml b/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml index 40c56244..65b64212 100644 --- a/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +++ b/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml @@ -219,6 +219,18 @@ â„šī¸ No sprint status file exists - story progress will be tracked in story file only Set {{current_sprint_status}} = "no-sprint-tracking" + + + + Check if already on story branch: git branch --show-current + + Run: git checkout -b story/{{story_key}} + đŸŒŋ Created feature branch: story/{{story_key}} + + + đŸŒŋ Already on feature branch: story/{{story_key}} + + @@ -327,6 +339,60 @@ Execute enhanced definition-of-done validation Update the story Status to: "review" + + + Load {{sprint_status}} and extract tracking_system configuration + Set {{tracking_system}} from sprint-status.yaml (default: github-issues) + + + Set {{tracking_system}} = "none" + + + + + Stage and commit all changes: git add -A && git commit -m "{{story_key}}: Implementation complete" + Push branch: git push -u origin story/{{story_key}} + Prepare PR body with story summary and AC validation results + + + Extract issue_number from sprint-status.yaml tracking_ref for {{story_key}} + + Append "Closes #{{issue_number}}" to PR body for auto-close on merge + Run: gh pr create --title "{{story_key}}: {{story_title}}" --body "{{pr_body}}\n\nCloses #{{issue_number}}" --base main + + + Run: gh pr create --title "{{story_key}}: {{story_title}}" --body "{{pr_body}}" --base main + + + Capture PR URL from command output + 🔀 GitHub PR created: {{pr_url}} + + + + + Extract org_url and project from sprint-status.yaml + Stage and commit all changes: git add -A && git commit -m "{{story_key}}: Implementation complete" + Push branch: git push -u origin story/{{story_key}} + Prepare PR description with story summary and AC validation results + + + Extract work_item_id from sprint-status.yaml tracking_ref for {{story_key}} + + Run: az repos pr create --title "{{story_key}}: {{story_title}}" --description "{{pr_description}}" --source-branch story/{{story_key}} --target-branch main --work-items {{work_item_id}} --org {{org_url}} --project {{project}} + 🔀 Azure DevOps PR created and linked to Work Item #{{work_item_id}} + + + Run: az repos pr create --title "{{story_key}}: {{story_title}}" --description "{{pr_description}}" --source-branch story/{{story_key}} --target-branch main --org {{org_url}} --project {{project}} + 🔀 Azure DevOps PR created (no work item link) + + + Capture PR ID from command output + + + + â„šī¸ No tracking system configured - PR creation skipped + + Validate definition-of-done checklist with essential requirements: - All tasks/subtasks marked complete with [x] diff --git a/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md b/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md index 01750312..692f90a2 100644 --- a/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md @@ -1356,6 +1356,61 @@ Retrospective document was saved successfully, but {sprint_status_file} may need + +Create retrospective record in configured DevOps system + +Load {sprint_status_file} and extract tracking_system configuration +Set {{tracking_system}} from sprint-status.yaml (default: file-system) + + + â„šī¸ Using file-system tracking only - no external retrospective item created + Skip external tracking creation + + + + + Extract repo and milestone from sprint-status.yaml + Prepare retrospective summary for issue body + + Run: gh issue create --title "Retrospective: Epic {{epic_number}} - {{epic_title}}" --body "{{retrospective_summary}}\n\n## Action Items\n{{action_items_list}}\n\n## Key Insights\n{{key_insights}}\n\n**Retro Date:** {date}\n**Document:** {retrospectives_folder}/epic-{{epic_number}}-retro-{date}.md" --label "retrospective,epic-{{epic_number}}" --milestone "{{milestone}}" + Capture issue number + + + + Extract epic_issue_{{epic_number}} from sprint-status.yaml + + Run: gh issue close {{epic_issue_number}} --comment "🎉 Epic {{epic_number}} completed! See retrospective #{{retro_issue_number}}" + ✅ Epic Issue #{{epic_issue_number}} closed + + + + ✅ GitHub Retrospective Issue created: #{{retro_issue_number}} + + + + + Extract org_url, project, and iteration from sprint-status.yaml + Prepare retrospective summary for work item description + + Run: az boards work-item create --title "Retrospective: Epic {{epic_number}} - {{epic_title}}" --type "Task" --description "{{retrospective_summary}}\n\n## Action Items\n{{action_items_list}}\n\n## Key Insights\n{{key_insights}}\n\n**Retro Date:** {date}" --iteration "{{iteration_path}}" --org {{org_url}} --project {{project}} + Capture work_item_id + Add tag: az boards work-item update --id {{work_item_id}} --fields "System.Tags=retrospective" --org {{org_url}} + + + + Extract epic_work_item_{{epic_number}} from sprint-status.yaml + + Run: az boards work-item relation add --id {{work_item_id}} --relation-type "System.LinkTypes.Hierarchy-Reverse" --target-id {{epic_work_item_id}} --org {{org_url}} + Run: az boards work-item update --id {{epic_work_item_id}} --state "Closed" --org {{org_url}} + ✅ Epic Work Item #{{epic_work_item_id}} closed + + + + ✅ Azure DevOps Retrospective Work Item created: #{{work_item_id}} + + + + diff --git a/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md b/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md index c4f4bd42..e3cb5d6a 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md @@ -143,6 +143,66 @@ development_status: Ensure all items are ordered: epic, its stories, its retrospective, next epic... + +Create sprint tracking artifacts in configured DevOps system + +Check if tracking_system is configured in {status_file} +Extract tracking_system value (default: file-system) + + + â„šī¸ Using file-system tracking only - no external DevOps integration + Skip external tracking creation + + + + + Extract repo from sprint-status.yaml (format: owner/repo) + + + Set milestone_title = "Sprint: {project_name} - Epic {{epic_num}}" + Set milestone_description = "Sprint milestone for {project_name} covering Epic {{epic_num}} stories" + Run: gh api repos/{repo}/milestones -f title="{{milestone_title}}" -f description="{{milestone_description}}" + Capture milestone number from response + Update {status_file} with milestone: {{milestone_title}} + ✅ GitHub Milestone created: {{milestone_title}} + + + For each epic found in epic files: + Run: gh issue create --title "Epic {{epic_num}}: {{epic_title}}" --body "{{epic_description}}" --label "epic,{project_key}" + Capture epic issue number + Store epic_issue_{{epic_num}} = issue number in sprint-status.yaml + ✅ GitHub Epic Issue created: #{{epic_issue_number}} - Epic {{epic_num}}: {{epic_title}} + + + + + Extract org_url and project from sprint-status.yaml + + + Set iteration_name = "Sprint: {project_name} - Epic {{epic_num}}" + Calculate start_date = today + Calculate end_date = today + 2 weeks (default sprint length) + Run: az boards iteration project create --name "{{iteration_name}}" --path "\\{{project}}\\Iteration" --start-date "{{start_date}}" --finish-date "{{end_date}}" --org {{org_url}} --project {{project}} + Capture iteration path from response + Update {status_file} with iteration: {{iteration_name}} + ✅ Azure DevOps Iteration created: {{iteration_name}} + + + For each epic found in epic files: + Run: az boards work-item create --title "Epic {{epic_num}}: {{epic_title}}" --type "Epic" --description "{{epic_description}}" --org {{org_url}} --project {{project}} + Capture work_item_id from response + Store epic_work_item_{{epic_num}} = work_item_id in sprint-status.yaml + ✅ Azure DevOps Epic created: #{{work_item_id}} - Epic {{epic_num}}: {{epic_title}} + + + +**External Tracking Setup Complete:** +- Tracking System: {{tracking_system}} +- Milestone/Iteration: {{milestone_or_iteration_name}} +- Epic Items Created: {{epic_count}} + + + Perform validation checks: diff --git a/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml b/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml index fd93e3b3..7e5e124e 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +++ b/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml @@ -31,15 +31,48 @@ # - Mark epic as 'in-progress' when starting work on its first story # - SM typically creates next story ONLY after previous one is 'done' to incorporate learnings # - Dev moves story to 'review', then Dev runs code-review (fresh context, ideally different LLM) +# +# PROVIDER CONFIGURATION: +# ======================= +# For GitHub Issues: +# tracking_system: github-issues +# repo: owner/repo-name +# milestone: "Sprint: ProjectName - Epic 1" # Created by sprint-planning +# +# For Azure DevOps: +# tracking_system: azure-devops +# org_url: https://dev.azure.com/your-org +# project: YourProjectName +# iteration: "Sprint: ProjectName - Epic 1" # Created by sprint-planning +# +# For File-System Only (no external tracking): +# tracking_system: file-system +# +# TRACKING REFERENCES: +# ==================== +# Each story can have a tracking_ref field added automatically: +# 1-1-user-authentication: +# status: ready-for-dev +# tracking_ref: 42 # GitHub issue number or Azure DevOps work item ID +# +# Epic tracking references: +# epic_issue_1: 40 # GitHub: epic issue number +# epic_work_item_1: 100 # Azure DevOps: epic work item ID # EXAMPLE STRUCTURE (your actual epics/stories will replace these): generated: 05-06-2-2025 21:30 project: My Awesome Project project_key: jira-1234 -tracking_system: file-system +tracking_system: github-issues +repo: owner/repo-name +milestone: "Sprint: My Awesome Project - Epic 1" story_location: "{story_location}" +# Epic tracking references (auto-populated by sprint-planning) +epic_issue_1: 40 +epic_issue_2: 41 + development_status: epic-1: backlog 1-1-user-authentication: done @@ -53,3 +86,8 @@ development_status: 2-2-chat-interface: backlog 2-3-llm-integration: backlog epic-2-retrospective: optional + +# Story tracking references (auto-populated by create-story) +tracking_refs: + 1-1-user-authentication: 42 + 1-2-account-management: 43