@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/tasks/index.js
CHANGED
|
@@ -135,20 +135,20 @@ Example structure:
|
|
|
135
135
|
{
|
|
136
136
|
inline: true,
|
|
137
137
|
title: "Generate All Manual Test Case Files",
|
|
138
|
-
content: `Generate ALL manual test case markdown files in \`./test-cases/\` BEFORE invoking the test-
|
|
138
|
+
content: `Generate ALL manual test case markdown files in \`./test-cases/\` BEFORE invoking the test-engineer agent.
|
|
139
139
|
|
|
140
140
|
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:
|
|
141
141
|
- Frontmatter with test case metadata (id, title, type, area, \`automated: true/false\`, \`automated_test:\` empty)
|
|
142
142
|
- Clear test steps with expected results
|
|
143
143
|
- Required test data references (use env var names, not values)`
|
|
144
144
|
},
|
|
145
|
-
// Step 11: Automate Test Cases (inline - detailed instructions for test-
|
|
145
|
+
// Step 11: Automate Test Cases (inline - detailed instructions for test-engineer)
|
|
146
146
|
{
|
|
147
147
|
inline: true,
|
|
148
148
|
title: "Automate Test Cases Area by Area",
|
|
149
149
|
content: `**IMPORTANT**: Process each feature area separately to enable incremental, focused test creation.
|
|
150
150
|
|
|
151
|
-
**For each area**, invoke the test-
|
|
151
|
+
**For each area**, invoke the test-engineer agent:
|
|
152
152
|
|
|
153
153
|
**Prepare Area Context:**
|
|
154
154
|
Before invoking the agent, identify the test cases for the current area:
|
|
@@ -160,9 +160,9 @@ Before invoking the agent, identify the test cases for the current area:
|
|
|
160
160
|
- Existing automated tests in ./tests/specs/
|
|
161
161
|
- Existing Page Objects in ./tests/pages/
|
|
162
162
|
|
|
163
|
-
**Invoke test-
|
|
163
|
+
**Invoke test-engineer Agent:**
|
|
164
164
|
|
|
165
|
-
{{
|
|
165
|
+
{{INVOKE_TEST_ENGINEER}} for the current area with the following context:
|
|
166
166
|
|
|
167
167
|
"Automate test cases for the [AREA_NAME] area.
|
|
168
168
|
|
|
@@ -176,7 +176,7 @@ Before invoking the agent, identify the test cases for the current area:
|
|
|
176
176
|
- Existing page objects: [directory from ./tests/CLAUDE.md]
|
|
177
177
|
|
|
178
178
|
**Knowledge Base Patterns (MUST APPLY):**
|
|
179
|
-
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-
|
|
179
|
+
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.
|
|
180
180
|
|
|
181
181
|
**The agent should:**
|
|
182
182
|
1. Read the manual test case files for this area
|
|
@@ -235,7 +235,7 @@ Move to the next area and repeat until all areas are complete.
|
|
|
235
235
|
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\`).`
|
|
236
236
|
}
|
|
237
237
|
],
|
|
238
|
-
requiredSubagents: ["browser-automation", "test-
|
|
238
|
+
requiredSubagents: ["browser-automation", "test-engineer"],
|
|
239
239
|
optionalSubagents: ["documentation-researcher", "team-communicator"],
|
|
240
240
|
dependentTasks: []
|
|
241
241
|
};
|
|
@@ -422,10 +422,10 @@ After saving the test plan:
|
|
|
422
422
|
var handleMessageTask = {
|
|
423
423
|
slug: TASK_SLUGS.HANDLE_MESSAGE,
|
|
424
424
|
name: "Handle Message",
|
|
425
|
-
description: "Handle team
|
|
425
|
+
description: "Handle team messages, maintaining context for ongoing conversations",
|
|
426
426
|
frontmatter: {
|
|
427
|
-
description: "Handle team
|
|
428
|
-
"argument-hint": "[
|
|
427
|
+
description: "Handle team messages, maintaining context for ongoing conversations",
|
|
428
|
+
"argument-hint": "[team thread context or message]"
|
|
429
429
|
},
|
|
430
430
|
steps: [
|
|
431
431
|
// Step 1: Overview (inline)
|
|
@@ -434,7 +434,7 @@ var handleMessageTask = {
|
|
|
434
434
|
title: "Handle Message Overview",
|
|
435
435
|
content: `# Handle Message Command
|
|
436
436
|
|
|
437
|
-
Process team
|
|
437
|
+
Process team messages and handle multi-turn conversations with the product team about testing clarifications, ambiguities, and questions.`
|
|
438
438
|
},
|
|
439
439
|
// Step 2: Security Notice (library)
|
|
440
440
|
"security-notice",
|
|
@@ -448,19 +448,19 @@ Process team responses from Slack threads and handle multi-turn conversations wi
|
|
|
448
448
|
"load-project-context",
|
|
449
449
|
// Step 5: Knowledge Base Read (library)
|
|
450
450
|
"read-knowledge-base",
|
|
451
|
-
// Step
|
|
451
|
+
// Step 6: Detect Intent (inline - simplified, no handler file loading)
|
|
452
452
|
{
|
|
453
453
|
inline: true,
|
|
454
|
-
title: "Detect Message Intent
|
|
455
|
-
content: `
|
|
454
|
+
title: "Detect Message Intent",
|
|
455
|
+
content: `Identify the intent type from the event payload or message patterns:
|
|
456
456
|
|
|
457
|
-
####
|
|
457
|
+
#### Extract Intent from Event Payload
|
|
458
458
|
|
|
459
459
|
Check the event payload for the \`intent\` field provided by the LLM layer:
|
|
460
460
|
- If \`intent\` is present, use it directly
|
|
461
461
|
- Valid intent values: \`question\`, \`feedback\`, \`status\`
|
|
462
462
|
|
|
463
|
-
####
|
|
463
|
+
#### Fallback Intent Detection (if no intent provided)
|
|
464
464
|
|
|
465
465
|
If intent is not in the payload, detect from message patterns:
|
|
466
466
|
|
|
@@ -471,39 +471,125 @@ If intent is not in the payload, detect from message patterns:
|
|
|
471
471
|
| Question words: "what", "which", "do we have", "is there" about tests/project | \`question\` |
|
|
472
472
|
| Default (none of above) | \`feedback\` |
|
|
473
473
|
|
|
474
|
-
|
|
474
|
+
Then follow the matching handler section below.`
|
|
475
|
+
},
|
|
476
|
+
// Step 7: Process by Intent (all three handlers consolidated)
|
|
477
|
+
{
|
|
478
|
+
inline: true,
|
|
479
|
+
title: "Process Message by Intent",
|
|
480
|
+
content: `Based on the detected intent, follow the appropriate section:
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## If intent = "feedback"
|
|
485
|
+
|
|
486
|
+
### Step 1: Parse Feedback
|
|
487
|
+
|
|
488
|
+
Extract the following from the message:
|
|
489
|
+
|
|
490
|
+
| Field | Description |
|
|
491
|
+
|-------|-------------|
|
|
492
|
+
| **Type** | \`bug_report\`, \`test_result\`, \`observation\`, \`suggestion\`, \`general\` |
|
|
493
|
+
| **Severity** | \`critical\`, \`high\`, \`medium\`, \`low\` |
|
|
494
|
+
| **Component** | Affected area (e.g., "login", "checkout") |
|
|
495
|
+
| **Description** | Core issue description |
|
|
496
|
+
| **Expected** | What should happen (if stated) |
|
|
497
|
+
| **Steps** | How to reproduce (if provided) |
|
|
498
|
+
|
|
499
|
+
**Type Detection**:
|
|
500
|
+
- \`bug_report\`: "bug", "broken", "doesn't work", "error", "crash"
|
|
501
|
+
- \`test_result\`: "test passed", "test failed", "ran tests", "testing showed"
|
|
502
|
+
- \`observation\`: "noticed", "observed", "found that", "saw that"
|
|
503
|
+
- \`suggestion\`: "should", "could we", "what if", "idea"
|
|
504
|
+
- \`general\`: Default for unclassified feedback
|
|
505
|
+
|
|
506
|
+
### Step 2: Update Test Case Specifications
|
|
507
|
+
|
|
508
|
+
**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.
|
|
509
|
+
|
|
510
|
+
For each actionable feedback item:
|
|
511
|
+
1. Identify which test case(s) are affected
|
|
512
|
+
2. Read the test case markdown file
|
|
513
|
+
3. Update the test steps, expected results, or assertions as requested
|
|
514
|
+
4. Save the modified test case file
|
|
515
|
+
|
|
516
|
+
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.
|
|
517
|
+
|
|
518
|
+
### Step 3: Acknowledge and Confirm
|
|
519
|
+
|
|
520
|
+
Respond confirming: feedback received, summary of what was captured, actions taken (including any test case updates), and follow-up questions if needed.
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
## If intent = "question"
|
|
525
|
+
|
|
526
|
+
### Step 1: Classify Question Type
|
|
527
|
+
|
|
528
|
+
| Type | Indicators | Primary Context Sources |
|
|
529
|
+
|------|------------|------------------------|
|
|
530
|
+
| **Coverage** | "what tests", "do we have", "is there a test for" | test-cases/, test-plan.md |
|
|
531
|
+
| **Results** | "did tests pass", "what failed", "test results" | test-runs/ |
|
|
532
|
+
| **Knowledge** | "how does", "what is", "explain" | knowledge-base.md |
|
|
533
|
+
| **Plan** | "what's in scope", "test plan", "testing strategy" | test-plan.md |
|
|
534
|
+
| **Process** | "how do I", "when should", "what's the workflow" | project-context.md |
|
|
535
|
+
|
|
536
|
+
### Step 2: Load Relevant Context
|
|
475
537
|
|
|
476
|
-
Based on
|
|
477
|
-
|
|
538
|
+
Based on question type, load the appropriate files:
|
|
539
|
+
- **Coverage**: Read test-plan.md, list ./test-cases/, search for relevant keywords
|
|
540
|
+
- **Results**: List ./test-runs/ (newest first), read summary.json from relevant runs
|
|
541
|
+
- **Knowledge**: Read .bugzy/runtime/knowledge-base.md, search for relevant entries
|
|
542
|
+
- **Plan**: Read test-plan.md, extract relevant sections
|
|
543
|
+
- **Process**: Read .bugzy/runtime/project-context.md
|
|
478
544
|
|
|
479
|
-
|
|
480
|
-
- \`question.md\` - Questions about tests, coverage, project details
|
|
481
|
-
- \`feedback.md\` - Bug reports, test observations, general information
|
|
482
|
-
- \`status.md\` - Status checks on test runs, task progress
|
|
545
|
+
### Step 3: Formulate Answer
|
|
483
546
|
|
|
484
|
-
|
|
547
|
+
- Be specific: quote relevant sections from source files
|
|
548
|
+
- Cite sources: mention which files contain the information
|
|
549
|
+
- Quantify when possible: "We have 12 test cases covering login..."
|
|
550
|
+
- Acknowledge gaps if information is incomplete
|
|
551
|
+
|
|
552
|
+
### Step 4: Offer Follow-up
|
|
553
|
+
|
|
554
|
+
End response with offer to provide more detail and suggest related information.
|
|
555
|
+
|
|
556
|
+
---
|
|
485
557
|
|
|
486
|
-
|
|
558
|
+
## If intent = "status"
|
|
487
559
|
|
|
488
|
-
|
|
489
|
-
2. Follow its processing steps in order
|
|
490
|
-
3. Apply its context loading requirements
|
|
491
|
-
4. Use its response guidelines
|
|
492
|
-
5. Perform any memory updates it specifies
|
|
560
|
+
### Step 1: Identify Status Scope
|
|
493
561
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
-
|
|
497
|
-
-
|
|
498
|
-
-
|
|
562
|
+
| Scope | Indicators | Data Sources |
|
|
563
|
+
|-------|------------|--------------|
|
|
564
|
+
| **Latest test run** | "last run", "recent tests", "how did tests go" | Most recent test-runs/ directory |
|
|
565
|
+
| **Specific test** | Test ID mentioned (TC-XXX) | test-runs/*/TC-XXX/, test-cases/TC-XXX.md |
|
|
566
|
+
| **Overall** | "overall", "all tests", "pass rate" | All test-runs/ summaries |
|
|
567
|
+
| **Task progress** | "is the task done", "what's happening with" | team-communicator memory |
|
|
568
|
+
|
|
569
|
+
### Step 2: Gather Status Data
|
|
570
|
+
|
|
571
|
+
Based on scope, read the appropriate test-runs/ directories and summary files. Calculate aggregate statistics for overall status requests.
|
|
572
|
+
|
|
573
|
+
### Step 3: Format Status Report
|
|
574
|
+
|
|
575
|
+
Present status clearly: lead with pass/fail summary, use bullet points, include timestamps, offer to drill down into specifics.
|
|
576
|
+
|
|
577
|
+
### Step 4: Provide Context and Recommendations
|
|
578
|
+
|
|
579
|
+
For failing tests: suggest review, note if new or recurring. For declining trends: highlight causes. For good results: acknowledge healthy state.`
|
|
580
|
+
},
|
|
581
|
+
// Step 8: Sync automation from feedback (conditional on test-engineer)
|
|
582
|
+
{
|
|
583
|
+
stepId: "sync-automation-from-feedback",
|
|
584
|
+
conditionalOnSubagent: "test-engineer"
|
|
499
585
|
},
|
|
500
|
-
// Step
|
|
586
|
+
// Step 9: Post Response via Team Communicator
|
|
501
587
|
{
|
|
502
588
|
inline: true,
|
|
503
589
|
title: "Post Response to Team",
|
|
504
590
|
content: `## Post Response to the Team
|
|
505
591
|
|
|
506
|
-
After processing the message
|
|
592
|
+
After processing the message and composing your response:
|
|
507
593
|
|
|
508
594
|
{{INVOKE_TEAM_COMMUNICATOR}} to post the response back to the team.
|
|
509
595
|
|
|
@@ -518,13 +604,13 @@ After processing the message through the handler and composing your response:
|
|
|
518
604
|
- Ask the user whether to post \u2014 the message came from the team, the response goes back to the team
|
|
519
605
|
- Compose a draft without sending it`
|
|
520
606
|
},
|
|
521
|
-
// Step
|
|
607
|
+
// Step 10: Clarification Protocol (for ambiguous intents)
|
|
522
608
|
"clarification-protocol",
|
|
523
|
-
// Step
|
|
609
|
+
// Step 11: Knowledge Base Update (library)
|
|
524
610
|
"update-knowledge-base"
|
|
525
611
|
],
|
|
526
612
|
requiredSubagents: ["team-communicator"],
|
|
527
|
-
optionalSubagents: [],
|
|
613
|
+
optionalSubagents: ["test-engineer"],
|
|
528
614
|
dependentTasks: ["verify-changes"]
|
|
529
615
|
};
|
|
530
616
|
|
|
@@ -1124,7 +1210,7 @@ If selected test cases have formatting issues:
|
|
|
1124
1210
|
|
|
1125
1211
|
**Failure Handling**:
|
|
1126
1212
|
- Test failures are automatically triaged (product bugs vs test issues)
|
|
1127
|
-
- Test issues are automatically fixed by the test-
|
|
1213
|
+
- Test issues are automatically fixed by the test-engineer subagent
|
|
1128
1214
|
- Product bugs are logged via issue tracker after triage
|
|
1129
1215
|
- All results are analyzed for learning opportunities and team communication
|
|
1130
1216
|
- Critical failures trigger immediate team notification
|
|
@@ -1141,7 +1227,7 @@ If selected test cases have formatting issues:
|
|
|
1141
1227
|
conditionalOnSubagent: "team-communicator"
|
|
1142
1228
|
}
|
|
1143
1229
|
],
|
|
1144
|
-
requiredSubagents: ["browser-automation", "test-
|
|
1230
|
+
requiredSubagents: ["browser-automation", "test-engineer"],
|
|
1145
1231
|
optionalSubagents: ["issue-tracker", "team-communicator"],
|
|
1146
1232
|
dependentTasks: []
|
|
1147
1233
|
};
|
|
@@ -1421,7 +1507,7 @@ Generate summary of test selection based on description analysis:
|
|
|
1421
1507
|
- **Execution strategy**: [smart selection | full suite | smoke tests | user-specified]
|
|
1422
1508
|
\`\`\``
|
|
1423
1509
|
},
|
|
1424
|
-
// Step 7b: Create Tests for Coverage Gaps (conditional - test-
|
|
1510
|
+
// Step 7b: Create Tests for Coverage Gaps (conditional - test-engineer)
|
|
1425
1511
|
{
|
|
1426
1512
|
inline: true,
|
|
1427
1513
|
title: "Create Tests for Coverage Gaps",
|
|
@@ -1457,7 +1543,7 @@ If the Jira issue or PR references test accounts/data (e.g., TEST_PREMIUM_USER,
|
|
|
1457
1543
|
|
|
1458
1544
|
### Generate Automated Test Specs
|
|
1459
1545
|
|
|
1460
|
-
{{
|
|
1546
|
+
{{INVOKE_TEST_ENGINEER}} to create automated test specs:
|
|
1461
1547
|
- Read the manual test cases you just created
|
|
1462
1548
|
- Explore the feature in the browser to discover selectors and flows
|
|
1463
1549
|
- Create page objects in the directory specified by \`./tests/CLAUDE.md\`
|
|
@@ -1468,7 +1554,7 @@ If the Jira issue or PR references test accounts/data (e.g., TEST_PREMIUM_USER,
|
|
|
1468
1554
|
### If Tests Already Cover the Feature
|
|
1469
1555
|
|
|
1470
1556
|
Skip this step \u2014 proceed directly to running existing tests.`,
|
|
1471
|
-
conditionalOnSubagent: "test-
|
|
1557
|
+
conditionalOnSubagent: "test-engineer"
|
|
1472
1558
|
},
|
|
1473
1559
|
// Step 8-11: Test Execution (library steps)
|
|
1474
1560
|
"run-tests",
|
|
@@ -1657,8 +1743,8 @@ Post PR comment if GitHub context available.`,
|
|
|
1657
1743
|
**If test execution fails:** report specific error, suggest troubleshooting, don't proceed with triage.`
|
|
1658
1744
|
}
|
|
1659
1745
|
],
|
|
1660
|
-
requiredSubagents: ["browser-automation", "test-
|
|
1661
|
-
optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator", "changelog-historian"
|
|
1746
|
+
requiredSubagents: ["browser-automation", "test-engineer"],
|
|
1747
|
+
optionalSubagents: ["documentation-researcher", "issue-tracker", "team-communicator", "changelog-historian"],
|
|
1662
1748
|
dependentTasks: []
|
|
1663
1749
|
};
|
|
1664
1750
|
|
|
@@ -1734,7 +1820,7 @@ This command orchestrates the complete test coverage workflow in a single execut
|
|
|
1734
1820
|
},
|
|
1735
1821
|
"generate-final-report"
|
|
1736
1822
|
],
|
|
1737
|
-
requiredSubagents: ["browser-automation", "test-
|
|
1823
|
+
requiredSubagents: ["browser-automation", "test-engineer"],
|
|
1738
1824
|
optionalSubagents: ["documentation-researcher", "team-communicator", "issue-tracker"],
|
|
1739
1825
|
dependentTasks: ["run-tests", "generate-test-cases"]
|
|
1740
1826
|
};
|
|
@@ -1843,7 +1929,7 @@ This task is triggered automatically when test results are submitted to the Bugz
|
|
|
1843
1929
|
"normalize-test-results",
|
|
1844
1930
|
// Step 7: Triage Failures (existing library step)
|
|
1845
1931
|
"triage-failures",
|
|
1846
|
-
// Step 8: Fix Test Issues (library — uses test-
|
|
1932
|
+
// Step 8: Fix Test Issues (library — uses test-engineer)
|
|
1847
1933
|
"fix-test-issues",
|
|
1848
1934
|
// Step 9: Log Product Bugs (conditional — requires issue-tracker)
|
|
1849
1935
|
{
|
|
@@ -1902,7 +1988,7 @@ Create a structured triage report as the task output. This report is stored in \
|
|
|
1902
1988
|
Output this JSON as the final result of the task.`
|
|
1903
1989
|
}
|
|
1904
1990
|
],
|
|
1905
|
-
requiredSubagents: ["browser-automation", "test-
|
|
1991
|
+
requiredSubagents: ["browser-automation", "test-engineer"],
|
|
1906
1992
|
optionalSubagents: ["issue-tracker", "team-communicator"],
|
|
1907
1993
|
dependentTasks: []
|
|
1908
1994
|
};
|
|
@@ -1959,12 +2045,14 @@ This step helps correlate what the tests cover with what the application actuall
|
|
|
1959
2045
|
{
|
|
1960
2046
|
inline: true,
|
|
1961
2047
|
title: "Commit Analysis Results",
|
|
1962
|
-
content: `Commit
|
|
2048
|
+
content: `Commit analysis artifacts to the **parent project repository** (the workspace root).
|
|
1963
2049
|
|
|
1964
|
-
|
|
1965
|
-
2. Any generated CLAUDE.md draft (if the external repo was missing one)
|
|
2050
|
+
**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.
|
|
1966
2051
|
|
|
1967
|
-
|
|
2052
|
+
**What to commit in the parent repo:**
|
|
2053
|
+
1. \`git add .bugzy/\` \u2014 the test codebase analysis report and runtime files
|
|
2054
|
+
2. Do NOT run \`git add .\` or \`git add tests\` \u2014 this would stage the submodule pointer
|
|
2055
|
+
3. \`git commit -m "chore: analyze external test codebase"\`
|
|
1968
2056
|
|
|
1969
2057
|
These artifacts will be available to all future task executions for this project.`
|
|
1970
2058
|
},
|