@bugzy-ai/bugzy 1.18.2 → 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.
- package/LICENSE +21 -21
- package/README.md +273 -273
- package/dist/cli/index.cjs +295 -210
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.js +294 -209
- package/dist/cli/index.js.map +1 -1
- package/dist/index.cjs +291 -206
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +291 -206
- package/dist/index.js.map +1 -1
- package/dist/subagents/index.cjs +115 -137
- package/dist/subagents/index.cjs.map +1 -1
- package/dist/subagents/index.js +115 -137
- package/dist/subagents/index.js.map +1 -1
- package/dist/subagents/metadata.cjs +12 -18
- package/dist/subagents/metadata.cjs.map +1 -1
- package/dist/subagents/metadata.js +12 -18
- package/dist/subagents/metadata.js.map +1 -1
- package/dist/tasks/index.cjs +142 -54
- package/dist/tasks/index.cjs.map +1 -1
- package/dist/tasks/index.js +142 -54
- package/dist/tasks/index.js.map +1 -1
- package/dist/templates/init/.bugzy/runtime/knowledge-base.md +61 -0
- package/dist/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +97 -0
- package/dist/templates/init/.bugzy/runtime/project-context.md +35 -0
- package/dist/templates/init/.bugzy/runtime/subagent-memory-guide.md +87 -0
- package/dist/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -0
- package/dist/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -0
- package/dist/templates/init/.bugzy/runtime/test-execution-strategy.md +535 -0
- package/dist/templates/init/.bugzy/runtime/testing-best-practices.md +632 -0
- package/dist/templates/init/.gitignore-template +25 -0
- package/package.json +95 -95
- package/templates/init/.bugzy/runtime/knowledge-base.md +61 -61
- package/templates/init/.bugzy/runtime/knowledge-maintenance-guide.md +97 -97
- package/templates/init/.bugzy/runtime/project-context.md +35 -35
- package/templates/init/.bugzy/runtime/subagent-memory-guide.md +87 -87
- package/templates/init/.bugzy/runtime/templates/event-examples.md +194 -194
- package/templates/init/.bugzy/runtime/templates/test-plan-template.md +50 -50
- package/templates/init/.bugzy/runtime/templates/test-result-schema.md +498 -498
- package/templates/init/.claude/settings.json +28 -28
- package/templates/init/.env.testdata +18 -18
- package/templates/init/.gitignore-template +24 -24
- package/templates/init/AGENTS.md +155 -155
- package/templates/init/CLAUDE.md +157 -157
- package/templates/init/test-runs/README.md +45 -45
- package/templates/init/tests/CLAUDE.md +193 -193
- package/templates/init/tests/docs/test-execution-strategy.md +535 -535
- package/templates/init/tests/docs/testing-best-practices.md +724 -724
- package/templates/playwright/BasePage.template.ts +190 -190
- package/templates/playwright/auth.setup.template.ts +89 -89
- package/templates/playwright/dataGenerators.helper.template.ts +148 -148
- package/templates/playwright/dateUtils.helper.template.ts +96 -96
- package/templates/playwright/pages.fixture.template.ts +50 -50
- package/templates/playwright/playwright.config.template.ts +97 -97
- package/templates/playwright/reporters/__tests__/bugzy-reporter-failure-classification.test.ts +299 -299
- package/templates/playwright/reporters/__tests__/bugzy-reporter-manifest-merge.test.ts +329 -329
- package/templates/playwright/reporters/__tests__/playwright.config.ts +5 -5
- package/templates/playwright/reporters/bugzy-reporter.ts +784 -784
- package/templates/init/.bugzy/runtime/handlers/messages/feedback.md +0 -178
- package/templates/init/.bugzy/runtime/handlers/messages/question.md +0 -122
- 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.
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
235
|
+
**Invoke test-engineer Agent:**
|
|
236
236
|
|
|
237
|
-
{{
|
|
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-
|
|
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-
|
|
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
|
|
513
|
+
description: "Handle team messages, maintaining context for ongoing conversations",
|
|
514
514
|
frontmatter: {
|
|
515
|
-
description: "Handle team
|
|
516
|
-
"argument-hint": "[
|
|
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
|
|
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
|
|
539
|
+
// Step 6: Detect Intent (inline - simplified, no handler file loading)
|
|
540
540
|
{
|
|
541
541
|
inline: true,
|
|
542
|
-
title: "Detect Message Intent
|
|
543
|
-
content: `
|
|
542
|
+
title: "Detect Message Intent",
|
|
543
|
+
content: `Identify the intent type from the event payload or message patterns:
|
|
544
544
|
|
|
545
|
-
####
|
|
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
|
-
####
|
|
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
|
-
|
|
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
|
-
|
|
565
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
633
|
+
### Step 3: Formulate Answer
|
|
575
634
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
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
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
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
|
|
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
|
|
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
|
|
695
|
+
// Step 10: Clarification Protocol (for ambiguous intents)
|
|
610
696
|
"clarification-protocol",
|
|
611
|
-
// Step
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
{{
|
|
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-
|
|
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-
|
|
1773
|
-
optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator", "changelog-historian"
|
|
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-
|
|
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-
|
|
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-
|
|
2127
|
+
requiredSubagents: ["browser-automation", "test-engineer"],
|
|
2042
2128
|
optionalSubagents: ["issue-tracker", "team-communicator"],
|
|
2043
2129
|
dependentTasks: []
|
|
2044
2130
|
};
|
|
@@ -2103,12 +2189,14 @@ This step helps correlate what the tests cover with what the application actuall
|
|
|
2103
2189
|
{
|
|
2104
2190
|
inline: true,
|
|
2105
2191
|
title: "Commit Analysis Results",
|
|
2106
|
-
content: `Commit
|
|
2192
|
+
content: `Commit analysis artifacts to the **parent project repository** (the workspace root).
|
|
2107
2193
|
|
|
2108
|
-
|
|
2109
|
-
2. Any generated CLAUDE.md draft (if the external repo was missing one)
|
|
2194
|
+
**IMPORTANT \u2014 Do NOT stage the \`tests\` submodule.** The \`tests/\` directory is an external git submodule. Any changes made inside it (e.g., \`reporters/parse-results.ts\`, \`tests/CLAUDE.md\`) will be committed and pushed to the external repo automatically by the post-execution handler. Staging the submodule in the parent would record a local-only commit SHA that doesn't exist on the remote, causing a broken reference.
|
|
2110
2195
|
|
|
2111
|
-
|
|
2196
|
+
**What to commit in the parent repo:**
|
|
2197
|
+
1. \`git add .bugzy/\` \u2014 the test codebase analysis report and runtime files
|
|
2198
|
+
2. Do NOT run \`git add .\` or \`git add tests\` \u2014 this would stage the submodule pointer
|
|
2199
|
+
3. \`git commit -m "chore: analyze external test codebase"\`
|
|
2112
2200
|
|
|
2113
2201
|
These artifacts will be available to all future task executions for this project.`
|
|
2114
2202
|
},
|
|
@@ -2505,6 +2593,13 @@ var INTEGRATIONS = {
|
|
|
2505
2593
|
// No requiredMCP - uses built-in Claude Code tools (AskUserQuestion, text output)
|
|
2506
2594
|
isLocal: true,
|
|
2507
2595
|
integrationType: "local"
|
|
2596
|
+
},
|
|
2597
|
+
default: {
|
|
2598
|
+
id: "default",
|
|
2599
|
+
name: "Default",
|
|
2600
|
+
provider: "default",
|
|
2601
|
+
isLocal: true,
|
|
2602
|
+
integrationType: "local"
|
|
2508
2603
|
}
|
|
2509
2604
|
};
|
|
2510
2605
|
var SUBAGENTS = {
|
|
@@ -2564,28 +2659,15 @@ var SUBAGENTS = {
|
|
|
2564
2659
|
color: "cyan",
|
|
2565
2660
|
version: "1.0.0"
|
|
2566
2661
|
},
|
|
2567
|
-
"test-
|
|
2568
|
-
role: "test-
|
|
2569
|
-
name: "Test
|
|
2570
|
-
description: "
|
|
2662
|
+
"test-engineer": {
|
|
2663
|
+
role: "test-engineer",
|
|
2664
|
+
name: "Test Engineer",
|
|
2665
|
+
description: "Create, update, debug, and fix automated tests",
|
|
2571
2666
|
icon: "code",
|
|
2572
|
-
integrations: [INTEGRATIONS.
|
|
2667
|
+
integrations: [INTEGRATIONS.default],
|
|
2573
2668
|
model: "sonnet",
|
|
2574
2669
|
color: "purple",
|
|
2575
2670
|
isRequired: true,
|
|
2576
|
-
// Required for automated test generation
|
|
2577
|
-
version: "1.0.0"
|
|
2578
|
-
},
|
|
2579
|
-
"test-debugger-fixer": {
|
|
2580
|
-
role: "test-debugger-fixer",
|
|
2581
|
-
name: "Test Debugger & Fixer",
|
|
2582
|
-
description: "Debug and fix failing automated tests automatically",
|
|
2583
|
-
icon: "wrench",
|
|
2584
|
-
integrations: [INTEGRATIONS.playwright],
|
|
2585
|
-
model: "sonnet",
|
|
2586
|
-
color: "yellow",
|
|
2587
|
-
isRequired: true,
|
|
2588
|
-
// Required for automated test execution and fixing
|
|
2589
2671
|
version: "1.0.0"
|
|
2590
2672
|
},
|
|
2591
2673
|
"changelog-historian": {
|
|
@@ -2901,41 +2983,46 @@ var CONTENT = `You are an expert automated test execution specialist. Your prima
|
|
|
2901
2983
|
|
|
2902
2984
|
When you encounter ambiguous test steps, make intelligent decisions based on common testing patterns and document your interpretation. Prioritize capturing evidence over speed.`;
|
|
2903
2985
|
|
|
2904
|
-
// src/subagents/templates/test-
|
|
2986
|
+
// src/subagents/templates/test-engineer/default.ts
|
|
2905
2987
|
init_esm_shims();
|
|
2906
2988
|
var FRONTMATTER2 = {
|
|
2907
|
-
name: "test-
|
|
2908
|
-
description: `
|
|
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.
|
|
2909
2991
|
user: "Generate test cases for the login feature based on the test plan"
|
|
2910
|
-
assistant: "I'll use the test-
|
|
2911
|
-
<commentary>Since the user wants to generate test code from a test plan, use the Task tool to launch the test-
|
|
2912
|
-
user: "
|
|
2913
|
-
assistant: "
|
|
2914
|
-
<commentary>
|
|
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>`,
|
|
2915
3000
|
model: "sonnet",
|
|
2916
3001
|
color: "purple"
|
|
2917
3002
|
};
|
|
2918
|
-
var CONTENT2 = `You are an expert test automation engineer
|
|
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.
|
|
2919
3004
|
|
|
2920
|
-
**IMPORTANT: Read \`./tests/CLAUDE.md\` first.** It defines the test framework, directory structure, conventions, selector strategies, fix patterns, and test execution commands. All
|
|
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.
|
|
2921
3006
|
|
|
2922
3007
|
**Also read:** \`./tests/docs/testing-best-practices.md\` for test isolation, authentication, and anti-pattern guidance.
|
|
2923
3008
|
|
|
2924
3009
|
**Setup:**
|
|
2925
3010
|
|
|
2926
|
-
1. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "test-
|
|
3011
|
+
1. ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "test-engineer")}
|
|
2927
3012
|
|
|
2928
|
-
**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.
|
|
2929
3014
|
|
|
2930
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.
|
|
2931
3016
|
|
|
2932
|
-
3. **Read manual test cases**:
|
|
3017
|
+
3. **Read manual test cases**: Read test cases from \`./test-cases/*.md\` with frontmatter indicating automation status.
|
|
2933
3018
|
|
|
2934
|
-
|
|
3019
|
+
**Determine your mode from the delegation context:**
|
|
2935
3020
|
|
|
2936
|
-
|
|
3021
|
+
---
|
|
3022
|
+
|
|
3023
|
+
## Mode A: CREATE \u2014 New Test Generation
|
|
2937
3024
|
|
|
2938
|
-
For each test case marked
|
|
3025
|
+
For each test case marked \`automated: true\`:
|
|
2939
3026
|
|
|
2940
3027
|
**STEP 1: Check existing infrastructure**
|
|
2941
3028
|
- Check memory for existing page objects
|
|
@@ -2943,7 +3030,7 @@ For each test case marked for automation:
|
|
|
2943
3030
|
- Identify what's missing for this test
|
|
2944
3031
|
|
|
2945
3032
|
**STEP 2: Build missing infrastructure** (if needed)
|
|
2946
|
-
- Explore feature under test
|
|
3033
|
+
- Explore feature under test: navigate, inspect elements, gather selectors, document URLs, capture screenshots
|
|
2947
3034
|
- Create page objects with verified selectors following \`./tests/CLAUDE.md\` conventions
|
|
2948
3035
|
- Create supporting code (fixtures, helpers, types) as needed
|
|
2949
3036
|
|
|
@@ -2964,51 +3051,25 @@ For each test case marked for automation:
|
|
|
2964
3051
|
- Reuse existing page objects and infrastructure
|
|
2965
3052
|
- Update memory with new patterns
|
|
2966
3053
|
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "test-code-generator")}
|
|
2970
|
-
|
|
2971
|
-
Update: generated artifacts, test cases automated, selector strategies, application patterns, test creation history.
|
|
2972
|
-
|
|
2973
|
-
**Generate summary**: tests created (pass/fail), manual test cases automated, page objects/fixtures/helpers added, next steps.
|
|
2974
|
-
|
|
2975
|
-
**Critical Rules:**
|
|
2976
|
-
- **NEVER** generate selectors without exploring the live application
|
|
2977
|
-
- **NEVER** read .env \u2014 only .env.testdata
|
|
2978
|
-
- **ALWAYS** explore application using playwright-cli before generating code
|
|
2979
|
-
- **ALWAYS** verify selectors in live browser using playwright-cli snapshot
|
|
2980
|
-
- **ALWAYS** follow conventions from \`./tests/CLAUDE.md\` and \`./tests/docs/testing-best-practices.md\`
|
|
2981
|
-
- **ALWAYS** link manual \u2194 automated tests bidirectionally`;
|
|
2982
|
-
|
|
2983
|
-
// src/subagents/templates/test-debugger-fixer/playwright.ts
|
|
2984
|
-
init_esm_shims();
|
|
2985
|
-
var FRONTMATTER3 = {
|
|
2986
|
-
name: "test-debugger-fixer",
|
|
2987
|
-
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.
|
|
2988
|
-
user: "Fix the failing login test"
|
|
2989
|
-
assistant: "I'll use the test-debugger-fixer agent to analyze the failure, debug the issue, and fix the test code."
|
|
2990
|
-
<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.
|
|
2991
|
-
user: "Fix the flaky checkout test"
|
|
2992
|
-
assistant: "Let me use the test-debugger-fixer agent to identify and fix the race condition causing the flakiness."
|
|
2993
|
-
<commentary>The user needs a flaky test fixed, so launch the test-debugger-fixer agent to debug and stabilize the test.</commentary></example>`,
|
|
2994
|
-
model: "sonnet",
|
|
2995
|
-
color: "yellow"
|
|
2996
|
-
};
|
|
2997
|
-
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.
|
|
2998
|
-
|
|
2999
|
-
**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.
|
|
3000
|
-
|
|
3001
|
-
**Also read:** \`./tests/docs/testing-best-practices.md\` for test isolation and debugging techniques.
|
|
3054
|
+
---
|
|
3002
3055
|
|
|
3003
|
-
|
|
3056
|
+
## Mode B: UPDATE \u2014 Modify Existing Tests
|
|
3004
3057
|
|
|
3005
|
-
|
|
3058
|
+
For each test case that needs updating:
|
|
3006
3059
|
|
|
3007
|
-
|
|
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
|
|
3008
3069
|
|
|
3009
|
-
|
|
3070
|
+
---
|
|
3010
3071
|
|
|
3011
|
-
|
|
3072
|
+
## Mode C: FIX \u2014 Debug and Fix Failing Tests
|
|
3012
3073
|
|
|
3013
3074
|
**Step 1: Read test file** \u2014 understand test intent, logic, and page objects used.
|
|
3014
3075
|
|
|
@@ -3018,7 +3079,7 @@ var CONTENT3 = `You are an expert test debugger and fixer. Your primary responsi
|
|
|
3018
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
|
|
3019
3080
|
- **Test issue**: Selector not found (but element exists), timeout, flaky behavior, wrong assertion, test isolation problem \u2192 proceed to fix
|
|
3020
3081
|
|
|
3021
|
-
**Step 4: Debug** (if needed) \u2014
|
|
3082
|
+
**Step 4: Debug** (if needed) \u2014 open browser, navigate to page, inspect elements with \`snapshot\`, manually execute test steps, identify discrepancy.
|
|
3022
3083
|
|
|
3023
3084
|
**Step 5: Apply fix** \u2014 edit test file using fix patterns from \`./tests/CLAUDE.md\`. Update selectors, waits, assertions, or logic.
|
|
3024
3085
|
|
|
@@ -3034,9 +3095,15 @@ var CONTENT3 = `You are an expert test debugger and fixer. Your primary responsi
|
|
|
3034
3095
|
- Fixed: provide file path, fix description, verification result
|
|
3035
3096
|
- Still failing after 3 attempts: report as likely product bug
|
|
3036
3097
|
|
|
3037
|
-
|
|
3098
|
+
---
|
|
3099
|
+
|
|
3100
|
+
**After all work:**
|
|
3101
|
+
|
|
3102
|
+
${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "test-engineer")}
|
|
3038
3103
|
|
|
3039
|
-
Update: fixed issues history, failure pattern library, known selectors, known product bugs, flaky test tracking
|
|
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.
|
|
3040
3107
|
|
|
3041
3108
|
**Test Result Format**: The custom Bugzy reporter produces:
|
|
3042
3109
|
- **Manifest**: \`test-runs/{timestamp}/manifest.json\` \u2014 overall run summary
|
|
@@ -3045,25 +3112,29 @@ Update: fixed issues history, failure pattern library, known selectors, known pr
|
|
|
3045
3112
|
Read result.json from the execution path to understand failure context. Video, trace, and screenshots are in the same exec-{num}/ folder.
|
|
3046
3113
|
|
|
3047
3114
|
**Critical Rules:**
|
|
3115
|
+
- **NEVER** generate selectors without exploring the live application first
|
|
3116
|
+
- **NEVER** read .env \u2014 only .env.testdata
|
|
3048
3117
|
- **NEVER** fix tests when the issue is a product bug
|
|
3049
3118
|
- **NEVER** make tests pass by lowering expectations
|
|
3050
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
|
|
3051
3124
|
- **ALWAYS** classify before fixing (product bug vs test issue)
|
|
3052
|
-
- **ALWAYS** follow fix patterns from \`./tests/CLAUDE.md\`
|
|
3053
3125
|
- **ALWAYS** verify fixes by re-running tests
|
|
3054
|
-
- **ALWAYS** run flaky tests 10 times to confirm stability
|
|
3055
|
-
- **ALWAYS** follow \`./tests/docs/testing-best-practices.md\``;
|
|
3126
|
+
- **ALWAYS** run flaky tests 10 times to confirm stability`;
|
|
3056
3127
|
|
|
3057
3128
|
// src/subagents/templates/team-communicator/local.ts
|
|
3058
3129
|
init_esm_shims();
|
|
3059
|
-
var
|
|
3130
|
+
var FRONTMATTER3 = {
|
|
3060
3131
|
name: "team-communicator",
|
|
3061
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>`,
|
|
3062
3133
|
tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "AskUserQuestion", "ListMcpResourcesTool", "ReadMcpResourceTool"],
|
|
3063
3134
|
model: "haiku",
|
|
3064
3135
|
color: "yellow"
|
|
3065
3136
|
};
|
|
3066
|
-
var
|
|
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.
|
|
3067
3138
|
|
|
3068
3139
|
## Core Philosophy: Direct Terminal Communication
|
|
3069
3140
|
|
|
@@ -3261,14 +3332,14 @@ You are not a formal report generator. You are a helpful QA engineer communicati
|
|
|
3261
3332
|
|
|
3262
3333
|
// src/subagents/templates/team-communicator/slack.ts
|
|
3263
3334
|
init_esm_shims();
|
|
3264
|
-
var
|
|
3335
|
+
var FRONTMATTER4 = {
|
|
3265
3336
|
name: "team-communicator",
|
|
3266
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>`,
|
|
3267
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"],
|
|
3268
3339
|
model: "haiku",
|
|
3269
3340
|
color: "yellow"
|
|
3270
3341
|
};
|
|
3271
|
-
var
|
|
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.
|
|
3272
3343
|
|
|
3273
3344
|
## Core Philosophy
|
|
3274
3345
|
|
|
@@ -3380,14 +3451,14 @@ Before sending:
|
|
|
3380
3451
|
|
|
3381
3452
|
// src/subagents/templates/team-communicator/teams.ts
|
|
3382
3453
|
init_esm_shims();
|
|
3383
|
-
var
|
|
3454
|
+
var FRONTMATTER5 = {
|
|
3384
3455
|
name: "team-communicator",
|
|
3385
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>`,
|
|
3386
3457
|
tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__teams__teams_post_message", "mcp__teams__teams_post_rich_message"],
|
|
3387
3458
|
model: "haiku",
|
|
3388
3459
|
color: "yellow"
|
|
3389
3460
|
};
|
|
3390
|
-
var
|
|
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.
|
|
3391
3462
|
|
|
3392
3463
|
## Core Philosophy: Concise, Human Communication
|
|
3393
3464
|
|
|
@@ -3733,14 +3804,14 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
|
|
|
3733
3804
|
|
|
3734
3805
|
// src/subagents/templates/team-communicator/email.ts
|
|
3735
3806
|
init_esm_shims();
|
|
3736
|
-
var
|
|
3807
|
+
var FRONTMATTER6 = {
|
|
3737
3808
|
name: "team-communicator",
|
|
3738
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>`,
|
|
3739
3810
|
tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__resend__resend_send_email", "mcp__resend__resend_send_batch_emails", "ListMcpResourcesTool", "ReadMcpResourceTool"],
|
|
3740
3811
|
model: "haiku",
|
|
3741
3812
|
color: "yellow"
|
|
3742
3813
|
};
|
|
3743
|
-
var
|
|
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.
|
|
3744
3815
|
|
|
3745
3816
|
## Core Philosophy: Concise, Professional Email Communication
|
|
3746
3817
|
|
|
@@ -3988,7 +4059,7 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
|
|
|
3988
4059
|
|
|
3989
4060
|
// src/subagents/templates/documentation-researcher/notion.ts
|
|
3990
4061
|
init_esm_shims();
|
|
3991
|
-
var
|
|
4062
|
+
var FRONTMATTER7 = {
|
|
3992
4063
|
name: "documentation-researcher",
|
|
3993
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.
|
|
3994
4065
|
user: "I need to generate test cases for the new OAuth flow"
|
|
@@ -4000,7 +4071,7 @@ assistant: "I'll use the documentation-researcher agent to search our Notion doc
|
|
|
4000
4071
|
model: "haiku",
|
|
4001
4072
|
color: "cyan"
|
|
4002
4073
|
};
|
|
4003
|
-
var
|
|
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.
|
|
4004
4075
|
|
|
4005
4076
|
## Core Responsibilities
|
|
4006
4077
|
|
|
@@ -4067,7 +4138,7 @@ You are meticulous about maintaining your memory file as a living document that
|
|
|
4067
4138
|
|
|
4068
4139
|
// src/subagents/templates/documentation-researcher/confluence.ts
|
|
4069
4140
|
init_esm_shims();
|
|
4070
|
-
var
|
|
4141
|
+
var FRONTMATTER8 = {
|
|
4071
4142
|
name: "documentation-researcher",
|
|
4072
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.
|
|
4073
4144
|
user: "I need to create a test plan for the new user profile feature"
|
|
@@ -4079,7 +4150,7 @@ assistant: "I'll use the documentation-researcher agent to search our Confluence
|
|
|
4079
4150
|
model: "sonnet",
|
|
4080
4151
|
color: "cyan"
|
|
4081
4152
|
};
|
|
4082
|
-
var
|
|
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.
|
|
4083
4154
|
|
|
4084
4155
|
## Core Responsibilities
|
|
4085
4156
|
|
|
@@ -4180,7 +4251,7 @@ You are meticulous about maintaining your memory file as a living document that
|
|
|
4180
4251
|
|
|
4181
4252
|
// src/subagents/templates/documentation-researcher/jira.ts
|
|
4182
4253
|
init_esm_shims();
|
|
4183
|
-
var
|
|
4254
|
+
var FRONTMATTER9 = {
|
|
4184
4255
|
name: "documentation-researcher",
|
|
4185
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.
|
|
4186
4257
|
user: "Generate test cases for the checkout flow feature"
|
|
@@ -4192,7 +4263,7 @@ assistant: "I'll use the documentation-researcher agent to search Jira comments
|
|
|
4192
4263
|
model: "haiku",
|
|
4193
4264
|
color: "cyan"
|
|
4194
4265
|
};
|
|
4195
|
-
var
|
|
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.
|
|
4196
4267
|
|
|
4197
4268
|
## Core Responsibilities
|
|
4198
4269
|
|
|
@@ -4311,7 +4382,7 @@ You are meticulous about maintaining your memory file as a living document that
|
|
|
4311
4382
|
|
|
4312
4383
|
// src/subagents/templates/issue-tracker/linear.ts
|
|
4313
4384
|
init_esm_shims();
|
|
4314
|
-
var
|
|
4385
|
+
var FRONTMATTER10 = {
|
|
4315
4386
|
name: "issue-tracker",
|
|
4316
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.
|
|
4317
4388
|
user: "The login flow is broken - users get a 500 error when submitting credentials"
|
|
@@ -4323,7 +4394,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
|
|
|
4323
4394
|
model: "sonnet",
|
|
4324
4395
|
color: "red"
|
|
4325
4396
|
};
|
|
4326
|
-
var
|
|
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.
|
|
4327
4398
|
|
|
4328
4399
|
**Core Responsibilities:**
|
|
4329
4400
|
|
|
@@ -4492,7 +4563,7 @@ You are focused on creating bug reports that fit Linear's streamlined workflow w
|
|
|
4492
4563
|
|
|
4493
4564
|
// src/subagents/templates/issue-tracker/jira.ts
|
|
4494
4565
|
init_esm_shims();
|
|
4495
|
-
var
|
|
4566
|
+
var FRONTMATTER11 = {
|
|
4496
4567
|
name: "issue-tracker",
|
|
4497
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.
|
|
4498
4569
|
user: "5 tests failed in the checkout flow - payment validation is broken"
|
|
@@ -4504,7 +4575,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
|
|
|
4504
4575
|
model: "sonnet",
|
|
4505
4576
|
color: "red"
|
|
4506
4577
|
};
|
|
4507
|
-
var
|
|
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.
|
|
4508
4579
|
|
|
4509
4580
|
**Core Responsibilities:**
|
|
4510
4581
|
|
|
@@ -4667,7 +4738,7 @@ init_esm_shims();
|
|
|
4667
4738
|
|
|
4668
4739
|
// src/subagents/templates/issue-tracker/azure-devops.ts
|
|
4669
4740
|
init_esm_shims();
|
|
4670
|
-
var
|
|
4741
|
+
var FRONTMATTER12 = {
|
|
4671
4742
|
name: "issue-tracker",
|
|
4672
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.
|
|
4673
4744
|
user: "5 tests failed in the checkout flow - payment validation is broken"
|
|
@@ -4679,7 +4750,7 @@ assistant: "Let me use the issue-tracker agent to update work item 456 state to
|
|
|
4679
4750
|
model: "sonnet",
|
|
4680
4751
|
color: "red"
|
|
4681
4752
|
};
|
|
4682
|
-
var
|
|
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.
|
|
4683
4754
|
|
|
4684
4755
|
**Core Responsibilities:**
|
|
4685
4756
|
|
|
@@ -4895,7 +4966,7 @@ You are meticulous about maintaining your memory file as a critical resource for
|
|
|
4895
4966
|
|
|
4896
4967
|
// src/subagents/templates/issue-tracker/notion.ts
|
|
4897
4968
|
init_esm_shims();
|
|
4898
|
-
var
|
|
4969
|
+
var FRONTMATTER13 = {
|
|
4899
4970
|
name: "issue-tracker",
|
|
4900
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.
|
|
4901
4972
|
user: "The submit button on the checkout page doesn't work on mobile Safari"
|
|
@@ -4907,7 +4978,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
|
|
|
4907
4978
|
model: "haiku",
|
|
4908
4979
|
color: "red"
|
|
4909
4980
|
};
|
|
4910
|
-
var
|
|
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.
|
|
4911
4982
|
|
|
4912
4983
|
**Core Responsibilities:**
|
|
4913
4984
|
|
|
@@ -5055,7 +5126,7 @@ You are meticulous about maintaining your memory file as a critical resource tha
|
|
|
5055
5126
|
|
|
5056
5127
|
// src/subagents/templates/issue-tracker/slack.ts
|
|
5057
5128
|
init_esm_shims();
|
|
5058
|
-
var
|
|
5129
|
+
var FRONTMATTER14 = {
|
|
5059
5130
|
name: "issue-tracker",
|
|
5060
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.
|
|
5061
5132
|
user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
|
|
@@ -5067,7 +5138,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
|
|
|
5067
5138
|
model: "sonnet",
|
|
5068
5139
|
color: "red"
|
|
5069
5140
|
};
|
|
5070
|
-
var
|
|
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.
|
|
5071
5142
|
|
|
5072
5143
|
**Core Responsibilities:**
|
|
5073
5144
|
|
|
@@ -5290,7 +5361,7 @@ You are focused on creating clear, organized issue threads that leverage Slack's
|
|
|
5290
5361
|
|
|
5291
5362
|
// src/subagents/templates/changelog-historian/github.ts
|
|
5292
5363
|
init_esm_shims();
|
|
5293
|
-
var
|
|
5364
|
+
var FRONTMATTER15 = {
|
|
5294
5365
|
name: "changelog-historian",
|
|
5295
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.
|
|
5296
5367
|
user: "The checkout flow test is failing in staging. What changed recently?"
|
|
@@ -5302,7 +5373,7 @@ assistant: "I'll use the changelog-historian agent to compare the two releases a
|
|
|
5302
5373
|
model: "haiku",
|
|
5303
5374
|
color: "gray"
|
|
5304
5375
|
};
|
|
5305
|
-
var
|
|
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.
|
|
5306
5377
|
|
|
5307
5378
|
## Core Responsibilities
|
|
5308
5379
|
|
|
@@ -5419,80 +5490,74 @@ var TEMPLATES = {
|
|
|
5419
5490
|
content: CONTENT
|
|
5420
5491
|
}
|
|
5421
5492
|
},
|
|
5422
|
-
"test-
|
|
5423
|
-
|
|
5493
|
+
"test-engineer": {
|
|
5494
|
+
default: {
|
|
5424
5495
|
frontmatter: FRONTMATTER2,
|
|
5425
5496
|
content: CONTENT2
|
|
5426
5497
|
}
|
|
5427
5498
|
},
|
|
5428
|
-
"test-debugger-fixer": {
|
|
5429
|
-
playwright: {
|
|
5430
|
-
frontmatter: FRONTMATTER3,
|
|
5431
|
-
content: CONTENT3
|
|
5432
|
-
}
|
|
5433
|
-
},
|
|
5434
5499
|
"team-communicator": {
|
|
5435
5500
|
local: {
|
|
5501
|
+
frontmatter: FRONTMATTER3,
|
|
5502
|
+
content: CONTENT3
|
|
5503
|
+
},
|
|
5504
|
+
slack: {
|
|
5436
5505
|
frontmatter: FRONTMATTER4,
|
|
5437
5506
|
content: CONTENT4
|
|
5438
5507
|
},
|
|
5439
|
-
|
|
5508
|
+
teams: {
|
|
5440
5509
|
frontmatter: FRONTMATTER5,
|
|
5441
5510
|
content: CONTENT5
|
|
5442
5511
|
},
|
|
5443
|
-
|
|
5512
|
+
email: {
|
|
5444
5513
|
frontmatter: FRONTMATTER6,
|
|
5445
5514
|
content: CONTENT6
|
|
5446
|
-
},
|
|
5447
|
-
email: {
|
|
5448
|
-
frontmatter: FRONTMATTER7,
|
|
5449
|
-
content: CONTENT7
|
|
5450
5515
|
}
|
|
5451
5516
|
},
|
|
5452
5517
|
"documentation-researcher": {
|
|
5453
5518
|
notion: {
|
|
5519
|
+
frontmatter: FRONTMATTER7,
|
|
5520
|
+
content: CONTENT7
|
|
5521
|
+
},
|
|
5522
|
+
confluence: {
|
|
5454
5523
|
frontmatter: FRONTMATTER8,
|
|
5455
5524
|
content: CONTENT8
|
|
5456
5525
|
},
|
|
5457
|
-
|
|
5526
|
+
jira: {
|
|
5458
5527
|
frontmatter: FRONTMATTER9,
|
|
5459
5528
|
content: CONTENT9
|
|
5460
|
-
},
|
|
5461
|
-
jira: {
|
|
5462
|
-
frontmatter: FRONTMATTER10,
|
|
5463
|
-
content: CONTENT10
|
|
5464
5529
|
}
|
|
5465
5530
|
},
|
|
5466
5531
|
"issue-tracker": {
|
|
5467
5532
|
linear: {
|
|
5468
|
-
frontmatter:
|
|
5469
|
-
content:
|
|
5533
|
+
frontmatter: FRONTMATTER10,
|
|
5534
|
+
content: CONTENT10
|
|
5470
5535
|
},
|
|
5471
5536
|
jira: {
|
|
5472
|
-
frontmatter:
|
|
5473
|
-
content:
|
|
5537
|
+
frontmatter: FRONTMATTER11,
|
|
5538
|
+
content: CONTENT11
|
|
5474
5539
|
},
|
|
5475
5540
|
"jira-server": {
|
|
5541
|
+
frontmatter: FRONTMATTER11,
|
|
5542
|
+
content: CONTENT11
|
|
5543
|
+
},
|
|
5544
|
+
"azure-devops": {
|
|
5476
5545
|
frontmatter: FRONTMATTER12,
|
|
5477
5546
|
content: CONTENT12
|
|
5478
5547
|
},
|
|
5479
|
-
|
|
5548
|
+
notion: {
|
|
5480
5549
|
frontmatter: FRONTMATTER13,
|
|
5481
5550
|
content: CONTENT13
|
|
5482
5551
|
},
|
|
5483
|
-
|
|
5552
|
+
slack: {
|
|
5484
5553
|
frontmatter: FRONTMATTER14,
|
|
5485
5554
|
content: CONTENT14
|
|
5486
|
-
},
|
|
5487
|
-
slack: {
|
|
5488
|
-
frontmatter: FRONTMATTER15,
|
|
5489
|
-
content: CONTENT15
|
|
5490
5555
|
}
|
|
5491
5556
|
},
|
|
5492
5557
|
"changelog-historian": {
|
|
5493
5558
|
github: {
|
|
5494
|
-
frontmatter:
|
|
5495
|
-
content:
|
|
5559
|
+
frontmatter: FRONTMATTER15,
|
|
5560
|
+
content: CONTENT15
|
|
5496
5561
|
}
|
|
5497
5562
|
}
|
|
5498
5563
|
};
|
|
@@ -6343,9 +6408,9 @@ var fixTestIssuesStep = {
|
|
|
6343
6408
|
category: "execution",
|
|
6344
6409
|
content: `## Fix Test Issues Automatically
|
|
6345
6410
|
|
|
6346
|
-
For each test classified as **[TEST ISSUE]**, use the test-
|
|
6411
|
+
For each test classified as **[TEST ISSUE]**, use the test-engineer agent to automatically fix the test:
|
|
6347
6412
|
|
|
6348
|
-
{{
|
|
6413
|
+
{{INVOKE_TEST_ENGINEER}}
|
|
6349
6414
|
|
|
6350
6415
|
For each failed test classified as a test issue (not a product bug), provide:
|
|
6351
6416
|
- Test run timestamp: [from manifest.timestamp]
|
|
@@ -6368,7 +6433,7 @@ The agent will:
|
|
|
6368
6433
|
7. Repeat up to 3 times if needed (exec-1, exec-2, exec-3)
|
|
6369
6434
|
8. Report success or escalate as likely product bug
|
|
6370
6435
|
|
|
6371
|
-
**After test-
|
|
6436
|
+
**After test-engineer completes:**
|
|
6372
6437
|
- If fix succeeded: Mark test as fixed, add to "Tests Fixed" list
|
|
6373
6438
|
- If still failing after 3 attempts: Reclassify as potential product bug
|
|
6374
6439
|
|
|
@@ -6376,7 +6441,7 @@ The agent will:
|
|
|
6376
6441
|
- Maintain list of tests fixed automatically
|
|
6377
6442
|
- Include fix description (e.g., "Applied selector fix pattern from CLAUDE.md")
|
|
6378
6443
|
- Note verification status (test now passes)`,
|
|
6379
|
-
invokesSubagents: ["test-
|
|
6444
|
+
invokesSubagents: ["test-engineer"],
|
|
6380
6445
|
tags: ["execution", "fixing", "automation"]
|
|
6381
6446
|
};
|
|
6382
6447
|
|
|
@@ -6747,7 +6812,7 @@ var automateTestCasesStep = {
|
|
|
6747
6812
|
|
|
6748
6813
|
For each test case marked \`automated: true\`:
|
|
6749
6814
|
|
|
6750
|
-
{{
|
|
6815
|
+
{{INVOKE_TEST_ENGINEER}} with the following context:
|
|
6751
6816
|
|
|
6752
6817
|
"Automate test cases for the focus area: $ARGUMENTS
|
|
6753
6818
|
|
|
@@ -6780,7 +6845,7 @@ After automation, update the manual test case frontmatter:
|
|
|
6780
6845
|
automated: true
|
|
6781
6846
|
automated_test: tests/specs/feature/test-name.spec.ts
|
|
6782
6847
|
\`\`\``,
|
|
6783
|
-
invokesSubagents: ["test-
|
|
6848
|
+
invokesSubagents: ["test-engineer"],
|
|
6784
6849
|
tags: ["generation", "automation"]
|
|
6785
6850
|
};
|
|
6786
6851
|
|
|
@@ -7200,6 +7265,29 @@ After test generation completes, verify all artifacts meet quality standards:
|
|
|
7200
7265
|
tags: ["maintenance", "validation", "test-artifacts"]
|
|
7201
7266
|
};
|
|
7202
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
|
+
|
|
7203
7291
|
// src/tasks/steps/index.ts
|
|
7204
7292
|
init_types();
|
|
7205
7293
|
var STEP_LIBRARY = {
|
|
@@ -7237,7 +7325,8 @@ var STEP_LIBRARY = {
|
|
|
7237
7325
|
"generate-final-report": generateFinalReportStep,
|
|
7238
7326
|
"update-exploration-artifacts": updateExplorationArtifactsStep,
|
|
7239
7327
|
"cleanup-temp-files": cleanupTempFilesStep,
|
|
7240
|
-
"validate-test-artifacts": validateTestArtifactsStep
|
|
7328
|
+
"validate-test-artifacts": validateTestArtifactsStep,
|
|
7329
|
+
"sync-automation-from-feedback": syncAutomationFromFeedbackStep
|
|
7241
7330
|
};
|
|
7242
7331
|
function getStep(id) {
|
|
7243
7332
|
const step = STEP_LIBRARY[id];
|
|
@@ -7343,8 +7432,7 @@ init_esm_shims();
|
|
|
7343
7432
|
var TOOL_STRINGS = {
|
|
7344
7433
|
"claude-code": {
|
|
7345
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.',
|
|
7346
|
-
|
|
7347
|
-
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.',
|
|
7348
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.',
|
|
7349
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.",
|
|
7350
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.',
|
|
@@ -7353,8 +7441,7 @@ var TOOL_STRINGS = {
|
|
|
7353
7441
|
},
|
|
7354
7442
|
"cursor": {
|
|
7355
7443
|
INVOKE_BROWSER_AUTOMATION: 'Run the browser-automation agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/browser-automation.md)" --output-format text\n```',
|
|
7356
|
-
|
|
7357
|
-
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```',
|
|
7358
7445
|
INVOKE_TEAM_COMMUNICATOR: 'Run the team-communicator agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/team-communicator.md)" --output-format text\n```',
|
|
7359
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.",
|
|
7360
7447
|
INVOKE_ISSUE_TRACKER: 'Run the issue-tracker agent:\n```bash\ncursor-agent -p "$(cat .cursor/agents/issue-tracker.md)" --output-format text\n```',
|
|
@@ -7363,8 +7450,7 @@ var TOOL_STRINGS = {
|
|
|
7363
7450
|
},
|
|
7364
7451
|
"codex": {
|
|
7365
7452
|
INVOKE_BROWSER_AUTOMATION: 'Run the browser-automation agent:\n```bash\ncodex -p "$(cat .codex/agents/browser-automation.md)"\n```',
|
|
7366
|
-
|
|
7367
|
-
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```',
|
|
7368
7454
|
INVOKE_TEAM_COMMUNICATOR: 'Run the team-communicator agent:\n```bash\ncodex -p "$(cat .codex/agents/team-communicator.md)"\n```',
|
|
7369
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.",
|
|
7370
7456
|
INVOKE_ISSUE_TRACKER: 'Run the issue-tracker agent:\n```bash\ncodex -p "$(cat .codex/agents/issue-tracker.md)"\n```',
|
|
@@ -7387,8 +7473,7 @@ function replaceInvocationPlaceholders(content, toolId, isLocal = false) {
|
|
|
7387
7473
|
let result = content;
|
|
7388
7474
|
const keys = [
|
|
7389
7475
|
"INVOKE_BROWSER_AUTOMATION",
|
|
7390
|
-
"
|
|
7391
|
-
"INVOKE_TEST_CODE_GENERATOR",
|
|
7476
|
+
"INVOKE_TEST_ENGINEER",
|
|
7392
7477
|
"INVOKE_TEAM_COMMUNICATOR",
|
|
7393
7478
|
"INVOKE_ISSUE_TRACKER",
|
|
7394
7479
|
"INVOKE_DOCUMENTATION_RESEARCHER",
|