@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.cjs CHANGED
@@ -718,7 +718,7 @@ If intent is not in the payload, detect from message patterns:
718
718
  | Condition | Intent |
719
719
  |-----------|--------|
720
720
  | Keywords: "status", "progress", "how did", "results", "how many passed" | \`status\` |
721
- | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error" | \`feedback\` |
721
+ | Keywords: "bug", "issue", "broken", "doesn't work", "failed", "error", "wrong triage", "incorrect classification", "dispute", "that was wrong" | \`feedback\` |
722
722
  | Question words: "what", "which", "do we have", "is there" about tests/project | \`question\` |
723
723
  | Default (none of above) | \`feedback\` |
724
724
 
@@ -754,7 +754,26 @@ Extract the following from the message:
754
754
  - \`suggestion\`: "should", "could we", "what if", "idea"
755
755
  - \`general\`: Default for unclassified feedback
756
756
 
757
- ### Step 2: Update Test Case Specifications
757
+ ### Step 2: Check for Dispute Intent
758
+
759
+ 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...").
760
+
761
+ **If dispute detected:**
762
+ 1. Call \`bugzy-findings list\` to retrieve recent findings
763
+ 2. Match the customer's message to a specific finding by test name, description, or ID
764
+ 3. If ambiguous (multiple possible matches), list recent findings and ask the customer to clarify which one they're disputing
765
+ 4. Once matched, call:
766
+ \`\`\`bash
767
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "<customer's explanation>"
768
+ \`\`\`
769
+ 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."
770
+ 6. Skip the remaining feedback steps (the dispute is the action)
771
+
772
+ 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.
773
+
774
+ **If NOT a dispute**, continue with the standard feedback flow below.
775
+
776
+ ### Step 3: Update Test Case Specifications
758
777
 
759
778
  **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.
760
779
 
@@ -766,7 +785,7 @@ For each actionable feedback item:
766
785
 
767
786
  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.
768
787
 
769
- ### Step 3: Acknowledge and Confirm
788
+ ### Step 4: Acknowledge and Confirm
770
789
 
771
790
  Respond confirming: feedback received, summary of what was captured, actions taken (including any test case updates), and follow-up questions if needed.
772
791
 
@@ -1051,7 +1070,11 @@ Use these as reference patterns for common events. The webhook routing system al
1051
1070
 
1052
1071
  **Jira Events:**
1053
1072
  - **Status \u2192 "Ready to Test" / "In Testing" / "Ready for QA"**: Propose \`/verify-changes\` with issue context
1054
- - **Resolution: "Not a Bug" / "Won't Fix" / "User Error"**: Update knowledge base directly with the learning (no queue needed)
1073
+ - **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:
1074
+ \`\`\`bash
1075
+ bugzy-findings dispute --finding-id <matched-finding-id> --explanation "Issue resolved as Not a Bug/Won't Fix in issue tracker"
1076
+ \`\`\`
1077
+ 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.
1055
1078
  - **Bug created with relevant labels**: Propose \`/generate-test-cases\` to update related test coverage, confirm with team
1056
1079
  - **Backlog \u2192 To Do**: No QA action needed, log to event history only
1057
1080
 
@@ -3792,8 +3815,147 @@ Handle these Jira elements properly:
3792
3815
 
3793
3816
  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.`;
3794
3817
 
3795
- // src/subagents/templates/issue-tracker/linear.ts
3818
+ // src/subagents/templates/documentation-researcher/asana.ts
3796
3819
  var FRONTMATTER10 = {
3820
+ name: "documentation-researcher",
3821
+ 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.
3822
+ user: "Generate test cases for the checkout flow feature"
3823
+ assistant: "Let me use the documentation-researcher agent to find the acceptance criteria and technical specifications from the Asana project tasks."
3824
+ <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.
3825
+ user: "Why was the payment validation implemented this way?"
3826
+ assistant: "I'll use the documentation-researcher agent to search Asana task comments and related tasks for the implementation discussion and decisions."
3827
+ <commentary>The agent will search Asana task comments and related tasks to find the historical context and reasoning behind implementation choices.</commentary></example>`,
3828
+ model: "haiku",
3829
+ color: "cyan"
3830
+ };
3831
+ 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.
3832
+
3833
+ ## CLI-First Approach
3834
+
3835
+ Always prefer CLI commands via Bash over MCP tool calls. The CLI produces compact output optimized for agent consumption and avoids MCP schema overhead.
3836
+
3837
+ **Read-Only Commands (via Bash):**
3838
+
3839
+ - **Search tasks**: \`asana-cli task search --query "keyword" [--project GID]\`
3840
+ - **Get task details**: \`asana-cli task get <gid>\`
3841
+ - **List projects**: \`asana-cli project list\`
3842
+ - **All commands**: Add \`--json\` for structured JSON output when parsing is needed
3843
+
3844
+ **Important:** You only use read-only commands. Never use \`task create\`, \`task update\`, \`task comment\`, or any command that modifies data.
3845
+
3846
+ ## Core Responsibilities
3847
+
3848
+ 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.
3849
+
3850
+ 2. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
3851
+
3852
+ **Memory Sections for Documentation Researcher (Asana)**:
3853
+ - Asana workspace GID and key project GIDs
3854
+ - Project-to-section mappings (how work is organized)
3855
+ - Effective search queries that return useful results
3856
+ - Key reference tasks that serve as documentation sources
3857
+ - Last exploration timestamps for different project areas
3858
+
3859
+ ## Operational Workflow
3860
+
3861
+ 1. **Initial Check**: Always begin by reading \`.bugzy/runtime/memory/documentation-researcher.md\` to load your existing knowledge
3862
+
3863
+ 2. **Smart Exploration**:
3864
+ - If memory exists, use stored project GIDs and queries to navigate directly to relevant tasks
3865
+ - If exploring new areas, systematically document project structure and sections
3866
+ - Map project hierarchies and task relationships
3867
+ - Update your memory with new discoveries immediately
3868
+
3869
+ 3. **Information Retrieval**:
3870
+ - Use keyword search for targeted queries across tasks
3871
+ - Navigate project sections to find related documentation
3872
+ - Extract content from task descriptions, comments, and custom fields
3873
+ - Follow subtask hierarchies for complete context
3874
+
3875
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "documentation-researcher")}
3876
+
3877
+ Specifically for documentation-researcher (Asana), consider updating:
3878
+ - **Project Structure Maps**: Update understanding of Asana projects explored
3879
+ - **Search Query Patterns**: Save successful search queries for reuse
3880
+ - **Section Index**: Track important sections and their documentation content
3881
+ - **Key Reference Tasks**: Note tasks that serve as documentation sources
3882
+
3883
+ ## Search Patterns
3884
+
3885
+ Use these patterns for efficient searching:
3886
+
3887
+ ### Finding Requirements
3888
+ \`\`\`bash
3889
+ asana-cli task search --query "requirements" --project <GID>
3890
+ asana-cli task search --query "specification" --project <GID>
3891
+ \`\`\`
3892
+
3893
+ ### Finding Feature Documentation
3894
+ \`\`\`bash
3895
+ asana-cli task search --query "feature name"
3896
+ asana-cli task search --query "feature name" --project <GID>
3897
+ \`\`\`
3898
+
3899
+ ### Finding Historical Decisions
3900
+ \`\`\`bash
3901
+ asana-cli task search --query "decision"
3902
+ asana-cli task search --query "why" --project <GID>
3903
+ \`\`\`
3904
+
3905
+ ### Finding Acceptance Criteria
3906
+ \`\`\`bash
3907
+ asana-cli task search --query "acceptance criteria" --project <GID>
3908
+ asana-cli task search --query "given when then" --project <GID>
3909
+ \`\`\`
3910
+
3911
+ ## Asana-Specific Features
3912
+
3913
+ Handle these Asana elements properly:
3914
+ - **Projects**: Top-level containers \u2014 use \`project list\` to discover available projects
3915
+ - **Sections**: Organizational dividers within projects (e.g., "To Do", "In Progress", "Specs")
3916
+ - **Custom Fields**: Priority, status, tags, and team-defined metadata
3917
+ - **Subtasks**: Nested tasks that break down parent task requirements
3918
+ - **Comments**: Often contain implementation decisions, discussions, and clarifications
3919
+
3920
+ ## Research Best Practices
3921
+
3922
+ - Start with projects to understand high-level organization
3923
+ - Use sections to find categorized documentation (specs, requirements, decisions)
3924
+ - Search task comments for implementation decisions and discussions
3925
+ - Note task completion status when reporting findings
3926
+ - Follow subtask hierarchies to gather complete context
3927
+ - Use custom fields and tags to filter relevant content
3928
+
3929
+ ## Query Response Approach
3930
+
3931
+ 1. Interpret the user's information need precisely
3932
+ 2. Check memory for existing relevant knowledge and project mappings
3933
+ 3. Construct efficient search queries based on need
3934
+ 4. Navigate project and section hierarchies to gather comprehensive information
3935
+ 5. Extract and synthesize findings from descriptions and comments
3936
+ 6. Update memory with new discoveries and successful search patterns
3937
+
3938
+ ## Quality Assurance
3939
+
3940
+ - Note task status (incomplete, complete) when reporting findings
3941
+ - Include section context for organizational clarity
3942
+ - Cross-reference related tasks for completeness
3943
+ - Identify potential gaps in documentation
3944
+ - Handle permission restrictions gracefully (some tasks may not be accessible)
3945
+ - Clearly indicate when information might be outdated based on task dates
3946
+
3947
+ ## Important Distinction
3948
+
3949
+ **This is a READ-ONLY research role.** Unlike the issue-tracker subagent which creates and modifies tasks, the documentation-researcher:
3950
+ - Only searches and reads existing tasks
3951
+ - Does not create, update, or comment on tasks
3952
+ - Focuses on extracting knowledge, not managing workflows
3953
+ - Builds memory to improve research efficiency over time
3954
+
3955
+ 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.`;
3956
+
3957
+ // src/subagents/templates/issue-tracker/linear.ts
3958
+ var FRONTMATTER11 = {
3797
3959
  name: "issue-tracker",
3798
3960
  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.
3799
3961
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -3805,7 +3967,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
3805
3967
  model: "sonnet",
3806
3968
  color: "red"
3807
3969
  };
3808
- 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.
3970
+ 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.
3809
3971
 
3810
3972
  **Core Responsibilities:**
3811
3973
 
@@ -3973,7 +4135,7 @@ Your memory file evolves with usage:
3973
4135
  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.`;
3974
4136
 
3975
4137
  // src/subagents/templates/issue-tracker/jira.ts
3976
- var FRONTMATTER11 = {
4138
+ var FRONTMATTER12 = {
3977
4139
  name: "issue-tracker",
3978
4140
  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.
3979
4141
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -3985,7 +4147,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
3985
4147
  model: "sonnet",
3986
4148
  color: "red"
3987
4149
  };
3988
- 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.
4150
+ 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.
3989
4151
 
3990
4152
  **Core Responsibilities:**
3991
4153
 
@@ -4144,7 +4306,7 @@ Your memory file becomes more valuable over time:
4144
4306
  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.`;
4145
4307
 
4146
4308
  // src/subagents/templates/issue-tracker/azure-devops.ts
4147
- var FRONTMATTER12 = {
4309
+ var FRONTMATTER13 = {
4148
4310
  name: "issue-tracker",
4149
4311
  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.
4150
4312
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4156,7 +4318,7 @@ assistant: "Let me use the issue-tracker agent to update work item 456 state to
4156
4318
  model: "sonnet",
4157
4319
  color: "red"
4158
4320
  };
4159
- 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.
4321
+ 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.
4160
4322
 
4161
4323
  **Core Responsibilities:**
4162
4324
 
@@ -4371,7 +4533,7 @@ Your memory file becomes more valuable over time:
4371
4533
  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.`;
4372
4534
 
4373
4535
  // src/subagents/templates/issue-tracker/asana.ts
4374
- var FRONTMATTER13 = {
4536
+ var FRONTMATTER14 = {
4375
4537
  name: "issue-tracker",
4376
4538
  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.
4377
4539
  user: "3 tests failed in the checkout flow - payment validation is broken"
@@ -4383,7 +4545,7 @@ assistant: "Let me use the issue-tracker agent to mark the task as complete and
4383
4545
  model: "sonnet",
4384
4546
  color: "red"
4385
4547
  };
4386
- 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.
4548
+ 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.
4387
4549
 
4388
4550
  **Important: CLI-First Approach**
4389
4551
 
@@ -4499,7 +4661,7 @@ Do NOT prefix task names \u2014 keep them clean (e.g. "Bug: Login timeout").
4499
4661
  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.`;
4500
4662
 
4501
4663
  // src/subagents/templates/issue-tracker/notion.ts
4502
- var FRONTMATTER14 = {
4664
+ var FRONTMATTER15 = {
4503
4665
  name: "issue-tracker",
4504
4666
  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.
4505
4667
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -4511,7 +4673,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
4511
4673
  model: "haiku",
4512
4674
  color: "red"
4513
4675
  };
4514
- 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.
4676
+ 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.
4515
4677
 
4516
4678
  **Core Responsibilities:**
4517
4679
 
@@ -4658,7 +4820,7 @@ Your memory file grows more valuable over time:
4658
4820
  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.`;
4659
4821
 
4660
4822
  // src/subagents/templates/issue-tracker/slack.ts
4661
- var FRONTMATTER15 = {
4823
+ var FRONTMATTER16 = {
4662
4824
  name: "issue-tracker",
4663
4825
  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.
4664
4826
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -4670,7 +4832,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
4670
4832
  model: "sonnet",
4671
4833
  color: "red"
4672
4834
  };
4673
- 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.
4835
+ 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.
4674
4836
 
4675
4837
  **Core Responsibilities:**
4676
4838
 
@@ -4892,7 +5054,7 @@ Maintain organized issue tracking:
4892
5054
  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.`;
4893
5055
 
4894
5056
  // src/subagents/templates/changelog-historian/github.ts
4895
- var FRONTMATTER16 = {
5057
+ var FRONTMATTER17 = {
4896
5058
  name: "changelog-historian",
4897
5059
  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.
4898
5060
  user: "The checkout flow test is failing in staging. What changed recently?"
@@ -4904,7 +5066,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
4904
5066
  model: "haiku",
4905
5067
  color: "gray"
4906
5068
  };
4907
- 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.
5069
+ 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.
4908
5070
 
4909
5071
  ## Core Responsibilities
4910
5072
 
@@ -5057,42 +5219,46 @@ var TEMPLATES = {
5057
5219
  jira: {
5058
5220
  frontmatter: FRONTMATTER9,
5059
5221
  content: CONTENT9
5222
+ },
5223
+ asana: {
5224
+ frontmatter: FRONTMATTER10,
5225
+ content: CONTENT10
5060
5226
  }
5061
5227
  },
5062
5228
  "issue-tracker": {
5063
5229
  linear: {
5064
- frontmatter: FRONTMATTER10,
5065
- content: CONTENT10
5066
- },
5067
- jira: {
5068
5230
  frontmatter: FRONTMATTER11,
5069
5231
  content: CONTENT11
5070
5232
  },
5071
- "jira-server": {
5072
- frontmatter: FRONTMATTER11,
5073
- content: CONTENT11
5233
+ jira: {
5234
+ frontmatter: FRONTMATTER12,
5235
+ content: CONTENT12
5074
5236
  },
5075
- "azure-devops": {
5237
+ "jira-server": {
5076
5238
  frontmatter: FRONTMATTER12,
5077
5239
  content: CONTENT12
5078
5240
  },
5079
- asana: {
5241
+ "azure-devops": {
5080
5242
  frontmatter: FRONTMATTER13,
5081
5243
  content: CONTENT13
5082
5244
  },
5083
- notion: {
5245
+ asana: {
5084
5246
  frontmatter: FRONTMATTER14,
5085
5247
  content: CONTENT14
5086
5248
  },
5087
- slack: {
5249
+ notion: {
5088
5250
  frontmatter: FRONTMATTER15,
5089
5251
  content: CONTENT15
5252
+ },
5253
+ slack: {
5254
+ frontmatter: FRONTMATTER16,
5255
+ content: CONTENT16
5090
5256
  }
5091
5257
  },
5092
5258
  "changelog-historian": {
5093
5259
  github: {
5094
- frontmatter: FRONTMATTER16,
5095
- content: CONTENT16
5260
+ frontmatter: FRONTMATTER17,
5261
+ content: CONTENT17
5096
5262
  }
5097
5263
  }
5098
5264
  };
@@ -5266,8 +5432,9 @@ var SUBAGENTS = {
5266
5432
  icon: "file-search",
5267
5433
  integrations: [
5268
5434
  INTEGRATIONS.notion,
5269
- INTEGRATIONS.jira
5435
+ INTEGRATIONS.jira,
5270
5436
  // INTEGRATIONS.confluence
5437
+ INTEGRATIONS.asana
5271
5438
  ],
5272
5439
  model: "sonnet",
5273
5440
  color: "cyan",
@@ -5954,6 +6121,16 @@ After analyzing test results, triage each failure to determine if it's a product
5954
6121
 
5955
6122
  **IMPORTANT: Do NOT report bugs without triaging first.**
5956
6123
 
6124
+ ### 0. Read Disputed Findings (Learning Context)
6125
+
6126
+ Before triaging, check for prior disputed findings to avoid repeating past mistakes:
6127
+
6128
+ \`\`\`bash
6129
+ cat .bugzy/runtime/disputed-findings.md 2>/dev/null || echo "No disputed findings found"
6130
+ \`\`\`
6131
+
6132
+ 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.
6133
+
5957
6134
  ### 1. Check Failure Classification
5958
6135
 
5959
6136
  **Before triaging any failure**, read \`new_failures\` from the latest \`test-runs/*/manifest.json\`:
@@ -6011,7 +6188,42 @@ For each failed test (from \`new_failures\` or all failures if field is missing)
6011
6188
  | Test ID | Test Name | Last Passed Run |
6012
6189
  |---------|-----------|-----------------|
6013
6190
  | TC-003 | Search | 20260210-103045 |
6014
- \`\`\``,
6191
+ \`\`\`
6192
+
6193
+ ### 4. Record Findings
6194
+
6195
+ 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.
6196
+
6197
+ For each triaged failure, run:
6198
+
6199
+ \`\`\`bash
6200
+ bugzy-findings add \\
6201
+ --title "<concise failure description>" \\
6202
+ --description "<detailed analysis including error message and root cause>" \\
6203
+ --severity <critical|high|medium|low> \\
6204
+ --classification <product-bug|test-issue> \\
6205
+ --test-case-id "<test ID from triage table>" \\
6206
+ --test-run-timestamp "<timestamp from manifest.json>"
6207
+ \`\`\`
6208
+
6209
+ **Severity Guidelines:**
6210
+ - **critical**: Application crash, data loss, security vulnerability
6211
+ - **high**: Major feature broken, blocking workflow
6212
+ - **medium**: Feature partially broken, workaround exists
6213
+ - **low**: Minor cosmetic issue, edge case
6214
+
6215
+ Example:
6216
+ \`\`\`bash
6217
+ bugzy-findings add \\
6218
+ --title "Checkout form returns 500 on submit" \\
6219
+ --description "POST /api/checkout returns HTTP 500 when submitting with valid payment data. Stack trace shows null reference in payment processor." \\
6220
+ --severity high \\
6221
+ --classification product-bug \\
6222
+ --test-case-id "TC-002" \\
6223
+ --test-run-timestamp "20260219-103045"
6224
+ \`\`\`
6225
+
6226
+ If \`bugzy-findings\` is not available (command not found), skip this step silently \u2014 findings recording is optional and does not block triage.`,
6015
6227
  tags: ["execution", "triage", "analysis"]
6016
6228
  };
6017
6229