@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
@@ -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.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js
34
+ // node_modules/.pnpm/tsup@8.5.0_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.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js"() {
37
+ "node_modules/.pnpm/tsup@8.5.0_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.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
39
+ getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
40
40
  importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
41
41
  }
42
42
  });
@@ -551,7 +551,7 @@ If intent is not in the payload, detect from message patterns:
551
551
  | Condition | Intent |
552
552
  |-----------|--------|
553
553
  | Keywords: "status", "progress", "how did", "results", "how many passed" | \`status\` |
554
- | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error" | \`feedback\` |
554
+ | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error", "wrong triage", "incorrect classification", "dispute", "that was wrong" | \`feedback\` |
555
555
  | Question words: "what", "which", "do we have", "is there" about tests/project | \`question\` |
556
556
  | Default (none of above) | \`feedback\` |
557
557
 
@@ -587,7 +587,26 @@ Extract the following from the message:
587
587
  - \`suggestion\`: "should", "could we", "what if", "idea"
588
588
  - \`general\`: Default for unclassified feedback
589
589
 
590
- ### Step 2: Update Test Case Specifications
590
+ ### Step 2: Check for Dispute Intent
591
+
592
+ 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...").
593
+
594
+ **If dispute detected:**
595
+ 1. Call \`bugzy-findings list\` to retrieve recent findings
596
+ 2. Match the customer's message to a specific finding by test name, description, or ID
597
+ 3. If ambiguous (multiple possible matches), list recent findings and ask the customer to clarify which one they're disputing
598
+ 4. Once matched, call:
599
+ \`\`\`bash
600
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "<customer's explanation>"
601
+ \`\`\`
602
+ 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."
603
+ 6. Skip the remaining feedback steps (the dispute is the action)
604
+
605
+ 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.
606
+
607
+ **If NOT a dispute**, continue with the standard feedback flow below.
608
+
609
+ ### Step 3: Update Test Case Specifications
591
610
 
592
611
  **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.
593
612
 
@@ -599,7 +618,7 @@ For each actionable feedback item:
599
618
 
600
619
  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.
601
620
 
602
- ### Step 3: Acknowledge and Confirm
621
+ ### Step 4: Acknowledge and Confirm
603
622
 
604
623
  Respond confirming: feedback received, summary of what was captured, actions taken (including any test case updates), and follow-up questions if needed.
605
624
 
@@ -892,7 +911,11 @@ Use these as reference patterns for common events. The webhook routing system al
892
911
 
893
912
  **Jira Events:**
894
913
  - **Status \u2192 "Ready to Test" / "In Testing" / "Ready for QA"**: Propose \`/verify-changes\` with issue context
895
- - **Resolution: "Not a Bug" / "Won't Fix" / "User Error"**: Update knowledge base directly with the learning (no queue needed)
914
+ - **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:
915
+ \`\`\`bash
916
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "Issue resolved as Not a Bug/Won't Fix in issue tracker"
917
+ \`\`\`
918
+ 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.
896
919
  - **Bug created with relevant labels**: Propose \`/generate-test-cases\` to update related test coverage, confirm with team
897
920
  - **Backlog \u2192 To Do**: No QA action needed, log to event history only
898
921
 
@@ -2588,8 +2611,9 @@ var SUBAGENTS = {
2588
2611
  icon: "file-search",
2589
2612
  integrations: [
2590
2613
  INTEGRATIONS.notion,
2591
- INTEGRATIONS.jira
2614
+ INTEGRATIONS.jira,
2592
2615
  // INTEGRATIONS.confluence
2616
+ INTEGRATIONS.asana
2593
2617
  ],
2594
2618
  model: "sonnet",
2595
2619
  color: "cyan",
@@ -4316,9 +4340,149 @@ Handle these Jira elements properly:
4316
4340
 
4317
4341
  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.`;
4318
4342
 
4319
- // src/subagents/templates/issue-tracker/linear.ts
4343
+ // src/subagents/templates/documentation-researcher/asana.ts
4320
4344
  init_cjs_shims();
4321
4345
  var FRONTMATTER10 = {
4346
+ name: "documentation-researcher",
4347
+ 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.
4348
+ user: "Generate test cases for the checkout flow feature"
4349
+ assistant: "Let me use the documentation-researcher agent to find the acceptance criteria and technical specifications from the Asana project tasks."
4350
+ <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.
4351
+ user: "Why was the payment validation implemented this way?"
4352
+ assistant: "I'll use the documentation-researcher agent to search Asana task comments and related tasks for the implementation discussion and decisions."
4353
+ <commentary>The agent will search Asana task comments and related tasks to find the historical context and reasoning behind implementation choices.</commentary></example>`,
4354
+ model: "haiku",
4355
+ color: "cyan"
4356
+ };
4357
+ 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.
4358
+
4359
+ ## CLI-First Approach
4360
+
4361
+ Always prefer CLI commands via Bash over MCP tool calls. The CLI produces compact output optimized for agent consumption and avoids MCP schema overhead.
4362
+
4363
+ **Read-Only Commands (via Bash):**
4364
+
4365
+ - **Search tasks**: \`asana-cli task search --query "keyword" [--project GID]\`
4366
+ - **Get task details**: \`asana-cli task get <gid>\`
4367
+ - **List projects**: \`asana-cli project list\`
4368
+ - **All commands**: Add \`--json\` for structured JSON output when parsing is needed
4369
+
4370
+ **Important:** You only use read-only commands. Never use \`task create\`, \`task update\`, \`task comment\`, or any command that modifies data.
4371
+
4372
+ ## Core Responsibilities
4373
+
4374
+ 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.
4375
+
4376
+ 2. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
4377
+
4378
+ **Memory Sections for Documentation Researcher (Asana)**:
4379
+ - Asana workspace GID and key project GIDs
4380
+ - Project-to-section mappings (how work is organized)
4381
+ - Effective search queries that return useful results
4382
+ - Key reference tasks that serve as documentation sources
4383
+ - Last exploration timestamps for different project areas
4384
+
4385
+ ## Operational Workflow
4386
+
4387
+ 1. **Initial Check**: Always begin by reading \`.bugzy/runtime/memory/documentation-researcher.md\` to load your existing knowledge
4388
+
4389
+ 2. **Smart Exploration**:
4390
+ - If memory exists, use stored project GIDs and queries to navigate directly to relevant tasks
4391
+ - If exploring new areas, systematically document project structure and sections
4392
+ - Map project hierarchies and task relationships
4393
+ - Update your memory with new discoveries immediately
4394
+
4395
+ 3. **Information Retrieval**:
4396
+ - Use keyword search for targeted queries across tasks
4397
+ - Navigate project sections to find related documentation
4398
+ - Extract content from task descriptions, comments, and custom fields
4399
+ - Follow subtask hierarchies for complete context
4400
+
4401
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
4402
+
4403
+ Specifically for documentation-researcher (Asana), consider updating:
4404
+ - **Project Structure Maps**: Update understanding of Asana projects explored
4405
+ - **Search Query Patterns**: Save successful search queries for reuse
4406
+ - **Section Index**: Track important sections and their documentation content
4407
+ - **Key Reference Tasks**: Note tasks that serve as documentation sources
4408
+
4409
+ ## Search Patterns
4410
+
4411
+ Use these patterns for efficient searching:
4412
+
4413
+ ### Finding Requirements
4414
+ \`\`\`bash
4415
+ asana-cli task search --query "requirements" --project <GID>
4416
+ asana-cli task search --query "specification" --project <GID>
4417
+ \`\`\`
4418
+
4419
+ ### Finding Feature Documentation
4420
+ \`\`\`bash
4421
+ asana-cli task search --query "feature name"
4422
+ asana-cli task search --query "feature name" --project <GID>
4423
+ \`\`\`
4424
+
4425
+ ### Finding Historical Decisions
4426
+ \`\`\`bash
4427
+ asana-cli task search --query "decision"
4428
+ asana-cli task search --query "why" --project <GID>
4429
+ \`\`\`
4430
+
4431
+ ### Finding Acceptance Criteria
4432
+ \`\`\`bash
4433
+ asana-cli task search --query "acceptance criteria" --project <GID>
4434
+ asana-cli task search --query "given when then" --project <GID>
4435
+ \`\`\`
4436
+
4437
+ ## Asana-Specific Features
4438
+
4439
+ Handle these Asana elements properly:
4440
+ - **Projects**: Top-level containers \u2014 use \`project list\` to discover available projects
4441
+ - **Sections**: Organizational dividers within projects (e.g., "To Do", "In Progress", "Specs")
4442
+ - **Custom Fields**: Priority, status, tags, and team-defined metadata
4443
+ - **Subtasks**: Nested tasks that break down parent task requirements
4444
+ - **Comments**: Often contain implementation decisions, discussions, and clarifications
4445
+
4446
+ ## Research Best Practices
4447
+
4448
+ - Start with projects to understand high-level organization
4449
+ - Use sections to find categorized documentation (specs, requirements, decisions)
4450
+ - Search task comments for implementation decisions and discussions
4451
+ - Note task completion status when reporting findings
4452
+ - Follow subtask hierarchies to gather complete context
4453
+ - Use custom fields and tags to filter relevant content
4454
+
4455
+ ## Query Response Approach
4456
+
4457
+ 1. Interpret the user's information need precisely
4458
+ 2. Check memory for existing relevant knowledge and project mappings
4459
+ 3. Construct efficient search queries based on need
4460
+ 4. Navigate project and section hierarchies to gather comprehensive information
4461
+ 5. Extract and synthesize findings from descriptions and comments
4462
+ 6. Update memory with new discoveries and successful search patterns
4463
+
4464
+ ## Quality Assurance
4465
+
4466
+ - Note task status (incomplete, complete) when reporting findings
4467
+ - Include section context for organizational clarity
4468
+ - Cross-reference related tasks for completeness
4469
+ - Identify potential gaps in documentation
4470
+ - Handle permission restrictions gracefully (some tasks may not be accessible)
4471
+ - Clearly indicate when information might be outdated based on task dates
4472
+
4473
+ ## Important Distinction
4474
+
4475
+ **This is a READ-ONLY research role.** Unlike the issue-tracker subagent which creates and modifies tasks, the documentation-researcher:
4476
+ - Only searches and reads existing tasks
4477
+ - Does not create, update, or comment on tasks
4478
+ - Focuses on extracting knowledge, not managing workflows
4479
+ - Builds memory to improve research efficiency over time
4480
+
4481
+ 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.`;
4482
+
4483
+ // src/subagents/templates/issue-tracker/linear.ts
4484
+ init_cjs_shims();
4485
+ var FRONTMATTER11 = {
4322
4486
  name: "issue-tracker",
4323
4487
  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.
4324
4488
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -4330,7 +4494,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
4330
4494
  model: "sonnet",
4331
4495
  color: "red"
4332
4496
  };
4333
- 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.
4497
+ 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.
4334
4498
 
4335
4499
  **Core Responsibilities:**
4336
4500
 
@@ -4499,7 +4663,7 @@ You are focused on creating bug reports that fit Linear's streamlined workflow w
4499
4663
 
4500
4664
  // src/subagents/templates/issue-tracker/jira.ts
4501
4665
  init_cjs_shims();
4502
- var FRONTMATTER11 = {
4666
+ var FRONTMATTER12 = {
4503
4667
  name: "issue-tracker",
4504
4668
  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.
4505
4669
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4511,7 +4675,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
4511
4675
  model: "sonnet",
4512
4676
  color: "red"
4513
4677
  };
4514
- 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.
4678
+ 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.
4515
4679
 
4516
4680
  **Core Responsibilities:**
4517
4681
 
@@ -4674,7 +4838,7 @@ init_cjs_shims();
4674
4838
 
4675
4839
  // src/subagents/templates/issue-tracker/azure-devops.ts
4676
4840
  init_cjs_shims();
4677
- var FRONTMATTER12 = {
4841
+ var FRONTMATTER13 = {
4678
4842
  name: "issue-tracker",
4679
4843
  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.
4680
4844
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4686,7 +4850,7 @@ assistant: "Let me use the issue-tracker agent to update work item 456 state to
4686
4850
  model: "sonnet",
4687
4851
  color: "red"
4688
4852
  };
4689
- 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.
4853
+ 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.
4690
4854
 
4691
4855
  **Core Responsibilities:**
4692
4856
 
@@ -4902,7 +5066,7 @@ You are meticulous about maintaining your memory file as a critical resource for
4902
5066
 
4903
5067
  // src/subagents/templates/issue-tracker/asana.ts
4904
5068
  init_cjs_shims();
4905
- var FRONTMATTER13 = {
5069
+ var FRONTMATTER14 = {
4906
5070
  name: "issue-tracker",
4907
5071
  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.
4908
5072
  user: "3 tests failed in the checkout flow - payment validation is broken"
@@ -4914,7 +5078,7 @@ assistant: "Let me use the issue-tracker agent to mark the task as complete and
4914
5078
  model: "sonnet",
4915
5079
  color: "red"
4916
5080
  };
4917
- 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.
5081
+ 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.
4918
5082
 
4919
5083
  **Important: CLI-First Approach**
4920
5084
 
@@ -5031,7 +5195,7 @@ You are meticulous about maintaining your memory file as a critical resource for
5031
5195
 
5032
5196
  // src/subagents/templates/issue-tracker/notion.ts
5033
5197
  init_cjs_shims();
5034
- var FRONTMATTER14 = {
5198
+ var FRONTMATTER15 = {
5035
5199
  name: "issue-tracker",
5036
5200
  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.
5037
5201
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -5043,7 +5207,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
5043
5207
  model: "haiku",
5044
5208
  color: "red"
5045
5209
  };
5046
- 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.
5210
+ 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.
5047
5211
 
5048
5212
  **Core Responsibilities:**
5049
5213
 
@@ -5191,7 +5355,7 @@ You are meticulous about maintaining your memory file as a critical resource tha
5191
5355
 
5192
5356
  // src/subagents/templates/issue-tracker/slack.ts
5193
5357
  init_cjs_shims();
5194
- var FRONTMATTER15 = {
5358
+ var FRONTMATTER16 = {
5195
5359
  name: "issue-tracker",
5196
5360
  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.
5197
5361
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -5203,7 +5367,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
5203
5367
  model: "sonnet",
5204
5368
  color: "red"
5205
5369
  };
5206
- 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.
5370
+ 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.
5207
5371
 
5208
5372
  **Core Responsibilities:**
5209
5373
 
@@ -5426,7 +5590,7 @@ You are focused on creating clear, organized issue threads that leverage Slack's
5426
5590
 
5427
5591
  // src/subagents/templates/changelog-historian/github.ts
5428
5592
  init_cjs_shims();
5429
- var FRONTMATTER16 = {
5593
+ var FRONTMATTER17 = {
5430
5594
  name: "changelog-historian",
5431
5595
  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.
5432
5596
  user: "The checkout flow test is failing in staging. What changed recently?"
@@ -5438,7 +5602,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
5438
5602
  model: "haiku",
5439
5603
  color: "gray"
5440
5604
  };
5441
- 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.
5605
+ 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.
5442
5606
 
5443
5607
  ## Core Responsibilities
5444
5608
 
@@ -5591,42 +5755,46 @@ var TEMPLATES = {
5591
5755
  jira: {
5592
5756
  frontmatter: FRONTMATTER9,
5593
5757
  content: CONTENT9
5758
+ },
5759
+ asana: {
5760
+ frontmatter: FRONTMATTER10,
5761
+ content: CONTENT10
5594
5762
  }
5595
5763
  },
5596
5764
  "issue-tracker": {
5597
5765
  linear: {
5598
- frontmatter: FRONTMATTER10,
5599
- content: CONTENT10
5600
- },
5601
- jira: {
5602
5766
  frontmatter: FRONTMATTER11,
5603
5767
  content: CONTENT11
5604
5768
  },
5605
- "jira-server": {
5606
- frontmatter: FRONTMATTER11,
5607
- content: CONTENT11
5769
+ jira: {
5770
+ frontmatter: FRONTMATTER12,
5771
+ content: CONTENT12
5608
5772
  },
5609
- "azure-devops": {
5773
+ "jira-server": {
5610
5774
  frontmatter: FRONTMATTER12,
5611
5775
  content: CONTENT12
5612
5776
  },
5613
- asana: {
5777
+ "azure-devops": {
5614
5778
  frontmatter: FRONTMATTER13,
5615
5779
  content: CONTENT13
5616
5780
  },
5617
- notion: {
5781
+ asana: {
5618
5782
  frontmatter: FRONTMATTER14,
5619
5783
  content: CONTENT14
5620
5784
  },
5621
- slack: {
5785
+ notion: {
5622
5786
  frontmatter: FRONTMATTER15,
5623
5787
  content: CONTENT15
5788
+ },
5789
+ slack: {
5790
+ frontmatter: FRONTMATTER16,
5791
+ content: CONTENT16
5624
5792
  }
5625
5793
  },
5626
5794
  "changelog-historian": {
5627
5795
  github: {
5628
- frontmatter: FRONTMATTER16,
5629
- content: CONTENT16
5796
+ frontmatter: FRONTMATTER17,
5797
+ content: CONTENT17
5630
5798
  }
5631
5799
  }
5632
5800
  };
@@ -6353,6 +6521,16 @@ After analyzing test results, triage each failure to determine if it's a product
6353
6521
 
6354
6522
  **IMPORTANT: Do NOT report bugs without triaging first.**
6355
6523
 
6524
+ ### 0. Read Disputed Findings (Learning Context)
6525
+
6526
+ Before triaging, check for prior disputed findings to avoid repeating past mistakes:
6527
+
6528
+ \`\`\`bash
6529
+ cat .bugzy/runtime/disputed-findings.md 2>/dev/null || echo "No disputed findings found"
6530
+ \`\`\`
6531
+
6532
+ 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.
6533
+
6356
6534
  ### 1. Check Failure Classification
6357
6535
 
6358
6536
  **Before triaging any failure**, read \`new_failures\` from the latest \`test-runs/*/manifest.json\`:
@@ -6410,7 +6588,42 @@ For each failed test (from \`new_failures\` or all failures if field is missing)
6410
6588
  | Test ID | Test Name | Last Passed Run |
6411
6589
  |---------|-----------|-----------------|
6412
6590
  | TC-003 | Search | 20260210-103045 |
6413
- \`\`\``,
6591
+ \`\`\`
6592
+
6593
+ ### 4. Record Findings
6594
+
6595
+ 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.
6596
+
6597
+ For each triaged failure, run:
6598
+
6599
+ \`\`\`bash
6600
+ bugzy-findings add \\
6601
+ --title "<concise failure description>" \\
6602
+ --description "<detailed analysis including error message and root cause>" \\
6603
+ --severity <critical|high|medium|low> \\
6604
+ --classification <product-bug|test-issue> \\
6605
+ --test-case-id "<test ID from triage table>" \\
6606
+ --test-run-timestamp "<timestamp from manifest.json>"
6607
+ \`\`\`
6608
+
6609
+ **Severity Guidelines:**
6610
+ - **critical**: Application crash, data loss, security vulnerability
6611
+ - **high**: Major feature broken, blocking workflow
6612
+ - **medium**: Feature partially broken, workaround exists
6613
+ - **low**: Minor cosmetic issue, edge case
6614
+
6615
+ Example:
6616
+ \`\`\`bash
6617
+ bugzy-findings add \\
6618
+ --title "Checkout form returns 500 on submit" \\
6619
+ --description "POST /api/checkout returns HTTP 500 when submitting with valid payment data. Stack trace shows null reference in payment processor." \\
6620
+ --severity high \\
6621
+ --classification product-bug \\
6622
+ --test-case-id "TC-002" \\
6623
+ --test-run-timestamp "20260219-103045"
6624
+ \`\`\`
6625
+
6626
+ If \`bugzy-findings\` is not available (command not found), skip this step silently \u2014 findings recording is optional and does not block triage.`,
6414
6627
  tags: ["execution", "triage", "analysis"]
6415
6628
  };
6416
6629