obra/superpowers / using-git-worktrees
using-git-worktrees
- Установки
- 177,387
- Автор
- obra/superpowers
- Источник
- github.com/obra/superpowers
Скилл помогает организовать изолированное рабочее пространство для работы над задачами с помощью git worktrees. Он определяет, находитесь ли вы уже в таком пространстве, создаёт его через нативные инструменты или git, а затем настраивает проект и проверяет тесты для чистого старта. Полезен, чтобы не мешать текущей ветке и избежать конфликтов.
Установить скилл
npx skills add https://github.com/obra/superpowers --skill using-git-worktrees
Аудит безопасности
Gen Agent Trust Hub
passThe skill provides a systematic workflow for managing Git worktrees, including directory selection, safety verification, and automated project setup. It utilizes standard developer tools and follows best practices for workspace isolation.
Audited: 5/8/2026, 11:49:06 AM
Socket
passNo alerts
Audited: 5/8/2026, 11:49:23 AM
Snyk
warnRisk: MEDIUM · 1 issue
Audited: 5/8/2026, 11:48:46 AM
Runlayer
pass1/1 file flagged
Audited: 2/26/2026, 4:23:00 PM
ZeroLeaks
passScore: 93/100 · 2 sections analyzed
Audited: 4/16/2026, 11:12:25 AM
Промпт скилла
Using Git Worktrees
Overview
Ensure work happens in an isolated workspace. Prefer your platform's native worktree tools. Fall back to manual git worktrees only when no native tool is available.
Core principle: Detect existing isolation first. Then use native tools. Then fall back to git. Never fight the harness.
Announce at start: "I'm using the using-git-worktrees skill to set up an isolated workspace."
Step 0: Detect Existing Isolation
Before creating anything, check if you are already in an isolated workspace.
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)
BRANCH=$(git branch --show-current)
Submodule guard: GIT_DIR != GIT_COMMON is also true inside git submodules. Before concluding "already in a worktree," verify you are not in a submodule:
# If this returns a path, you're in a submodule, not a worktree — treat as normal repo
git rev-parse --show-superproject-working-tree 2>/dev/null
If GIT_DIR != GIT_COMMON (and not a submodule): You are already in a linked worktree. Skip to Step 2 (Project Setup). Do NOT create another worktree.
Report with branch state:
- On a branch: "Already in isolated workspace at
<path>on branch<name>." - Detached HEAD: "Already in isolated workspace at
<path>(detached HEAD, externally managed). Branch creation needed at finish time."
If GIT_DIR == GIT_COMMON (or in a submodule): You are in a normal repo checkout.
Has the user already indicated their worktree preference in your instructions? If not, ask for consent before creating a worktree:
"Would you like me to set up an isolated worktree? It protects your current branch from changes."
Honor any existing declared preference without asking. If the user declines consent, work in place and skip to Step 2.
Step 1: Create Isolated Workspace
You have two mechanisms. Try them in this order.
1a. Native Worktree Tools (preferred)
The user has asked for an isolated workspace (Step 0 consent). Do you already have a way to create a worktree? It might be a tool with a name like EnterWorktree, WorktreeCreate, a /worktree command, or a --worktree flag. If you do, use it and skip to Step 2.
Native tools handle directory placement, branch creation, and cleanup automatically. Using git worktree add when you have a native tool creates phantom state your harness can't see or manage.
Only proceed to Step 1b if you have no native worktree tool available.
1b. Git Worktree Fallback
Only use this if Step 1a does not apply — you have no native worktree tool available. Create a worktree manually using git.
Directory Selection
Follow this priority order. Explicit user preference always beats observed filesystem state.
-
Check your instructions for a declared worktree directory preference. If the user has already specified one, use it without asking.
-
Check for an existing project-local worktree directory:
ls -d .worktrees 2>/dev/null # Preferred (hidden) ls -d worktrees 2>/dev/null # AlternativeIf found, use it. If both exist,
.worktreeswins. -
If there is no other guidance available, default to
.worktrees/at the project root.
Safety Verification (project-local directories only)
MUST verify directory is ignored before creating worktree:
git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null
If NOT ignored: Add to .gitignore, commit the change, then proceed.
Why critical: Prevents accidentally committing worktree contents to repository.
Create the Worktree
# Determine path based on chosen location
path="$LOCATION/$BRANCH_NAME"
git worktree add "$path" -b "$BRANCH_NAME"
cd "$path"
Sandbox fallback: If git worktree add fails with a permission error (sandbox denial), tell the user the sandbox blocked worktree creation and you're working in the current directory instead. Then run setup and baseline tests in place.
Step 2: Project Setup
Auto-detect and run appropriate setup:
# Node.js
if [ -f package.json ]; then npm install; fi
# Rust
if [ -f Cargo.toml ]; then cargo build; fi
# Python
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi
# Go
if [ -f go.mod ]; then go mod download; fi
Step 3: Verify Clean Baseline
Run tests to ensure workspace starts clean:
# Use project-appropriate command
npm test / cargo test / pytest / go test ./...
If tests fail: Report failures, ask whether to proceed or investigate.
If tests pass: Report ready.
Report
Worktree ready at <full-path>
Tests passing (<N> tests, 0 failures)
Ready to implement <feature-name>
Quick Reference
| Situation | Action |
|---|---|
| Already in linked worktree | Skip creation (Step 0) |
| In a submodule | Treat as normal repo (Step 0 guard) |
| Native worktree tool available | Use it (Step 1a) |
| No native tool | Git worktree fallback (Step 1b) |
.worktrees/ exists | Use it (verify ignored) |
worktrees/ exists | Use it (verify ignored) |
| Both exist | Use .worktrees/ |
| Neither exists | Check instruction file, then default .worktrees/ |
| Directory not ignored | Add to .gitignore + commit |
| Permission error on create | Sandbox fallback, work in place |
| Tests fail during baseline | Report failures + ask |
| No package.json/Cargo.toml | Skip dependency install |
Common Rationalizations
| Excuse | Reality |
|---|---|
| "I'm obviously not in a worktree — no need to check" | Run Step 0. Harness-created isolation and submodules both fool eyeballing; the detection commands settle it. |
"git worktree add is quicker than hunting for a native tool" | A native tool (e.g. EnterWorktree) owns placement, branching, and cleanup. Bypassing it is the #1 mistake — it creates phantom state your harness can't see or manage. |
| "The worktree directory is surely ignored already" | Run git check-ignore. An unignored worktree directory commits the whole tree into the repo. |
| "Any directory name works" | Explicit instructions beat an existing project-local directory, which beats the .worktrees/ default. |
| "The workspace is fresh — baseline tests can wait" | A dirty baseline makes every later failure ambiguous. Run the tests now; proceeding past failures is your human partner's call. |
Все файлы скилла
- SKILL.md
Другие скиллы автора
brainstorming
345,072 установокobra/superpowers
Превращает сырые идеи в продуманный дизайн и техническое задание до начала разработки. Помогает классифицировать задачу, задавать правильные вопросы, предлагать варианты решений и получать одобрение человека перед написанием кода, чтобы не тратить время на реализацию неверных предположений.
systematic-debugging
242,200 установокobra/superpowers
Системный подход к отладке: сначала найти первопричину ошибки, затем исправить её, а не симптомы. Процесс включает четыре фазы — исследование причины, анализ паттернов, проверку гипотез и реализацию исправления с тестом. Помогает избегать поверхностных решений и повторных сбоев.
writing-plans
234,283 установокobra/superpowers
Скилл помогает агентам превращать техническое задание в детальный пошаговый план реализации: разбивает работу на задачи и элементарные шаги с готовым кодом, тестами и коммитами. Гарантирует отсутствие неопределённости в плане и полное покрытие требований спецификации, благодаря чему даже разработчик без знания кодовой базы сможет выполнить работу последовательно и без ошибок.
using-superpowers
230,780 установокobra/superpowers
Этот навык обязывает ИИ перед началом любой работы или ответа проверять наличие подходящих навыков и обязательно их использовать. Он задаёт строгие правила приоритета: сначала процессные навыки (например, мозговой штурм), затем исполнительные. Помогает избегать пропуска важных инструментов и следовать инструкциям.
requesting-code-review
214,263 установокobra/superpowers
Скилл автоматизирует запрос проверки кода через субагента, изолируя контекст ревью и экономя ресурсы. Он помогает быстро получать обратную связь по изменениям, исправлять критические ошибки и улучшать качество работы.
test-driven-development
212,211 установокobra/superpowers
Скилл внедряет строгую практику разработки через тестирование: сначала пишется падающий тест, затем минимальный код для его прохождения, после чего выполняется рефакторинг. Помогает не пропускать этапы, избегать рационализаций и гарантировать, что каждый баг или фича покрыты проверяемым тестом.
executing-plans
198,260 установокobra/superpowers
Скилл для пошагового выполнения письменных планов реализации в отдельной сессии. Загружает план, критически оценивает его, выполняет задачи по шагам с проверками и сообщает о завершении. Останавливается при возникновении препятствий и запрашивает уточнения вместо самостоятельных решений.
verification-before-completion
194,741 установокobra/superpowers
Скилл требует подтверждать выполнение работы свежими результатами проверок, а не предположениями. Перед любым заявлением о готовности, успехе или исправлении ошибки нужно запустить соответствующую команду и убедиться в её выводе. Помогает избегать ложных отчётов и поверхностных оценок, заставляя опираться на факты, а не на уверенность или слова агентов.
subagent-driven-development
191,165 установокobra/superpowers
Скилл исполняет план реализации, делегируя каждую задачу отдельному субагенту с изолированным контекстом, после каждой задачи проводит ревью на соответствие спецификации и качество кода, а в конце — общее ревью всей ветки. Ведёт журнал прогресса, устойчивый к сжатию контекста, и не останавливается между задачами, самостоятельно разрешая конфликты и фиксируя решения. Ускоряет итерации и повышает качество при независимых задачах в рамках одной сессии.
receiving-code-review
180,519 установокobra/superpowers
Помогает технически грамотно принимать замечания код-ревью: не соглашаться на словах, а проверять каждое замечание по коду, уточнять неясное и аргументированно возражать, если замечание некорректно. Учит избегать показного согласия и слепо следовать советам, отсекать лишнее и не ломать рабочую функциональность.
dispatching-parallel-agents
177,899 установокobra/superpowers
Этот навык помогает параллельно выполнять несколько независимых задач, назначая каждому агенту конкретную область и контекст. Он полезен для быстрого исправления ошибок в разных файлах или подсистемах, экономя время и избегая конфликтов.
finishing-a-development-branch
174,077 установокobra/superpowers
Помогает корректно завершить работу над веткой разработки: проверяет тесты, определяет тип git-окружения и предлагает на выбор локальное слияние, создание пул-реквеста или сохранение ветки как есть. После выбора выполняет интеграцию, очищает рабочее дерево и защищает от случайной потери незакоммиченных файлов.