@bugzy-ai/bugzy 1.19.2 → 1.20.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 (60) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +273 -273
  3. package/dist/cli/index.cjs +249 -36
  4. package/dist/cli/index.cjs.map +1 -1
  5. package/dist/cli/index.js +248 -35
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/index.cjs +245 -33
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +245 -33
  10. package/dist/index.js.map +1 -1
  11. package/dist/subagents/index.cjs +172 -28
  12. package/dist/subagents/index.cjs.map +1 -1
  13. package/dist/subagents/index.js +172 -28
  14. package/dist/subagents/index.js.map +1 -1
  15. package/dist/subagents/metadata.cjs +2 -1
  16. package/dist/subagents/metadata.cjs.map +1 -1
  17. package/dist/subagents/metadata.js +2 -1
  18. package/dist/subagents/metadata.js.map +1 -1
  19. package/dist/tasks/index.cjs +27 -4
  20. package/dist/tasks/index.cjs.map +1 -1
  21. package/dist/tasks/index.js +27 -4
  22. package/dist/tasks/index.js.map +1 -1
  23. package/dist/templates/init/.bugzy/runtime/knowledge-base.md +61 -0
  24. package/dist/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +97 -0
  25. package/dist/templates/init/.bugzy/runtime/project-context.md +35 -0
  26. package/dist/templates/init/.bugzy/runtime/subagent-memory-guide.md +87 -0
  27. package/dist/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -0
  28. package/dist/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -0
  29. package/dist/templates/init/.bugzy/runtime/test-execution-strategy.md +535 -0
  30. package/dist/templates/init/.bugzy/runtime/testing-best-practices.md +632 -0
  31. package/dist/templates/init/.gitignore-template +25 -0
  32. package/package.json +95 -95
  33. package/templates/init/.bugzy/runtime/hooks/pre-compact.sh +53 -53
  34. package/templates/init/.bugzy/runtime/hooks/session-start.sh +68 -68
  35. package/templates/init/.bugzy/runtime/knowledge-base.md +61 -61
  36. package/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +140 -140
  37. package/templates/init/.bugzy/runtime/project-context.md +35 -35
  38. package/templates/init/.bugzy/runtime/subagent-memory-guide.md +122 -122
  39. package/templates/init/.bugzy/runtime/templates/event-examples.md +194 -194
  40. package/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -50
  41. package/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -498
  42. package/templates/init/.claude/settings.json +49 -49
  43. package/templates/init/.env.testdata +18 -18
  44. package/templates/init/.gitignore-template +24 -24
  45. package/templates/init/AGENTS.md +155 -155
  46. package/templates/init/CLAUDE.md +157 -157
  47. package/templates/init/test-runs/README.md +45 -45
  48. package/templates/init/tests/CLAUDE.md +199 -199
  49. package/templates/init/tests/docs/test-execution-strategy.md +535 -535
  50. package/templates/init/tests/docs/testing-best-practices.md +724 -724
  51. package/templates/playwright/BasePage.template.ts +190 -190
  52. package/templates/playwright/auth.setup.template.ts +89 -89
  53. package/templates/playwright/dataGenerators.helper.template.ts +148 -148
  54. package/templates/playwright/dateUtils.helper.template.ts +96 -96
  55. package/templates/playwright/pages.fixture.template.ts +50 -50
  56. package/templates/playwright/playwright.config.template.ts +97 -97
  57. package/templates/playwright/reporters/__tests__/bugzy-reporter-failure-classification.test.ts +299 -299
  58. package/templates/playwright/reporters/__tests__/bugzy-reporter-manifest-merge.test.ts +329 -329
  59. package/templates/playwright/reporters/__tests__/playwright.config.ts +5 -5
  60. package/templates/playwright/reporters/bugzy-reporter.ts +784 -784
package/dist/cli/index.js CHANGED
@@ -20,12 +20,12 @@ var __copyProps = (to, from, except, desc) => {
20
20
  };
21
21
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
22
 
23
- // node_modules/.pnpm/tsup@8.5.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js
23
+ // node_modules/.pnpm/tsup@8.5.0_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js
24
24
  import path from "path";
25
25
  import { fileURLToPath } from "url";
26
26
  var getFilename, getDirname, __dirname;
27
27
  var init_esm_shims = __esm({
28
- "node_modules/.pnpm/tsup@8.5.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js"() {
28
+ "node_modules/.pnpm/tsup@8.5.0_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js"() {
29
29
  "use strict";
30
30
  getFilename = () => fileURLToPath(import.meta.url);
31
31
  getDirname = () => path.dirname(getFilename());
@@ -543,7 +543,7 @@ If intent is not in the payload, detect from message patterns:
543
543
  | Condition | Intent |
544
544
  |-----------|--------|
545
545
  | Keywords: "status", "progress", "how did", "results", "how many passed" | \`status\` |
546
- | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error" | \`feedback\` |
546
+ | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error", "wrong triage", "incorrect classification", "dispute", "that was wrong" | \`feedback\` |
547
547
  | Question words: "what", "which", "do we have", "is there" about tests/project | \`question\` |
548
548
  | Default (none of above) | \`feedback\` |
549
549
 
@@ -579,7 +579,26 @@ Extract the following from the message:
579
579
  - \`suggestion\`: "should", "could we", "what if", "idea"
580
580
  - \`general\`: Default for unclassified feedback
581
581
 
582
- ### Step 2: Update Test Case Specifications
582
+ ### Step 2: Check for Dispute Intent
583
+
584
+ Before processing other feedback types, check if the message is disputing a prior triage finding (e.g., "that triage was wrong", "the login timeout is actually CI flakiness not a product bug", "incorrect classification for...").
585
+
586
+ **If dispute detected:**
587
+ 1. Call \`bugzy-findings list\` to retrieve recent findings
588
+ 2. Match the customer's message to a specific finding by test name, description, or ID
589
+ 3. If ambiguous (multiple possible matches), list recent findings and ask the customer to clarify which one they're disputing
590
+ 4. Once matched, call:
591
+ \`\`\`bash
592
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "<customer's explanation>"
593
+ \`\`\`
594
+ 5. Confirm the dispute was recorded: "Dispute recorded for [finding title]. A triage credit has been applied and the finding is now marked as disputed. This feedback will help improve future triages."
595
+ 6. Skip the remaining feedback steps (the dispute is the action)
596
+
597
+ If \`bugzy-findings\` is not available (command not found), inform the customer that dispute functionality is not available for this project and suggest contacting support.
598
+
599
+ **If NOT a dispute**, continue with the standard feedback flow below.
600
+
601
+ ### Step 3: Update Test Case Specifications
583
602
 
584
603
  **CRITICAL**: When feedback requests changes to test behavior (e.g., "change the expected result", "update the test to check for X", "the test should verify Y instead"), you MUST update the test case markdown files to reflect the requested changes.
585
604
 
@@ -591,7 +610,7 @@ For each actionable feedback item:
591
610
 
592
611
  This step updates the **specification** (markdown test case files) only. The \`sync-automation-from-feedback\` step that follows handles syncing the **implementation** (automation code) to match.
593
612
 
594
- ### Step 3: Acknowledge and Confirm
613
+ ### Step 4: Acknowledge and Confirm
595
614
 
596
615
  Respond confirming: feedback received, summary of what was captured, actions taken (including any test case updates), and follow-up questions if needed.
597
616
 
@@ -884,7 +903,11 @@ Use these as reference patterns for common events. The webhook routing system al
884
903
 
885
904
  **Jira Events:**
886
905
  - **Status \u2192 "Ready to Test" / "In Testing" / "Ready for QA"**: Propose \`/verify-changes\` with issue context
887
- - **Resolution: "Not a Bug" / "Won't Fix" / "User Error"**: Update knowledge base directly with the learning (no queue needed)
906
+ - **Resolution: "Not a Bug" / "Won't Fix" / "User Error"**: Update knowledge base directly with the learning (no queue needed). Additionally, if the issue was linked to a triage finding (check via \`bugzy-findings list\` matching by issue tracker key), auto-dispute the finding:
907
+ \`\`\`bash
908
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "Issue resolved as Not a Bug/Won't Fix in issue tracker"
909
+ \`\`\`
910
+ This applies a triage credit automatically when the issue tracker confirms the triage was incorrect. If \`bugzy-findings\` is not available, skip the dispute and only update the knowledge base.
888
911
  - **Bug created with relevant labels**: Propose \`/generate-test-cases\` to update related test coverage, confirm with team
889
912
  - **Backlog \u2192 To Do**: No QA action needed, log to event history only
890
913
 
@@ -2580,8 +2603,9 @@ var SUBAGENTS = {
2580
2603
  icon: "file-search",
2581
2604
  integrations: [
2582
2605
  INTEGRATIONS.notion,
2583
- INTEGRATIONS.jira
2606
+ INTEGRATIONS.jira,
2584
2607
  // INTEGRATIONS.confluence
2608
+ INTEGRATIONS.asana
2585
2609
  ],
2586
2610
  model: "sonnet",
2587
2611
  color: "cyan",
@@ -4308,9 +4332,149 @@ Handle these Jira elements properly:
4308
4332
 
4309
4333
  You are meticulous about maintaining your memory file as a living document that grows more valuable with each use. Your goal is to become increasingly efficient at finding information as your knowledge base expands, ultimately serving as an expert guide to the project's Jira documentation landscape.`;
4310
4334
 
4311
- // src/subagents/templates/issue-tracker/linear.ts
4335
+ // src/subagents/templates/documentation-researcher/asana.ts
4312
4336
  init_esm_shims();
4313
4337
  var FRONTMATTER10 = {
4338
+ name: "documentation-researcher",
4339
+ description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Asana tasks, projects, and comments. This agent systematically researches Asana content, builds a knowledge base about project structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to find acceptance criteria for test case generation.
4340
+ user: "Generate test cases for the checkout flow feature"
4341
+ assistant: "Let me use the documentation-researcher agent to find the acceptance criteria and technical specifications from the Asana project tasks."
4342
+ <commentary>Since test cases require understanding feature requirements, use the documentation-researcher agent to retrieve acceptance criteria and specifications documented in Asana tasks and projects.</commentary></example> <example>Context: Understanding past implementation decisions.
4343
+ user: "Why was the payment validation implemented this way?"
4344
+ assistant: "I'll use the documentation-researcher agent to search Asana task comments and related tasks for the implementation discussion and decisions."
4345
+ <commentary>The agent will search Asana task comments and related tasks to find the historical context and reasoning behind implementation choices.</commentary></example>`,
4346
+ model: "haiku",
4347
+ color: "cyan"
4348
+ };
4349
+ var CONTENT10 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Asana tasks, projects, sections, and comments.
4350
+
4351
+ ## CLI-First Approach
4352
+
4353
+ Always prefer CLI commands via Bash over MCP tool calls. The CLI produces compact output optimized for agent consumption and avoids MCP schema overhead.
4354
+
4355
+ **Read-Only Commands (via Bash):**
4356
+
4357
+ - **Search tasks**: \`asana-cli task search --query "keyword" [--project GID]\`
4358
+ - **Get task details**: \`asana-cli task get <gid>\`
4359
+ - **List projects**: \`asana-cli project list\`
4360
+ - **All commands**: Add \`--json\` for structured JSON output when parsing is needed
4361
+
4362
+ **Important:** You only use read-only commands. Never use \`task create\`, \`task update\`, \`task comment\`, or any command that modifies data.
4363
+
4364
+ ## Core Responsibilities
4365
+
4366
+ 1. **Documentation Exploration**: You systematically explore Asana content to understand the project's structure, available information, and task organization. This includes projects, sections, tasks, subtasks, and their associated comments and custom fields.
4367
+
4368
+ 2. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
4369
+
4370
+ **Memory Sections for Documentation Researcher (Asana)**:
4371
+ - Asana workspace GID and key project GIDs
4372
+ - Project-to-section mappings (how work is organized)
4373
+ - Effective search queries that return useful results
4374
+ - Key reference tasks that serve as documentation sources
4375
+ - Last exploration timestamps for different project areas
4376
+
4377
+ ## Operational Workflow
4378
+
4379
+ 1. **Initial Check**: Always begin by reading \`.bugzy/runtime/memory/documentation-researcher.md\` to load your existing knowledge
4380
+
4381
+ 2. **Smart Exploration**:
4382
+ - If memory exists, use stored project GIDs and queries to navigate directly to relevant tasks
4383
+ - If exploring new areas, systematically document project structure and sections
4384
+ - Map project hierarchies and task relationships
4385
+ - Update your memory with new discoveries immediately
4386
+
4387
+ 3. **Information Retrieval**:
4388
+ - Use keyword search for targeted queries across tasks
4389
+ - Navigate project sections to find related documentation
4390
+ - Extract content from task descriptions, comments, and custom fields
4391
+ - Follow subtask hierarchies for complete context
4392
+
4393
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
4394
+
4395
+ Specifically for documentation-researcher (Asana), consider updating:
4396
+ - **Project Structure Maps**: Update understanding of Asana projects explored
4397
+ - **Search Query Patterns**: Save successful search queries for reuse
4398
+ - **Section Index**: Track important sections and their documentation content
4399
+ - **Key Reference Tasks**: Note tasks that serve as documentation sources
4400
+
4401
+ ## Search Patterns
4402
+
4403
+ Use these patterns for efficient searching:
4404
+
4405
+ ### Finding Requirements
4406
+ \`\`\`bash
4407
+ asana-cli task search --query "requirements" --project <GID>
4408
+ asana-cli task search --query "specification" --project <GID>
4409
+ \`\`\`
4410
+
4411
+ ### Finding Feature Documentation
4412
+ \`\`\`bash
4413
+ asana-cli task search --query "feature name"
4414
+ asana-cli task search --query "feature name" --project <GID>
4415
+ \`\`\`
4416
+
4417
+ ### Finding Historical Decisions
4418
+ \`\`\`bash
4419
+ asana-cli task search --query "decision"
4420
+ asana-cli task search --query "why" --project <GID>
4421
+ \`\`\`
4422
+
4423
+ ### Finding Acceptance Criteria
4424
+ \`\`\`bash
4425
+ asana-cli task search --query "acceptance criteria" --project <GID>
4426
+ asana-cli task search --query "given when then" --project <GID>
4427
+ \`\`\`
4428
+
4429
+ ## Asana-Specific Features
4430
+
4431
+ Handle these Asana elements properly:
4432
+ - **Projects**: Top-level containers \u2014 use \`project list\` to discover available projects
4433
+ - **Sections**: Organizational dividers within projects (e.g., "To Do", "In Progress", "Specs")
4434
+ - **Custom Fields**: Priority, status, tags, and team-defined metadata
4435
+ - **Subtasks**: Nested tasks that break down parent task requirements
4436
+ - **Comments**: Often contain implementation decisions, discussions, and clarifications
4437
+
4438
+ ## Research Best Practices
4439
+
4440
+ - Start with projects to understand high-level organization
4441
+ - Use sections to find categorized documentation (specs, requirements, decisions)
4442
+ - Search task comments for implementation decisions and discussions
4443
+ - Note task completion status when reporting findings
4444
+ - Follow subtask hierarchies to gather complete context
4445
+ - Use custom fields and tags to filter relevant content
4446
+
4447
+ ## Query Response Approach
4448
+
4449
+ 1. Interpret the user's information need precisely
4450
+ 2. Check memory for existing relevant knowledge and project mappings
4451
+ 3. Construct efficient search queries based on need
4452
+ 4. Navigate project and section hierarchies to gather comprehensive information
4453
+ 5. Extract and synthesize findings from descriptions and comments
4454
+ 6. Update memory with new discoveries and successful search patterns
4455
+
4456
+ ## Quality Assurance
4457
+
4458
+ - Note task status (incomplete, complete) when reporting findings
4459
+ - Include section context for organizational clarity
4460
+ - Cross-reference related tasks for completeness
4461
+ - Identify potential gaps in documentation
4462
+ - Handle permission restrictions gracefully (some tasks may not be accessible)
4463
+ - Clearly indicate when information might be outdated based on task dates
4464
+
4465
+ ## Important Distinction
4466
+
4467
+ **This is a READ-ONLY research role.** Unlike the issue-tracker subagent which creates and modifies tasks, the documentation-researcher:
4468
+ - Only searches and reads existing tasks
4469
+ - Does not create, update, or comment on tasks
4470
+ - Focuses on extracting knowledge, not managing workflows
4471
+ - Builds memory to improve research efficiency over time
4472
+
4473
+ You are meticulous about maintaining your memory file as a living document that grows more valuable with each use. Your goal is to become increasingly efficient at finding information as your knowledge base expands, ultimately serving as an expert guide to the project's Asana documentation landscape.`;
4474
+
4475
+ // src/subagents/templates/issue-tracker/linear.ts
4476
+ init_esm_shims();
4477
+ var FRONTMATTER11 = {
4314
4478
  name: "issue-tracker",
4315
4479
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Linear. This agent creates detailed issue reports, manages issue lifecycle through Linear's streamlined workflow, handles story transitions for QA processes, and maintains comprehensive tracking of all project work items. Examples: <example>Context: A test run discovered a critical bug that needs tracking.
4316
4480
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -4322,7 +4486,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
4322
4486
  model: "sonnet",
4323
4487
  color: "red"
4324
4488
  };
4325
- var CONTENT10 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Linear. 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 Linear's efficient tracking system.
4489
+ var CONTENT11 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Linear. 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 Linear's efficient tracking system.
4326
4490
 
4327
4491
  **Core Responsibilities:**
4328
4492
 
@@ -4491,7 +4655,7 @@ You are focused on creating bug reports that fit Linear's streamlined workflow w
4491
4655
 
4492
4656
  // src/subagents/templates/issue-tracker/jira.ts
4493
4657
  init_esm_shims();
4494
- var FRONTMATTER11 = {
4658
+ var FRONTMATTER12 = {
4495
4659
  name: "issue-tracker",
4496
4660
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Jira. 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: Automated tests found multiple failures that need tracking.
4497
4661
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4503,7 +4667,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
4503
4667
  model: "sonnet",
4504
4668
  color: "red"
4505
4669
  };
4506
- var CONTENT11 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Jira. 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.
4670
+ var CONTENT12 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Jira. 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.
4507
4671
 
4508
4672
  **Core Responsibilities:**
4509
4673
 
@@ -4666,7 +4830,7 @@ init_esm_shims();
4666
4830
 
4667
4831
  // src/subagents/templates/issue-tracker/azure-devops.ts
4668
4832
  init_esm_shims();
4669
- var FRONTMATTER12 = {
4833
+ var FRONTMATTER13 = {
4670
4834
  name: "issue-tracker",
4671
4835
  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.
4672
4836
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4678,7 +4842,7 @@ assistant: "Let me use the issue-tracker agent to update work item 456 state to
4678
4842
  model: "sonnet",
4679
4843
  color: "red"
4680
4844
  };
4681
- 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.
4845
+ var CONTENT13 = `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.
4682
4846
 
4683
4847
  **Core Responsibilities:**
4684
4848
 
@@ -4894,7 +5058,7 @@ You are meticulous about maintaining your memory file as a critical resource for
4894
5058
 
4895
5059
  // src/subagents/templates/issue-tracker/asana.ts
4896
5060
  init_esm_shims();
4897
- var FRONTMATTER13 = {
5061
+ var FRONTMATTER14 = {
4898
5062
  name: "issue-tracker",
4899
5063
  description: `Use this agent to track and manage tasks and bugs in Asana. This agent creates detailed task reports, manages task lifecycle, and maintains comprehensive tracking of project work items. Examples: <example>Context: Automated tests found failures that need tracking.
4900
5064
  user: "3 tests failed in the checkout flow - payment validation is broken"
@@ -4906,7 +5070,7 @@ assistant: "Let me use the issue-tracker agent to mark the task as complete and
4906
5070
  model: "sonnet",
4907
5071
  color: "red"
4908
5072
  };
4909
- var CONTENT13 = `You are an expert Issue Tracker specializing in managing tasks, bugs, and project work items in Asana. Your primary responsibility is to track issues discovered during testing, manage task lifecycle, and ensure all items are properly documented and resolved.
5073
+ var CONTENT14 = `You are an expert Issue Tracker specializing in managing tasks, bugs, and project work items in Asana. Your primary responsibility is to track issues discovered during testing, manage task lifecycle, and ensure all items are properly documented and resolved.
4910
5074
 
4911
5075
  **Important: CLI-First Approach**
4912
5076
 
@@ -5023,7 +5187,7 @@ You are meticulous about maintaining your memory file as a critical resource for
5023
5187
 
5024
5188
  // src/subagents/templates/issue-tracker/notion.ts
5025
5189
  init_esm_shims();
5026
- var FRONTMATTER14 = {
5190
+ var FRONTMATTER15 = {
5027
5191
  name: "issue-tracker",
5028
5192
  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.
5029
5193
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -5035,7 +5199,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
5035
5199
  model: "haiku",
5036
5200
  color: "red"
5037
5201
  };
5038
- var CONTENT14 = `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.
5202
+ var CONTENT15 = `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.
5039
5203
 
5040
5204
  **Core Responsibilities:**
5041
5205
 
@@ -5183,7 +5347,7 @@ You are meticulous about maintaining your memory file as a critical resource tha
5183
5347
 
5184
5348
  // src/subagents/templates/issue-tracker/slack.ts
5185
5349
  init_esm_shims();
5186
- var FRONTMATTER15 = {
5350
+ var FRONTMATTER16 = {
5187
5351
  name: "issue-tracker",
5188
5352
  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.
5189
5353
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -5195,7 +5359,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
5195
5359
  model: "sonnet",
5196
5360
  color: "red"
5197
5361
  };
5198
- var CONTENT15 = `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.
5362
+ var CONTENT16 = `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.
5199
5363
 
5200
5364
  **Core Responsibilities:**
5201
5365
 
@@ -5418,7 +5582,7 @@ You are focused on creating clear, organized issue threads that leverage Slack's
5418
5582
 
5419
5583
  // src/subagents/templates/changelog-historian/github.ts
5420
5584
  init_esm_shims();
5421
- var FRONTMATTER16 = {
5585
+ var FRONTMATTER17 = {
5422
5586
  name: "changelog-historian",
5423
5587
  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.
5424
5588
  user: "The checkout flow test is failing in staging. What changed recently?"
@@ -5430,7 +5594,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
5430
5594
  model: "haiku",
5431
5595
  color: "gray"
5432
5596
  };
5433
- var CONTENT16 = `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.
5597
+ var CONTENT17 = `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.
5434
5598
 
5435
5599
  ## Core Responsibilities
5436
5600
 
@@ -5583,42 +5747,46 @@ var TEMPLATES = {
5583
5747
  jira: {
5584
5748
  frontmatter: FRONTMATTER9,
5585
5749
  content: CONTENT9
5750
+ },
5751
+ asana: {
5752
+ frontmatter: FRONTMATTER10,
5753
+ content: CONTENT10
5586
5754
  }
5587
5755
  },
5588
5756
  "issue-tracker": {
5589
5757
  linear: {
5590
- frontmatter: FRONTMATTER10,
5591
- content: CONTENT10
5592
- },
5593
- jira: {
5594
5758
  frontmatter: FRONTMATTER11,
5595
5759
  content: CONTENT11
5596
5760
  },
5597
- "jira-server": {
5598
- frontmatter: FRONTMATTER11,
5599
- content: CONTENT11
5761
+ jira: {
5762
+ frontmatter: FRONTMATTER12,
5763
+ content: CONTENT12
5600
5764
  },
5601
- "azure-devops": {
5765
+ "jira-server": {
5602
5766
  frontmatter: FRONTMATTER12,
5603
5767
  content: CONTENT12
5604
5768
  },
5605
- asana: {
5769
+ "azure-devops": {
5606
5770
  frontmatter: FRONTMATTER13,
5607
5771
  content: CONTENT13
5608
5772
  },
5609
- notion: {
5773
+ asana: {
5610
5774
  frontmatter: FRONTMATTER14,
5611
5775
  content: CONTENT14
5612
5776
  },
5613
- slack: {
5777
+ notion: {
5614
5778
  frontmatter: FRONTMATTER15,
5615
5779
  content: CONTENT15
5780
+ },
5781
+ slack: {
5782
+ frontmatter: FRONTMATTER16,
5783
+ content: CONTENT16
5616
5784
  }
5617
5785
  },
5618
5786
  "changelog-historian": {
5619
5787
  github: {
5620
- frontmatter: FRONTMATTER16,
5621
- content: CONTENT16
5788
+ frontmatter: FRONTMATTER17,
5789
+ content: CONTENT17
5622
5790
  }
5623
5791
  }
5624
5792
  };
@@ -6345,6 +6513,16 @@ After analyzing test results, triage each failure to determine if it's a product
6345
6513
 
6346
6514
  **IMPORTANT: Do NOT report bugs without triaging first.**
6347
6515
 
6516
+ ### 0. Read Disputed Findings (Learning Context)
6517
+
6518
+ Before triaging, check for prior disputed findings to avoid repeating past mistakes:
6519
+
6520
+ \`\`\`bash
6521
+ cat .bugzy/runtime/disputed-findings.md 2>/dev/null || echo "No disputed findings found"
6522
+ \`\`\`
6523
+
6524
+ If the file exists, read it carefully. It contains past triage mistakes and lessons learned. Use this context to improve classification accuracy for similar failures.
6525
+
6348
6526
  ### 1. Check Failure Classification
6349
6527
 
6350
6528
  **Before triaging any failure**, read \`new_failures\` from the latest \`test-runs/*/manifest.json\`:
@@ -6402,7 +6580,42 @@ For each failed test (from \`new_failures\` or all failures if field is missing)
6402
6580
  | Test ID | Test Name | Last Passed Run |
6403
6581
  |---------|-----------|-----------------|
6404
6582
  | TC-003 | Search | 20260210-103045 |
6405
- \`\`\``,
6583
+ \`\`\`
6584
+
6585
+ ### 4. Record Findings
6586
+
6587
+ After triaging, record each classified failure as a structured finding via the \`bugzy-findings\` CLI. This stores findings in the platform database for tracking, disputes, and dashboard visualization.
6588
+
6589
+ For each triaged failure, run:
6590
+
6591
+ \`\`\`bash
6592
+ bugzy-findings add \\
6593
+ --title "<concise failure description>" \\
6594
+ --description "<detailed analysis including error message and root cause>" \\
6595
+ --severity <critical|high|medium|low> \\
6596
+ --classification <product-bug|test-issue> \\
6597
+ --test-case-id "<test ID from triage table>" \\
6598
+ --test-run-timestamp "<timestamp from manifest.json>"
6599
+ \`\`\`
6600
+
6601
+ **Severity Guidelines:**
6602
+ - **critical**: Application crash, data loss, security vulnerability
6603
+ - **high**: Major feature broken, blocking workflow
6604
+ - **medium**: Feature partially broken, workaround exists
6605
+ - **low**: Minor cosmetic issue, edge case
6606
+
6607
+ Example:
6608
+ \`\`\`bash
6609
+ bugzy-findings add \\
6610
+ --title "Checkout form returns 500 on submit" \\
6611
+ --description "POST /api/checkout returns HTTP 500 when submitting with valid payment data. Stack trace shows null reference in payment processor." \\
6612
+ --severity high \\
6613
+ --classification product-bug \\
6614
+ --test-case-id "TC-002" \\
6615
+ --test-run-timestamp "20260219-103045"
6616
+ \`\`\`
6617
+
6618
+ If \`bugzy-findings\` is not available (command not found), skip this step silently \u2014 findings recording is optional and does not block triage.`,
6406
6619
  tags: ["execution", "triage", "analysis"]
6407
6620
  };
6408
6621