@bugzy-ai/bugzy 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,7 @@ var TASK_SLUGS = {
16
16
  PROCESS_EVENT: "process-event",
17
17
  RUN_TESTS: "run-tests",
18
18
  VERIFY_CHANGES: "verify-changes",
19
+ TRIAGE_RESULTS: "triage-results",
19
20
  /** @deprecated Use ONBOARD_TESTING instead */
20
21
  FULL_TEST_COVERAGE: "onboard-testing"
21
22
  };
@@ -1215,6 +1216,7 @@ Before running tests, confirm the selection with the user if ambiguous:
1215
1216
  },
1216
1217
  // Step 7-10: Test Execution (library steps)
1217
1218
  "run-tests",
1219
+ "normalize-test-results",
1218
1220
  "parse-test-results",
1219
1221
  "triage-failures",
1220
1222
  "fix-test-issues",
@@ -1223,14 +1225,7 @@ Before running tests, confirm the selection with the user if ambiguous:
1223
1225
  stepId: "log-product-bugs",
1224
1226
  conditionalOnSubagent: "issue-tracker"
1225
1227
  },
1226
- // Step 12: Knowledge Base Update (library)
1227
- "update-knowledge-base",
1228
- // Step 13: Team Communication (conditional - library step)
1229
- {
1230
- stepId: "notify-team",
1231
- conditionalOnSubagent: "team-communicator"
1232
- },
1233
- // Step 14: Handle Special Cases (inline - task-specific)
1228
+ // Step 12: Handle Special Cases (inline - reference material, positioned before final action steps)
1234
1229
  {
1235
1230
  inline: true,
1236
1231
  title: "Handle Special Cases",
@@ -1278,6 +1273,13 @@ If selected test cases have formatting issues:
1278
1273
  **Related Documentation**:
1279
1274
  - \`./tests/docs/test-execution-strategy.md\` - When and why to run specific tests
1280
1275
  - \`./tests/docs/testing-best-practices.md\` - How to write tests (patterns and anti-patterns)`
1276
+ },
1277
+ // Step 13: Knowledge Base Update (library)
1278
+ "update-knowledge-base",
1279
+ // Step 14: Team Communication (conditional - library step, LAST actionable step)
1280
+ {
1281
+ stepId: "notify-team",
1282
+ conditionalOnSubagent: "team-communicator"
1281
1283
  }
1282
1284
  ],
1283
1285
  requiredSubagents: ["browser-automation", "test-debugger-fixer"],
@@ -1997,6 +1999,108 @@ var exploreApplicationTask = {
1997
1999
  dependentTasks: []
1998
2000
  };
1999
2001
 
2002
+ // src/tasks/library/triage-results.ts
2003
+ var triageResultsTask = {
2004
+ slug: TASK_SLUGS.TRIAGE_RESULTS,
2005
+ name: "Triage Results",
2006
+ description: "Analyze externally-submitted test results and triage failures as product bugs or test issues",
2007
+ frontmatter: {
2008
+ description: "Analyze externally-submitted test results and triage failures as product bugs or test issues",
2009
+ "argument-hint": "[event payload with test results]"
2010
+ },
2011
+ steps: [
2012
+ // Step 1: Overview (inline)
2013
+ {
2014
+ inline: true,
2015
+ title: "Triage Results Overview",
2016
+ content: `# Triage External Test Results
2017
+
2018
+ Analyze test results submitted from an external CI pipeline. The results were sent via webhook and are available in the event payload \u2014 either as inline data or a URL to download.
2019
+
2020
+ **Goal**: Normalize the results into the standard manifest format, classify each failure as a PRODUCT BUG or TEST ISSUE, and generate a triage report.
2021
+
2022
+ This task is triggered automatically when test results are submitted to the Bugzy webhook from a CI system (GitHub Actions, GitLab CI, etc.).`
2023
+ },
2024
+ // Step 2: Security Notice (library)
2025
+ "security-notice",
2026
+ // Step 3: Arguments (inline)
2027
+ {
2028
+ inline: true,
2029
+ title: "Arguments",
2030
+ content: `Arguments: $ARGUMENTS`
2031
+ },
2032
+ // Step 4: Load Project Context (library)
2033
+ "load-project-context",
2034
+ // Step 5: Knowledge Base Read (library)
2035
+ "read-knowledge-base",
2036
+ // Step 6: Normalize Test Results (library — handles URL/inline results + manifest creation)
2037
+ "normalize-test-results",
2038
+ // Step 7: Triage Failures (existing library step)
2039
+ "triage-failures",
2040
+ // Step 8: Fix Test Issues (library — uses test-debugger-fixer)
2041
+ "fix-test-issues",
2042
+ // Step 9: Log Product Bugs (conditional — requires issue-tracker)
2043
+ {
2044
+ stepId: "log-product-bugs",
2045
+ conditionalOnSubagent: "issue-tracker"
2046
+ },
2047
+ // Step 10: Update Knowledge Base (library)
2048
+ "update-knowledge-base",
2049
+ // Step 11: Notify Team (conditional — requires team-communicator)
2050
+ {
2051
+ stepId: "notify-team",
2052
+ conditionalOnSubagent: "team-communicator"
2053
+ },
2054
+ // Step 12: Generate Triage Report (inline)
2055
+ {
2056
+ inline: true,
2057
+ title: "Generate Triage Report",
2058
+ content: `## Generate Triage Report
2059
+
2060
+ Create a structured triage report as the task output. This report is stored in \`task_executions.result\` and displayed in the Bugzy dashboard.
2061
+
2062
+ **Report Structure:**
2063
+ \`\`\`json
2064
+ {
2065
+ "summary": {
2066
+ "total": <number>,
2067
+ "passed": <number>,
2068
+ "failed": <number>,
2069
+ "skipped": <number>,
2070
+ "duration_ms": <number or null>
2071
+ },
2072
+ "ci_metadata": {
2073
+ "pipeline_url": "<from event payload>",
2074
+ "commit_sha": "<from event payload>",
2075
+ "branch": "<from event payload>"
2076
+ },
2077
+ "triage": {
2078
+ "product_bugs": [
2079
+ {
2080
+ "test_name": "<name>",
2081
+ "error": "<brief error>",
2082
+ "reason": "<why this is a product bug>"
2083
+ }
2084
+ ],
2085
+ "test_issues": [
2086
+ {
2087
+ "test_name": "<name>",
2088
+ "error": "<brief error>",
2089
+ "reason": "<why this is a test issue>"
2090
+ }
2091
+ ]
2092
+ }
2093
+ }
2094
+ \`\`\`
2095
+
2096
+ Output this JSON as the final result of the task.`
2097
+ }
2098
+ ],
2099
+ requiredSubagents: ["browser-automation", "test-debugger-fixer"],
2100
+ optionalSubagents: ["issue-tracker", "team-communicator"],
2101
+ dependentTasks: []
2102
+ };
2103
+
2000
2104
  // src/tasks/index.ts
2001
2105
  var TASK_TEMPLATES = {
2002
2106
  [TASK_SLUGS.GENERATE_TEST_CASES]: generateTestCasesTask,
@@ -2006,7 +2110,8 @@ var TASK_TEMPLATES = {
2006
2110
  [TASK_SLUGS.RUN_TESTS]: runTestsTask,
2007
2111
  [TASK_SLUGS.VERIFY_CHANGES]: verifyChangesTask,
2008
2112
  [TASK_SLUGS.ONBOARD_TESTING]: onboardTestingTask,
2009
- [TASK_SLUGS.EXPLORE_APPLICATION]: exploreApplicationTask
2113
+ [TASK_SLUGS.EXPLORE_APPLICATION]: exploreApplicationTask,
2114
+ [TASK_SLUGS.TRIAGE_RESULTS]: triageResultsTask
2010
2115
  };
2011
2116
  function getTaskTemplate(slug) {
2012
2117
  return TASK_TEMPLATES[slug];