Worktree обвязки в .claude/worktrees/ внутри репозитория вместо соседнего каталога .wt (вход без подтверждения) #25

Closed
opened 2026-10-23 22:53:51 +03:00 by aep · 1 comment
Owner

Решение владельца 23.10.2026: worktree обвязки живут в <repo>/.claude/worktrees/<имя>, а не в ../<repo>.wt/<имя>.

Почему. С Claude Code 2.1.206 EnterWorktree с путём вне <repo>/.claude/worktrees/ спрашивает подтверждение при каждом входе. Этот запрос не снимают ни allow-правило EnterWorktree, ни permissions.additionalDirectories, ни auto mode — только bypassPermissions (https://code.claude.com/docs/en/worktrees.md, «Ask Claude to create a worktree»). Сейчас обвязка держит worktree в ../<repo>.wt/, поэтому на каждой задаче нужно одно-два подтверждения: фича и архивный PR.

Рассмотрены и отклонены:

  • хук WorktreeCreate с прежним местом — что вход пройдёт без запроса, не подтверждено; хук заменяет всю git-логику создания worktree;
  • оставить как есть.

Сделать (классификация и дизайн — на brainstorming):

  • Соглашение о месте worktree: roles/dev.md, docs/HARNESS.md, global/CLAUDE.md, project-template/ (секция харнеса, gitignore).
  • .claude/worktrees/ в .gitignore проекта: adopt-project.sh, new-project.sh, шаблон; в этом репозитории.
  • guard-main и require-plan для вложенного worktree. Ожидается, что ветка определяется по корню worktree, а не основного checkout. Тесты в test-hook-guard-main/test-hook-require-plan; связь с M-10 из #13.
  • codegraph: индекс основного checkout не должен включать .claude/worktrees/ (проверить, уважает ли codegraph .gitignore); codegraph init в worktree.
  • doctor.sh: подсказки про worktree и MCP projectPath.
  • Что делать с существующими ../<repo>.wt/ — перенос не нужен, новые задачи стартуют в новом месте.
  • Вне задачи: многорепозиторный workspace awp-ca (.wt/), часть 2 #2.
Решение владельца 23.10.2026: worktree обвязки живут в `<repo>/.claude/worktrees/<имя>`, а не в `../<repo>.wt/<имя>`. Почему. С Claude Code 2.1.206 `EnterWorktree` с путём вне `<repo>/.claude/worktrees/` спрашивает подтверждение при каждом входе. Этот запрос не снимают ни allow-правило `EnterWorktree`, ни `permissions.additionalDirectories`, ни auto mode — только `bypassPermissions` (https://code.claude.com/docs/en/worktrees.md, «Ask Claude to create a worktree»). Сейчас обвязка держит worktree в `../<repo>.wt/`, поэтому на каждой задаче нужно одно-два подтверждения: фича и архивный PR. Рассмотрены и отклонены: - хук `WorktreeCreate` с прежним местом — что вход пройдёт без запроса, не подтверждено; хук заменяет всю git-логику создания worktree; - оставить как есть. Сделать (классификация и дизайн — на brainstorming): - [x] Соглашение о месте worktree: `roles/dev.md`, `docs/HARNESS.md`, `global/CLAUDE.md`, `project-template/` (секция харнеса, `gitignore`). - [x] `.claude/worktrees/` в `.gitignore` проекта: `adopt-project.sh`, `new-project.sh`, шаблон; в этом репозитории. - [x] guard-main и require-plan для вложенного worktree. Ожидается, что ветка определяется по корню worktree, а не основного checkout. Тесты в `test-hook-guard-main`/`test-hook-require-plan`; связь с M-10 из #13. - [x] codegraph: индекс основного checkout не должен включать `.claude/worktrees/` (проверить, уважает ли codegraph `.gitignore`); `codegraph init` в worktree. - [x] `doctor.sh`: подсказки про worktree и MCP `projectPath`. - [x] Что делать с существующими `../<repo>.wt/` — перенос не нужен, новые задачи стартуют в новом месте. - [x] Вне задачи: многорепозиторный workspace awp-ca (`.wt/`), часть 2 #2.
aep changed title from Worktree обвязки в <repo>/.claude/worktrees/ вместо ../<repo>.wt/ (вход без подтверждения) to Worktree обвязки в .claude/worktrees/ внутри репозитория вместо соседнего каталога .wt (вход без подтверждения) 2026-10-23 22:53:59 +03:00
aep closed this issue 2026-10-23 23:22:50 +03:00
Author
Owner

Закрыто PR #27 (merge 957ce1e, 0.5.1), все пункты — 00b496d. Оговорки:

  • global/CLAUDE.md не менялся: он уже 3058 Б при пороге 3 КБ, правило лежит в roles/dev.md (ruling в PR).
  • new-project.sh получает строку через project-template/gitignore.
  • awp-ca — вопрос перенесён в #2, часть 2.

Попутно O-16 (блокировку EnterWorktree снимает ExitWorktree keep) — fixed 00b496d. Отложенное O-17 — #28.

Закрыто PR #27 (merge 957ce1e, 0.5.1), все пункты — 00b496d. Оговорки: - `global/CLAUDE.md` не менялся: он уже 3058 Б при пороге 3 КБ, правило лежит в `roles/dev.md` (ruling в PR). - `new-project.sh` получает строку через `project-template/gitignore`. - awp-ca — вопрос перенесён в #2, часть 2. Попутно O-16 (блокировку `EnterWorktree` снимает `ExitWorktree` keep) — fixed 00b496d. Отложенное O-17 — #28.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/claude-harness#25
No description provided.