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

git-bisect-helper — команда для Claude Code: поиск регрессии

Ведёт сессию git bisect и сама помечает коммиты good/bad по коду выхода теста. Пригодится, когда непонятно, какой коммит сломал поведение.

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

Что делает git-bisect-helper

Команда ставит git bisect и прогоняет тест на каждой точке. Результат читается по коду выхода: 0 — good, ненулевой — bad. Есть режим --auto [test-command], где тест задаётся сразу, и ручной, когда вы сами решаете на каждом шаге.

Перед стартом команда смотрит историю и подсказывает кандидатов на good/bad, проверяет, что в диапазоне действительно есть регрессия, и создаёт резервную ветку. В ручном режиме показывает изменения текущего коммита и ждёт вашего ответа. Сессию можно прервать и вернуться через --continue, а закончить и откатиться на исходную ветку — через --reset.

Определение тестовой среды идёт по файлам проекта: package.json, requirements.txt, Gemfile, pom.xml, go.mod, Cargo.toml. Коммиты, которые не собираются, помечаются bad или пропускаются. Учтите: если тест нестабилен, автопометка врёт, поэтому флаки-тесты лучше чинить до запуска. Инструменты ограничены списком: git bisect, git log, git show, git checkout, npm, yarn, pnpm, Read, Edit, Grep.

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

  • найти коммит, после которого сломался вход в аккаунт
  • прогнать тест по всей истории без ручной пометки каждого шага
  • продолжить прерванную сессию bisect с того же места
  • откатиться на исходную ветку после неудачного bisect
  • отсеять коммиты, которые не собираются, и не тратить на них шаги

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

  • /git-bisect-helper --auto "npm test"
  • /git-bisect-helper v1.2.0 HEAD
  • /git-bisect-helper --continue

Как установить git-bisect-helper

1Через claude-code-templates

npx claude-code-templates@latest --command git-workflow/git-bisect-helper

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

.claude/commands/git-bisect-helper.md

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

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

Весь набор →
add-mutation-testing Слэш-команда разворачивает мутационное тестирование в проекте: выбирает фреймворк, настраивает пороги качества и подключает прогон к CI. 172установок voidbeast-gpt41enhanced Автономный субагент для фулстек-разработки: сам выбирает режим работы, исследует код и доводит задачу до конца. 166установок backend-to-frontend-handoff-docs Скилл собирает API-хендофф-документ для фронтенд-разработчиков: эндпоинты, DTO, валидация и граничные случаи в одном markdown-файле. 164установок change-logger Хук пишет каждое изменение файла в CSV: время, инструмент, путь, действие и детали. Пригодится, когда готовишь демо и нужно показать, что именно агент трогал. 163установок cloud-architect Скилл для Claude, который помогает проектировать инфраструктуру в AWS, Azure и GCP: Terraform, CDK, стоимость, безопасность. 157установок timeline-compressor Сжимает реальные сроки проекта в быстрые циклы симуляции, чтобы быстрее проверить решения и риски. Пригодится, когда нужно проиграть сценарий до старта. 146установок crewai Помогает проектировать команды ИИ-агентов на CrewAI: роли, задачи, оркестрация и процессы. Пригодится, когда один агент уже не тянет. 141установок perplexity Скилл подключает Perplexity к Claude: поиск по вебу, разговорные ответы и глубокое исследование через агента. Пригодится, когда нужны свежие данные, а не документация библиотеки. 140установок

Похожие

git-advanced-workflows Seth Hobson Скилл помогает править историю Git, переносить коммиты, искать источник бага и восстанавливать потерянные ветки. Подойдёт для сложных ветвлений и подготовки PR. CX Codex 19 356установок hunt tw93 Ищет первопричину багов, падений и регрессий до правок кода. Запрещает менять файлы, пока проблема не доказана воспроизводимой проверкой. CX Codex +1 14 900установок git-workflow-and-versioning addyosmani Скилл задаёт агенту правила работы с git: атомарные коммиты, короткие ветки, воркtrees для параллельных задач. Пригодится, когда ИИ пишет код быстрее, чем вы успеваете ревьюить. CX Codex +1 59 500установок git-commit официальный github Скилл разбирает изменения Git, выбирает связанные файлы и создаёт коммит в формате Conventional Commits. Пригодится, когда нужно закоммитить одну или несколько логических частей изменений. 47 165установок debugging-and-error-recovery addyosmani Скилл ведёт агента по шагам от воспроизведения ошибки до проверки исправления. Подойдёт, когда падают тесты, ломается сборка или поведение не совпадает с ожиданиями. CX Codex +1 62 800установок git-workflow affaan-m Скилл с готовыми правилами Git: какую стратегию ветвления выбрать, как писать коммиты и когда rebase лучше merge. CX Codex +1 5 000установок

Рядом в теме «Git и GitHub»

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

Вопросы о git-bisect-helper

Как установить git-bisect-helper в Claude?

Выполните npx claude-code-templates@latest --command git-workflow/git-bisect-helper, файл появится как .claude/commands/git-bisect-helper.md.

Что делает git-bisect-helper?

Запускает git bisect по заданному диапазону и на каждой точке прогоняет тест, помечая коммит good или bad по коду выхода. В конце отдаёт отчёт с найденным коммитом и командами для отката.

Можно ли задать свой тест для автопометки?

Да, тест передаётся аргументом: /git-bisect-helper --auto "npm test". Вместо npm подойдёт любая команда, которую видит оболочка.

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

git-bisect-helper.md · MIT
---
allowed-tools: Bash(git bisect:*), Bash(git log:*), Bash(git show:*), Bash(git checkout:*), Bash(npm:*), Bash(yarn:*), Bash(pnpm:*), Read, Edit, Grep
argument-hint: "[good-commit] [bad-commit] | --auto [test-command] | --reset | --continue"
description: Use PROACTIVELY to guide automated git bisect sessions for finding regression commits with smart test execution
---

# Git Bisect Helper & Automation

Automated git bisect session to find regression commits: $ARGUMENTS

## Current Repository State

- Current branch: !`git branch --show-current`
- Recent commits: !`git log --oneline -10`
- Git status: !`git status --porcelain`
- Bisect status: !`git bisect log 2>/dev/null || echo "No active bisect session"`
- Available tags: !`git tag --sort=-version:refname | head -10`

## Task

Set up and manage an intelligent git bisect session to identify the exact commit that introduced a regression or bug.

## Bisect Session Management

### 1. Session Initialization
- Analyze commit history to suggest good/bad commit candidates
- Set up bisect session with appropriate range
- Validate that the range actually contains the regression
- Create backup branch before starting bisect

### 2. Automatic Test Execution
- Run specified test command at each bisect point
- Interpret test results (exit codes, output patterns)
- Automatically mark commits as good/bad based on test outcomes
- Handle test environment setup/teardown

### 3. Manual Verification Support
- Provide clear instructions for manual testing at each step
- Show relevant changes in current commit
- Guide user through good/bad decision process
- Maintain bisect log with detailed reasoning

### 4. Smart Commit Analysis
- Analyze commit messages for relevant keywords
- Show file changes that might be related to the issue
- Highlight suspicious patterns or large changes
- Skip obviously unrelated commits when possible

## Bisect Modes

### Automatic Bisect (`--auto [test-command]`)
```bash
# Automatically bisect using test command
/git-bisect-helper --auto "npm test"
/git-bisect-helper --auto "python -m pytest tests/test_regression.py"
/git-bisect-helper --auto "./scripts/check-performance.sh"
```

**Process:**
1. Run test command at each bisect point
2. Mark commit as good (exit code 0) or bad (non-zero)
3. Continue until regression commit is found
4. Provide detailed report of findings

### Manual Guided Bisect
```bash
# Interactive bisect with guidance
/git-bisect-helper v1.2.0 HEAD
/git-bisect-helper abc123 def456
```

**Process:**
1. Show current commit details and changes
2. Provide testing suggestions
3. Wait for user input (good/bad)
4. Continue to next bisect point
5. Offer insights about current commit

### Continue Existing Session (`--continue`)
```bash
# Resume interrupted bisect session
/git-bisect-helper --continue
```

**Process:**
1. Analyze current bisect state
2. Show progress and remaining steps
3. Continue with appropriate mode
4. Provide context from previous steps

### Reset Session (`--reset`)
```bash
# Clean up and reset bisect session
/git-bisect-helper --reset
```

**Process:**
1. End current bisect session
2. Return to original branch
3. Clean up temporary files
4. Provide session summary

## Intelligent Test Execution

### Test Environment Detection
- **Node.js**: Detect package.json and run appropriate package manager
- **Python**: Identify requirements.txt, setup.py, pyproject.toml
- **Ruby**: Look for Gemfile and use bundler
- **Java**: Detect Maven (pom.xml) or Gradle (build.gradle)
- **Go**: Identify go.mod and use go test
- **Rust**: Detect Cargo.toml and use cargo test

### Build System Integration
- Run build process before testing if needed
- Handle dependency installation for older commits
- Manage environment variable requirements
- Skip build for commits that don't compile (mark as bad)

### Test Result Interpretation
- Parse test output for meaningful error patterns
- Distinguish between test failures and environment issues
- Handle flaky tests with retry logic
- Provide confidence levels for automated decisions

## Commit Analysis Features

### Change Impact Assessment
```bash
# Analyze current bisect commit
Files changed: !`git show --name-only --pretty="" HEAD`
Commit message: !`git log -1 --pretty=format:"%s"`
Author and date: !`git log -1 --pretty=format:"%an (%ar)"`
```

### Regression Pattern Detection
- Identify commits touching critical areas
- Flag commits with suspicious change patterns
- Highlight performance-related modifications
- Detect dependency or configuration changes

### Context Preservation
- Maintain detailed log of bisect decisions
- Record reasoning for each good/bad marking
- Save test outputs for later analysis
- Document environmental factors

## Advanced Bisect Strategies

### Skip Strategy for Build Issues
- Automatically skip commits that don't compile
- Handle dependency version conflicts
- Skip commits with known build system issues
- Focus bisect on functional commits only

### Performance Regression Detection
- Use performance benchmarks instead of pass/fail tests
- Set acceptable performance thresholds
- Track performance trends across commits
- Identify performance cliff points

### Multi-criteria Bisecting
- Test multiple aspects simultaneously
- Handle cases where good/bad isn't binary
- Support complex regression scenarios
- Provide weighted decision making

## Bisect Session Reporting

### Progress Tracking
```
Bisect Progress:
🎯 Target: Find regression in user authentication
📊 Commits remaining: ~4 (out of 127)
⏱️  Estimated time: 8 minutes
🔍 Current commit: abc123 - "refactor auth middleware"
```

### Final Report
```
🎉 Regression Found!

Bad Commit: def456
Author: John Doe
Date: 2024-01-15 14:30:00
Message: "optimize database queries"

Files Changed:
- src/auth/database.js
- src/middleware/auth.js
- tests/auth.test.js

Bisect Log: 15 steps, 3 manual verifications
Total Time: 12 minutes

Recovery Commands:
git revert def456                    # Revert the problematic commit
git cherry-pick def456^..def456~1    # Cherry-pick the good parts
```

## Integration with Development Workflow

### CI/CD Integration
- Use same test commands as CI pipeline
- Respect CI environment variables
- Handle containerized test environments
- Integrate with existing quality gates

### Team Collaboration
- Share bisect sessions with team members
- Document findings in issue tracking
- Create reproducible bisect scripts
- Establish team bisect best practices

### Debugging Enhancement
- Generate debug reports for problematic commits
- Create minimal reproduction cases
- Suggest fix approaches based on regression type
- Link to relevant documentation or similar issues

## Safety and Recovery

### Session Backup
- Create backup branch before starting
- Save original HEAD position
- Maintain recovery information
- Handle interrupted sessions gracefully

### Error Handling
- Recover from corrupted bisect state
- Handle repository state conflicts
- Manage disk space issues during long bisects
- Provide clear error messages and solutions

## Example Workflows

### Performance Regression
```bash
# Find when tests became slower
/git-bisect-helper --auto "timeout 30s npm test"
```

### Feature Regression  
```bash
# Find when feature X broke
/git-bisect-helper --auto "./test-feature-x.sh"
```

### Build Regression
```bash
# Find when build started failing
/git-bisect-helper --auto "npm run build"
```

### Manual Investigation
```bash
# Interactive bisect for complex issues
/git-bisect-helper v2.1.0 HEAD
```

The bisect helper provides intelligent automation while maintaining full control over the debugging process, making regression hunting efficient and systematic.

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

Смотрите также

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

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