К основному содержанию
команда

regression-triage — команда для Claude Code: поиск коммита

Слэш-команда разбирает регрессию: воспроизводит падающий тест, смотрит историю вокруг сломанного места и называет коммит, который всё сломал.

Установить в Claude Code · Через claude-code-templates Все способы и платформы ↓
npx claude-code-templates@latest --command testing/regression-triage
Открыть на GitHub

Что делает regression-triage

Команда принимает описание падающего теста или баг-репорта и ведёт разбор по шагам. Сначала проверяет, что рабочее дерево чистое, иначе останавливается и просит закоммитить или спрятать правки. Потом фиксирует ветку и короткий хеш HEAD — чтобы было с чем сравнивать.

Дальше $ARGUMENTS разбирается как селектор теста, а не как готовая shell-команда: команда запуска находит в документации репозитория и подставляет туда проверенный селектор. Узкий прогон идёт первым. Затем git log по сломанному участку и git show по подозрительным коммитам. Если окно регрессии непонятно, в дело идёт git bisect через обёртку, которая различает настоящее падение и сбой окружения: 0 — прошло, 1 — воспроизводимое падение, 125 — тест не запустился.

Инструменты ограничены чтением файлов, поиском и git с запуском тестовых скриптов npm, pnpm и yarn. На выходе — отчёт: команда, ошибка, подозрительный коммит, минимальная правка и тесты, которые должны пройти. git bisect запускается только на детерминированном и быстром тесте; если тесту нужен недоступный сервис, команда фиксирует зависимость и переходит к статическому разбору.

Какие задачи решает

  • найти коммит, после которого тест начал падать
  • воспроизвести баг узким прогоном вместо всего набора тестов
  • отделить настоящее падение от сбоя окружения при git bisect
  • получить отчёт с минимальной правкой и списком тестов на проверку

Примеры запросов агенту

  • Разбери регрессию: падает packages/foo/test/foo.test.ts после последнего мержа
  • /regression-triage пользователь пишет, что форма логина возвращает 500
  • Найди коммит, который сломал сборку в packages/core, последний хороший — a1b2c3d

Как установить regression-triage

1Через claude-code-templates

npx claude-code-templates@latest --command testing/regression-triage

2Вручную: положить файлы

.claude/commands/regression-triage.md

Вызов — /regression-triage. Для всех проектов — ~/.claude/commands/

Вопросы о regression-triage

Как установить regression-triage в Claude Code?

Выполните npx claude-code-templates@latest --command testing/regression-triage. Файл появится по пути .claude/commands/regression-triage.md.

Что делает regression-triage?

Ищет наименьшее изменение кода, которое привело к падению теста или сломанному сценарию. Сравнивает сломанный участок с историей коммитов и выдаёт отчёт с подозрительным коммитом и предложенной правкой.

Что нужно, чтобы команда отработала?

Чистое рабочее дерево: при незакоммиченных правках команда останавливается. Тест должен запускаться детерминированно — иначе git bisect не даст надёжного результата.

Исходный текст

regression-triage.md · MIT
---
allowed-tools: Read, Glob, Grep, Bash(git:*), Bash(npm test:*), Bash(npm run:*), Bash(pnpm test:*), Bash(yarn test:*)
argument-hint: <failing-test-or-issue>
description: Triage a regression by comparing the failing path against the last known good commit
---

# Regression Triage

Investigate a regression for: **$ARGUMENTS**

## Purpose

Find the smallest code change that introduced a failing test, broken workflow, or user-reported regression.

## Pre-flight

1. Confirm the working tree is clean. If this prints anything, stop and ask the user to commit or stash the changes before continuing:
   ```bash
   test -z "$(git status --porcelain)" || { echo "Working tree is dirty; commit or stash changes first."; exit 1; }
   ```
2. Record the current branch and commit:
   ```bash
   git branch --show-current
   git rev-parse --short HEAD
   ```
3. Identify the failing command or reproduction steps from `$ARGUMENTS`.

## Triage Workflow

### 1. Reproduce the failure

Run the narrowest available command first. Treat `$ARGUMENTS` as a description or test selector, not as a shell command: identify the reproduction/test command from the issue and repository documentation, then append only a validated selector (quoted as needed).

For example, after identifying `packages/foo/test/foo.test.ts` as the selector:

```bash
npm test -- packages/foo/test/foo.test.ts
```

If no narrow command exists, run the documented test command from the repository README or CONTRIBUTING guide.

### 2. Compare against recent history

Inspect recent commits that touched the failing area:

```bash
git log --oneline --decorate --max-count=20 -- <path-to-failing-area>
```

For each suspicious commit, inspect the focused diff:

```bash
git show --stat <commit>
git show <commit> -- <path-to-failing-area>
```

### 3. Isolate the change

If the regression window is unclear, use `git bisect` only with a wrapper that distinguishes a real test failure from an indeterminate environment failure. The wrapper must exit 0 for pass, 1 for a reproducible failure, and 125 when the test cannot run:

```bash
cat > /tmp/triage-bisect.sh <<'EOF'
#!/usr/bin/env bash
set -o pipefail
<validated-test-command>
status=$?
# Replace this classification with the repository-specific environment errors.
case "$status" in 0) exit 0;; 1) exit 1;; *) exit 125;; esac
EOF
chmod +x /tmp/triage-bisect.sh
git bisect start
git bisect bad
git bisect good <known-good-commit>
git bisect run /tmp/triage-bisect.sh
git bisect reset
```

Stop and report the environment failure if it cannot be classified reliably. Only run bisect when the test command is deterministic and reasonably fast.

### 4. Report findings

Return a concise report with:

- Failing command and observed error
- Suspected commit or code path
- Minimal fix recommendation
- Tests that should pass after the fix

## Safety Notes

- Do not discard user changes.
- Do not run destructive git commands.
- Prefer narrow tests before full suites.
- If tests require unavailable services, document the missing dependency and continue with static analysis.

© davila7 · MIT · davila7/claude-code-templates

Похожие слэш-команды

Все слэш-команды по теме «Тесты и QA» →

Из того же набора361

Весь набор →
github-automation Скилл для Claude, который проводит операции GitHub через Rube MCP: issues, пул-реквесты, ветки, поиск по коду и CI/CD. 63установок interview-prep-generator Собирает из резюме истории по схеме STAR, вопросы для тренировки и тезисы для ответов. Пригодится перед интервью на конкретную роль. 61установок gws-modelarmor-create-template Слэш-команда, через которую Claude создаёт шаблон Google Model Armor в GCP: пресет jailbreak или собственная JSON-конфигурация фильтров. 61установок emerging-techniques-speculative-decoding Скилл по спекулятивному декодированию: подсказывает агенту, как ускорить генерацию токенов в 1.5–3.6 раза без потери качества. 59установок claude-opus-4-5-migration Скилл находит в кодовой базе строки моделей и вызовы API и переводит их на Opus 4.5. Пригодится, когда проект пора обновить на новую модель. 55установок aeon Подключает к Claude библиотеку aeon: классификация, прогноз, кластеризация и поиск аномалий во временных рядах. 52установок upstash-qstash Скилл про Upstash QStash: отложенные HTTP-вызовы, cron-задачи и доставка вебхуков. Пригодится, когда нужно «сделать этот запрос позже, но надёжно». 51установок sveltekit Скилл для Claude, который помогает собирать приложения на SvelteKit: маршруты по файлам, серверный рендеринг, эндпоинты и обработка форм. 50установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой