Skip to content

feat(templates): deliver on a branch in the current checkout, not a worktree - #24

Merged
protonspy merged 1 commit into
mainfrom
feat/drop-worktree
Aug 13, 2026
Merged

feat(templates): deliver on a branch in the current checkout, not a worktree#24
protonspy merged 1 commit into
mainfrom
feat/drop-worktree

Conversation

@protonspy

Copy link
Copy Markdown
Owner

What changed

The worktree is out of the implementation procedure. It existed for one case — several Claude Code sessions at once on one repo — and that is the user's own setup, not a step every single-session run should pay for: a directory to create, one to switch into, one to remember to remove, and a stale checkout left behind whenever a run died before the last step.

What survives is the one line the worktree was really carrying: leave the checkout back on main and clean, because that is where the next unit of work starts.

  • rules/delivery.md — now Delivery — branch, PR, and the step is git switch -c <type>/<slug> in the checkout you are in. The parallel-session worktree is named once, as the user's to set up. Still 62 lines, inside its grandfathered cap.
  • skills/plan-run/SKILL.md — three kickoff questions instead of four. Out go the worktree row, the in-place cost bullet, step 8 ("remove the worktree"), and the debris paragraph in Resuming, which now asks which branch to read rather than which checkout.
  • commands/scc-plan-run.md, agents/code-review.md, agents/security-review.md — the two review agents' "in a worktree, read that path" guard is gone; it protected against nothing scc creates any more.
  • Codeworktree leaves loopValues / checkLoopAnswers (internal/validate/plan.go) and the map brief frontmatter line (internal/cli/map.go).
  • Designorchestration.md §6 (with the removed key recorded and why), §8 and §9; plan.md, plan-format-v2.md, research.md aligned.
  • Template set 14 → 15.

Compatibility

A plan that already recorded worktree: per-group keeps validating. The validator only checks keys it knows, so the key is ignored rather than rejected — it just stops appearing in map brief.

How it was verified

make checkgofmt -l, go vet, and the full suite with -race. TestPlanLoopAnswers now expects two findings; TestSetFrontmatterKeepsTheOrderAsked uses lang in place of the removed key. TestFreshArtifactsPassTheirOwnValidators and TestRulesStayShortEnoughToBePreloaded are the two gates that cover the template edits, and both pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ECsTMymG9rUZWKdFvU6wMz

…orktree

The worktree existed for one case — several sessions at once on one repo —
and that is the user's own setup, not a step every single-session run should
pay for: a directory to create, one to switch into, one to remember to
remove, and a stale checkout left behind whenever a run died before the last
step. What survives is the line it was really carrying: leave the checkout
back on `main` and clean, because that is where the next unit of work starts.

delivery.md becomes `git switch -c <type>/<slug>`, with the parallel-session
worktree named once as the user's to set up. `plan-run` asks three kickoff
questions instead of four, and `worktree:` stops being a frontmatter answer:
it leaves loopValues, checkLoopAnswers and the `map brief` line. A plan that
already recorded `worktree: per-group` keeps validating — the key is ignored,
not rejected — and simply stops being displayed.

Template set 14 -> 15.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ECsTMymG9rUZWKdFvU6wMz
@protonspy
protonspy merged commit 92c1695 into main Aug 13, 2026
4 checks passed
@protonspy
protonspy deleted the feat/drop-worktree branch August 13, 2026 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant