@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/index.js CHANGED
@@ -662,7 +662,7 @@ If intent is not in the payload, detect from message patterns:
662
662
  | Condition | Intent |
663
663
  |-----------|--------|
664
664
  | Keywords: "status", "progress", "how did", "results", "how many passed" | \`status\` |
665
- | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error" | \`feedback\` |
665
+ | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error", "wrong triage", "incorrect classification", "dispute", "that was wrong" | \`feedback\` |
666
666
  | Question words: "what", "which", "do we have", "is there" about tests/project | \`question\` |
667
667
  | Default (none of above) | \`feedback\` |
668
668
 
@@ -698,7 +698,26 @@ Extract the following from the message:
698
698
  - \`suggestion\`: "should", "could we", "what if", "idea"
699
699
  - \`general\`: Default for unclassified feedback
700
700
 
701
- ### Step 2: Update Test Case Specifications
701
+ ### Step 2: Check for Dispute Intent
702
+
703
+ 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...").
704
+
705
+ **If dispute detected:**
706
+ 1. Call \`bugzy-findings list\` to retrieve recent findings
707
+ 2. Match the customer's message to a specific finding by test name, description, or ID
708
+ 3. If ambiguous (multiple possible matches), list recent findings and ask the customer to clarify which one they're disputing
709
+ 4. Once matched, call:
710
+ \`\`\`bash
711
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "<customer's explanation>"
712
+ \`\`\`
713
+ 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."
714
+ 6. Skip the remaining feedback steps (the dispute is the action)
715
+
716
+ 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.
717
+
718
+ **If NOT a dispute**, continue with the standard feedback flow below.
719
+
720
+ ### Step 3: Update Test Case Specifications
702
721
 
703
722
  **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.
704
723
 
@@ -710,7 +729,7 @@ For each actionable feedback item:
710
729
 
711
730
  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.
712
731
 
713
- ### Step 3: Acknowledge and Confirm
732
+ ### Step 4: Acknowledge and Confirm
714
733
 
715
734
  Respond confirming: feedback received, summary of what was captured, actions taken (including any test case updates), and follow-up questions if needed.
716
735
 
@@ -995,7 +1014,11 @@ Use these as reference patterns for common events. The webhook routing system al
995
1014
 
996
1015
  **Jira Events:**
997
1016
  - **Status \u2192 "Ready to Test" / "In Testing" / "Ready for QA"**: Propose \`/verify-changes\` with issue context
998
- - **Resolution: "Not a Bug" / "Won't Fix" / "User Error"**: Update knowledge base directly with the learning (no queue needed)
1017
+ - **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:
1018
+ \`\`\`bash
1019
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "Issue resolved as Not a Bug/Won't Fix in issue tracker"
1020
+ \`\`\`
1021
+ 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.
999
1022
  - **Bug created with relevant labels**: Propose \`/generate-test-cases\` to update related test coverage, confirm with team
1000
1023
  - **Backlog \u2192 To Do**: No QA action needed, log to event history only
1001
1024
 
@@ -3736,8 +3759,147 @@ Handle these Jira elements properly:
3736
3759
 
3737
3760
  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.`;
3738
3761
 
3739
- // src/subagents/templates/issue-tracker/linear.ts
3762
+ // src/subagents/templates/documentation-researcher/asana.ts
3740
3763
  var FRONTMATTER10 = {
3764
+ name: "documentation-researcher",
3765
+ 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.
3766
+ user: "Generate test cases for the checkout flow feature"
3767
+ assistant: "Let me use the documentation-researcher agent to find the acceptance criteria and technical specifications from the Asana project tasks."
3768
+ <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.
3769
+ user: "Why was the payment validation implemented this way?"
3770
+ assistant: "I'll use the documentation-researcher agent to search Asana task comments and related tasks for the implementation discussion and decisions."
3771
+ <commentary>The agent will search Asana task comments and related tasks to find the historical context and reasoning behind implementation choices.</commentary></example>`,
3772
+ model: "haiku",
3773
+ color: "cyan"
3774
+ };
3775
+ 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.
3776
+
3777
+ ## CLI-First Approach
3778
+
3779
+ Always prefer CLI commands via Bash over MCP tool calls. The CLI produces compact output optimized for agent consumption and avoids MCP schema overhead.
3780
+
3781
+ **Read-Only Commands (via Bash):**
3782
+
3783
+ - **Search tasks**: \`asana-cli task search --query "keyword" [--project GID]\`
3784
+ - **Get task details**: \`asana-cli task get <gid>\`
3785
+ - **List projects**: \`asana-cli project list\`
3786
+ - **All commands**: Add \`--json\` for structured JSON output when parsing is needed
3787
+
3788
+ **Important:** You only use read-only commands. Never use \`task create\`, \`task update\`, \`task comment\`, or any command that modifies data.
3789
+
3790
+ ## Core Responsibilities
3791
+
3792
+ 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.
3793
+
3794
+ 2. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
3795
+
3796
+ **Memory Sections for Documentation Researcher (Asana)**:
3797
+ - Asana workspace GID and key project GIDs
3798
+ - Project-to-section mappings (how work is organized)
3799
+ - Effective search queries that return useful results
3800
+ - Key reference tasks that serve as documentation sources
3801
+ - Last exploration timestamps for different project areas
3802
+
3803
+ ## Operational Workflow
3804
+
3805
+ 1. **Initial Check**: Always begin by reading \`.bugzy/runtime/memory/documentation-researcher.md\` to load your existing knowledge
3806
+
3807
+ 2. **Smart Exploration**:
3808
+ - If memory exists, use stored project GIDs and queries to navigate directly to relevant tasks
3809
+ - If exploring new areas, systematically document project structure and sections
3810
+ - Map project hierarchies and task relationships
3811
+ - Update your memory with new discoveries immediately
3812
+
3813
+ 3. **Information Retrieval**:
3814
+ - Use keyword search for targeted queries across tasks
3815
+ - Navigate project sections to find related documentation
3816
+ - Extract content from task descriptions, comments, and custom fields
3817
+ - Follow subtask hierarchies for complete context
3818
+
3819
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
3820
+
3821
+ Specifically for documentation-researcher (Asana), consider updating:
3822
+ - **Project Structure Maps**: Update understanding of Asana projects explored
3823
+ - **Search Query Patterns**: Save successful search queries for reuse
3824
+ - **Section Index**: Track important sections and their documentation content
3825
+ - **Key Reference Tasks**: Note tasks that serve as documentation sources
3826
+
3827
+ ## Search Patterns
3828
+
3829
+ Use these patterns for efficient searching:
3830
+
3831
+ ### Finding Requirements
3832
+ \`\`\`bash
3833
+ asana-cli task search --query "requirements" --project <GID>
3834
+ asana-cli task search --query "specification" --project <GID>
3835
+ \`\`\`
3836
+
3837
+ ### Finding Feature Documentation
3838
+ \`\`\`bash
3839
+ asana-cli task search --query "feature name"
3840
+ asana-cli task search --query "feature name" --project <GID>
3841
+ \`\`\`
3842
+
3843
+ ### Finding Historical Decisions
3844
+ \`\`\`bash
3845
+ asana-cli task search --query "decision"
3846
+ asana-cli task search --query "why" --project <GID>
3847
+ \`\`\`
3848
+
3849
+ ### Finding Acceptance Criteria
3850
+ \`\`\`bash
3851
+ asana-cli task search --query "acceptance criteria" --project <GID>
3852
+ asana-cli task search --query "given when then" --project <GID>
3853
+ \`\`\`
3854
+
3855
+ ## Asana-Specific Features
3856
+
3857
+ Handle these Asana elements properly:
3858
+ - **Projects**: Top-level containers \u2014 use \`project list\` to discover available projects
3859
+ - **Sections**: Organizational dividers within projects (e.g., "To Do", "In Progress", "Specs")
3860
+ - **Custom Fields**: Priority, status, tags, and team-defined metadata
3861
+ - **Subtasks**: Nested tasks that break down parent task requirements
3862
+ - **Comments**: Often contain implementation decisions, discussions, and clarifications
3863
+
3864
+ ## Research Best Practices
3865
+
3866
+ - Start with projects to understand high-level organization
3867
+ - Use sections to find categorized documentation (specs, requirements, decisions)
3868
+ - Search task comments for implementation decisions and discussions
3869
+ - Note task completion status when reporting findings
3870
+ - Follow subtask hierarchies to gather complete context
3871
+ - Use custom fields and tags to filter relevant content
3872
+
3873
+ ## Query Response Approach
3874
+
3875
+ 1. Interpret the user's information need precisely
3876
+ 2. Check memory for existing relevant knowledge and project mappings
3877
+ 3. Construct efficient search queries based on need
3878
+ 4. Navigate project and section hierarchies to gather comprehensive information
3879
+ 5. Extract and synthesize findings from descriptions and comments
3880
+ 6. Update memory with new discoveries and successful search patterns
3881
+
3882
+ ## Quality Assurance
3883
+
3884
+ - Note task status (incomplete, complete) when reporting findings
3885
+ - Include section context for organizational clarity
3886
+ - Cross-reference related tasks for completeness
3887
+ - Identify potential gaps in documentation
3888
+ - Handle permission restrictions gracefully (some tasks may not be accessible)
3889
+ - Clearly indicate when information might be outdated based on task dates
3890
+
3891
+ ## Important Distinction
3892
+
3893
+ **This is a READ-ONLY research role.** Unlike the issue-tracker subagent which creates and modifies tasks, the documentation-researcher:
3894
+ - Only searches and reads existing tasks
3895
+ - Does not create, update, or comment on tasks
3896
+ - Focuses on extracting knowledge, not managing workflows
3897
+ - Builds memory to improve research efficiency over time
3898
+
3899
+ 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.`;
3900
+
3901
+ // src/subagents/templates/issue-tracker/linear.ts
3902
+ var FRONTMATTER11 = {
3741
3903
  name: "issue-tracker",
3742
3904
  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.
3743
3905
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -3749,7 +3911,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
3749
3911
  model: "sonnet",
3750
3912
  color: "red"
3751
3913
  };
3752
- 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.
3914
+ 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.
3753
3915
 
3754
3916
  **Core Responsibilities:**
3755
3917
 
@@ -3917,7 +4079,7 @@ Your memory file evolves with usage:
3917
4079
  You are focused on creating bug reports that fit Linear's streamlined workflow while maintaining comprehensive tracking in your memory. Your goal is to make issue management efficient while building knowledge about failure patterns to prevent future bugs.`;
3918
4080
 
3919
4081
  // src/subagents/templates/issue-tracker/jira.ts
3920
- var FRONTMATTER11 = {
4082
+ var FRONTMATTER12 = {
3921
4083
  name: "issue-tracker",
3922
4084
  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.
3923
4085
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -3929,7 +4091,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
3929
4091
  model: "sonnet",
3930
4092
  color: "red"
3931
4093
  };
3932
- 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.
4094
+ 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.
3933
4095
 
3934
4096
  **Core Responsibilities:**
3935
4097
 
@@ -4088,7 +4250,7 @@ Your memory file becomes more valuable over time:
4088
4250
  You are meticulous about maintaining your memory file as a critical resource for efficient Jira operations. Your goal is to make issue tracking faster and more accurate while building knowledge about the system's patterns and managing workflows effectively.`;
4089
4251
 
4090
4252
  // src/subagents/templates/issue-tracker/azure-devops.ts
4091
- var FRONTMATTER12 = {
4253
+ var FRONTMATTER13 = {
4092
4254
  name: "issue-tracker",
4093
4255
  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.
4094
4256
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4100,7 +4262,7 @@ assistant: "Let me use the issue-tracker agent to update work item 456 state to
4100
4262
  model: "sonnet",
4101
4263
  color: "red"
4102
4264
  };
4103
- 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.
4265
+ 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.
4104
4266
 
4105
4267
  **Core Responsibilities:**
4106
4268
 
@@ -4315,7 +4477,7 @@ Your memory file becomes more valuable over time:
4315
4477
  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.`;
4316
4478
 
4317
4479
  // src/subagents/templates/issue-tracker/asana.ts
4318
- var FRONTMATTER13 = {
4480
+ var FRONTMATTER14 = {
4319
4481
  name: "issue-tracker",
4320
4482
  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.
4321
4483
  user: "3 tests failed in the checkout flow - payment validation is broken"
@@ -4327,7 +4489,7 @@ assistant: "Let me use the issue-tracker agent to mark the task as complete and
4327
4489
  model: "sonnet",
4328
4490
  color: "red"
4329
4491
  };
4330
- 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.
4492
+ 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.
4331
4493
 
4332
4494
  **Important: CLI-First Approach**
4333
4495
 
@@ -4443,7 +4605,7 @@ Do NOT prefix task names \u2014 keep them clean (e.g. "Bug: Login timeout").
4443
4605
  You are meticulous about maintaining your memory file as a critical resource for efficient Asana operations. Your goal is to make issue tracking faster and more accurate while building knowledge about the system's patterns.`;
4444
4606
 
4445
4607
  // src/subagents/templates/issue-tracker/notion.ts
4446
- var FRONTMATTER14 = {
4608
+ var FRONTMATTER15 = {
4447
4609
  name: "issue-tracker",
4448
4610
  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.
4449
4611
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -4455,7 +4617,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
4455
4617
  model: "haiku",
4456
4618
  color: "red"
4457
4619
  };
4458
- 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.
4620
+ 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.
4459
4621
 
4460
4622
  **Core Responsibilities:**
4461
4623
 
@@ -4602,7 +4764,7 @@ Your memory file grows more valuable over time:
4602
4764
  You are meticulous about maintaining your memory file as a critical resource that makes issue tracking more efficient and effective. Your goal is to not just track issues, but to build institutional knowledge about the system's patterns, manage workflows effectively, and help deliver quality software.`;
4603
4765
 
4604
4766
  // src/subagents/templates/issue-tracker/slack.ts
4605
- var FRONTMATTER15 = {
4767
+ var FRONTMATTER16 = {
4606
4768
  name: "issue-tracker",
4607
4769
  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.
4608
4770
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -4614,7 +4776,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
4614
4776
  model: "sonnet",
4615
4777
  color: "red"
4616
4778
  };
4617
- 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.
4779
+ 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.
4618
4780
 
4619
4781
  **Core Responsibilities:**
4620
4782
 
@@ -4836,7 +4998,7 @@ Maintain organized issue tracking:
4836
4998
  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.`;
4837
4999
 
4838
5000
  // src/subagents/templates/changelog-historian/github.ts
4839
- var FRONTMATTER16 = {
5001
+ var FRONTMATTER17 = {
4840
5002
  name: "changelog-historian",
4841
5003
  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.
4842
5004
  user: "The checkout flow test is failing in staging. What changed recently?"
@@ -4848,7 +5010,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
4848
5010
  model: "haiku",
4849
5011
  color: "gray"
4850
5012
  };
4851
- 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.
5013
+ 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.
4852
5014
 
4853
5015
  ## Core Responsibilities
4854
5016
 
@@ -5001,42 +5163,46 @@ var TEMPLATES = {
5001
5163
  jira: {
5002
5164
  frontmatter: FRONTMATTER9,
5003
5165
  content: CONTENT9
5166
+ },
5167
+ asana: {
5168
+ frontmatter: FRONTMATTER10,
5169
+ content: CONTENT10
5004
5170
  }
5005
5171
  },
5006
5172
  "issue-tracker": {
5007
5173
  linear: {
5008
- frontmatter: FRONTMATTER10,
5009
- content: CONTENT10
5010
- },
5011
- jira: {
5012
5174
  frontmatter: FRONTMATTER11,
5013
5175
  content: CONTENT11
5014
5176
  },
5015
- "jira-server": {
5016
- frontmatter: FRONTMATTER11,
5017
- content: CONTENT11
5177
+ jira: {
5178
+ frontmatter: FRONTMATTER12,
5179
+ content: CONTENT12
5018
5180
  },
5019
- "azure-devops": {
5181
+ "jira-server": {
5020
5182
  frontmatter: FRONTMATTER12,
5021
5183
  content: CONTENT12
5022
5184
  },
5023
- asana: {
5185
+ "azure-devops": {
5024
5186
  frontmatter: FRONTMATTER13,
5025
5187
  content: CONTENT13
5026
5188
  },
5027
- notion: {
5189
+ asana: {
5028
5190
  frontmatter: FRONTMATTER14,
5029
5191
  content: CONTENT14
5030
5192
  },
5031
- slack: {
5193
+ notion: {
5032
5194
  frontmatter: FRONTMATTER15,
5033
5195
  content: CONTENT15
5196
+ },
5197
+ slack: {
5198
+ frontmatter: FRONTMATTER16,
5199
+ content: CONTENT16
5034
5200
  }
5035
5201
  },
5036
5202
  "changelog-historian": {
5037
5203
  github: {
5038
- frontmatter: FRONTMATTER16,
5039
- content: CONTENT16
5204
+ frontmatter: FRONTMATTER17,
5205
+ content: CONTENT17
5040
5206
  }
5041
5207
  }
5042
5208
  };
@@ -5210,8 +5376,9 @@ var SUBAGENTS = {
5210
5376
  icon: "file-search",
5211
5377
  integrations: [
5212
5378
  INTEGRATIONS.notion,
5213
- INTEGRATIONS.jira
5379
+ INTEGRATIONS.jira,
5214
5380
  // INTEGRATIONS.confluence
5381
+ INTEGRATIONS.asana
5215
5382
  ],
5216
5383
  model: "sonnet",
5217
5384
  color: "cyan",
@@ -5898,6 +6065,16 @@ After analyzing test results, triage each failure to determine if it's a product
5898
6065
 
5899
6066
  **IMPORTANT: Do NOT report bugs without triaging first.**
5900
6067
 
6068
+ ### 0. Read Disputed Findings (Learning Context)
6069
+
6070
+ Before triaging, check for prior disputed findings to avoid repeating past mistakes:
6071
+
6072
+ \`\`\`bash
6073
+ cat .bugzy/runtime/disputed-findings.md 2>/dev/null || echo "No disputed findings found"
6074
+ \`\`\`
6075
+
6076
+ 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.
6077
+
5901
6078
  ### 1. Check Failure Classification
5902
6079
 
5903
6080
  **Before triaging any failure**, read \`new_failures\` from the latest \`test-runs/*/manifest.json\`:
@@ -5955,7 +6132,42 @@ For each failed test (from \`new_failures\` or all failures if field is missing)
5955
6132
  | Test ID | Test Name | Last Passed Run |
5956
6133
  |---------|-----------|-----------------|
5957
6134
  | TC-003 | Search | 20260210-103045 |
5958
- \`\`\``,
6135
+ \`\`\`
6136
+
6137
+ ### 4. Record Findings
6138
+
6139
+ 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.
6140
+
6141
+ For each triaged failure, run:
6142
+
6143
+ \`\`\`bash
6144
+ bugzy-findings add \\
6145
+ --title "<concise failure description>" \\
6146
+ --description "<detailed analysis including error message and root cause>" \\
6147
+ --severity <critical|high|medium|low> \\
6148
+ --classification <product-bug|test-issue> \\
6149
+ --test-case-id "<test ID from triage table>" \\
6150
+ --test-run-timestamp "<timestamp from manifest.json>"
6151
+ \`\`\`
6152
+
6153
+ **Severity Guidelines:**
6154
+ - **critical**: Application crash, data loss, security vulnerability
6155
+ - **high**: Major feature broken, blocking workflow
6156
+ - **medium**: Feature partially broken, workaround exists
6157
+ - **low**: Minor cosmetic issue, edge case
6158
+
6159
+ Example:
6160
+ \`\`\`bash
6161
+ bugzy-findings add \\
6162
+ --title "Checkout form returns 500 on submit" \\
6163
+ --description "POST /api/checkout returns HTTP 500 when submitting with valid payment data. Stack trace shows null reference in payment processor." \\
6164
+ --severity high \\
6165
+ --classification product-bug \\
6166
+ --test-case-id "TC-002" \\
6167
+ --test-run-timestamp "20260219-103045"
6168
+ \`\`\`
6169
+
6170
+ If \`bugzy-findings\` is not available (command not found), skip this step silently \u2014 findings recording is optional and does not block triage.`,
5959
6171
  tags: ["execution", "triage", "analysis"]
5960
6172
  };
5961
6173