# ce-worktree

Скилл заводит отдельное рабочее дерево git, чтобы правки не трогали основной чекаут. Пригодится, когда нужно поработать в стороне от текущей ветки.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3100 установок · ★ 25714
- Автор: EveryInc
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/EveryInc/compound-engineering-plugin/tree/HEAD/skills/ce-worktree/SKILL.md
- Обновлён: 2026-10-25
- HTML: https://affpapa.org/nevibecode/skills/ce-worktree

## Что делает

Скилл определяет, есть ли уже изоляция, и только потом что-то создаёт. Сначала он сравнивает абсолютные пути git-каталога и общего каталога: если они совпадают, это обычный чекаут, если различаются — связанное дерево или подмодуль. Подмодуль считается обычным чекаутом, а вот в готовом worktree скилл просто работает на месте: дерево из дерева попадёт не туда и останется невидимым для харнесса, который создал текущее.

Дальше порядок такой: сначала родной инструмент харнесса — `EnterWorktree`, `WorktreeCreate`, команда `/worktree` или флаг `--worktree`. Только если такого нет, в дело идёт обычный git. Фолбэк запускается из корня репозитория, проверяет через `git check-ignore -q .worktrees/`, что каталог `.worktrees/` в `.gitignore`, и обновляет базу командой `git fetch origin <from-branch>`. Отсутствие `origin` или другое имя удалённого репозитория — не повод останавливаться, работа продолжается с локальной ссылкой.

Режимов два. Для новой работы ветка создаётся от базы, для существующей ссылки — PR, ветки или коммита — дерево привязывается к ней. Ветка может быть вычекаучена только в одном дереве: если ссылка уже занята, скилл сообщает путь и не делает второе дерево. PR вычекаутивается в локальную ветку, а не в оторванный `FETCH_HEAD`, иначе коммиты цикла правок осиротеют. Если `git worktree add` падает из-за песочницы или прав, скилл не продолжает в текущем чекауте, а спрашивает, что делать.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add EveryInc/compound-engineering-plugin --skill ce-worktree -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/ce-worktree/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/ce-worktree/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add EveryInc/compound-engineering-plugin --skill ce-worktree -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/ce-worktree/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add EveryInc/compound-engineering-plugin --skill ce-worktree -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/ce-worktree/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install EveryInc/compound-engineering-plugin ce-worktree
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/ce-worktree/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add EveryInc/compound-engineering-plugin --skill ce-worktree -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/EveryInc/compound-engineering-plugin --path skills/ce-worktree
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/ce-worktree/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add EveryInc/compound-engineering-plugin --skill ce-worktree -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/EveryInc/compound-engineering-plugin/tree/HEAD/skills/ce-worktree/SKILL.md

## Когда брать
- завести отдельное дерево под новую задачу, не трогая текущую ветку
- привязать worktree к существующей ветке, PR или коммиту
- не создать второе дерево для ветки, которая уже вычекаучена
- вычекаутить PR в локальную ветку, чтобы коммиты не осиротели
- проверить, не работаешь ли ты уже внутри изолированного дерева

## Примеры запросов агенту
- Заведи worktree под новую задачу и скажи путь с веткой
- Привяжи worktree к ветке `fix/email-validation`
- Вычекауть PR в отдельное дерево

## Похожие
- [triage](https://affpapa.org/nevibecode/skills/triage.md) — скилл · 990453 установки
- [code-review](https://affpapa.org/nevibecode/skills/code-review.md) — скилл · 789521 установка
- [implement](https://affpapa.org/nevibecode/skills/implement.md) — скилл · 774700 установок
- [git-guardrails-claude-code](https://affpapa.org/nevibecode/skills/git-guardrails-claude-code.md) — скилл · 499069 установок
- [setup-pre-commit](https://affpapa.org/nevibecode/skills/setup-pre-commit.md) — скилл · 489289 установок
- [scaffold-exercises](https://affpapa.org/nevibecode/skills/scaffold-exercises.md) — скилл · 480196 установок

Из того же набора: [everyinc/compound-engineering-plugin](https://affpapa.org/nevibecode/by/everyinc/compound-engineering-plugin.md) — 34 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
