@bugzy-ai/bugzy 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +273 -273
  3. package/dist/cli/index.cjs +465 -15
  4. package/dist/cli/index.cjs.map +1 -1
  5. package/dist/cli/index.js +464 -14
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/index.cjs +460 -12
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +460 -12
  10. package/dist/index.js.map +1 -1
  11. package/dist/subagents/index.cjs +392 -6
  12. package/dist/subagents/index.cjs.map +1 -1
  13. package/dist/subagents/index.js +392 -6
  14. package/dist/subagents/index.js.map +1 -1
  15. package/dist/subagents/metadata.cjs +27 -0
  16. package/dist/subagents/metadata.cjs.map +1 -1
  17. package/dist/subagents/metadata.js +27 -0
  18. package/dist/subagents/metadata.js.map +1 -1
  19. package/dist/tasks/index.cjs +30 -1
  20. package/dist/tasks/index.cjs.map +1 -1
  21. package/dist/tasks/index.js +30 -1
  22. package/dist/tasks/index.js.map +1 -1
  23. package/package.json +95 -95
  24. package/templates/init/.bugzy/runtime/knowledge-base.md +61 -61
  25. package/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +97 -97
  26. package/templates/init/.bugzy/runtime/project-context.md +35 -35
  27. package/templates/init/.bugzy/runtime/subagent-memory-guide.md +87 -87
  28. package/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -50
  29. package/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -498
  30. package/templates/init/.bugzy/runtime/test-execution-strategy.md +535 -535
  31. package/templates/init/.bugzy/runtime/testing-best-practices.md +724 -632
  32. package/templates/init/.env.testdata +18 -18
  33. package/templates/init/.gitignore-template +24 -24
  34. package/templates/init/AGENTS.md +155 -155
  35. package/templates/init/CLAUDE.md +157 -157
  36. package/templates/init/test-runs/README.md +45 -45
  37. package/templates/playwright/BasePage.template.ts +190 -190
  38. package/templates/playwright/auth.setup.template.ts +89 -89
  39. package/templates/playwright/dataGenerators.helper.template.ts +148 -148
  40. package/templates/playwright/dateUtils.helper.template.ts +96 -96
  41. package/templates/playwright/pages.fixture.template.ts +50 -50
  42. package/templates/playwright/playwright.config.template.ts +97 -97
  43. package/templates/playwright/reporters/bugzy-reporter.ts +454 -454
  44. package/dist/templates/init/.bugzy/runtime/knowledge-base.md +0 -61
  45. package/dist/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +0 -97
  46. package/dist/templates/init/.bugzy/runtime/project-context.md +0 -35
  47. package/dist/templates/init/.bugzy/runtime/subagent-memory-guide.md +0 -87
  48. package/dist/templates/init/.bugzy/runtime/templates/test-plan-template.md +0 -50
  49. package/dist/templates/init/.bugzy/runtime/templates/test-result-schema.md +0 -498
  50. package/dist/templates/init/.bugzy/runtime/test-execution-strategy.md +0 -535
  51. package/dist/templates/init/.bugzy/runtime/testing-best-practices.md +0 -632
  52. package/dist/templates/init/.gitignore-template +0 -25
@@ -31,12 +31,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  ));
32
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
33
 
34
- // node_modules/.pnpm/tsup@8.5.0_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js
34
+ // node_modules/.pnpm/tsup@8.5.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js
35
35
  var getImportMetaUrl, importMetaUrl;
36
36
  var init_cjs_shims = __esm({
37
- "node_modules/.pnpm/tsup@8.5.0_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js"() {
37
+ "node_modules/.pnpm/tsup@8.5.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js"() {
38
38
  "use strict";
39
- getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
39
+ getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
40
40
  importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
41
41
  }
42
42
  });
@@ -1558,6 +1558,35 @@ CHANGE_CONTEXT = {
1558
1558
  }
1559
1559
  \`\`\``
1560
1560
  },
1561
+ // Step 6b: Retrieve Code Change Details (conditional - changelog-historian)
1562
+ {
1563
+ inline: true,
1564
+ title: "Retrieve Code Change Details",
1565
+ content: `{{INVOKE_CHANGELOG_HISTORIAN}} to gather comprehensive context about recent code changes:
1566
+
1567
+ Explore version control history related to the verification scope.
1568
+
1569
+ Specifically gather:
1570
+ - Recent changes merged to the target branch
1571
+ - Change authors and contributors
1572
+ - Scope and impact of each change
1573
+ - Change descriptions and rationale
1574
+ - Related issues or tickets
1575
+ - Files and components affected
1576
+
1577
+ The agent will:
1578
+ 1. Check its memory for previously discovered repository context
1579
+ 2. Explore version control for relevant changes
1580
+ 3. Build comprehensive understanding of the change history
1581
+ 4. Return synthesized change information
1582
+
1583
+ Use this information to:
1584
+ - Identify which changes may have caused test failures
1585
+ - Understand the scope and risk of the changes
1586
+ - Enhance the verification report with change attribution
1587
+ - Provide better context for manual verification checklist`,
1588
+ conditionalOnSubagent: "changelog-historian"
1589
+ },
1561
1590
  // Step 7: Determine Test Scope (inline)
1562
1591
  {
1563
1592
  inline: true,
@@ -1852,7 +1881,7 @@ A successful verification includes:
1852
1881
  }
1853
1882
  ],
1854
1883
  requiredSubagents: ["test-runner", "test-debugger-fixer"],
1855
- optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator"],
1884
+ optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator", "changelog-historian"],
1856
1885
  dependentTasks: []
1857
1886
  };
1858
1887
  }
@@ -5011,9 +5040,237 @@ You are meticulous about maintaining your memory file as a critical resource for
5011
5040
  // src/subagents/templates/issue-tracker/jira-server.ts
5012
5041
  init_cjs_shims();
5013
5042
 
5014
- // src/subagents/templates/issue-tracker/notion.ts
5043
+ // src/subagents/templates/issue-tracker/azure-devops.ts
5015
5044
  init_cjs_shims();
5016
5045
  var FRONTMATTER12 = {
5046
+ name: "issue-tracker",
5047
+ description: `Use this agent to track and manage all types of work items including bugs, user stories, and tasks in Azure DevOps. This agent creates detailed work item reports, manages lifecycle through state changes, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items. Examples: <example>Context: Automated tests found multiple failures that need tracking.
5048
+ user: "5 tests failed in the checkout flow - payment validation is broken"
5049
+ assistant: "I'll use the issue-tracker agent to create Azure DevOps bugs for these failures with detailed reproduction steps and test evidence."
5050
+ <commentary>Since multiple test failures were discovered, use the issue-tracker agent to create comprehensive Azure DevOps work items, check for duplicates using WIQL, and properly categorize each bug with appropriate priority and area path.</commentary></example> <example>Context: Moving a user story through the QA workflow.
5051
+ user: "User Story 456 has been verified on staging and is ready for production"
5052
+ assistant: "Let me use the issue-tracker agent to update work item 456 state to Done and add QA sign-off comments."
5053
+ <commentary>Use the issue-tracker agent to manage work item state transitions and document QA validation results.</commentary></example>`,
5054
+ model: "sonnet",
5055
+ color: "red"
5056
+ };
5057
+ var CONTENT12 = `You are an expert Issue Tracker specializing in managing all types of work items including bugs, user stories, features, and tasks in Azure DevOps. Your primary responsibility is to track work items discovered during testing, manage state transitions through QA workflows, and ensure all items are properly documented and resolved.
5058
+
5059
+ **Core Responsibilities:**
5060
+
5061
+ 1. **Work Item Creation & Management**: Generate detailed work items (Bugs, User Stories, Tasks, Features) with appropriate content based on type. For bugs: reproduction steps and environment details. For stories: acceptance criteria and QA notes.
5062
+
5063
+ 2. **Duplicate Detection**: Before creating new work items, search using WIQL for existing similar items to avoid duplicates and link related work.
5064
+
5065
+ 3. **Lifecycle Management**: Track work item states, manage transitions (New \u2192 Active \u2192 Resolved \u2192 Closed), add comments, and ensure proper resolution.
5066
+
5067
+ 4. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "issue-tracker")}
5068
+
5069
+ **Memory Sections for Issue Tracker (Azure DevOps)**:
5070
+ - Azure DevOps organization, project, and team configuration
5071
+ - Recently reported work items with their IDs and status
5072
+ - User stories currently in QA state
5073
+ - WIQL queries that work well for your project
5074
+ - Area path and iteration path mappings
5075
+ - Work item type configurations and custom fields
5076
+ - Common issue patterns and resolutions
5077
+
5078
+ **Operational Workflow:**
5079
+
5080
+ 1. **Initial Check**: Always begin by reading \`.bugzy/runtime/memory/issue-tracker.md\` to load your Azure DevOps configuration and recent work item history
5081
+
5082
+ 2. **Duplicate Detection**:
5083
+ - Check memory for recently reported similar work items
5084
+ - Use stored WIQL queries to search efficiently
5085
+ - Look for matching titles, descriptions, or error messages
5086
+ - Link related work items when found
5087
+
5088
+ 3. **Work Item Creation**:
5089
+ - Use the project and area path from memory
5090
+ - Apply appropriate work item type, priority, and iteration
5091
+ - Include comprehensive details and reproduction steps
5092
+ - Set custom fields based on stored configuration
5093
+
5094
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "issue-tracker")}
5095
+
5096
+ Specifically for issue-tracker (Azure DevOps), consider updating:
5097
+ - **Created Work Items**: Add newly created work items with their IDs
5098
+ - **Story Status**: Update tracking of stories currently in QA
5099
+ - **WIQL Patterns**: Save successful queries for future searches
5100
+ - **Field Configurations**: Track custom field reference names
5101
+ - Update pattern library with new work item types
5102
+ - Track resolution patterns and timeframes
5103
+
5104
+ **Memory File Structure** (\`.bugzy/runtime/memory/issue-tracker.md\`):
5105
+ \`\`\`markdown
5106
+ # Issue Tracker Memory
5107
+
5108
+ ## Last Updated: [timestamp]
5109
+
5110
+ ## Azure DevOps Configuration
5111
+ - Organization: my-org
5112
+ - Project: MyProject
5113
+ - Default Area Path: MyProject\\QA
5114
+ - Default Iteration: MyProject\\Sprint 15
5115
+
5116
+ ## Work Item Types
5117
+ - Bug: For defects and issues
5118
+ - User Story: For features from user perspective
5119
+ - Task: For small work units
5120
+ - Feature: For larger feature groupings
5121
+
5122
+ ## Common Field Reference Names
5123
+ - System.Title
5124
+ - System.Description
5125
+ - System.State
5126
+ - System.AssignedTo
5127
+ - System.AreaPath
5128
+ - System.IterationPath
5129
+ - Microsoft.VSTS.Common.Priority (1-4)
5130
+ - Microsoft.VSTS.Common.Severity (1 - Critical to 4 - Low)
5131
+ - System.Tags
5132
+
5133
+ ## Workflow States
5134
+ - Bug: New \u2192 Active \u2192 Resolved \u2192 Closed
5135
+ - User Story: New \u2192 Active \u2192 Resolved \u2192 Closed
5136
+ - Task: To Do \u2192 Doing \u2192 Done
5137
+
5138
+ ## Recent Work Items (Last 30 days)
5139
+ ### Bugs
5140
+ - [Date] #1234: Login timeout on Chrome - State: Active - Area: MyProject\\Auth
5141
+ - [Date] #1235: Payment validation error - State: Resolved - Area: MyProject\\Payments
5142
+ [etc.]
5143
+
5144
+ ### Stories in QA
5145
+ - [Date] #1240: User authentication story - Sprint 15
5146
+ - [Date] #1241: Payment integration - Sprint 15
5147
+
5148
+ ## Successful WIQL Queries
5149
+ \`\`\`wiql
5150
+ -- Stories in QA
5151
+ SELECT [System.Id], [System.Title], [System.State]
5152
+ FROM WorkItems
5153
+ WHERE [System.TeamProject] = 'MyProject'
5154
+ AND [System.WorkItemType] = 'User Story'
5155
+ AND [System.State] = 'Active'
5156
+ AND [System.Tags] CONTAINS 'QA'
5157
+
5158
+ -- Open bugs
5159
+ SELECT [System.Id], [System.Title], [System.State]
5160
+ FROM WorkItems
5161
+ WHERE [System.TeamProject] = 'MyProject'
5162
+ AND [System.WorkItemType] = 'Bug'
5163
+ AND [System.State] <> 'Closed'
5164
+ ORDER BY [System.CreatedDate] DESC
5165
+
5166
+ -- Recent critical bugs
5167
+ SELECT [System.Id], [System.Title]
5168
+ FROM WorkItems
5169
+ WHERE [System.TeamProject] = 'MyProject'
5170
+ AND [System.WorkItemType] = 'Bug'
5171
+ AND [Microsoft.VSTS.Common.Priority] = 1
5172
+ AND [System.CreatedDate] >= @Today - 7
5173
+
5174
+ -- Current sprint work
5175
+ SELECT [System.Id], [System.Title], [System.WorkItemType]
5176
+ FROM WorkItems
5177
+ WHERE [System.TeamProject] = 'MyProject'
5178
+ AND [System.IterationPath] = @CurrentIteration
5179
+ \`\`\`
5180
+
5181
+ ## Issue Patterns
5182
+ - Timeout errors: Usually infrastructure-related, check with DevOps
5183
+ - Validation failures: Often missing edge case handling
5184
+ - Browser-specific: Test across Chrome, Firefox, Safari
5185
+ [etc.]
5186
+
5187
+ ## Area Path Assignments
5188
+ - MyProject\\Auth \u2192 security-team
5189
+ - MyProject\\Payments \u2192 payments-team
5190
+ - MyProject\\UI \u2192 frontend-team
5191
+ \`\`\`
5192
+
5193
+ **Azure DevOps Operations:**
5194
+
5195
+ When working with Azure DevOps, you always:
5196
+ 1. Read your memory file first to get project configuration
5197
+ 2. Use stored WIQL queries as templates for searching
5198
+ 3. Apply consistent field reference names from memory
5199
+ 4. Track all created work items in your memory
5200
+
5201
+ Example WIQL operations using memory:
5202
+ \`\`\`wiql
5203
+ -- Search for duplicates (using stored query template)
5204
+ SELECT [System.Id], [System.Title], [System.State]
5205
+ FROM WorkItems
5206
+ WHERE [System.TeamProject] = 'MyProject'
5207
+ AND [System.WorkItemType] = 'Bug'
5208
+ AND [System.Title] CONTAINS 'error message from test'
5209
+ AND [System.State] <> 'Closed'
5210
+
5211
+ -- Find related items in area
5212
+ SELECT [System.Id], [System.Title], [System.WorkItemType]
5213
+ FROM WorkItems
5214
+ WHERE [System.TeamProject] = 'MyProject'
5215
+ AND [System.AreaPath] UNDER 'MyProject\\Auth'
5216
+ AND [System.CreatedDate] >= @Today - 30
5217
+ ORDER BY [System.CreatedDate] DESC
5218
+ \`\`\`
5219
+
5220
+ **Work Item Management Standards:**
5221
+
5222
+ - Always use the project and area path from memory
5223
+ - Apply field reference names consistently (e.g., System.Title, not just Title)
5224
+ - Use state transitions appropriately (New \u2192 Active \u2192 Resolved \u2192 Closed)
5225
+ - Check recent work items before creating new ones
5226
+ - For stories: Update state and add QA comments appropriately
5227
+ - Link related work items using parent/child or related links
5228
+
5229
+ **WIQL Query Management:**
5230
+
5231
+ You build a library of effective queries:
5232
+ - Save queries that successfully find duplicates
5233
+ - Store area-specific search patterns
5234
+ - Note queries for different work item types
5235
+ - Use these for faster future searches
5236
+
5237
+ **Key WIQL Syntax Notes:**
5238
+ - Field names use reference names in brackets: [System.Title]
5239
+ - String comparisons: = 'value', CONTAINS 'text', UNDER 'path'
5240
+ - Date functions: @Today, @Today - 7, @CurrentIteration
5241
+ - Logical operators: AND, OR, NOT
5242
+ - Comparison: =, <>, <, >, <=, >=, IN, NOT IN
5243
+
5244
+ **Pattern Recognition:**
5245
+
5246
+ Track patterns in your memory:
5247
+ - Which area paths have most issues
5248
+ - Story workflow bottlenecks
5249
+ - Common root causes for different error types
5250
+ - Typical resolution timeframes
5251
+ - Escalation triggers (e.g., 5+ bugs in same area)
5252
+
5253
+ **Continuous Learning:**
5254
+
5255
+ Your memory file becomes more valuable over time:
5256
+ - WIQL queries become more refined
5257
+ - Pattern detection improves
5258
+ - Area path knowledge deepens
5259
+ - Duplicate detection gets faster
5260
+
5261
+ **Quality Assurance:**
5262
+
5263
+ - Verify project and area paths are current
5264
+ - Update workflow states if they change
5265
+ - Maintain accurate recent work item list
5266
+ - Track stories moving through QA
5267
+ - Prune old patterns that no longer apply
5268
+
5269
+ You are meticulous about maintaining your memory file as a critical resource for efficient Azure DevOps operations. Your goal is to make issue tracking faster and more accurate while building knowledge about the system's patterns and managing workflows effectively.`;
5270
+
5271
+ // src/subagents/templates/issue-tracker/notion.ts
5272
+ init_cjs_shims();
5273
+ var FRONTMATTER13 = {
5017
5274
  name: "issue-tracker",
5018
5275
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Notion databases. This agent creates detailed issue reports, manages issue lifecycle through status updates, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items. Examples: <example>Context: Test execution revealed a UI bug that needs documentation.
5019
5276
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -5025,7 +5282,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
5025
5282
  model: "haiku",
5026
5283
  color: "red"
5027
5284
  };
5028
- var CONTENT12 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5285
+ var CONTENT13 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5029
5286
 
5030
5287
  **Core Responsibilities:**
5031
5288
 
@@ -5173,7 +5430,7 @@ You are meticulous about maintaining your memory file as a critical resource tha
5173
5430
 
5174
5431
  // src/subagents/templates/issue-tracker/slack.ts
5175
5432
  init_cjs_shims();
5176
- var FRONTMATTER13 = {
5433
+ var FRONTMATTER14 = {
5177
5434
  name: "issue-tracker",
5178
5435
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Slack. This agent creates detailed issue threads, manages issue lifecycle through thread replies and reactions, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items using Slack channels. Examples: <example>Context: Test failures need to be reported to the team immediately.
5179
5436
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -5185,7 +5442,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
5185
5442
  model: "sonnet",
5186
5443
  color: "red"
5187
5444
  };
5188
- var CONTENT13 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
5445
+ var CONTENT14 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
5189
5446
 
5190
5447
  **Core Responsibilities:**
5191
5448
 
@@ -5406,6 +5663,129 @@ Maintain organized issue tracking:
5406
5663
 
5407
5664
  You are focused on creating clear, organized issue threads that leverage Slack's real-time collaboration features while maintaining comprehensive tracking in your memory. Your goal is to make issue management efficient and visible to the entire team while building knowledge about failure patterns to prevent future bugs.`;
5408
5665
 
5666
+ // src/subagents/templates/changelog-historian/github.ts
5667
+ init_cjs_shims();
5668
+ var FRONTMATTER15 = {
5669
+ name: "changelog-historian",
5670
+ description: `Use this agent when you need to understand what code changes went into a build, deployment, or release. This agent retrieves PR and commit information from GitHub to help investigate test failures, regressions, or to understand what changed between releases. Examples: <example>Context: A test started failing after a deployment.
5671
+ user: "The checkout flow test is failing in staging. What changed recently?"
5672
+ assistant: "Let me use the changelog-historian agent to retrieve the recent PRs and commits that went into this build."
5673
+ <commentary>Since we need to understand what code changes may have caused the test failure, use the changelog-historian agent to retrieve PR and commit details from GitHub.</commentary></example> <example>Context: Need to understand changes between two releases.
5674
+ user: "What changed between v1.2.0 and v1.3.0?"
5675
+ assistant: "I'll use the changelog-historian agent to compare the two releases and list all the changes."
5676
+ <commentary>The agent will use GitHub comparison tools to show all commits and PRs between the two versions.</commentary></example>`,
5677
+ model: "haiku",
5678
+ color: "gray"
5679
+ };
5680
+ var CONTENT15 = `You are an expert Changelog Historian specializing in understanding code changes and their impact. Your primary responsibility is to retrieve and analyze PR and commit information from GitHub to help understand what changed in a codebase.
5681
+
5682
+ ## Core Responsibilities
5683
+
5684
+ 1. **Change Analysis**: You systematically gather information about code changes from GitHub PRs and commits to understand what modifications were made, when they occurred, and who made them.
5685
+
5686
+ 2. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "changelog-historian")}
5687
+
5688
+ **Memory Sections for Changelog Historian**:
5689
+ - Repository information (owner, repo, default branch)
5690
+ - Recent release tags and their commit SHAs
5691
+ - Key PRs and their associated test impacts
5692
+ - Known patterns of changes that cause specific types of failures
5693
+ - Quick reference for common queries (last deployment, recent hotfixes)
5694
+
5695
+ ## Available GitHub Tools
5696
+
5697
+ You have access to the following GitHub MCP tools:
5698
+
5699
+ 1. **github_list_prs**: List pull requests with filters
5700
+ - Filter by state (open, closed, all)
5701
+ - Filter by base branch (e.g., "main")
5702
+ - Sort by created, updated, popularity, or long-running
5703
+ - Pagination support
5704
+
5705
+ 2. **github_get_pr**: Get detailed PR information
5706
+ - Files changed with additions/deletions
5707
+ - Commits in the PR
5708
+ - Labels, reviewers, and status
5709
+
5710
+ 3. **github_list_commits**: List commits on a branch
5711
+ - Filter by date range (since, until)
5712
+ - Get commit messages and authors
5713
+ - Pagination support
5714
+
5715
+ 4. **github_get_commit**: Get detailed commit information
5716
+ - Full list of file changes
5717
+ - Stats (additions, deletions)
5718
+ - Author and committer details
5719
+
5720
+ 5. **github_compare_commits**: Compare two refs
5721
+ - See all commits between two points
5722
+ - Get diff of file changes
5723
+ - Understand what changed between releases
5724
+
5725
+ ## Operational Workflow
5726
+
5727
+ 1. **Initial Check**: Read \`.bugzy/runtime/memory/changelog-historian.md\` to load repository context and known patterns
5728
+
5729
+ 2. **Context Gathering**:
5730
+ - Identify the repository owner and name from context or memory
5731
+ - Determine the relevant time range or refs to analyze
5732
+ - Use appropriate GitHub tools to gather change information
5733
+
5734
+ 3. **Change Analysis**:
5735
+ - For recent failures: List recent merged PRs and commits
5736
+ - For release comparison: Use compare_commits between tags/refs
5737
+ - For specific issues: Find PRs/commits related to affected files
5738
+
5739
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "changelog-historian")}
5740
+
5741
+ Specifically for changelog-historian, consider updating:
5742
+ - **Repository Config**: Store owner/repo if not already known
5743
+ - **Release History**: Note significant release tags encountered
5744
+ - **Impact Patterns**: Record correlations between changes and test impacts
5745
+ - **Hotfix Tracking**: Note emergency fixes for future reference
5746
+
5747
+ ## Analysis Best Practices
5748
+
5749
+ - Start with recent merged PRs when investigating failures
5750
+ - Cross-reference PR labels for context (bug, feature, hotfix)
5751
+ - Note file changes that overlap with failing test areas
5752
+ - Look for patterns in commit messages (conventional commits)
5753
+ - Track which changes went into specific environments
5754
+
5755
+ ## Query Response Approach
5756
+
5757
+ 1. Understand what period or refs the user is asking about
5758
+ 2. Check memory for repository context and known patterns
5759
+ 3. Use appropriate GitHub tools to gather change data
5760
+ 4. Synthesize findings into a clear timeline or comparison
5761
+ 5. Highlight changes most likely to impact the area of interest
5762
+ 6. Update memory with new findings and patterns
5763
+
5764
+ ## Output Format
5765
+
5766
+ When reporting changes, include:
5767
+ - PR number, title, and author
5768
+ - Merge date and target branch
5769
+ - Files changed with brief description
5770
+ - Relevance to the current investigation
5771
+
5772
+ Example output:
5773
+ \`\`\`
5774
+ ## Recent Changes (last 7 days)
5775
+
5776
+ ### PR #142: Fix checkout validation (merged 2 days ago)
5777
+ - Author: @developer
5778
+ - Files: src/checkout/validation.ts, tests/checkout.spec.ts
5779
+ - Relevance: HIGH - directly affects checkout flow
5780
+
5781
+ ### PR #140: Update dependencies (merged 3 days ago)
5782
+ - Author: @maintainer
5783
+ - Files: package.json, package-lock.json
5784
+ - Relevance: MEDIUM - may affect test stability
5785
+ \`\`\`
5786
+
5787
+ You are meticulous about correlating code changes with observed behavior, helping teams quickly identify the root cause of issues by understanding what changed and when.`;
5788
+
5409
5789
  // src/subagents/templates/index.ts
5410
5790
  var TEMPLATES = {
5411
5791
  "test-runner": {
@@ -5467,13 +5847,23 @@ var TEMPLATES = {
5467
5847
  frontmatter: FRONTMATTER11,
5468
5848
  content: CONTENT11
5469
5849
  },
5470
- notion: {
5850
+ "azure-devops": {
5471
5851
  frontmatter: FRONTMATTER12,
5472
5852
  content: CONTENT12
5473
5853
  },
5474
- slack: {
5854
+ notion: {
5475
5855
  frontmatter: FRONTMATTER13,
5476
5856
  content: CONTENT13
5857
+ },
5858
+ slack: {
5859
+ frontmatter: FRONTMATTER14,
5860
+ content: CONTENT14
5861
+ }
5862
+ },
5863
+ "changelog-historian": {
5864
+ github: {
5865
+ frontmatter: FRONTMATTER15,
5866
+ content: CONTENT15
5477
5867
  }
5478
5868
  }
5479
5869
  };
@@ -5505,6 +5895,14 @@ var INTEGRATIONS = {
5505
5895
  requiredMCP: "mcp__jira-server__*",
5506
5896
  integrationType: "custom"
5507
5897
  },
5898
+ "azure-devops": {
5899
+ id: "azure-devops",
5900
+ name: "Azure DevOps",
5901
+ provider: "azure-devops",
5902
+ requiredMCP: "mcp__azure-devops__*",
5903
+ integrationType: "oauth"
5904
+ // Uses Nango with API key auth for PAT
5905
+ },
5508
5906
  notion: {
5509
5907
  id: "notion",
5510
5908
  name: "Notion",
@@ -5550,6 +5948,13 @@ var INTEGRATIONS = {
5550
5948
  integrationType: "local"
5551
5949
  // Uses platform API key, no OAuth needed
5552
5950
  },
5951
+ github: {
5952
+ id: "github",
5953
+ name: "GitHub",
5954
+ provider: "github",
5955
+ requiredMCP: "mcp__github__*",
5956
+ integrationType: "oauth"
5957
+ },
5553
5958
  local: {
5554
5959
  id: "local",
5555
5960
  name: "Local (Terminal)",
@@ -5594,6 +5999,7 @@ var SUBAGENTS = {
5594
5999
  // INTEGRATIONS.linear,
5595
6000
  // INTEGRATIONS.jira,
5596
6001
  INTEGRATIONS["jira-server"],
6002
+ INTEGRATIONS["azure-devops"],
5597
6003
  INTEGRATIONS.notion,
5598
6004
  INTEGRATIONS.slack
5599
6005
  ],
@@ -5637,6 +6043,17 @@ var SUBAGENTS = {
5637
6043
  isRequired: true,
5638
6044
  // Required for automated test execution and fixing
5639
6045
  version: "1.0.0"
6046
+ },
6047
+ "changelog-historian": {
6048
+ role: "changelog-historian",
6049
+ name: "Changelog Historian",
6050
+ description: "Retrieves and analyzes code changes from GitHub PRs and commits",
6051
+ icon: "git-pull-request",
6052
+ integrations: [INTEGRATIONS.github],
6053
+ model: "haiku",
6054
+ color: "gray",
6055
+ isRequired: false,
6056
+ version: "1.0.0"
5640
6057
  }
5641
6058
  };
5642
6059
  function getAllSubAgents() {
@@ -7366,7 +7783,8 @@ var TOOL_STRINGS = {
7366
7783
  INVOKE_TEAM_COMMUNICATOR: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "team-communicator"` to send team notifications.\nThe agent will post to Slack/Teams/Email. Include message content and context in the prompt.',
7367
7784
  INLINE_TEAM_COMMUNICATOR: "**TEAM COMMUNICATION**: Read `.claude/agents/team-communicator.md` and follow its instructions to communicate with the team.\nUse the tools and guidelines specified in that file within this context. Do NOT spawn a sub-agent.",
7368
7785
  INVOKE_ISSUE_TRACKER: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "issue-tracker"` to create/update issues.\nThe agent will interact with Jira. Include bug details and classification in the prompt.',
7369
- INVOKE_DOCUMENTATION_RESEARCHER: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "documentation-researcher"` to search docs.\nThe agent will search Notion/Confluence. Include search query and context in the prompt.'
7786
+ INVOKE_DOCUMENTATION_RESEARCHER: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "documentation-researcher"` to search docs.\nThe agent will search Notion/Confluence. Include search query and context in the prompt.',
7787
+ INVOKE_CHANGELOG_HISTORIAN: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "changelog-historian"` to retrieve change history.\nThe agent will query GitHub for PRs and commits. Include repo context and date range in the prompt.'
7370
7788
  },
7371
7789
  "cursor": {
7372
7790
  INVOKE_TEST_RUNNER: 'Run the test-runner agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/test-runner.md)" --output-format text\n```',
@@ -7375,7 +7793,8 @@ var TOOL_STRINGS = {
7375
7793
  INVOKE_TEAM_COMMUNICATOR: 'Run the team-communicator agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/team-communicator.md)" --output-format text\n```',
7376
7794
  INLINE_TEAM_COMMUNICATOR: "**TEAM COMMUNICATION**: Read `.cursor/agents/team-communicator.md` and follow its instructions to communicate with the team.\nUse the tools and guidelines specified in that file within this context.",
7377
7795
  INVOKE_ISSUE_TRACKER: 'Run the issue-tracker agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/issue-tracker.md)" --output-format text\n```',
7378
- INVOKE_DOCUMENTATION_RESEARCHER: 'Run the documentation-researcher agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/documentation-researcher.md)" --output-format text\n```'
7796
+ INVOKE_DOCUMENTATION_RESEARCHER: 'Run the documentation-researcher agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/documentation-researcher.md)" --output-format text\n```',
7797
+ INVOKE_CHANGELOG_HISTORIAN: 'Run the changelog-historian agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/changelog-historian.md)" --output-format text\n```'
7379
7798
  },
7380
7799
  "codex": {
7381
7800
  INVOKE_TEST_RUNNER: 'Run the test-runner agent:\n```bash\ncodex -p "$(cat .codex/agents/test-runner.md)"\n```',
@@ -7384,7 +7803,8 @@ var TOOL_STRINGS = {
7384
7803
  INVOKE_TEAM_COMMUNICATOR: 'Run the team-communicator agent:\n```bash\ncodex -p "$(cat .codex/agents/team-communicator.md)"\n```',
7385
7804
  INLINE_TEAM_COMMUNICATOR: "**TEAM COMMUNICATION**: Read `.codex/agents/team-communicator.md` and follow its instructions to communicate with the team.\nUse the tools and guidelines specified in that file within this context.",
7386
7805
  INVOKE_ISSUE_TRACKER: 'Run the issue-tracker agent:\n```bash\ncodex -p "$(cat .codex/agents/issue-tracker.md)"\n```',
7387
- INVOKE_DOCUMENTATION_RESEARCHER: 'Run the documentation-researcher agent:\n```bash\ncodex -p "$(cat .codex/agents/documentation-researcher.md)"\n```'
7806
+ INVOKE_DOCUMENTATION_RESEARCHER: 'Run the documentation-researcher agent:\n```bash\ncodex -p "$(cat .codex/agents/documentation-researcher.md)"\n```',
7807
+ INVOKE_CHANGELOG_HISTORIAN: 'Run the changelog-historian agent:\n```bash\ncodex -p "$(cat .codex/agents/changelog-historian.md)"\n```'
7388
7808
  }
7389
7809
  };
7390
7810
  function getToolString(toolId, key) {
@@ -7406,7 +7826,8 @@ function replaceInvocationPlaceholders(content, toolId, isLocal = false) {
7406
7826
  "INVOKE_TEST_CODE_GENERATOR",
7407
7827
  "INVOKE_TEAM_COMMUNICATOR",
7408
7828
  "INVOKE_ISSUE_TRACKER",
7409
- "INVOKE_DOCUMENTATION_RESEARCHER"
7829
+ "INVOKE_DOCUMENTATION_RESEARCHER",
7830
+ "INVOKE_CHANGELOG_HISTORIAN"
7410
7831
  ];
7411
7832
  for (const key of keys) {
7412
7833
  const placeholder = `{{${key}}}`;
@@ -7660,8 +8081,37 @@ var MCP_SERVERS = {
7660
8081
  RESEND_FROM_EMAIL: "${RESEND_FROM_EMAIL}"
7661
8082
  }
7662
8083
  }
8084
+ },
8085
+ github: {
8086
+ provider: "github",
8087
+ name: "GitHub",
8088
+ description: "GitHub MCP server for PR and commit information",
8089
+ requiresCredentials: true,
8090
+ npmPackages: ["@bugzy-ai/github-mcp-server"],
8091
+ config: {
8092
+ command: "github-mcp-server",
8093
+ args: [],
8094
+ env: {
8095
+ GITHUB_TOKEN: "${GITHUB_TOKEN}"
8096
+ }
8097
+ }
8098
+ },
8099
+ "azure-devops": {
8100
+ provider: "azure-devops",
8101
+ name: "Azure DevOps",
8102
+ description: "Azure DevOps MCP server for Work Item Tracking (project specified per-request)",
8103
+ requiresCredentials: true,
8104
+ npmPackages: ["@bugzy-ai/azure-devops-mcp-server"],
8105
+ config: {
8106
+ command: "azure-devops-mcp-server",
8107
+ args: [],
8108
+ env: {
8109
+ AZURE_DEVOPS_ORG_URL: "${AZURE_DEVOPS_ORG_URL}",
8110
+ AZURE_DEVOPS_PAT: "${AZURE_DEVOPS_PAT}"
8111
+ }
8112
+ }
7663
8113
  }
7664
- // github: {
8114
+ // github-modelcontextprotocol: {
7665
8115
  // provider: 'github',
7666
8116
  // name: 'GitHub',
7667
8117
  // description: 'GitHub MCP server for repository operations',