Plain text · sha256 63e763304c95
The description, line by line
30 lines One line number, because there is no previous capture to number against.
1
Exit a worktree session created by EnterWorktree and return the session to the original working directory.
2
3
## Scope
4
5
This tool ONLY operates on worktrees created by EnterWorktree in this session. It will NOT touch:
6
- Worktrees you created manually with `git worktree add`
7
- Worktrees from a previous session (even if created by EnterWorktree then)
8
- The directory you're in if EnterWorktree was never called
9
10
If called outside an EnterWorktree session, the tool is a **no-op**: it reports that no worktree session is active and takes no action. Filesystem state is unchanged.
11
12
## When to Use
13
14
- The user explicitly asks to "exit the worktree", "leave the worktree", "go back", or otherwise end the worktree session
15
- Do NOT call this proactively — only when the user asks
16
17
## Parameters
18
19
- `action` (required): `"keep"` or `"remove"`
20
- `"keep"` — leave the worktree directory and branch intact on disk. Use this if the user wants to come back to the work later, or if there are changes to preserve.
21
- `"remove"` — delete the worktree directory and its branch. Use this for a clean exit when the work is done or abandoned.
22
- `discard_changes` (optional, default false): only meaningful with `action: "remove"`. If the worktree has uncommitted files or commits not on the original branch, the tool will REFUSE to remove it unless this is set to `true`. If the tool returns an error listing changes, confirm with the user before re-invoking with `discard_changes: true`.
23
24
## Behavior
25
26
- Restores the session's working directory to where it was before EnterWorktree
27
- Clears CWD-dependent caches (system prompt sections, memory files, plans directory) so the session state reflects the original directory
28
- If a tmux session was attached to the worktree: killed on `remove`, left running on `keep` (its name is returned so the user can reattach)
29
- Once exited, EnterWorktree can be called again to create a fresh worktree
30
What it accepts
2 parameters The JSON parameter schema sent beside this description, 557 characters of it. Name, type, then whether the client marked it required.action
keep | remove
required
"keep" leaves the worktree and branch on disk; "remove" deletes both.
discard_changes
boolean
optional
Required true when action is "remove" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.
sha256 426b4289b647 · the schema as the client sent it:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"action": {
"description": "\"keep\" leaves the worktree and branch on disk; \"remove\" deletes both.",
"enum": [
"keep",
"remove"
],
"type": "string"
},
"discard_changes": {
"description": "Required true when action is \"remove\" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.",
"type": "boolean"
}
},
"required": [
"action"
],
"type": "object"
}