You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/finish-worktree/SKILL.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: finish-worktree
3
-
description: Commit all changes in the current worktree and open a PR targeting the shared release branch. Usage: /finish-worktree [release-branch] — defaults to "release/next".
3
+
description: Commit all changes in the current worktree and open a PR targeting the release branch for the current Cargo.toml version. Usage: /finish-worktree [release-branch] — defaults to release/v<CARGO_VERSION>.
4
4
argument-hint: "[release-branch]"
5
5
---
6
6
@@ -20,8 +20,13 @@ Run these in parallel:
20
20
21
21
### 2. Determine the release branch
22
22
23
-
If the user provided an argument (e.g. `/finish-worktree release/v2`), use that as the release branch name.
24
-
Otherwise use `release/next` as the default.
23
+
If the user provided an argument (e.g. `/finish-worktree release/v1.2.0`), use that as the release branch name.
24
+
25
+
Otherwise read the version from `Cargo.toml`:
26
+
```
27
+
grep '^version' Cargo.toml | head -1 | sed 's/.*= *"\(.*\)"/\1/'
28
+
```
29
+
Use `release/v<version>` (e.g. `release/v0.1.0`) as the release branch name.
25
30
26
31
### 3. Ensure the release branch exists on the remote
27
32
@@ -63,7 +68,7 @@ EOF
63
68
)"
64
69
```
65
70
66
-
If there is nothing to commit (working tree clean), skip to step 5.
71
+
If there is nothing to commit (working tree clean), skip to step 6.
67
72
68
73
### 6. Push the current branch to remote
69
74
@@ -100,4 +105,4 @@ If a PR already exists for this branch (`gh pr list --head <branch>`), skip crea
description: Review all open PRs targeting the current release branch, interactively ask whether each should be included, then create a PR from the release branch to main. Usage: /ship-release
4
+
---
5
+
6
+
Review open PRs targeting the current release branch, confirm which to include, and open a release PR to main.
7
+
8
+
## Steps
9
+
10
+
Follow these steps in order without skipping any.
11
+
12
+
### 1. Determine the release branch
13
+
14
+
Read the version from `Cargo.toml`:
15
+
```
16
+
grep '^version' Cargo.toml | head -1 | sed 's/.*= *"\(.*\)"/\1/'
17
+
```
18
+
The release branch is `release/v<version>` (e.g. `release/v0.1.0`).
19
+
20
+
### 2. List open PRs targeting the release branch
21
+
22
+
```
23
+
gh pr list --base <release-branch> --state open --json number,title,headRefName,author,url,body
24
+
```
25
+
26
+
If there are no open PRs, skip to step 4.
27
+
28
+
### 3. Ask the user about each open PR
29
+
30
+
For each PR found, display:
31
+
- PR number, title, author, branch name, URL
32
+
33
+
Then check the PR body for a "## Tests" section containing a markdown checklist. If any checklist items are unchecked (lines starting with `- [ ]`), warn the user:
34
+
> "⚠️ PR #<N> has unchecked test cases in the Tests section. Please verify them before including."
35
+
> List the unchecked items.
36
+
37
+
Then ask the user:
38
+
> "Include PR #<N> — <title> (<branch>)? [y/n]"
39
+
40
+
Wait for the user's answer before moving to the next PR. Collect the list of PRs the user said **yes** to.
41
+
42
+
For PRs the user said **yes** to, ensure they are merged into the release branch:
43
+
- If the PR is already merged, skip.
44
+
- If not yet merged, merge it:
45
+
```
46
+
gh pr merge <number> --merge --auto
47
+
```
48
+
Wait and confirm merge completed before continuing.
49
+
50
+
### 4. Check whether a release PR already exists
51
+
52
+
```
53
+
gh pr list --head <release-branch> --base main --state open --json number,url
54
+
```
55
+
56
+
If one already exists, print its URL and skip to step 6.
57
+
58
+
### 5. Create the release PR
59
+
60
+
```
61
+
gh pr create \
62
+
--base main \
63
+
--head <release-branch> \
64
+
--title "Release v<version>" \
65
+
--body "$(cat <<'EOF'
66
+
## Release v<version>
67
+
68
+
### Included changes
69
+
<bullet list of merged PR titles and numbers that were included>
70
+
71
+
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Copy file name to clipboardExpand all lines: README.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ A terminal UI for managing SSH connections with an embedded LLM assistant.
10
10
11
11
-**Connection manager** — CRUD SSH connections backed by `~/.ssh/config`; comments above a `Host` block become its description
12
12
-**Embedded terminal** — connects over a PTY so the full SSH session runs inside the TUI; resizes with the window
13
-
-**LLM sidebar** — chat with an AI assistant while connected; press `F3` to send the last 50 terminal lines as context
13
+
-**LLM sidebar** — chat with an AI assistant while connected; Claude automatically reads terminal output via the `read_terminal` tool when you ask about what's on screen
14
14
-**Tool use** — Claude can propose shell commands to run on your remote session; you approve each one before it executes
15
15
-**Multi-provider LLM** — Anthropic (default), OpenAI, or a local Ollama instance
16
16
-**System prompt** — a built-in prompt configures Claude as an SSH/Linux assistant; override it in config
@@ -37,7 +37,9 @@ cargo build --release
37
37
38
38
### Release a new version (maintainers)
39
39
40
-
Tag a commit — the CI workflow builds and publishes the AppImage automatically:
40
+
Merge a `release/v<version>` branch into `main` — the CI workflow tags the commit and publishes the AppImage automatically.
0 commit comments