triage_failure
Classify failing tests as new regressions, pre-existing failures, flaky, or unknown before fixing them, using JUnit XML reports or failing test IDs to decide what to address.
Instructions
Call this when tests fail, before trying to fix them. For each failing test it says whether your change caused it (new_regression: fix these), it was already failing on main (pre_existing: not yours), it is flaky (flaky: re-run it, don't fix it), or siftwise can't tell (unknown). Pass the JUnit XML report paths from the test run, or the failing test IDs (pytest node IDs like tests/test_x.py::test_y work as classname::name, e.g. tests.test_x::test_y) with optional failure messages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Branch or ref the change is diffed against (default: SIFTWISE_BASE_REF, else the branch origin/HEAD points to, else main). | |
| variant | No | CI matrix leg to compare with (e.g. ubuntu-py3.12), if the repo has several. | |
| failures | No | Failing tests, if there is no JUnit report: [{"test_id": ..., "message": ...}], message optional. | |
| repo_path | No | Absolute path of the repository. Only needed when siftwise says it isn't running in a git repository (default: SIFTWISE_REPO_PATH, CLAUDE_PROJECT_DIR, the client's workspace roots, else the server's working directory). | |
| junit_paths | No | JUnit XML reports written by the test run: absolute paths, or relative to the repository root. | |
| include_uncommitted | No | Include staged, unstaged and untracked changes in the change. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||