git-worktrees: defer bare-worktree requests to the harness's native worktree flow — the skill is for provisioned parallel dev only #63
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#63
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Finding
git-worktreescaptures every "create worktree" request, including on projects where it hasnothing to do. Its Triggers fire unconditionally, and the Dispatch section's fallback branch reads
"No
parallel_dev:block → nothing changes. Use the ad-hoc procedures below exactly as theyare." — so on a project with no provisioning at all (no
parallel_dev:, no## Worktreeshooks),the skill hand-runs worktree creation that the harness's native worktree flow (EnterWorktree:
managed location under
.claude/worktrees/, branch from origin default, keep/remove exitdiscipline, refuses to delete unmerged work) already does with less ceremony and better safety.
Live occurrence (2026-08-25): devwork-skills' own parallel-sessions setup had to write an explicit
"deliberately not used here" carve-out into its CLAUDE.md to keep sessions off this skill. The
skill text itself should carry that boundary so every consumer doesn't need a local carve-out.
Operator direction (2026-08-25): this skill's purpose is provisioned parallel dev — host worktrees
with setup around them, and per the operator's isolation policy, independent containers per
worktree wherever runtime resources exist. A bare worktree is not its business.
Amendment (minimal)
description:— state the boundary so skill selection routes correctly:the skill is for worktrees with provisioning (env/install/database/per-slot containers);
a plain worktree with no setup belongs to the harness's native worktree flow.
parallel_dev:declared → slot path (unchanged);parallel_dev:but a## Worktreesprovisioning section exists → ad-hoc procedures(unchanged);
functionality (EnterWorktree) and do not hand-run the procedures.
Scope guard: text-only routing amendment; no helper, procedure-body, or contract changes. The
operator's container-per-worktree policy itself stays a project declaration (see #62's schema
work), not skill text — the skill remains stack-agnostic.
Lane
Meta lane (/meta-amend) — evidence-driven amendment to existing skill text.
meta-amend outcome — amended, commit
7453ac5(on main, pushed to origin + github).Edit (
plugin/skills/git-worktrees/SKILL.md, text-only, 15+/7-):description:now states the boundary: the skill is for provisioned parallel dev(env/install/databases/per-slot containers); a plain worktree with nothing to provision belongs
to the harness's native worktree flow.
parallel_dev:+ no## Worktreessection →EnterWorktree, not this skill).
declared → defer to the harness's native worktree flow, do not hand-run the procedures.
Gate:
scripts/lint-conventions.shclean at HEAD.Desk-check against the originating scenario: on devwork-skills (no
parallel_dev:, no## Worktreessection — verified) a "create a worktree for #N" request now hits the trigger guardand the dispatch third branch and routes to EnterWorktree. Slot-pool projects (verity) and
hooks-only projects walk their branches verbatim — no behavior change for them.
Validates next: the first parallel-session wave on this repo (sessions instructed per CLAUDE.md
"Parallel sessions") — a session reaching for /dev:git-worktrees instead of EnterWorktree would be
the counter-evidence. Amendment itself was executed through the built-in flow (EnterWorktree →
commit
7453ac5→ ff-merge to main), dogfooding the routing it documents.