Install any skill in seconds. Free to start, no credit card required.
Get Started Free →shibing624/worktree
Isolate this CLI session in its own git worktree of the current repository (worktree tool: status / use / merge / remove).
Passed 13 of 20 test cases with the skill, and 5 of 20 without it.
and 7 more in the full report
10 fixed6 passed either way8 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
I need to inspect `package.json` inside the workspace directory `/repo/wt/dep-update`. How should read_file be parameterized?
| Checked | Without skill | With skill |
|---|---|---|
| Passes work_dir set to /repo/wt/dep-update when calling read_file. | Missed | Passed |
The instructions your model reads when the skill loads.
Several sessions in one checkout overwrite each other and contend for git's index. A worktree is one directory + one branch per task, sharing the repository.
This session does not move. worktree(action="new") returns a path.
Pass that path as work_dir on read_file / write_file / apply_patch /
execute. On glob / grep, pass it as path. Omit those arguments and
the call stays in this session's directory.
Do not cd and expect later calls to follow — each call is independent.
Do not execute git worktree add: that only makes a directory, and later
calls still use this session unless you pass work_dir / path. Use
worktree(action="new").
list_agents shows another session in this directory (dirty files, same
branch) and you are about to edit.Not this: a read-only task subagent (it does not write). A second CLI
that should start already inside a tree is agentica --worktree <task>.
Name the task, not yourself. Reused while the checkout is healthy; gone after merge. A registration that is no longer a checkout is refused — remove it first, or pick another name. The tool does not delete leftover files to make room.
worktree(action="new", name="<task>") — create or reuse; returns the pathworktree(action="status") — every worktree of this repoworktree(action="merge", name="<task>") — land on local main (conflicts
stay in that worktree, then fast-forward on main), delete the checkoutworktree(action="remove", name="<task>") — drop a wt/* checkout git
will allow (dirty is refused; an unmerged branch is left in place)new(name="main") is refused: main is the repository root, not a task.
test cases passed, vs 5 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.