Worktree в .claude/worktrees/ через EnterWorktree, вход без подтверждения (#25, 0.5.1) #27
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/25-worktrees-in-repo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #25 — решение владельца 23.10.2026, вариант 1. Bounded: дизайн утверждён в чате 24.10.2026.
Зачем
С Claude Code 2.1.206
EnterWorktreeс путём вне<repo>/.claude/worktrees/спрашивает подтверждение при каждом входе. Этот запрос не снимают ни allow-правила, ниadditionalDirectories, ни auto mode (docs/worktrees, «Ask Claude to create a worktree»). Соседний каталог../<repo>.wt/в обвязке нигде не был записан: его выбрал я в начале сессии. Skillusing-git-worktreesвелит сначала пользоваться родным инструментом, то естьEnterWorktree.Что сделано
roles/dev.md, «Исполнение»: worktree создаётEnterWorktreeс именем<slug>. Он кладёт его в<repo>/.claude/worktrees/<slug>на временную веткуworktree-<slug>отorigin/main; после заведения issue ветка переименовывается командойgit branch -m feat/<id>-<slug>. Чеклист закрытия:archive-<id>, веткаchore/archive-<id>;ExitWorktree(keep), затемgit worktree removeиgit branch -D.EnterWorktreeблокирует worktree (locked claude session …), иExitWorktreeэту блокировку снимает — проверено вживую..claude/worktrees/в.gitignore:adopt-project.sh,project-template/gitignore,.gitignoreэтого репозитория.doctor.shвыдаётWARN .claude/worktrees/ не в .gitignore. Проверяетсяgit check-ignore .claude/worktrees/со слешем, поэтому засчитываются и более широкие шаблоны вроде.claude/.hook-guards(openspec/specs/,validate --strictпроходит): два сценария..boundedосновного checkout на вложенный worktree не действует.HARNESS.md(шаг 4, п. 4, абзац о подтверждениях),SKILL.md, CHANGELOG 0.5.1,CLAUDE.md..wt/<задача>/в многорепозиторном workspace) не затронут. Вопрос записан в #2, часть 2.Проверка
bash tests/run.sh— passed 519, failed 0. Новых тестов 14:test-doctor(2),test-workspace(2),test-roles(2).EnterWorktreeс именем25-worktrees-in-repo, вход без подтверждения, переименование ветки;doctor.shиз ветки на основном checkout выдаёт WARN (его.gitignoreпока старый), на worktree — WARN нет;.claude/worktrees/…прошли без подтверждения.Находки
EnterWorktreeблокирует worktree (git worktree lock), а заблокированный worktreegit worktree removeне удаляет; блокировку снимаетExitWorktree(keep)00b496d(порядок в п. 4)codegraph_exploreсprojectPathвложенного worktree без своего индекса отвечает индекс ближайшего каталога выше, то есть основного checkout, — устаревший код без предупреждения. Правило «codegraph initв worktree» вroles/dev.mdэто закрывает (из README codegraph: «nearest .codegraph/ index at or above that path», вживую не проверялось)Rulings I made
global/CLAUDE.mdне менял: он уже 3058 Б при пороге 3 КБ. Правило лежит вroles/dev.md. Цена: сессия без/role devо нём не узнает (как и о прочих правилах процесса).git branch --unset-upstreamпослеEnterWorktreeне нужен: ветка создаётся без upstream, аgit push -u origin feat/…задаёт его сам. Цена: нет.После merge
bash install.sh --no-permissions(обновитroles/dev.md, doctor). В основном checkout послеgit pull.claude/worktrees/перестанет показываться как неотслеживаемый.🤖 Generated with Claude Code