@bugzy-ai/bugzy 1.18.3 → 1.18.4

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 (61) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +273 -273
  3. package/dist/cli/index.cjs +289 -206
  4. package/dist/cli/index.cjs.map +1 -1
  5. package/dist/cli/index.js +288 -205
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/index.cjs +285 -202
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +285 -202
  10. package/dist/index.js.map +1 -1
  11. package/dist/subagents/index.cjs +115 -137
  12. package/dist/subagents/index.cjs.map +1 -1
  13. package/dist/subagents/index.js +115 -137
  14. package/dist/subagents/index.js.map +1 -1
  15. package/dist/subagents/metadata.cjs +12 -18
  16. package/dist/subagents/metadata.cjs.map +1 -1
  17. package/dist/subagents/metadata.js +12 -18
  18. package/dist/subagents/metadata.js.map +1 -1
  19. package/dist/tasks/index.cjs +136 -50
  20. package/dist/tasks/index.cjs.map +1 -1
  21. package/dist/tasks/index.js +136 -50
  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/knowledge-base.md +61 -61
  34. package/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +97 -97
  35. package/templates/init/.bugzy/runtime/project-context.md +35 -35
  36. package/templates/init/.bugzy/runtime/subagent-memory-guide.md +87 -87
  37. package/templates/init/.bugzy/runtime/templates/event-examples.md +194 -194
  38. package/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -50
  39. package/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -498
  40. package/templates/init/.claude/settings.json +28 -28
  41. package/templates/init/.env.testdata +18 -18
  42. package/templates/init/.gitignore-template +24 -24
  43. package/templates/init/AGENTS.md +155 -155
  44. package/templates/init/CLAUDE.md +157 -157
  45. package/templates/init/test-runs/README.md +45 -45
  46. package/templates/init/tests/CLAUDE.md +193 -193
  47. package/templates/init/tests/docs/test-execution-strategy.md +535 -535
  48. package/templates/init/tests/docs/testing-best-practices.md +724 -724
  49. package/templates/playwright/BasePage.template.ts +190 -190
  50. package/templates/playwright/auth.setup.template.ts +89 -89
  51. package/templates/playwright/dataGenerators.helper.template.ts +148 -148
  52. package/templates/playwright/dateUtils.helper.template.ts +96 -96
  53. package/templates/playwright/pages.fixture.template.ts +50 -50
  54. package/templates/playwright/playwright.config.template.ts +97 -97
  55. package/templates/playwright/reporters/__tests__/bugzy-reporter-failure-classification.test.ts +299 -299
  56. package/templates/playwright/reporters/__tests__/bugzy-reporter-manifest-merge.test.ts +329 -329
  57. package/templates/playwright/reporters/__tests__/playwright.config.ts +5 -5
  58. package/templates/playwright/reporters/bugzy-reporter.ts +784 -784
  59. package/templates/init/.bugzy/runtime/handlers/messages/feedback.md +0 -178
  60. package/templates/init/.bugzy/runtime/handlers/messages/question.md +0 -122
  61. package/templates/init/.bugzy/runtime/handlers/messages/status.md +0 -146
package/dist/cli/index.js CHANGED
@@ -20,12 +20,12 @@ var __copyProps = (to, from, except, desc) => {
20
20
  };
21
21
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
22
 
23
- // node_modules/.pnpm/tsup@8.5.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js
23
+ // node_modules/.pnpm/tsup@8.5.0_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js
24
24
  import path from "path";
25
25
  import { fileURLToPath } from "url";
26
26
  var getFilename, getDirname, __dirname;
27
27
  var init_esm_shims = __esm({
28
- "node_modules/.pnpm/tsup@8.5.1_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js"() {
28
+ "node_modules/.pnpm/tsup@8.5.0_postcss@8.5.6_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js"() {
29
29
  "use strict";
30
30
  getFilename = () => fileURLToPath(import.meta.url);
31
31
  getDirname = () => path.dirname(getFilename());
@@ -207,20 +207,20 @@ Example structure:
207
207
  {
208
208
  inline: true,
209
209
  title: "Generate All Manual Test Case Files",
210
- content: `Generate ALL manual test case markdown files in \`./test-cases/\` BEFORE invoking the test-code-generator agent.
210
+ content: `Generate ALL manual test case markdown files in \`./test-cases/\` BEFORE invoking the test-engineer agent.
211
211
 
212
212
  Create files using \`TC-XXX-feature-description.md\` format. Follow the format of existing test cases in the directory. If no existing cases exist, include:
213
213
  - Frontmatter with test case metadata (id, title, type, area, \`automated: true/false\`, \`automated_test:\` empty)
214
214
  - Clear test steps with expected results
215
215
  - Required test data references (use env var names, not values)`
216
216
  },
217
- // Step 11: Automate Test Cases (inline - detailed instructions for test-code-generator)
217
+ // Step 11: Automate Test Cases (inline - detailed instructions for test-engineer)
218
218
  {
219
219
  inline: true,
220
220
  title: "Automate Test Cases Area by Area",
221
221
  content: `**IMPORTANT**: Process each feature area separately to enable incremental, focused test creation.
222
222
 
223
- **For each area**, invoke the test-code-generator agent:
223
+ **For each area**, invoke the test-engineer agent:
224
224
 
225
225
  **Prepare Area Context:**
226
226
  Before invoking the agent, identify the test cases for the current area:
@@ -232,9 +232,9 @@ Before invoking the agent, identify the test cases for the current area:
232
232
  - Existing automated tests in ./tests/specs/
233
233
  - Existing Page Objects in ./tests/pages/
234
234
 
235
- **Invoke test-code-generator Agent:**
235
+ **Invoke test-engineer Agent:**
236
236
 
237
- {{INVOKE_TEST_CODE_GENERATOR}} for the current area with the following context:
237
+ {{INVOKE_TEST_ENGINEER}} for the current area with the following context:
238
238
 
239
239
  "Automate test cases for the [AREA_NAME] area.
240
240
 
@@ -248,7 +248,7 @@ Before invoking the agent, identify the test cases for the current area:
248
248
  - Existing page objects: [directory from ./tests/CLAUDE.md]
249
249
 
250
250
  **Knowledge Base Patterns (MUST APPLY):**
251
- Include ALL relevant testing patterns from the knowledge base that apply to this area. For example, if the KB documents timing behaviors (animation delays, loading states), selector gotchas, or recommended assertion approaches \u2014 list them here explicitly and instruct the agent to use the specific patterns described (e.g., specific assertion methods with specific timeouts). The test-code-generator does not have access to the knowledge base, so you MUST relay the exact patterns and recommended code approaches.
251
+ Include ALL relevant testing patterns from the knowledge base that apply to this area. For example, if the KB documents timing behaviors (animation delays, loading states), selector gotchas, or recommended assertion approaches \u2014 list them here explicitly and instruct the agent to use the specific patterns described (e.g., specific assertion methods with specific timeouts). The test-engineer does not have access to the knowledge base, so you MUST relay the exact patterns and recommended code approaches.
252
252
 
253
253
  **The agent should:**
254
254
  1. Read the manual test case files for this area
@@ -307,7 +307,7 @@ Move to the next area and repeat until all areas are complete.
307
307
  content: `Provide a summary of created artifacts: manual test cases (count, IDs), automated tests (count, spec files), page objects and supporting files, coverage by area, and command to run tests (from \`./tests/CLAUDE.md\`).`
308
308
  }
309
309
  ],
310
- requiredSubagents: ["browser-automation", "test-code-generator"],
310
+ requiredSubagents: ["browser-automation", "test-engineer"],
311
311
  optionalSubagents: ["documentation-researcher", "team-communicator"],
312
312
  dependentTasks: []
313
313
  };
@@ -510,10 +510,10 @@ var init_handle_message = __esm({
510
510
  handleMessageTask = {
511
511
  slug: TASK_SLUGS.HANDLE_MESSAGE,
512
512
  name: "Handle Message",
513
- description: "Handle team responses and Slack communications, maintaining context for ongoing conversations (LLM-routed)",
513
+ description: "Handle team messages, maintaining context for ongoing conversations",
514
514
  frontmatter: {
515
- description: "Handle team responses and Slack communications, maintaining context for ongoing conversations",
516
- "argument-hint": "[slack thread context or team message]"
515
+ description: "Handle team messages, maintaining context for ongoing conversations",
516
+ "argument-hint": "[team thread context or message]"
517
517
  },
518
518
  steps: [
519
519
  // Step 1: Overview (inline)
@@ -522,7 +522,7 @@ var init_handle_message = __esm({
522
522
  title: "Handle Message Overview",
523
523
  content: `# Handle Message Command
524
524
 
525
- Process team responses from Slack threads and handle multi-turn conversations with the product team about testing clarifications, ambiguities, and questions.`
525
+ Process team messages and handle multi-turn conversations with the product team about testing clarifications, ambiguities, and questions.`
526
526
  },
527
527
  // Step 2: Security Notice (library)
528
528
  "security-notice",
@@ -536,19 +536,19 @@ Process team responses from Slack threads and handle multi-turn conversations wi
536
536
  "load-project-context",
537
537
  // Step 5: Knowledge Base Read (library)
538
538
  "read-knowledge-base",
539
- // Step 5: Detect Intent (inline - task-specific)
539
+ // Step 6: Detect Intent (inline - simplified, no handler file loading)
540
540
  {
541
541
  inline: true,
542
- title: "Detect Message Intent and Load Handler",
543
- content: `Before processing the message, identify the intent type to load the appropriate handler.
542
+ title: "Detect Message Intent",
543
+ content: `Identify the intent type from the event payload or message patterns:
544
544
 
545
- #### 0.1 Extract Intent from Event Payload
545
+ #### Extract Intent from Event Payload
546
546
 
547
547
  Check the event payload for the \`intent\` field provided by the LLM layer:
548
548
  - If \`intent\` is present, use it directly
549
549
  - Valid intent values: \`question\`, \`feedback\`, \`status\`
550
550
 
551
- #### 0.2 Fallback Intent Detection (if no intent provided)
551
+ #### Fallback Intent Detection (if no intent provided)
552
552
 
553
553
  If intent is not in the payload, detect from message patterns:
554
554
 
@@ -559,39 +559,125 @@ If intent is not in the payload, detect from message patterns:
559
559
  | Question words: "what", "which", "do we have", "is there" about tests/project | \`question\` |
560
560
  | Default (none of above) | \`feedback\` |
561
561
 
562
- #### 0.3 Load Handler File
562
+ Then follow the matching handler section below.`
563
+ },
564
+ // Step 7: Process by Intent (all three handlers consolidated)
565
+ {
566
+ inline: true,
567
+ title: "Process Message by Intent",
568
+ content: `Based on the detected intent, follow the appropriate section:
569
+
570
+ ---
571
+
572
+ ## If intent = "feedback"
573
+
574
+ ### Step 1: Parse Feedback
575
+
576
+ Extract the following from the message:
577
+
578
+ | Field | Description |
579
+ |-------|-------------|
580
+ | **Type** | \`bug_report\`, \`test_result\`, \`observation\`, \`suggestion\`, \`general\` |
581
+ | **Severity** | \`critical\`, \`high\`, \`medium\`, \`low\` |
582
+ | **Component** | Affected area (e.g., "login", "checkout") |
583
+ | **Description** | Core issue description |
584
+ | **Expected** | What should happen (if stated) |
585
+ | **Steps** | How to reproduce (if provided) |
586
+
587
+ **Type Detection**:
588
+ - \`bug_report\`: "bug", "broken", "doesn't work", "error", "crash"
589
+ - \`test_result\`: "test passed", "test failed", "ran tests", "testing showed"
590
+ - \`observation\`: "noticed", "observed", "found that", "saw that"
591
+ - \`suggestion\`: "should", "could we", "what if", "idea"
592
+ - \`general\`: Default for unclassified feedback
593
+
594
+ ### Step 2: Update Test Case Specifications
595
+
596
+ **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.
597
+
598
+ For each actionable feedback item:
599
+ 1. Identify which test case(s) are affected
600
+ 2. Read the test case markdown file
601
+ 3. Update the test steps, expected results, or assertions as requested
602
+ 4. Save the modified test case file
603
+
604
+ 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.
605
+
606
+ ### Step 3: Acknowledge and Confirm
607
+
608
+ Respond confirming: feedback received, summary of what was captured, actions taken (including any test case updates), and follow-up questions if needed.
609
+
610
+ ---
611
+
612
+ ## If intent = "question"
613
+
614
+ ### Step 1: Classify Question Type
563
615
 
564
- Based on detected intent, load the handler from:
565
- \`.bugzy/runtime/handlers/messages/{intent}.md\`
616
+ | Type | Indicators | Primary Context Sources |
617
+ |------|------------|------------------------|
618
+ | **Coverage** | "what tests", "do we have", "is there a test for" | test-cases/, test-plan.md |
619
+ | **Results** | "did tests pass", "what failed", "test results" | test-runs/ |
620
+ | **Knowledge** | "how does", "what is", "explain" | knowledge-base.md |
621
+ | **Plan** | "what's in scope", "test plan", "testing strategy" | test-plan.md |
622
+ | **Process** | "how do I", "when should", "what's the workflow" | project-context.md |
566
623
 
567
- **Handler files:**
568
- - \`question.md\` - Questions about tests, coverage, project details
569
- - \`feedback.md\` - Bug reports, test observations, general information
570
- - \`status.md\` - Status checks on test runs, task progress
624
+ ### Step 2: Load Relevant Context
571
625
 
572
- #### 0.4 Follow Handler Instructions
626
+ Based on question type, load the appropriate files:
627
+ - **Coverage**: Read test-plan.md, list ./test-cases/, search for relevant keywords
628
+ - **Results**: List ./test-runs/ (newest first), read summary.json from relevant runs
629
+ - **Knowledge**: Read .bugzy/runtime/knowledge-base.md, search for relevant entries
630
+ - **Plan**: Read test-plan.md, extract relevant sections
631
+ - **Process**: Read .bugzy/runtime/project-context.md
573
632
 
574
- **IMPORTANT**: The handler file is authoritative for this intent type.
633
+ ### Step 3: Formulate Answer
575
634
 
576
- 1. Read the handler file completely
577
- 2. Follow its processing steps in order
578
- 3. Apply its context loading requirements
579
- 4. Use its response guidelines
580
- 5. Perform any memory updates it specifies
635
+ - Be specific: quote relevant sections from source files
636
+ - Cite sources: mention which files contain the information
637
+ - Quantify when possible: "We have 12 test cases covering login..."
638
+ - Acknowledge gaps if information is incomplete
581
639
 
582
- The handler file contains all necessary processing logic for the detected intent type. Each handler includes:
583
- - Specific processing steps for that intent
584
- - Context loading requirements
585
- - Response guidelines
586
- - Memory update instructions`
640
+ ### Step 4: Offer Follow-up
641
+
642
+ End response with offer to provide more detail and suggest related information.
643
+
644
+ ---
645
+
646
+ ## If intent = "status"
647
+
648
+ ### Step 1: Identify Status Scope
649
+
650
+ | Scope | Indicators | Data Sources |
651
+ |-------|------------|--------------|
652
+ | **Latest test run** | "last run", "recent tests", "how did tests go" | Most recent test-runs/ directory |
653
+ | **Specific test** | Test ID mentioned (TC-XXX) | test-runs/*/TC-XXX/, test-cases/TC-XXX.md |
654
+ | **Overall** | "overall", "all tests", "pass rate" | All test-runs/ summaries |
655
+ | **Task progress** | "is the task done", "what's happening with" | team-communicator memory |
656
+
657
+ ### Step 2: Gather Status Data
658
+
659
+ Based on scope, read the appropriate test-runs/ directories and summary files. Calculate aggregate statistics for overall status requests.
660
+
661
+ ### Step 3: Format Status Report
662
+
663
+ Present status clearly: lead with pass/fail summary, use bullet points, include timestamps, offer to drill down into specifics.
664
+
665
+ ### Step 4: Provide Context and Recommendations
666
+
667
+ For failing tests: suggest review, note if new or recurring. For declining trends: highlight causes. For good results: acknowledge healthy state.`
587
668
  },
588
- // Step 6: Post Response via Team Communicator
669
+ // Step 8: Sync automation from feedback (conditional on test-engineer)
670
+ {
671
+ stepId: "sync-automation-from-feedback",
672
+ conditionalOnSubagent: "test-engineer"
673
+ },
674
+ // Step 9: Post Response via Team Communicator
589
675
  {
590
676
  inline: true,
591
677
  title: "Post Response to Team",
592
678
  content: `## Post Response to the Team
593
679
 
594
- After processing the message through the handler and composing your response:
680
+ After processing the message and composing your response:
595
681
 
596
682
  {{INVOKE_TEAM_COMMUNICATOR}} to post the response back to the team.
597
683
 
@@ -606,13 +692,13 @@ After processing the message through the handler and composing your response:
606
692
  - Ask the user whether to post \u2014 the message came from the team, the response goes back to the team
607
693
  - Compose a draft without sending it`
608
694
  },
609
- // Step 7: Clarification Protocol (for ambiguous intents)
695
+ // Step 10: Clarification Protocol (for ambiguous intents)
610
696
  "clarification-protocol",
611
- // Step 8: Knowledge Base Update (library)
697
+ // Step 11: Knowledge Base Update (library)
612
698
  "update-knowledge-base"
613
699
  ],
614
700
  requiredSubagents: ["team-communicator"],
615
- optionalSubagents: [],
701
+ optionalSubagents: ["test-engineer"],
616
702
  dependentTasks: ["verify-changes"]
617
703
  };
618
704
  }
@@ -1228,7 +1314,7 @@ If selected test cases have formatting issues:
1228
1314
 
1229
1315
  **Failure Handling**:
1230
1316
  - Test failures are automatically triaged (product bugs vs test issues)
1231
- - Test issues are automatically fixed by the test-debugger-fixer subagent
1317
+ - Test issues are automatically fixed by the test-engineer subagent
1232
1318
  - Product bugs are logged via issue tracker after triage
1233
1319
  - All results are analyzed for learning opportunities and team communication
1234
1320
  - Critical failures trigger immediate team notification
@@ -1245,7 +1331,7 @@ If selected test cases have formatting issues:
1245
1331
  conditionalOnSubagent: "team-communicator"
1246
1332
  }
1247
1333
  ],
1248
- requiredSubagents: ["browser-automation", "test-debugger-fixer"],
1334
+ requiredSubagents: ["browser-automation", "test-engineer"],
1249
1335
  optionalSubagents: ["issue-tracker", "team-communicator"],
1250
1336
  dependentTasks: []
1251
1337
  };
@@ -1533,7 +1619,7 @@ Generate summary of test selection based on description analysis:
1533
1619
  - **Execution strategy**: [smart selection | full suite | smoke tests | user-specified]
1534
1620
  \`\`\``
1535
1621
  },
1536
- // Step 7b: Create Tests for Coverage Gaps (conditional - test-code-generator)
1622
+ // Step 7b: Create Tests for Coverage Gaps (conditional - test-engineer)
1537
1623
  {
1538
1624
  inline: true,
1539
1625
  title: "Create Tests for Coverage Gaps",
@@ -1569,7 +1655,7 @@ If the Jira issue or PR references test accounts/data (e.g., TEST_PREMIUM_USER,
1569
1655
 
1570
1656
  ### Generate Automated Test Specs
1571
1657
 
1572
- {{INVOKE_TEST_CODE_GENERATOR}} to create automated test specs:
1658
+ {{INVOKE_TEST_ENGINEER}} to create automated test specs:
1573
1659
  - Read the manual test cases you just created
1574
1660
  - Explore the feature in the browser to discover selectors and flows
1575
1661
  - Create page objects in the directory specified by \`./tests/CLAUDE.md\`
@@ -1580,7 +1666,7 @@ If the Jira issue or PR references test accounts/data (e.g., TEST_PREMIUM_USER,
1580
1666
  ### If Tests Already Cover the Feature
1581
1667
 
1582
1668
  Skip this step \u2014 proceed directly to running existing tests.`,
1583
- conditionalOnSubagent: "test-code-generator"
1669
+ conditionalOnSubagent: "test-engineer"
1584
1670
  },
1585
1671
  // Step 8-11: Test Execution (library steps)
1586
1672
  "run-tests",
@@ -1769,8 +1855,8 @@ Post PR comment if GitHub context available.`,
1769
1855
  **If test execution fails:** report specific error, suggest troubleshooting, don't proceed with triage.`
1770
1856
  }
1771
1857
  ],
1772
- requiredSubagents: ["browser-automation", "test-debugger-fixer"],
1773
- optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator", "changelog-historian", "test-code-generator"],
1858
+ requiredSubagents: ["browser-automation", "test-engineer"],
1859
+ optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator", "changelog-historian"],
1774
1860
  dependentTasks: []
1775
1861
  };
1776
1862
  }
@@ -1854,7 +1940,7 @@ This command orchestrates the complete test coverage workflow in a single execut
1854
1940
  },
1855
1941
  "generate-final-report"
1856
1942
  ],
1857
- requiredSubagents: ["browser-automation", "test-code-generator", "test-debugger-fixer"],
1943
+ requiredSubagents: ["browser-automation", "test-engineer"],
1858
1944
  optionalSubagents: ["documentation-researcher", "team-communicator", "issue-tracker"],
1859
1945
  dependentTasks: ["run-tests", "generate-test-cases"]
1860
1946
  };
@@ -1979,7 +2065,7 @@ This task is triggered automatically when test results are submitted to the Bugz
1979
2065
  "normalize-test-results",
1980
2066
  // Step 7: Triage Failures (existing library step)
1981
2067
  "triage-failures",
1982
- // Step 8: Fix Test Issues (library — uses test-debugger-fixer)
2068
+ // Step 8: Fix Test Issues (library — uses test-engineer)
1983
2069
  "fix-test-issues",
1984
2070
  // Step 9: Log Product Bugs (conditional — requires issue-tracker)
1985
2071
  {
@@ -2038,7 +2124,7 @@ Create a structured triage report as the task output. This report is stored in \
2038
2124
  Output this JSON as the final result of the task.`
2039
2125
  }
2040
2126
  ],
2041
- requiredSubagents: ["browser-automation", "test-debugger-fixer"],
2127
+ requiredSubagents: ["browser-automation", "test-engineer"],
2042
2128
  optionalSubagents: ["issue-tracker", "team-communicator"],
2043
2129
  dependentTasks: []
2044
2130
  };
@@ -2507,6 +2593,13 @@ var INTEGRATIONS = {
2507
2593
  // No requiredMCP - uses built-in Claude Code tools (AskUserQuestion, text output)
2508
2594
  isLocal: true,
2509
2595
  integrationType: "local"
2596
+ },
2597
+ default: {
2598
+ id: "default",
2599
+ name: "Default",
2600
+ provider: "default",
2601
+ isLocal: true,
2602
+ integrationType: "local"
2510
2603
  }
2511
2604
  };
2512
2605
  var SUBAGENTS = {
@@ -2566,28 +2659,15 @@ var SUBAGENTS = {
2566
2659
  color: "cyan",
2567
2660
  version: "1.0.0"
2568
2661
  },
2569
- "test-code-generator": {
2570
- role: "test-code-generator",
2571
- name: "Test Code Generator",
2572
- description: "Generate automated test scripts and page objects",
2662
+ "test-engineer": {
2663
+ role: "test-engineer",
2664
+ name: "Test Engineer",
2665
+ description: "Create, update, debug, and fix automated tests",
2573
2666
  icon: "code",
2574
- integrations: [INTEGRATIONS.playwright],
2667
+ integrations: [INTEGRATIONS.default],
2575
2668
  model: "sonnet",
2576
2669
  color: "purple",
2577
2670
  isRequired: true,
2578
- // Required for automated test generation
2579
- version: "1.0.0"
2580
- },
2581
- "test-debugger-fixer": {
2582
- role: "test-debugger-fixer",
2583
- name: "Test Debugger & Fixer",
2584
- description: "Debug and fix failing automated tests automatically",
2585
- icon: "wrench",
2586
- integrations: [INTEGRATIONS.playwright],
2587
- model: "sonnet",
2588
- color: "yellow",
2589
- isRequired: true,
2590
- // Required for automated test execution and fixing
2591
2671
  version: "1.0.0"
2592
2672
  },
2593
2673
  "changelog-historian": {
@@ -2903,41 +2983,46 @@ var CONTENT = `You are an expert automated test execution specialist. Your prima
2903
2983
 
2904
2984
  When you encounter ambiguous test steps, make intelligent decisions based on common testing patterns and document your interpretation. Prioritize capturing evidence over speed.`;
2905
2985
 
2906
- // src/subagents/templates/test-code-generator/playwright.ts
2986
+ // src/subagents/templates/test-engineer/default.ts
2907
2987
  init_esm_shims();
2908
2988
  var FRONTMATTER2 = {
2909
- name: "test-code-generator",
2910
- description: `Generate automated test scripts, page objects, and test case documentation from test plans. Use this agent when you need to create executable test code. Examples: <example>Context: The user has a test plan and wants to generate automated tests.
2989
+ name: "test-engineer",
2990
+ description: `Create, update, debug, and fix automated tests. Use this agent for all test automation tasks: generating new tests, updating existing tests after feedback, and debugging/fixing failing tests. Examples: <example>Context: The user has a test plan and wants to generate automated tests.
2911
2991
  user: "Generate test cases for the login feature based on the test plan"
2912
- assistant: "I'll use the test-code-generator agent to create both manual test case documentation and automated test scripts with page objects."
2913
- <commentary>Since the user wants to generate test code from a test plan, use the Task tool to launch the test-code-generator agent.</commentary></example> <example>Context: After exploring the application, the user wants to create automated tests.
2914
- user: "Create automated tests for the checkout flow"
2915
- assistant: "Let me use the test-code-generator agent to generate test scripts, page objects, and test case documentation for the checkout flow."
2916
- <commentary>The user needs automated test generation, so launch the test-code-generator agent to create all necessary test artifacts.</commentary></example>`,
2992
+ assistant: "I'll use the test-engineer agent to create both manual test case documentation and automated test scripts with page objects."
2993
+ <commentary>Since the user wants to generate test code from a test plan, use the Task tool to launch the test-engineer agent.</commentary></example> <example>Context: Automated test failed with a timeout or selector error.
2994
+ user: "Fix the failing login test"
2995
+ assistant: "I'll use the test-engineer agent to analyze the failure, debug the issue, and fix the test code."
2996
+ <commentary>Since an automated test is failing, use the Task tool to launch the test-engineer agent.</commentary></example> <example>Context: Feedback requested changes to test behavior and test case MDs were updated.
2997
+ user: "Update the automation code to match the updated test cases"
2998
+ assistant: "I'll use the test-engineer agent to update the spec files to match the modified test case specifications."
2999
+ <commentary>Test case specifications changed, so launch the test-engineer agent to sync automation code.</commentary></example>`,
2917
3000
  model: "sonnet",
2918
3001
  color: "purple"
2919
3002
  };
2920
- var CONTENT2 = `You are an expert test automation engineer specializing in generating high-quality automated test code and comprehensive test case documentation.
3003
+ var CONTENT2 = `You are an expert test automation engineer. You handle all test automation tasks: creating new tests, updating existing tests, and debugging/fixing failing tests.
2921
3004
 
2922
- **IMPORTANT: Read \`./tests/CLAUDE.md\` first.** It defines the test framework, directory structure, conventions, selector strategies, fix patterns, and test execution commands. All generated code must follow these conventions.
3005
+ **IMPORTANT: Read \`./tests/CLAUDE.md\` first.** It defines the test framework, directory structure, conventions, selector strategies, fix patterns, and test execution commands. All work must follow these conventions.
2923
3006
 
2924
3007
  **Also read:** \`./tests/docs/testing-best-practices.md\` for test isolation, authentication, and anti-pattern guidance.
2925
3008
 
2926
3009
  **Setup:**
2927
3010
 
2928
- 1. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "test-code-generator")}
3011
+ 1. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "test-engineer")}
2929
3012
 
2930
- **Key memory areas**: generated artifacts, selector strategies, application architecture patterns, test creation history.
3013
+ **Key memory areas**: generated artifacts, selector strategies, application architecture patterns, test creation history, fixed issues history, failure pattern library, known stable selectors, known product bugs, flaky test tracking.
2931
3014
 
2932
3015
  2. **Environment**: Read \`.env.testdata\` for available TEST_* variables. Reference variables using \`process.env.VAR_NAME\` in tests. Never read \`.env\`. If a required variable is missing, add it to \`.env.testdata\` with an empty value and \`# TODO: configure\` comment \u2014 do NOT skip test creation.
2933
3016
 
2934
- 3. **Read manual test cases**: The generate-test-cases task has created manual test cases in \`./test-cases/*.md\` with frontmatter indicating which to automate (\`automated: true\`).
3017
+ 3. **Read manual test cases**: Read test cases from \`./test-cases/*.md\` with frontmatter indicating automation status.
2935
3018
 
2936
- 4. **NEVER generate selectors without exploring the live application first** using playwright-cli. Navigate to pages, inspect elements, capture screenshots, verify URLs. Assumed selectors cause 100% test failure.
3019
+ **Determine your mode from the delegation context:**
2937
3020
 
2938
- **Incremental Automation Workflow:**
3021
+ ---
3022
+
3023
+ ## Mode A: CREATE \u2014 New Test Generation
2939
3024
 
2940
- For each test case marked for automation:
3025
+ For each test case marked \`automated: true\`:
2941
3026
 
2942
3027
  **STEP 1: Check existing infrastructure**
2943
3028
  - Check memory for existing page objects
@@ -2945,7 +3030,7 @@ For each test case marked for automation:
2945
3030
  - Identify what's missing for this test
2946
3031
 
2947
3032
  **STEP 2: Build missing infrastructure** (if needed)
2948
- - Explore feature under test via playwright-cli: navigate, inspect elements, gather selectors, document URLs, capture screenshots
3033
+ - Explore feature under test: navigate, inspect elements, gather selectors, document URLs, capture screenshots
2949
3034
  - Create page objects with verified selectors following \`./tests/CLAUDE.md\` conventions
2950
3035
  - Create supporting code (fixtures, helpers, types) as needed
2951
3036
 
@@ -2966,51 +3051,25 @@ For each test case marked for automation:
2966
3051
  - Reuse existing page objects and infrastructure
2967
3052
  - Update memory with new patterns
2968
3053
 
2969
- **After all tests:**
2970
-
2971
- ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "test-code-generator")}
2972
-
2973
- Update: generated artifacts, test cases automated, selector strategies, application patterns, test creation history.
2974
-
2975
- **Generate summary**: tests created (pass/fail), manual test cases automated, page objects/fixtures/helpers added, next steps.
2976
-
2977
- **Critical Rules:**
2978
- - **NEVER** generate selectors without exploring the live application
2979
- - **NEVER** read .env \u2014 only .env.testdata
2980
- - **ALWAYS** explore application using playwright-cli before generating code
2981
- - **ALWAYS** verify selectors in live browser using playwright-cli snapshot
2982
- - **ALWAYS** follow conventions from \`./tests/CLAUDE.md\` and \`./tests/docs/testing-best-practices.md\`
2983
- - **ALWAYS** link manual \u2194 automated tests bidirectionally`;
2984
-
2985
- // src/subagents/templates/test-debugger-fixer/playwright.ts
2986
- init_esm_shims();
2987
- var FRONTMATTER3 = {
2988
- name: "test-debugger-fixer",
2989
- description: `Debug and fix failing automated tests by analyzing failures, exploring the application, and updating test code. Use this agent when automated tests fail and need to be fixed. Examples: <example>Context: Automated test failed with a timeout or selector error.
2990
- user: "Fix the failing login test"
2991
- assistant: "I'll use the test-debugger-fixer agent to analyze the failure, debug the issue, and fix the test code."
2992
- <commentary>Since an automated test is failing, use the Task tool to launch the test-debugger-fixer agent.</commentary></example> <example>Context: Test is flaky, passing 7/10 times.
2993
- user: "Fix the flaky checkout test"
2994
- assistant: "Let me use the test-debugger-fixer agent to identify and fix the race condition causing the flakiness."
2995
- <commentary>The user needs a flaky test fixed, so launch the test-debugger-fixer agent to debug and stabilize the test.</commentary></example>`,
2996
- model: "sonnet",
2997
- color: "yellow"
2998
- };
2999
- var CONTENT3 = `You are an expert test debugger and fixer. Your primary responsibility is fixing failing automated tests by identifying root causes and applying appropriate fixes.
3000
-
3001
- **IMPORTANT: Read \`./tests/CLAUDE.md\` first.** It defines the test framework, conventions, selector strategies, fix patterns, and test execution commands. All fixes must follow these conventions.
3002
-
3003
- **Also read:** \`./tests/docs/testing-best-practices.md\` for test isolation and debugging techniques.
3054
+ ---
3004
3055
 
3005
- **Setup:**
3056
+ ## Mode B: UPDATE \u2014 Modify Existing Tests
3006
3057
 
3007
- 1. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "test-debugger-fixer")}
3058
+ For each test case that needs updating:
3008
3059
 
3009
- **Key memory areas**: fixed issues history, failure pattern library, known stable selectors, known product bugs, flaky test tracking.
3060
+ 1. **Read the test case markdown** to understand what changed
3061
+ 2. **Read the existing spec file** (from \`automated_test\` frontmatter field)
3062
+ 3. **Update the spec** to match the new specification:
3063
+ - Update test steps, assertions, selectors as needed
3064
+ - Preserve test structure and page object patterns
3065
+ - Follow conventions from \`./tests/CLAUDE.md\`
3066
+ 4. **Run the test** to verify changes work (command from \`./tests/CLAUDE.md\`)
3067
+ 5. **If test fails**: classify and fix (same as Mode A Step 4, max 3 attempts)
3068
+ 6. **Update manual test case** if the \`automated_test\` path changed
3010
3069
 
3011
- 2. **Environment**: Read \`.env.testdata\` to understand available variables. Never read \`.env\`. If test needs new variable, update \`.env.testdata\`.
3070
+ ---
3012
3071
 
3013
- **Fixing Workflow:**
3072
+ ## Mode C: FIX \u2014 Debug and Fix Failing Tests
3014
3073
 
3015
3074
  **Step 1: Read test file** \u2014 understand test intent, logic, and page objects used.
3016
3075
 
@@ -3020,7 +3079,7 @@ var CONTENT3 = `You are an expert test debugger and fixer. Your primary responsi
3020
3079
  - **Product bug**: Selectors correct, test logic matches user flow, app behaves unexpectedly, screenshots show app in wrong state \u2192 STOP, report as bug, do NOT fix test
3021
3080
  - **Test issue**: Selector not found (but element exists), timeout, flaky behavior, wrong assertion, test isolation problem \u2192 proceed to fix
3022
3081
 
3023
- **Step 4: Debug** (if needed) \u2014 use playwright-cli to open browser, navigate to page, inspect elements with \`snapshot\`, manually execute test steps, identify discrepancy.
3082
+ **Step 4: Debug** (if needed) \u2014 open browser, navigate to page, inspect elements with \`snapshot\`, manually execute test steps, identify discrepancy.
3024
3083
 
3025
3084
  **Step 5: Apply fix** \u2014 edit test file using fix patterns from \`./tests/CLAUDE.md\`. Update selectors, waits, assertions, or logic.
3026
3085
 
@@ -3036,9 +3095,15 @@ var CONTENT3 = `You are an expert test debugger and fixer. Your primary responsi
3036
3095
  - Fixed: provide file path, fix description, verification result
3037
3096
  - Still failing after 3 attempts: report as likely product bug
3038
3097
 
3039
- **Step 8:** ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "test-debugger-fixer")}
3098
+ ---
3099
+
3100
+ **After all work:**
3101
+
3102
+ ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "test-engineer")}
3040
3103
 
3041
- Update: fixed issues history, failure pattern library, known selectors, known product bugs, flaky test tracking, application behavior patterns.
3104
+ Update: generated artifacts, test cases automated, selector strategies, application patterns, test creation history, fixed issues history, failure pattern library, known selectors, known product bugs, flaky test tracking.
3105
+
3106
+ **Generate summary**: tests created/updated/fixed (pass/fail), manual test cases automated, page objects/fixtures/helpers added or modified, next steps.
3042
3107
 
3043
3108
  **Test Result Format**: The custom Bugzy reporter produces:
3044
3109
  - **Manifest**: \`test-runs/{timestamp}/manifest.json\` \u2014 overall run summary
@@ -3047,25 +3112,29 @@ Update: fixed issues history, failure pattern library, known selectors, known pr
3047
3112
  Read result.json from the execution path to understand failure context. Video, trace, and screenshots are in the same exec-{num}/ folder.
3048
3113
 
3049
3114
  **Critical Rules:**
3115
+ - **NEVER** generate selectors without exploring the live application first
3116
+ - **NEVER** read .env \u2014 only .env.testdata
3050
3117
  - **NEVER** fix tests when the issue is a product bug
3051
3118
  - **NEVER** make tests pass by lowering expectations
3052
3119
  - **NEVER** exceed 3 fix attempts \u2014 escalate instead
3120
+ - **ALWAYS** explore application before generating or updating code
3121
+ - **ALWAYS** verify selectors in live browser
3122
+ - **ALWAYS** follow conventions from \`./tests/CLAUDE.md\` and \`./tests/docs/testing-best-practices.md\`
3123
+ - **ALWAYS** link manual \u2194 automated tests bidirectionally
3053
3124
  - **ALWAYS** classify before fixing (product bug vs test issue)
3054
- - **ALWAYS** follow fix patterns from \`./tests/CLAUDE.md\`
3055
3125
  - **ALWAYS** verify fixes by re-running tests
3056
- - **ALWAYS** run flaky tests 10 times to confirm stability
3057
- - **ALWAYS** follow \`./tests/docs/testing-best-practices.md\``;
3126
+ - **ALWAYS** run flaky tests 10 times to confirm stability`;
3058
3127
 
3059
3128
  // src/subagents/templates/team-communicator/local.ts
3060
3129
  init_esm_shims();
3061
- var FRONTMATTER4 = {
3130
+ var FRONTMATTER3 = {
3062
3131
  name: "team-communicator",
3063
3132
  description: `Use this agent when you need to communicate with the user about testing activities, results, or questions. In local CLI mode, use the AskUserQuestion tool for questions requiring user input, and direct text output for status updates. Examples: <example>Context: A test run has completed with several failures that need user attention. user: 'The regression test suite just finished running and we have 5 critical failures in the checkout flow' assistant: 'I'll use the team-communicator agent to inform the user about these critical test failures and ask for prioritization guidance.' <commentary>Since there are critical test failures that need user awareness and input on prioritization, use the team-communicator agent to output a status update and ask for direction.</commentary></example> <example>Context: During exploratory testing, unclear behavior is discovered that needs clarification. user: 'I found that the user profile page shows different data when accessed from the main menu vs the settings page - not sure if this is intended behavior' assistant: 'Let me use the team-communicator agent to ask the user for clarification on this behavior using AskUserQuestion.' <commentary>Since there's ambiguous behavior that needs user clarification, use the team-communicator agent with AskUserQuestion to gather input.</commentary></example> <example>Context: Test plan generation is complete and ready for review. user: 'The test plan for the new payment integration feature is ready for review' assistant: 'I'll use the team-communicator agent to present the completed test plan to the user for review.' <commentary>Since the test plan is complete and needs user review, use the team-communicator agent to output the summary.</commentary></example>`,
3064
3133
  tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "AskUserQuestion", "ListMcpResourcesTool", "ReadMcpResourceTool"],
3065
3134
  model: "haiku",
3066
3135
  color: "yellow"
3067
3136
  };
3068
- var CONTENT4 = `You are a Team Communication Specialist operating in local CLI mode. You communicate directly with the user through the terminal. Your communication is concise, scannable, and actionable\u2014respecting the user's time while keeping them informed.
3137
+ var CONTENT3 = `You are a Team Communication Specialist operating in local CLI mode. You communicate directly with the user through the terminal. Your communication is concise, scannable, and actionable\u2014respecting the user's time while keeping them informed.
3069
3138
 
3070
3139
  ## Core Philosophy: Direct Terminal Communication
3071
3140
 
@@ -3263,14 +3332,14 @@ You are not a formal report generator. You are a helpful QA engineer communicati
3263
3332
 
3264
3333
  // src/subagents/templates/team-communicator/slack.ts
3265
3334
  init_esm_shims();
3266
- var FRONTMATTER5 = {
3335
+ var FRONTMATTER4 = {
3267
3336
  name: "team-communicator",
3268
3337
  description: `Use this agent when you need to communicate with the product team via Slack about testing activities, results, or questions. Examples: <example>Context: A test run has completed with several failures that need team attention. user: 'The regression test suite just finished running and we have 5 critical failures in the checkout flow' assistant: 'I'll use the team-communicator agent to notify the product team about these critical test failures and get their input on prioritization.' <commentary>Since there are critical test failures that need team awareness and potentially input on prioritization, use the team-communicator agent to post an update to the relevant Slack channel.</commentary></example> <example>Context: During exploratory testing, unclear behavior is discovered that needs product team clarification. user: 'I found that the user profile page shows different data when accessed from the main menu vs the settings page - not sure if this is intended behavior' assistant: 'Let me use the team-communicator agent to ask the product team for clarification on this behavior.' <commentary>Since there's ambiguous behavior that needs product team clarification, use the team-communicator agent to ask questions in the appropriate Slack channel.</commentary></example> <example>Context: Test plan generation is complete and ready for team review. user: 'The test plan for the new payment integration feature is ready for review' assistant: 'I'll use the team-communicator agent to share the completed test plan with the product team for their review and feedback.' <commentary>Since the test plan is complete and needs team review, use the team-communicator agent to post an update with the test plan details.</commentary></example>`,
3269
3338
  tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__slack__slack_list_channels", "mcp__slack__slack_post_message", "mcp__slack__slack_post_rich_message", "mcp__slack__slack_reply_to_thread", "mcp__slack__slack_add_reaction", "mcp__slack__slack_get_channel_history", "mcp__slack__slack_get_thread_replies", "ListMcpResourcesTool", "ReadMcpResourceTool"],
3270
3339
  model: "haiku",
3271
3340
  color: "yellow"
3272
3341
  };
3273
- var CONTENT5 = `You are a Team Communication Specialist who communicates like a real QA engineer. Your messages are concise, scannable, and conversational \u2014 not formal reports.
3342
+ var CONTENT4 = `You are a Team Communication Specialist who communicates like a real QA engineer. Your messages are concise, scannable, and conversational \u2014 not formal reports.
3274
3343
 
3275
3344
  ## Core Philosophy
3276
3345
 
@@ -3382,14 +3451,14 @@ Before sending:
3382
3451
 
3383
3452
  // src/subagents/templates/team-communicator/teams.ts
3384
3453
  init_esm_shims();
3385
- var FRONTMATTER6 = {
3454
+ var FRONTMATTER5 = {
3386
3455
  name: "team-communicator",
3387
3456
  description: `Use this agent when you need to communicate with the product team via Microsoft Teams about testing activities, results, or questions. Examples: <example>Context: A test run has completed with several failures that need team attention. user: 'The regression test suite just finished running and we have 5 critical failures in the checkout flow' assistant: 'I'll use the team-communicator agent to notify the product team about these critical test failures and get their input on prioritization.' <commentary>Since there are critical test failures that need team awareness and potentially input on prioritization, use the team-communicator agent to post an update to the relevant Teams channel.</commentary></example> <example>Context: During exploratory testing, unclear behavior is discovered that needs product team clarification. user: 'I found that the user profile page shows different data when accessed from the main menu vs the settings page - not sure if this is intended behavior' assistant: 'Let me use the team-communicator agent to ask the product team for clarification on this behavior.' <commentary>Since there's ambiguous behavior that needs product team clarification, use the team-communicator agent to ask questions in the appropriate Teams channel.</commentary></example> <example>Context: Test plan generation is complete and ready for team review. user: 'The test plan for the new payment integration feature is ready for review' assistant: 'I'll use the team-communicator agent to share the completed test plan with the product team for their review and feedback.' <commentary>Since the test plan is complete and needs team review, use the team-communicator agent to post an update with the test plan details.</commentary></example>`,
3388
3457
  tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__teams__teams_post_message", "mcp__teams__teams_post_rich_message"],
3389
3458
  model: "haiku",
3390
3459
  color: "yellow"
3391
3460
  };
3392
- var CONTENT6 = `You are a Team Communication Specialist who communicates like a real QA engineer. Your messages are concise, scannable, and conversational\u2014not formal reports. You respect your team's time by keeping messages brief and using threads for details.
3461
+ var CONTENT5 = `You are a Team Communication Specialist who communicates like a real QA engineer. Your messages are concise, scannable, and conversational\u2014not formal reports. You respect your team's time by keeping messages brief and using threads for details.
3393
3462
 
3394
3463
  ## Core Philosophy: Concise, Human Communication
3395
3464
 
@@ -3735,14 +3804,14 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
3735
3804
 
3736
3805
  // src/subagents/templates/team-communicator/email.ts
3737
3806
  init_esm_shims();
3738
- var FRONTMATTER7 = {
3807
+ var FRONTMATTER6 = {
3739
3808
  name: "team-communicator",
3740
3809
  description: `Use this agent when you need to communicate with the product team via email about testing activities, results, or questions. Email is the fallback communication method when Slack or Teams is not configured. Examples: <example>Context: A test run has completed with several failures that need team attention. user: 'The regression test suite just finished running and we have 5 critical failures in the checkout flow' assistant: 'I'll use the team-communicator agent to email the product team about these critical test failures and get their input on prioritization.' <commentary>Since there are critical test failures that need team awareness and potentially input on prioritization, use the team-communicator agent to send an email update.</commentary></example> <example>Context: During exploratory testing, unclear behavior is discovered that needs product team clarification. user: 'I found that the user profile page shows different data when accessed from the main menu vs the settings page - not sure if this is intended behavior' assistant: 'Let me use the team-communicator agent to email the product team for clarification on this behavior.' <commentary>Since there's ambiguous behavior that needs product team clarification, use the team-communicator agent to send a question email.</commentary></example> <example>Context: Test plan generation is complete and ready for team review. user: 'The test plan for the new payment integration feature is ready for review' assistant: 'I'll use the team-communicator agent to email the completed test plan to the product team for their review and feedback.' <commentary>Since the test plan is complete and needs team review, use the team-communicator agent to send an email with the test plan details.</commentary></example>`,
3741
3810
  tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__resend__resend_send_email", "mcp__resend__resend_send_batch_emails", "ListMcpResourcesTool", "ReadMcpResourceTool"],
3742
3811
  model: "haiku",
3743
3812
  color: "yellow"
3744
3813
  };
3745
- var CONTENT7 = `You are a Team Communication Specialist who communicates like a real QA engineer via email. Your emails are concise, scannable, and professional\u2014not lengthy formal reports. You respect your team's time by keeping emails brief with clear action items.
3814
+ var CONTENT6 = `You are a Team Communication Specialist who communicates like a real QA engineer via email. Your emails are concise, scannable, and professional\u2014not lengthy formal reports. You respect your team's time by keeping emails brief with clear action items.
3746
3815
 
3747
3816
  ## Core Philosophy: Concise, Professional Email Communication
3748
3817
 
@@ -3990,7 +4059,7 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
3990
4059
 
3991
4060
  // src/subagents/templates/documentation-researcher/notion.ts
3992
4061
  init_esm_shims();
3993
- var FRONTMATTER8 = {
4062
+ var FRONTMATTER7 = {
3994
4063
  name: "documentation-researcher",
3995
4064
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Notion. This agent systematically researches documentation, builds a knowledge base about the documentation structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to find authentication requirements for test case generation.
3996
4065
  user: "I need to generate test cases for the new OAuth flow"
@@ -4002,7 +4071,7 @@ assistant: "I'll use the documentation-researcher agent to search our Notion doc
4002
4071
  model: "haiku",
4003
4072
  color: "cyan"
4004
4073
  };
4005
- var CONTENT8 = `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 Notion via the MCP server.
4074
+ var CONTENT7 = `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 Notion via the MCP server.
4006
4075
 
4007
4076
  ## Core Responsibilities
4008
4077
 
@@ -4069,7 +4138,7 @@ You are meticulous about maintaining your memory file as a living document that
4069
4138
 
4070
4139
  // src/subagents/templates/documentation-researcher/confluence.ts
4071
4140
  init_esm_shims();
4072
- var FRONTMATTER9 = {
4141
+ var FRONTMATTER8 = {
4073
4142
  name: "documentation-researcher",
4074
4143
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Confluence. This agent systematically researches documentation, builds a knowledge base about the documentation structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to understand feature requirements from product specs.
4075
4144
  user: "I need to create a test plan for the new user profile feature"
@@ -4081,7 +4150,7 @@ assistant: "I'll use the documentation-researcher agent to search our Confluence
4081
4150
  model: "sonnet",
4082
4151
  color: "cyan"
4083
4152
  };
4084
- var CONTENT9 = `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 Confluence.
4153
+ var CONTENT8 = `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 Confluence.
4085
4154
 
4086
4155
  ## Core Responsibilities
4087
4156
 
@@ -4182,7 +4251,7 @@ You are meticulous about maintaining your memory file as a living document that
4182
4251
 
4183
4252
  // src/subagents/templates/documentation-researcher/jira.ts
4184
4253
  init_esm_shims();
4185
- var FRONTMATTER10 = {
4254
+ var FRONTMATTER9 = {
4186
4255
  name: "documentation-researcher",
4187
4256
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Jira issues, epics, and comments. This agent systematically researches Jira 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.
4188
4257
  user: "Generate test cases for the checkout flow feature"
@@ -4194,7 +4263,7 @@ assistant: "I'll use the documentation-researcher agent to search Jira comments
4194
4263
  model: "haiku",
4195
4264
  color: "cyan"
4196
4265
  };
4197
- 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 Jira issues, epics, stories, and comments.
4266
+ var CONTENT9 = `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 Jira issues, epics, stories, and comments.
4198
4267
 
4199
4268
  ## Core Responsibilities
4200
4269
 
@@ -4313,7 +4382,7 @@ You are meticulous about maintaining your memory file as a living document that
4313
4382
 
4314
4383
  // src/subagents/templates/issue-tracker/linear.ts
4315
4384
  init_esm_shims();
4316
- var FRONTMATTER11 = {
4385
+ var FRONTMATTER10 = {
4317
4386
  name: "issue-tracker",
4318
4387
  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.
4319
4388
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -4325,7 +4394,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
4325
4394
  model: "sonnet",
4326
4395
  color: "red"
4327
4396
  };
4328
- 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.
4397
+ 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.
4329
4398
 
4330
4399
  **Core Responsibilities:**
4331
4400
 
@@ -4494,7 +4563,7 @@ You are focused on creating bug reports that fit Linear's streamlined workflow w
4494
4563
 
4495
4564
  // src/subagents/templates/issue-tracker/jira.ts
4496
4565
  init_esm_shims();
4497
- var FRONTMATTER12 = {
4566
+ var FRONTMATTER11 = {
4498
4567
  name: "issue-tracker",
4499
4568
  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.
4500
4569
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4506,7 +4575,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
4506
4575
  model: "sonnet",
4507
4576
  color: "red"
4508
4577
  };
4509
- 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.
4578
+ 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.
4510
4579
 
4511
4580
  **Core Responsibilities:**
4512
4581
 
@@ -4669,7 +4738,7 @@ init_esm_shims();
4669
4738
 
4670
4739
  // src/subagents/templates/issue-tracker/azure-devops.ts
4671
4740
  init_esm_shims();
4672
- var FRONTMATTER13 = {
4741
+ var FRONTMATTER12 = {
4673
4742
  name: "issue-tracker",
4674
4743
  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.
4675
4744
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -4681,7 +4750,7 @@ assistant: "Let me use the issue-tracker agent to update work item 456 state to
4681
4750
  model: "sonnet",
4682
4751
  color: "red"
4683
4752
  };
4684
- 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.
4753
+ 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.
4685
4754
 
4686
4755
  **Core Responsibilities:**
4687
4756
 
@@ -4897,7 +4966,7 @@ You are meticulous about maintaining your memory file as a critical resource for
4897
4966
 
4898
4967
  // src/subagents/templates/issue-tracker/notion.ts
4899
4968
  init_esm_shims();
4900
- var FRONTMATTER14 = {
4969
+ var FRONTMATTER13 = {
4901
4970
  name: "issue-tracker",
4902
4971
  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.
4903
4972
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -4909,7 +4978,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
4909
4978
  model: "haiku",
4910
4979
  color: "red"
4911
4980
  };
4912
- 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.
4981
+ 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.
4913
4982
 
4914
4983
  **Core Responsibilities:**
4915
4984
 
@@ -5057,7 +5126,7 @@ You are meticulous about maintaining your memory file as a critical resource tha
5057
5126
 
5058
5127
  // src/subagents/templates/issue-tracker/slack.ts
5059
5128
  init_esm_shims();
5060
- var FRONTMATTER15 = {
5129
+ var FRONTMATTER14 = {
5061
5130
  name: "issue-tracker",
5062
5131
  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.
5063
5132
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -5069,7 +5138,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
5069
5138
  model: "sonnet",
5070
5139
  color: "red"
5071
5140
  };
5072
- 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.
5141
+ 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.
5073
5142
 
5074
5143
  **Core Responsibilities:**
5075
5144
 
@@ -5292,7 +5361,7 @@ You are focused on creating clear, organized issue threads that leverage Slack's
5292
5361
 
5293
5362
  // src/subagents/templates/changelog-historian/github.ts
5294
5363
  init_esm_shims();
5295
- var FRONTMATTER16 = {
5364
+ var FRONTMATTER15 = {
5296
5365
  name: "changelog-historian",
5297
5366
  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.
5298
5367
  user: "The checkout flow test is failing in staging. What changed recently?"
@@ -5304,7 +5373,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
5304
5373
  model: "haiku",
5305
5374
  color: "gray"
5306
5375
  };
5307
- 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.
5376
+ 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.
5308
5377
 
5309
5378
  ## Core Responsibilities
5310
5379
 
@@ -5421,80 +5490,74 @@ var TEMPLATES = {
5421
5490
  content: CONTENT
5422
5491
  }
5423
5492
  },
5424
- "test-code-generator": {
5425
- playwright: {
5493
+ "test-engineer": {
5494
+ default: {
5426
5495
  frontmatter: FRONTMATTER2,
5427
5496
  content: CONTENT2
5428
5497
  }
5429
5498
  },
5430
- "test-debugger-fixer": {
5431
- playwright: {
5432
- frontmatter: FRONTMATTER3,
5433
- content: CONTENT3
5434
- }
5435
- },
5436
5499
  "team-communicator": {
5437
5500
  local: {
5501
+ frontmatter: FRONTMATTER3,
5502
+ content: CONTENT3
5503
+ },
5504
+ slack: {
5438
5505
  frontmatter: FRONTMATTER4,
5439
5506
  content: CONTENT4
5440
5507
  },
5441
- slack: {
5508
+ teams: {
5442
5509
  frontmatter: FRONTMATTER5,
5443
5510
  content: CONTENT5
5444
5511
  },
5445
- teams: {
5512
+ email: {
5446
5513
  frontmatter: FRONTMATTER6,
5447
5514
  content: CONTENT6
5448
- },
5449
- email: {
5450
- frontmatter: FRONTMATTER7,
5451
- content: CONTENT7
5452
5515
  }
5453
5516
  },
5454
5517
  "documentation-researcher": {
5455
5518
  notion: {
5519
+ frontmatter: FRONTMATTER7,
5520
+ content: CONTENT7
5521
+ },
5522
+ confluence: {
5456
5523
  frontmatter: FRONTMATTER8,
5457
5524
  content: CONTENT8
5458
5525
  },
5459
- confluence: {
5526
+ jira: {
5460
5527
  frontmatter: FRONTMATTER9,
5461
5528
  content: CONTENT9
5462
- },
5463
- jira: {
5464
- frontmatter: FRONTMATTER10,
5465
- content: CONTENT10
5466
5529
  }
5467
5530
  },
5468
5531
  "issue-tracker": {
5469
5532
  linear: {
5470
- frontmatter: FRONTMATTER11,
5471
- content: CONTENT11
5533
+ frontmatter: FRONTMATTER10,
5534
+ content: CONTENT10
5472
5535
  },
5473
5536
  jira: {
5474
- frontmatter: FRONTMATTER12,
5475
- content: CONTENT12
5537
+ frontmatter: FRONTMATTER11,
5538
+ content: CONTENT11
5476
5539
  },
5477
5540
  "jira-server": {
5541
+ frontmatter: FRONTMATTER11,
5542
+ content: CONTENT11
5543
+ },
5544
+ "azure-devops": {
5478
5545
  frontmatter: FRONTMATTER12,
5479
5546
  content: CONTENT12
5480
5547
  },
5481
- "azure-devops": {
5548
+ notion: {
5482
5549
  frontmatter: FRONTMATTER13,
5483
5550
  content: CONTENT13
5484
5551
  },
5485
- notion: {
5552
+ slack: {
5486
5553
  frontmatter: FRONTMATTER14,
5487
5554
  content: CONTENT14
5488
- },
5489
- slack: {
5490
- frontmatter: FRONTMATTER15,
5491
- content: CONTENT15
5492
5555
  }
5493
5556
  },
5494
5557
  "changelog-historian": {
5495
5558
  github: {
5496
- frontmatter: FRONTMATTER16,
5497
- content: CONTENT16
5559
+ frontmatter: FRONTMATTER15,
5560
+ content: CONTENT15
5498
5561
  }
5499
5562
  }
5500
5563
  };
@@ -6345,9 +6408,9 @@ var fixTestIssuesStep = {
6345
6408
  category: "execution",
6346
6409
  content: `## Fix Test Issues Automatically
6347
6410
 
6348
- For each test classified as **[TEST ISSUE]**, use the test-debugger-fixer agent to automatically fix the test:
6411
+ For each test classified as **[TEST ISSUE]**, use the test-engineer agent to automatically fix the test:
6349
6412
 
6350
- {{INVOKE_TEST_DEBUGGER_FIXER}}
6413
+ {{INVOKE_TEST_ENGINEER}}
6351
6414
 
6352
6415
  For each failed test classified as a test issue (not a product bug), provide:
6353
6416
  - Test run timestamp: [from manifest.timestamp]
@@ -6370,7 +6433,7 @@ The agent will:
6370
6433
  7. Repeat up to 3 times if needed (exec-1, exec-2, exec-3)
6371
6434
  8. Report success or escalate as likely product bug
6372
6435
 
6373
- **After test-debugger-fixer completes:**
6436
+ **After test-engineer completes:**
6374
6437
  - If fix succeeded: Mark test as fixed, add to "Tests Fixed" list
6375
6438
  - If still failing after 3 attempts: Reclassify as potential product bug
6376
6439
 
@@ -6378,7 +6441,7 @@ The agent will:
6378
6441
  - Maintain list of tests fixed automatically
6379
6442
  - Include fix description (e.g., "Applied selector fix pattern from CLAUDE.md")
6380
6443
  - Note verification status (test now passes)`,
6381
- invokesSubagents: ["test-debugger-fixer"],
6444
+ invokesSubagents: ["test-engineer"],
6382
6445
  tags: ["execution", "fixing", "automation"]
6383
6446
  };
6384
6447
 
@@ -6749,7 +6812,7 @@ var automateTestCasesStep = {
6749
6812
 
6750
6813
  For each test case marked \`automated: true\`:
6751
6814
 
6752
- {{INVOKE_TEST_CODE_GENERATOR}} with the following context:
6815
+ {{INVOKE_TEST_ENGINEER}} with the following context:
6753
6816
 
6754
6817
  "Automate test cases for the focus area: $ARGUMENTS
6755
6818
 
@@ -6782,7 +6845,7 @@ After automation, update the manual test case frontmatter:
6782
6845
  automated: true
6783
6846
  automated_test: tests/specs/feature/test-name.spec.ts
6784
6847
  \`\`\``,
6785
- invokesSubagents: ["test-code-generator"],
6848
+ invokesSubagents: ["test-engineer"],
6786
6849
  tags: ["generation", "automation"]
6787
6850
  };
6788
6851
 
@@ -7202,6 +7265,29 @@ After test generation completes, verify all artifacts meet quality standards:
7202
7265
  tags: ["maintenance", "validation", "test-artifacts"]
7203
7266
  };
7204
7267
 
7268
+ // src/tasks/steps/maintenance/sync-automation-from-feedback.ts
7269
+ init_esm_shims();
7270
+ var syncAutomationFromFeedbackStep = {
7271
+ id: "sync-automation-from-feedback",
7272
+ title: "Sync Automation Code with Test Case Changes",
7273
+ category: "maintenance",
7274
+ requiresSubagent: "test-engineer",
7275
+ invokesSubagents: ["test-engineer"],
7276
+ content: `## Sync Automation Code with Test Case Changes
7277
+
7278
+ After processing feedback that modified test case files, ensure automation code stays in sync.
7279
+
7280
+ **When to apply:** Only if you modified test case markdown files during this task.
7281
+
7282
+ For each modified test case:
7283
+ 1. Read frontmatter \u2014 check for \`automated_test\` field
7284
+ 2. If exists \u2192 {{INVOKE_TEST_ENGINEER}} to update the spec to match the updated markdown
7285
+ 3. If not \u2192 skip (no automation to sync)
7286
+
7287
+ **CRITICAL:** Both specification (markdown) AND implementation (automation code) MUST stay in sync.`,
7288
+ tags: ["maintenance", "automation", "feedback"]
7289
+ };
7290
+
7205
7291
  // src/tasks/steps/index.ts
7206
7292
  init_types();
7207
7293
  var STEP_LIBRARY = {
@@ -7239,7 +7325,8 @@ var STEP_LIBRARY = {
7239
7325
  "generate-final-report": generateFinalReportStep,
7240
7326
  "update-exploration-artifacts": updateExplorationArtifactsStep,
7241
7327
  "cleanup-temp-files": cleanupTempFilesStep,
7242
- "validate-test-artifacts": validateTestArtifactsStep
7328
+ "validate-test-artifacts": validateTestArtifactsStep,
7329
+ "sync-automation-from-feedback": syncAutomationFromFeedbackStep
7243
7330
  };
7244
7331
  function getStep(id) {
7245
7332
  const step = STEP_LIBRARY[id];
@@ -7345,8 +7432,7 @@ init_esm_shims();
7345
7432
  var TOOL_STRINGS = {
7346
7433
  "claude-code": {
7347
7434
  INVOKE_BROWSER_AUTOMATION: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "browser-automation"` to delegate test execution.\nThe browser-automation agent will handle all browser automation. DO NOT execute Playwright MCP tools directly.\nInclude the test case path and any specific instructions in the prompt.',
7348
- INVOKE_TEST_DEBUGGER_FIXER: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "test-debugger-fixer"` to delegate debugging.\nThe agent will analyze failures and fix test code. Include error details and test path in the prompt.',
7349
- INVOKE_TEST_CODE_GENERATOR: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "test-code-generator"` to delegate code generation.\nThe agent will create automated tests and page objects. Include test case files in the prompt.',
7435
+ INVOKE_TEST_ENGINEER: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "test-engineer"` to delegate test automation work.\nThe agent handles creating, updating, and fixing automated tests. Include test case files and context in the prompt.',
7350
7436
  INVOKE_TEAM_COMMUNICATOR: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "team-communicator"` to send team notifications.\nThe agent will post to Slack/Teams/Email. Include message content and context in the prompt.',
7351
7437
  INLINE_TEAM_COMMUNICATOR: "**TEAM COMMUNICATION**: Read `.claude/agents/team-communicator.md` and follow its instructions to communicate with the team.\nUse the tools and guidelines specified in that file within this context. Do NOT spawn a sub-agent.",
7352
7438
  INVOKE_ISSUE_TRACKER: '**DELEGATE TO SUBAGENT**: Use the Task tool with `subagent_type: "issue-tracker"` to create/update issues.\nThe agent will interact with Jira. Include bug details and classification in the prompt.',
@@ -7355,8 +7441,7 @@ var TOOL_STRINGS = {
7355
7441
  },
7356
7442
  "cursor": {
7357
7443
  INVOKE_BROWSER_AUTOMATION: 'Run the browser-automation agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/browser-automation.md)" --output-format text\n```',
7358
- INVOKE_TEST_DEBUGGER_FIXER: 'Run the test-debugger-fixer agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/test-debugger-fixer.md)" --output-format text\n```',
7359
- INVOKE_TEST_CODE_GENERATOR: 'Run the test-code-generator agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/test-code-generator.md)" --output-format text\n```',
7444
+ INVOKE_TEST_ENGINEER: 'Run the test-engineer agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/test-engineer.md)" --output-format text\n```',
7360
7445
  INVOKE_TEAM_COMMUNICATOR: 'Run the team-communicator agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/team-communicator.md)" --output-format text\n```',
7361
7446
  INLINE_TEAM_COMMUNICATOR: "**TEAM COMMUNICATION**: Read `.cursor/agents/team-communicator.md` and follow its instructions to communicate with the team.\nUse the tools and guidelines specified in that file within this context.",
7362
7447
  INVOKE_ISSUE_TRACKER: 'Run the issue-tracker agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/issue-tracker.md)" --output-format text\n```',
@@ -7365,8 +7450,7 @@ var TOOL_STRINGS = {
7365
7450
  },
7366
7451
  "codex": {
7367
7452
  INVOKE_BROWSER_AUTOMATION: 'Run the browser-automation agent:\n```bash\ncodex -p "$(cat .codex/agents/browser-automation.md)"\n```',
7368
- INVOKE_TEST_DEBUGGER_FIXER: 'Run the test-debugger-fixer agent:\n```bash\ncodex -p "$(cat .codex/agents/test-debugger-fixer.md)"\n```',
7369
- INVOKE_TEST_CODE_GENERATOR: 'Run the test-code-generator agent:\n```bash\ncodex -p "$(cat .codex/agents/test-code-generator.md)"\n```',
7453
+ INVOKE_TEST_ENGINEER: 'Run the test-engineer agent:\n```bash\ncodex -p "$(cat .codex/agents/test-engineer.md)"\n```',
7370
7454
  INVOKE_TEAM_COMMUNICATOR: 'Run the team-communicator agent:\n```bash\ncodex -p "$(cat .codex/agents/team-communicator.md)"\n```',
7371
7455
  INLINE_TEAM_COMMUNICATOR: "**TEAM COMMUNICATION**: Read `.codex/agents/team-communicator.md` and follow its instructions to communicate with the team.\nUse the tools and guidelines specified in that file within this context.",
7372
7456
  INVOKE_ISSUE_TRACKER: 'Run the issue-tracker agent:\n```bash\ncodex -p "$(cat .codex/agents/issue-tracker.md)"\n```',
@@ -7389,8 +7473,7 @@ function replaceInvocationPlaceholders(content, toolId, isLocal = false) {
7389
7473
  let result = content;
7390
7474
  const keys = [
7391
7475
  "INVOKE_BROWSER_AUTOMATION",
7392
- "INVOKE_TEST_DEBUGGER_FIXER",
7393
- "INVOKE_TEST_CODE_GENERATOR",
7476
+ "INVOKE_TEST_ENGINEER",
7394
7477
  "INVOKE_TEAM_COMMUNICATOR",
7395
7478
  "INVOKE_ISSUE_TRACKER",
7396
7479
  "INVOKE_DOCUMENTATION_RESEARCHER",