@bugzy-ai/bugzy 1.18.5 → 1.19.1

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 +332 -257
  4. package/dist/cli/index.cjs.map +1 -1
  5. package/dist/cli/index.js +334 -259
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/index.cjs +193 -201
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +193 -201
  10. package/dist/index.js.map +1 -1
  11. package/dist/subagents/index.cjs +145 -10
  12. package/dist/subagents/index.cjs.map +1 -1
  13. package/dist/subagents/index.js +145 -10
  14. package/dist/subagents/index.js.map +1 -1
  15. package/dist/subagents/metadata.cjs +8 -0
  16. package/dist/subagents/metadata.cjs.map +1 -1
  17. package/dist/subagents/metadata.js +8 -0
  18. package/dist/subagents/metadata.js.map +1 -1
  19. package/dist/tasks/index.cjs +9 -89
  20. package/dist/tasks/index.cjs.map +1 -1
  21. package/dist/tasks/index.js +9 -89
  22. package/dist/tasks/index.js.map +1 -1
  23. package/package.json +95 -95
  24. package/templates/init/.bugzy/runtime/hooks/pre-compact.sh +53 -0
  25. package/templates/init/.bugzy/runtime/hooks/session-start.sh +68 -0
  26. package/templates/init/.bugzy/runtime/knowledge-base.md +61 -61
  27. package/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +140 -97
  28. package/templates/init/.bugzy/runtime/project-context.md +35 -35
  29. package/templates/init/.bugzy/runtime/subagent-memory-guide.md +122 -87
  30. package/templates/init/.bugzy/runtime/templates/event-examples.md +194 -194
  31. package/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -50
  32. package/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -498
  33. package/templates/init/.claude/settings.json +49 -28
  34. package/templates/init/.env.testdata +18 -18
  35. package/templates/init/.gitignore-template +24 -24
  36. package/templates/init/AGENTS.md +155 -155
  37. package/templates/init/CLAUDE.md +157 -157
  38. package/templates/init/test-runs/README.md +45 -45
  39. package/templates/init/tests/CLAUDE.md +199 -199
  40. package/templates/init/tests/docs/test-execution-strategy.md +535 -535
  41. package/templates/init/tests/docs/testing-best-practices.md +724 -724
  42. package/templates/playwright/BasePage.template.ts +190 -190
  43. package/templates/playwright/auth.setup.template.ts +89 -89
  44. package/templates/playwright/dataGenerators.helper.template.ts +148 -148
  45. package/templates/playwright/dateUtils.helper.template.ts +96 -96
  46. package/templates/playwright/pages.fixture.template.ts +50 -50
  47. package/templates/playwright/playwright.config.template.ts +97 -97
  48. package/templates/playwright/reporters/__tests__/bugzy-reporter-failure-classification.test.ts +299 -299
  49. package/templates/playwright/reporters/__tests__/bugzy-reporter-manifest-merge.test.ts +329 -329
  50. package/templates/playwright/reporters/__tests__/playwright.config.ts +5 -5
  51. package/templates/playwright/reporters/bugzy-reporter.ts +784 -784
  52. package/dist/templates/init/.bugzy/runtime/knowledge-base.md +0 -61
  53. package/dist/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +0 -97
  54. package/dist/templates/init/.bugzy/runtime/project-context.md +0 -35
  55. package/dist/templates/init/.bugzy/runtime/subagent-memory-guide.md +0 -87
  56. package/dist/templates/init/.bugzy/runtime/templates/test-plan-template.md +0 -50
  57. package/dist/templates/init/.bugzy/runtime/templates/test-result-schema.md +0 -498
  58. package/dist/templates/init/.bugzy/runtime/test-execution-strategy.md +0 -535
  59. package/dist/templates/init/.bugzy/runtime/testing-best-practices.md +0 -632
  60. package/dist/templates/init/.gitignore-template +0 -25
package/dist/index.js CHANGED
@@ -112,6 +112,9 @@ var MCP_SERVERS = {
112
112
  }
113
113
  }
114
114
  },
115
+ // asana: CLI-only integration — no MCP server needed.
116
+ // Agent uses `asana-cli task search|create|update|comment` via Bash.
117
+ // Package is installed globally in the container for CLI access.
115
118
  // github-modelcontextprotocol: {
116
119
  // provider: 'github',
117
120
  // name: 'GitHub',
@@ -261,10 +264,6 @@ Extract the following from arguments:
261
264
  - **type**: Test type (exploratory, functional, regression, smoke) - defaults to functional
262
265
  - **focus**: Optional specific feature or section to focus on`
263
266
  },
264
- // Step 4: Load Project Context (library)
265
- "load-project-context",
266
- // Step 5: Knowledge Base Read (library)
267
- "read-knowledge-base",
268
267
  // Step 5: Gather Context (inline)
269
268
  {
270
269
  inline: true,
@@ -468,11 +467,7 @@ var generateTestPlanTask = {
468
467
  title: "Arguments",
469
468
  content: `Product description: $ARGUMENTS`
470
469
  },
471
- // Step 4: Load Project Context (library)
472
- "load-project-context",
473
- // Step 5: Knowledge Base Read (library)
474
- "read-knowledge-base",
475
- // Step 6: Process Description (inline)
470
+ // Step 5: Process Description (inline)
476
471
  {
477
472
  inline: true,
478
473
  title: "Process the Product Description",
@@ -648,10 +643,6 @@ Process team messages and handle multi-turn conversations with the product team
648
643
  title: "Arguments",
649
644
  content: `Team message/thread context: $ARGUMENTS`
650
645
  },
651
- // Step 4: Load Project Context (library)
652
- "load-project-context",
653
- // Step 5: Knowledge Base Read (library)
654
- "read-knowledge-base",
655
646
  // Step 6: Detect Intent (inline - simplified, no handler file loading)
656
647
  {
657
648
  inline: true,
@@ -846,10 +837,6 @@ Process webhook events from integrated systems by analyzing event content, deter
846
837
  title: "Arguments",
847
838
  content: `Arguments: $ARGUMENTS`
848
839
  },
849
- // Step 4: Load Project Context (library)
850
- "load-project-context",
851
- // Step 5: Knowledge Base Read (library)
852
- "read-knowledge-base",
853
840
  // Step 5: Understand Event Context (inline)
854
841
  {
855
842
  inline: true,
@@ -1318,10 +1305,6 @@ Extract the following from arguments:
1318
1305
  - Specific file: path to a specific test file
1319
1306
  - All tests: "all" or "" \u2192 runs entire test suite`
1320
1307
  },
1321
- // Step 4: Load Project Context (library)
1322
- "load-project-context",
1323
- // Step 5: Knowledge Base Read (library)
1324
- "read-knowledge-base",
1325
1308
  // Step 5: Test Execution Strategy (library)
1326
1309
  "read-test-strategy",
1327
1310
  // Step 6: Clarification Protocol (library)
@@ -1470,10 +1453,6 @@ This task performs comprehensive change verification with:
1470
1453
 
1471
1454
  The input format determines the trigger source and context extraction strategy.`
1472
1455
  },
1473
- // Step 4: Load Project Context (library)
1474
- "load-project-context",
1475
- // Step 5: Knowledge Base Read (library)
1476
- "read-knowledge-base",
1477
1456
  // Step 5: Detect Trigger Source (inline)
1478
1457
  {
1479
1458
  inline: true,
@@ -1883,7 +1862,9 @@ Include in the message:
1883
1862
  - Any blocking issues or critical findings`,
1884
1863
  conditionalOnSubagent: "team-communicator"
1885
1864
  },
1886
- // Step 15: Documentation Research (conditional library step)
1865
+ // Step 15: Knowledge Base Update (library)
1866
+ "update-knowledge-base",
1867
+ // Step 16: Documentation Research (conditional library step)
1887
1868
  {
1888
1869
  stepId: "gather-documentation",
1889
1870
  conditionalOnSubagent: "documentation-researcher"
@@ -1934,9 +1915,7 @@ Output to CI build log (print detailed results to stdout) and exit with appropri
1934
1915
  Post PR comment if GitHub context available.`,
1935
1916
  conditionalOnSubagent: "team-communicator"
1936
1917
  },
1937
- // Step 17: Knowledge Base Update (library)
1938
- "update-knowledge-base",
1939
- // Step 18: Handle Special Cases (inline)
1918
+ // Step 17: Handle Special Cases (inline)
1940
1919
  {
1941
1920
  inline: true,
1942
1921
  title: "Handle Special Cases",
@@ -1988,8 +1967,6 @@ This command orchestrates the complete test coverage workflow in a single execut
1988
1967
  content: `Focus area: $ARGUMENTS`
1989
1968
  },
1990
1969
  // Phase 1: Setup
1991
- "load-project-context",
1992
- "read-knowledge-base",
1993
1970
  {
1994
1971
  stepId: "gather-documentation",
1995
1972
  conditionalOnSubagent: "documentation-researcher"
@@ -2058,9 +2035,6 @@ var exploreApplicationTask = {
2058
2035
  - **depth**: shallow (15-20 min) or deep (45-60 min, default)
2059
2036
  - **system**: target system (optional for multi-system setups)`
2060
2037
  },
2061
- // Setup
2062
- "load-project-context",
2063
- "read-knowledge-base",
2064
2038
  // Exploration Protocol (adaptive depth)
2065
2039
  "exploration-protocol",
2066
2040
  // Execute
@@ -2125,11 +2099,7 @@ This task is triggered automatically when test results are submitted to the Bugz
2125
2099
  title: "Arguments",
2126
2100
  content: `Arguments: $ARGUMENTS`
2127
2101
  },
2128
- // Step 4: Load Project Context (library)
2129
- "load-project-context",
2130
- // Step 5: Knowledge Base Read (library)
2131
- "read-knowledge-base",
2132
- // Step 6: Normalize Test Results (library — handles URL/inline results + manifest creation)
2102
+ // Step 5: Normalize Test Results (library — handles URL/inline results + manifest creation)
2133
2103
  "normalize-test-results",
2134
2104
  // Step 7: Triage Failures (existing library step)
2135
2105
  "triage-failures",
@@ -2140,57 +2110,13 @@ This task is triggered automatically when test results are submitted to the Bugz
2140
2110
  stepId: "log-product-bugs",
2141
2111
  conditionalOnSubagent: "issue-tracker"
2142
2112
  },
2143
- // Step 10: Update Knowledge Base (library)
2144
- "update-knowledge-base",
2145
- // Step 11: Notify Team (conditional — requires team-communicator)
2113
+ // Step 10: Notify Team (conditional — requires team-communicator)
2146
2114
  {
2147
2115
  stepId: "notify-team",
2148
2116
  conditionalOnSubagent: "team-communicator"
2149
2117
  },
2150
- // Step 12: Generate Triage Report (inline)
2151
- {
2152
- inline: true,
2153
- title: "Generate Triage Report",
2154
- content: `## Generate Triage Report
2155
-
2156
- Create a structured triage report as the task output. This report is stored in \`task_executions.result\` and displayed in the Bugzy dashboard.
2157
-
2158
- **Report Structure:**
2159
- \`\`\`json
2160
- {
2161
- "summary": {
2162
- "total": <number>,
2163
- "passed": <number>,
2164
- "failed": <number>,
2165
- "skipped": <number>,
2166
- "duration_ms": <number or null>
2167
- },
2168
- "ci_metadata": {
2169
- "pipeline_url": "<from event payload>",
2170
- "commit_sha": "<from event payload>",
2171
- "branch": "<from event payload>"
2172
- },
2173
- "triage": {
2174
- "product_bugs": [
2175
- {
2176
- "test_name": "<name>",
2177
- "error": "<brief error>",
2178
- "reason": "<why this is a product bug>"
2179
- }
2180
- ],
2181
- "test_issues": [
2182
- {
2183
- "test_name": "<name>",
2184
- "error": "<brief error>",
2185
- "reason": "<why this is a test issue>"
2186
- }
2187
- ]
2188
- }
2189
- }
2190
- \`\`\`
2191
-
2192
- Output this JSON as the final result of the task.`
2193
- }
2118
+ // Step 11: Knowledge Base Update (library)
2119
+ "update-knowledge-base"
2194
2120
  ],
2195
2121
  requiredSubagents: ["browser-automation", "test-engineer"],
2196
2122
  optionalSubagents: ["issue-tracker", "team-communicator"],
@@ -2224,9 +2150,6 @@ var exploreTestCodebaseTask = {
2224
2150
  **Parse:**
2225
2151
  - **focus**: specific area to analyze (default: comprehensive)`
2226
2152
  },
2227
- // Setup
2228
- "load-project-context",
2229
- "read-knowledge-base",
2230
2153
  // Core analysis
2231
2154
  "analyze-test-codebase",
2232
2155
  // Generate results parser for normalizing test output
@@ -4391,8 +4314,131 @@ Your memory file becomes more valuable over time:
4391
4314
 
4392
4315
  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.`;
4393
4316
 
4394
- // src/subagents/templates/issue-tracker/notion.ts
4317
+ // src/subagents/templates/issue-tracker/asana.ts
4395
4318
  var FRONTMATTER13 = {
4319
+ name: "issue-tracker",
4320
+ 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
+ user: "3 tests failed in the checkout flow - payment validation is broken"
4322
+ assistant: "I'll use the issue-tracker agent to create Asana tasks for these failures with detailed reproduction steps and test evidence."
4323
+ <commentary>Since test failures were discovered, use the issue-tracker agent to create Asana tasks, check for duplicates, and properly categorize each bug.</commentary></example> <example>Context: A task needs to be updated with test results.
4324
+ user: "Task 1234567890 has been verified on staging"
4325
+ assistant: "Let me use the issue-tracker agent to mark the task as complete and add verification comments."
4326
+ <commentary>Use the issue-tracker agent to update task status and document QA validation results.</commentary></example>`,
4327
+ model: "sonnet",
4328
+ color: "red"
4329
+ };
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.
4331
+
4332
+ **Important: CLI-First Approach**
4333
+
4334
+ Always prefer CLI commands via Bash over MCP tool calls. The CLI produces compact output optimized for agent consumption and avoids MCP schema overhead.
4335
+
4336
+ **Primary Interface \u2014 CLI Commands (via Bash):**
4337
+
4338
+ - **Search tasks**: \`asana-cli task search --query "login bug" [--project GID] [--assignee GID]\`
4339
+ - **Get task details**: \`asana-cli task get <gid>\`
4340
+ - **Create task**: \`asana-cli task create --name "Bug: ..." --project GID [--description "..."] [--assignee GID] [--due YYYY-MM-DD]\`
4341
+ - **Update task**: \`asana-cli task update <gid> [--name "..."] [--completed] [--assignee GID] [--due YYYY-MM-DD]\`
4342
+ - **Add comment**: \`asana-cli task comment <gid> --body "Test evidence: ..."\`
4343
+ - **List projects**: \`asana-cli project list\`
4344
+ - **All commands**: Add \`--json\` for structured JSON output when parsing is needed
4345
+
4346
+ **Core Responsibilities:**
4347
+
4348
+ 1. **Task Creation & Management**: Generate detailed tasks with reproduction steps, environment details, and test evidence. Include severity assessment and proper project/section assignment.
4349
+
4350
+ 2. **Duplicate Detection**: Before creating new tasks, always search for existing similar tasks to avoid duplicates and link related work.
4351
+
4352
+ 3. **Lifecycle Management**: Track task status, mark tasks complete when verified, add comments with test findings and status updates.
4353
+
4354
+ 4. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "issue-tracker")}
4355
+
4356
+ **Memory Sections for Issue Tracker (Asana)**:
4357
+ - Asana workspace GID, project GIDs, and section mappings
4358
+ - Recently reported tasks with their GIDs and status
4359
+ - Search queries that work well for finding duplicates
4360
+ - Task naming conventions and description templates
4361
+ - Project-specific workflows and assignee mappings
4362
+
4363
+ **Operational Workflow:**
4364
+
4365
+ 1. **Initial Check**: Always begin by reading \`.bugzy/runtime/memory/issue-tracker.md\` to load your Asana configuration and recent task history
4366
+
4367
+ 2. **Duplicate Detection**:
4368
+ - Check memory for recently reported similar tasks
4369
+ - Use \`asana-cli task search --query "error keywords"\` to search
4370
+ - Look for matching names, descriptions, or error messages
4371
+ - If duplicate found, add a comment to the existing task instead
4372
+
4373
+ 3. **Task Creation**:
4374
+ - Use the project GID from memory
4375
+ - Include comprehensive details: reproduction steps, expected vs actual behavior, environment
4376
+ - Set appropriate assignee and due date when known
4377
+ - Add test evidence and screenshots references in the description
4378
+
4379
+ 4. ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "issue-tracker")}
4380
+
4381
+ Specifically for issue-tracker (Asana), consider updating:
4382
+ - **Created Tasks**: Add newly created tasks with their GIDs
4383
+ - **Project Mappings**: Track which projects map to which areas
4384
+ - **Search Patterns**: Save effective search queries
4385
+ - **Assignee Mappings**: Track who handles what areas
4386
+ - Update pattern library with new issue types
4387
+
4388
+ **Memory File Structure** (\`.bugzy/runtime/memory/issue-tracker.md\`):
4389
+ \`\`\`markdown
4390
+ # Issue Tracker Memory
4391
+
4392
+ ## Last Updated: [timestamp]
4393
+
4394
+ ## Asana Configuration
4395
+ - Workspace GID: 12345
4396
+ - Default Project GID: 67890
4397
+ - Project: My Project
4398
+
4399
+ ## Project Mappings
4400
+ - Auth issues \u2192 Project "Auth" (GID: 11111)
4401
+ - Payment issues \u2192 Project "Payments" (GID: 22222)
4402
+ - UI issues \u2192 Project "Frontend" (GID: 33333)
4403
+
4404
+ ## Assignee Mappings
4405
+ - Auth bugs \u2192 user GID 44444
4406
+ - Payment bugs \u2192 user GID 55555
4407
+
4408
+ ## Recent Tasks (Last 30 days)
4409
+ - [Date] GID 98765: Login timeout on Chrome - Status: Open
4410
+ - [Date] GID 98766: Payment validation error - Status: Completed
4411
+
4412
+ ## Effective Search Queries
4413
+ - Login issues: --query "login" --project 11111
4414
+ - Payment bugs: --query "payment" --project 22222
4415
+ - Recent failures: --query "fail" (no project filter)
4416
+
4417
+ ## Issue Patterns
4418
+ - Timeout errors: Usually infrastructure-related
4419
+ - Validation failures: Often missing edge case handling
4420
+ - Browser-specific: Test across Chrome, Firefox, Safari
4421
+ \`\`\`
4422
+
4423
+ **Task Creation Standards:**
4424
+
4425
+ - Always search before creating to prevent duplicates
4426
+ - Task names: \`Bug: [Component] Short description\` or \`[Type]: Short description\`
4427
+ - Description includes: reproduction steps, expected behavior, actual behavior, environment details, test evidence
4428
+ - Set assignee when the responsible team member is known
4429
+ - Set due date for urgent/critical bugs
4430
+
4431
+ **Quality Assurance:**
4432
+
4433
+ - Verify project GIDs are current
4434
+ - Update task status after verification
4435
+ - Maintain accurate recent task list in memory
4436
+ - Prune old patterns that no longer apply
4437
+
4438
+ 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.`;
4439
+
4440
+ // src/subagents/templates/issue-tracker/notion.ts
4441
+ var FRONTMATTER14 = {
4396
4442
  name: "issue-tracker",
4397
4443
  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.
4398
4444
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -4404,7 +4450,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
4404
4450
  model: "haiku",
4405
4451
  color: "red"
4406
4452
  };
4407
- var CONTENT13 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
4453
+ 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.
4408
4454
 
4409
4455
  **Core Responsibilities:**
4410
4456
 
@@ -4551,7 +4597,7 @@ Your memory file grows more valuable over time:
4551
4597
  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.`;
4552
4598
 
4553
4599
  // src/subagents/templates/issue-tracker/slack.ts
4554
- var FRONTMATTER14 = {
4600
+ var FRONTMATTER15 = {
4555
4601
  name: "issue-tracker",
4556
4602
  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.
4557
4603
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -4563,7 +4609,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
4563
4609
  model: "sonnet",
4564
4610
  color: "red"
4565
4611
  };
4566
- var CONTENT14 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
4612
+ 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.
4567
4613
 
4568
4614
  **Core Responsibilities:**
4569
4615
 
@@ -4785,7 +4831,7 @@ Maintain organized issue tracking:
4785
4831
  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.`;
4786
4832
 
4787
4833
  // src/subagents/templates/changelog-historian/github.ts
4788
- var FRONTMATTER15 = {
4834
+ var FRONTMATTER16 = {
4789
4835
  name: "changelog-historian",
4790
4836
  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.
4791
4837
  user: "The checkout flow test is failing in staging. What changed recently?"
@@ -4797,7 +4843,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
4797
4843
  model: "haiku",
4798
4844
  color: "gray"
4799
4845
  };
4800
- var CONTENT15 = `You are an expert Changelog Historian specializing in understanding code changes and their impact. Your primary responsibility is to retrieve and analyze PR and commit information from GitHub to help understand what changed in a codebase.
4846
+ 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.
4801
4847
 
4802
4848
  ## Core Responsibilities
4803
4849
 
@@ -4969,19 +5015,23 @@ var TEMPLATES = {
4969
5015
  frontmatter: FRONTMATTER12,
4970
5016
  content: CONTENT12
4971
5017
  },
4972
- notion: {
5018
+ asana: {
4973
5019
  frontmatter: FRONTMATTER13,
4974
5020
  content: CONTENT13
4975
5021
  },
4976
- slack: {
5022
+ notion: {
4977
5023
  frontmatter: FRONTMATTER14,
4978
5024
  content: CONTENT14
5025
+ },
5026
+ slack: {
5027
+ frontmatter: FRONTMATTER15,
5028
+ content: CONTENT15
4979
5029
  }
4980
5030
  },
4981
5031
  "changelog-historian": {
4982
5032
  github: {
4983
- frontmatter: FRONTMATTER15,
4984
- content: CONTENT15
5033
+ frontmatter: FRONTMATTER16,
5034
+ content: CONTENT16
4985
5035
  }
4986
5036
  }
4987
5037
  };
@@ -5029,6 +5079,13 @@ var INTEGRATIONS = {
5029
5079
  integrationType: "oauth"
5030
5080
  // Uses Nango with API key auth for PAT
5031
5081
  },
5082
+ asana: {
5083
+ id: "asana",
5084
+ name: "Asana",
5085
+ provider: "asana",
5086
+ // No requiredMCP — uses asana-mcp-server CLI (CLI tool), not MCP server
5087
+ integrationType: "oauth"
5088
+ },
5032
5089
  notion: {
5033
5090
  id: "notion",
5034
5091
  name: "Notion",
@@ -5133,6 +5190,7 @@ var SUBAGENTS = {
5133
5190
  INTEGRATIONS.jira,
5134
5191
  INTEGRATIONS["jira-server"],
5135
5192
  INTEGRATIONS["azure-devops"],
5193
+ INTEGRATIONS.asana,
5136
5194
  INTEGRATIONS.notion,
5137
5195
  INTEGRATIONS.slack
5138
5196
  ],
@@ -5322,38 +5380,6 @@ async function getAgentConfiguration(taskDefinitions, projectSubAgents) {
5322
5380
  };
5323
5381
  }
5324
5382
 
5325
- // src/tasks/steps/setup/read-knowledge-base.ts
5326
- var readKnowledgeBaseStep = {
5327
- id: "read-knowledge-base",
5328
- title: "Read Knowledge Base",
5329
- category: "setup",
5330
- content: `## Knowledge Base Context
5331
-
5332
- Before proceeding, read the curated knowledge base to inform your work:
5333
-
5334
- **Location:** \`.bugzy/runtime/knowledge-base.md\`
5335
-
5336
- **Purpose:** The knowledge base is a living collection of factual knowledge - what we currently know and believe to be true about this project, its patterns, and its context. This is NOT a historical log, but a curated snapshot that evolves as understanding improves.
5337
-
5338
- **How to Use:**
5339
- 1. Read the knowledge base to understand:
5340
- - Project-specific patterns and conventions
5341
- - Known behaviors and system characteristics
5342
- - Relevant context from past work
5343
- - Documented decisions and approaches
5344
-
5345
- 2. Apply this knowledge to:
5346
- - Make informed decisions aligned with project patterns
5347
- - Avoid repeating past mistakes
5348
- - Build on existing understanding
5349
- - Maintain consistency with established practices
5350
-
5351
- 3. **Relay to subagents**: Subagents do NOT read the knowledge base directly. When delegating work, you MUST include relevant KB patterns in your delegation message \u2014 especially testing patterns (timing, selectors, assertion approaches) that affect test reliability.
5352
-
5353
- **Note:** The knowledge base may not exist yet or may be empty. If it doesn't exist or is empty, proceed without this context and help build it as you work.`,
5354
- tags: ["setup", "context"]
5355
- };
5356
-
5357
5383
  // src/tasks/steps/setup/read-test-strategy.ts
5358
5384
  var readTestStrategyStep = {
5359
5385
  id: "read-test-strategy",
@@ -5375,38 +5401,6 @@ Apply the strategy guidance when determining which tests to run.
5375
5401
  tags: ["setup", "test-execution", "strategy"]
5376
5402
  };
5377
5403
 
5378
- // src/tasks/steps/setup/load-project-context.ts
5379
- var loadProjectContextStep = {
5380
- id: "load-project-context",
5381
- title: "Load Project Context",
5382
- category: "setup",
5383
- content: `## Load Project Context
5384
-
5385
- Check for existing project context to inform your work:
5386
-
5387
- **1. Check Project Context**
5388
- - Read \`.bugzy/runtime/project-context.md\` if it exists
5389
- - Check if it contains information relevant to: $ARGUMENTS
5390
- - This file contains:
5391
- - Application overview and architecture
5392
- - Key user flows and features
5393
- - Technical patterns discovered
5394
- - Environment details
5395
-
5396
- **2. Check Test Execution Strategy**
5397
- - Read \`./tests/docs/test-execution-strategy.md\` if it exists
5398
- - Understand available test tiers and when to use them
5399
- - Note default behaviors and time/coverage trade-offs
5400
-
5401
- **3. Document Findings**
5402
- Note what context is available:
5403
- \`\`\`
5404
- Project Context: [exists/missing] - [relevant to focus area: yes/no/partial]
5405
- Test Strategy: [exists/missing]
5406
- \`\`\``,
5407
- tags: ["setup", "context"]
5408
- };
5409
-
5410
5404
  // src/tasks/steps/setup/security-notice.ts
5411
5405
  var securityNoticeStep = {
5412
5406
  id: "security-notice",
@@ -6625,40 +6619,6 @@ Notify the team about progress and results:
6625
6619
  tags: ["communication", "optional"]
6626
6620
  };
6627
6621
 
6628
- // src/tasks/steps/maintenance/update-knowledge-base.ts
6629
- var updateKnowledgeBaseStep = {
6630
- id: "update-knowledge-base",
6631
- title: "Update Knowledge Base",
6632
- category: "maintenance",
6633
- content: `## Knowledge Base Maintenance
6634
-
6635
- After completing your work, update the knowledge base with new insights.
6636
-
6637
- **Location:** \`.bugzy/runtime/knowledge-base.md\`
6638
-
6639
- **Process:**
6640
-
6641
- 1. **Read the maintenance guide** at \`.bugzy/runtime/knowledge-maintenance-guide.md\` to understand when to ADD, UPDATE, or REMOVE entries and how to maintain a curated knowledge base (not an append-only log)
6642
-
6643
- 2. **Review the current knowledge base** to check for overlaps, contradictions, or opportunities to consolidate existing knowledge
6644
-
6645
- 3. **Update the knowledge base** following the maintenance guide principles:
6646
- - Favor consolidation over addition
6647
- - Update rather than append
6648
- - Resolve contradictions immediately
6649
- - Focus on quality over completeness
6650
-
6651
- **What to Add:**
6652
- - New patterns discovered about the application
6653
- - Behaviors that differ from expectations
6654
- - Technical constraints or requirements
6655
- - Useful selectors or navigation patterns
6656
- - Error handling patterns
6657
-
6658
- **Remember:** Every entry should answer "Will this help someone working on this project in 6 months?"`,
6659
- tags: ["maintenance", "knowledge"]
6660
- };
6661
-
6662
6622
  // src/tasks/steps/maintenance/generate-final-report.ts
6663
6623
  var generateFinalReportStep = {
6664
6624
  id: "generate-final-report",
@@ -6830,13 +6790,45 @@ For each modified test case:
6830
6790
  tags: ["maintenance", "automation", "feedback"]
6831
6791
  };
6832
6792
 
6793
+ // src/tasks/steps/maintenance/update-knowledge-base.ts
6794
+ var updateKnowledgeBaseStep = {
6795
+ id: "update-knowledge-base",
6796
+ title: "Update Knowledge Base",
6797
+ category: "maintenance",
6798
+ content: `## Knowledge Base Maintenance
6799
+
6800
+ After completing your work, update the knowledge base with new insights.
6801
+
6802
+ **Location:** \`.bugzy/runtime/knowledge-base.md\`
6803
+
6804
+ **Process:**
6805
+
6806
+ 1. **Read the maintenance guide** at \`.bugzy/runtime/knowledge-maintenance-guide.md\` to understand when to ADD, UPDATE, or REMOVE entries and how to maintain a curated knowledge base (not an append-only log)
6807
+
6808
+ 2. **Review the current knowledge base** to check for overlaps, contradictions, or opportunities to consolidate existing knowledge
6809
+
6810
+ 3. **Update the knowledge base** following the maintenance guide principles:
6811
+ - Favor consolidation over addition
6812
+ - Update rather than append
6813
+ - Resolve contradictions immediately
6814
+ - Focus on quality over completeness
6815
+
6816
+ **What to Add:**
6817
+ - New patterns discovered about the application
6818
+ - Behaviors that differ from expectations
6819
+ - Technical constraints or requirements
6820
+ - Useful selectors or navigation patterns
6821
+ - Error handling patterns
6822
+
6823
+ **Remember:** Every entry should answer "Will this help someone working on this project in 6 months?"`,
6824
+ tags: ["maintenance", "knowledge"]
6825
+ };
6826
+
6833
6827
  // src/tasks/steps/index.ts
6834
6828
  var STEP_LIBRARY = {
6835
6829
  // Setup
6836
6830
  "security-notice": securityNoticeStep,
6837
- "read-knowledge-base": readKnowledgeBaseStep,
6838
6831
  "read-test-strategy": readTestStrategyStep,
6839
- "load-project-context": loadProjectContextStep,
6840
6832
  "gather-documentation": gatherDocumentationStep,
6841
6833
  // Exploration
6842
6834
  "exploration-protocol": explorationProtocolStep,
@@ -6862,12 +6854,12 @@ var STEP_LIBRARY = {
6862
6854
  // Communication
6863
6855
  "notify-team": notifyTeamStep,
6864
6856
  // Maintenance
6865
- "update-knowledge-base": updateKnowledgeBaseStep,
6866
6857
  "generate-final-report": generateFinalReportStep,
6867
6858
  "update-exploration-artifacts": updateExplorationArtifactsStep,
6868
6859
  "cleanup-temp-files": cleanupTempFilesStep,
6869
6860
  "validate-test-artifacts": validateTestArtifactsStep,
6870
- "sync-automation-from-feedback": syncAutomationFromFeedbackStep
6861
+ "sync-automation-from-feedback": syncAutomationFromFeedbackStep,
6862
+ "update-knowledge-base": updateKnowledgeBaseStep
6871
6863
  };
6872
6864
  function getStep(id) {
6873
6865
  const step = STEP_LIBRARY[id];