Главная · Скиллы · finishing-a-development-branch

finishing-a-development-branchзавершение feature ветки

obra/superpowers

После реализации фичи: запускает тест-suite и предлагает ровно 4 варианта — merge, PR, держать ветку или удалить. Устраняет "а что теперь?" момент.

Установка

npx -y skills add obra/superpowers --skill finishing-a-development-branch --agent claude-code

Завершение ветки разработки

Обзор

Сопровождает завершение работы, предлагая ясные варианты и выполняя выбранный сценарий.

Главный принцип: проверить тесты → определить окружение → представить варианты → выполнить выбор → убрать за собой.

Объявите в начале: «Я использую скилл finishing-a-development-branch, чтобы завершить эту работу.»

Процесс

Шаг 1: Проверить тесты

Прежде чем предлагать варианты, убедитесь, что тесты проходят:

# Запустить набор тестов проекта
npm test / cargo test / pytest / go test ./...

Если тесты падают: сообщите о провалах, исправьте до завершения. Нельзя переходить к слиянию/PR, пока тесты не проходят. Стоп — не переходите к Шагу 2.

Если тесты проходят: переходите к Шагу 2.

Шаг 2: Определить окружение

Определите состояние рабочего пространства до показа вариантов:

GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
СостояниеМенюОчистка
GIT_DIR == GIT_COMMON (обычный репозиторий)Стандартные 4 вариантаНет worktree для очистки
GIT_DIR != GIT_COMMON, именованная веткаСтандартные 4 вариантаПо происхождению (см. Шаг 6)
GIT_DIR != GIT_COMMON, detached HEADСокращённые 3 варианта (без слияния)Без очистки (управляется извне)

Шаг 3: Определить базовую ветку

# Попробовать частые базовые ветки
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null

Или спросить: «Эта ветка ответвилась от main — верно?»

Шаг 4: Представить варианты

Обычный репозиторий и worktree с именованной веткой — ровно эти 4 варианта:

Реализация завершена. Что вы хотите сделать?

1. Слить обратно в  локально
2. Запушить и создать Pull Request
3. Оставить ветку как есть (разберусь позже)
4. Отбросить эту работу

Какой вариант?

Detached HEAD — ровно эти 3 варианта:

Реализация завершена. Вы на detached HEAD (рабочее пространство управляется извне).

1. Запушить как новую ветку и создать Pull Request
2. Оставить как есть (разберусь позже)
3. Отбросить эту работу

Какой вариант?

Не добавляйте пояснений — держите варианты лаконичными.

Шаг 5: Выполнить выбор

Вариант 1: Слить локально

MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
cd "$MAIN_ROOT"

# Сначала слияние — убедитесь в успехе перед удалением чего-либо
git checkout 
git pull
git merge 

# Проверить тесты на результате слияния

Затем: очистка worktree (Шаг 6), потом удаление ветки: git branch -d <feature-branch>

Вариант 2: Запушить и создать PR

git push -u origin 

НЕ чистите worktree — он нужен пользователю живым, чтобы дорабатывать по отзывам PR.

Вариант 3: Оставить как есть

Сообщите: «Оставляю ветку <name>. Worktree сохранён в <path>.» Не чистите worktree.

Вариант 4: Отбросить

Сначала подтверждение:

Это безвозвратно удалит:
- Ветку 
- Все коммиты: 
- Worktree в 

Введите 'discard' для подтверждения.

Дождитесь точного подтверждения. Если подтверждено — очистка worktree (Шаг 6), затем принудительное удаление ветки: git branch -D <feature-branch>

Шаг 6: Очистка рабочего пространства

Выполняется только для вариантов 1 и 4. Варианты 2 и 3 всегда сохраняют worktree.

Если GIT_DIR == GIT_COMMON: обычный репозиторий, чистить нечего. Готово.

Если путь worktree под .worktrees/ или worktrees/: этот worktree создал Superpowers — очистка наша.

MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
cd "$MAIN_ROOT"
git worktree remove "$WORKTREE_PATH"
git worktree prune  # Самовосстановление: убрать устаревшие регистрации

Иначе: рабочим пространством владеет хост-окружение (обвязка). НЕ удаляйте его. Если платформа даёт инструмент выхода из пространства — используйте его. Иначе оставьте пространство на месте.

Краткая справка

ВариантСлияниеPushСохранить worktreeУдалить ветку
1. Слить локальнодада
2. Создать PRдада
3. Оставить как естьда
4. Отброситьда (принуд.)

Частые ошибки

Пропуск проверки тестов — слияние сломанного кода, провальный PR. Фикс: всегда проверяйте тесты до предложения вариантов.

Открытые вопросы — «Что делать дальше?» неоднозначно. Фикс: ровно 4 структурированных варианта (или 3 для detached HEAD).

Очистка worktree для варианта 2 — удаляет worktree, нужный для доработки PR. Фикс: чистите только для вариантов 1 и 4.

Удаление ветки до удаления worktreegit branch -d падает, т.к. worktree ещё ссылается на ветку. Фикс: сначала слияние, потом удаление worktree, потом ветки.

Запуск git worktree remove изнутри worktree — команда молча падает, если CWD внутри удаляемого worktree. Фикс: всегда cd в корень основного репозитория перед git worktree remove.

Очистка worktree, принадлежащих обвязке — удаление worktree, созданного обвязкой, порождает фантомное состояние. Фикс: чистите только worktree под .worktrees/ или worktrees/.

Нет подтверждения для отбрасывания — случайно удалите работу. Фикс: требуйте набранного подтверждения «discard».

Красные флаги

Никогда: продолжать с падающими тестами; сливать без проверки тестов на результате; удалять работу без подтверждения; делать force-push без явного запроса; удалять worktree до подтверждения успеха слияния; чистить worktree, которые вы не создавали; запускать git worktree remove изнутри worktree.

Всегда: проверять тесты до вариантов; определять окружение до меню; представлять ровно 4 варианта (или 3 для detached HEAD); получать набранное подтверждение для варианта 4; чистить worktree только для вариантов 1 и 4; делать cd в корень репозитория перед удалением worktree; запускать git worktree prune после удаления.

Из того же репозитория

brainstormingобязательное планирование перед кодингом
obra/superpowers
Блокирует реализацию до завершения планирования: контекст, уточняющие вопросы, варианты подхода, согласование дизайна. Генерирует spec-документы с автопроверкой на противоречия.
215.9k197.2k установок
using-superpowersмета-скилл для маркетплейса Claude
obra/superpowers
Мета-скилл, который заставляет Claude реально вызывать скиллы перед тем как что-то делать самостоятельно. Основа работы всего маркетплейса Claude Code.
215.9k125.3k установок
systematic-debuggingсистемный подход к отладке
obra/superpowers
Четырёхфазный протокол отладки до любых правок: сбор доказательств, постановка гипотезы, изоляция проблемы, исправление. Запрещает гадать без данных.
215.9k124.6k установок
writing-plansпланы реализации с кодом
obra/superpowers
Преобразует спецификации в пошаговые планы реализации с фрагментами кода, точными путями к файлам и конкретными командами тестов.
215.9k123.9k установок
requesting-code-reviewнезависимое код-ревью подагентом
obra/superpowers
Запускает подагент-ревьюера с чистым контекстом только об изменениях — без истории сессии. Чистые, непредвзятые отзывы без накопленных предположений.
215.9k111.1k установок
test-driven-developmentстрогий TDD
obra/superpowers
Enforces строгую разработку через тесты: тесты обязательно до кода реализации. Не позволяет писать production код без покрывающих тестов.
215.9k109.6k установок