← 返回 Skills 市场
wpank

Finishing Branch

作者 wpank · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
867
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install finishing-branch
功能描述
Complete development work by presenting structured options for merge, PR, or cleanup. Use when implementation is complete, all tests pass, and you need to decide how to integrate work. Triggers on finish branch, complete branch, merge branch, create PR, done with feature, implementation complete.
使用说明 (SKILL.md)

Finishing a Development Branch

Complete development work by presenting clear options and executing the chosen workflow.

WHAT This Skill Does

After implementation is complete, guides you through verifying tests, presenting integration options, and executing the chosen path (merge, PR, keep, or discard).

WHEN To Use

  • Implementation is complete
  • All tests pass
  • Ready to integrate work into the main branch

KEYWORDS: finish branch, complete branch, merge, PR, done with feature


The Process

Step 1: Verify Tests

npm test / cargo test / pytest / go test ./...

If tests fail: Stop. Cannot proceed until tests pass.

Tests failing (N failures). Must fix before completing:
[Show failures]

If tests pass: Continue to Step 2.

Step 2: Determine Base Branch

git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null

Or confirm: "This branch split from main - is that correct?"

Step 3: Present Options

Present exactly these 4 options:

Implementation complete. What would you like to do?

1. Merge back to \x3Cbase-branch> locally
2. Push and create a Pull Request
3. Keep the branch as-is (I'll handle it later)
4. Discard this work

Which option?

Step 4: Execute Choice

Option 1: Merge Locally

git checkout \x3Cbase-branch>
git pull
git merge \x3Cfeature-branch>
\x3Crun tests again>
git branch -d \x3Cfeature-branch>

Then: Cleanup worktree (Step 5)

Option 2: Push and Create PR

git push -u origin \x3Cfeature-branch>

gh pr create --title "\x3Ctitle>" --body "$(cat \x3C\x3C'EOF'
## Summary
\x3C2-3 bullets of what changed>

## Test Plan
- [ ] \x3Cverification steps>
EOF
)"

Then: Cleanup worktree (Step 5)

Option 3: Keep As-Is

Report: "Keeping branch \x3Cname>. Worktree preserved at \x3Cpath>."

Do NOT cleanup worktree.

Option 4: Discard

Confirm first:

This will permanently delete:
- Branch \x3Cname>
- All commits: \x3Ccommit-list>
- Worktree at \x3Cpath>

Type 'discard' to confirm.

Wait for exact confirmation. If confirmed:

git checkout \x3Cbase-branch>
git branch -D \x3Cfeature-branch>

Then: Cleanup worktree (Step 5)

Step 5: Cleanup Worktree

For Options 1, 2, 4 only:

# Check if in worktree
git worktree list | grep $(git branch --show-current)

# If yes:
git worktree remove \x3Cworktree-path>

For Option 3: Keep worktree.


Quick Reference

Option Merge Push Keep Worktree Cleanup Branch
1. Merge locally - -
2. Create PR - -
3. Keep as-is - - -
4. Discard - - - ✓ (force)

NEVER

  • Proceed with failing tests
  • Merge without verifying tests on the result
  • Delete work without typed confirmation ("discard")
  • Force-push without explicit request
  • Skip presenting all 4 options
  • Automatically cleanup worktree for Options 2 or 3
  • Ask open-ended "What should I do next?" (use structured options)

Integration

Called by:

  • subagent-development (after all tasks complete)
  • executing-plans (after all batches complete)

Pairs with:

  • git-worktrees - Cleans up worktree created by that skill
安全使用建议
What to check before installing or running this skill: - Expect to run this only in repos you trust and can afford to change: the scripts perform branch deletion and remote deletion (git push origin --delete). Always run with --dry-run first. - Ensure required binaries are present: git is mandatory; GitHub PR creation uses 'gh' (GitHub CLI) if you want the automated PR flow; test runners (npm, cargo, pytest, go, make, tox) are used if detected. The skill metadata does not list these, so verify your environment. - The README's 'npx add <github tree url>' looks incorrect — don't run untrusted install commands from there. Prefer copying files locally or reviewing code first. - Review the scripts (finish_branch.py, cleanup_branches.py) manually to confirm behavior, and run them in a safe branch or clone before using on important work. - Confirm you have the git remote permissions you expect (deleting remote branches requires push/delete rights). - If you want extra safety, require interactive confirmations or back up references (tags or temp branches) before allowing automatic cleanup. Confidence notes: I assessed source files and SKILL.md; there are no scan-findings flagged by the pre-scan, but the omission of declared runtime binaries and the odd README install example are the primary reasons for a 'suspicious' verdict. Additional context (author identity, signed releases, or an authoritative install path) would raise confidence toward benign.
功能分析
Type: OpenClaw Skill Name: finishing-branch Version: 0.1.0 The skill's `SKILL.md` provides clear, structured instructions for managing Git branches, including explicit safety guards (e.g., 'NEVER Proceed with failing tests', 'NEVER Delete work without typed confirmation'). The Python scripts (`cleanup_branches.py`, `finish_branch.py`) primarily execute standard Git commands using `subprocess.run`. However, `scripts/finish_branch.py` uses `subprocess.run(runner, shell=True)` to execute project test commands (e.g., `npm test`). While the `runner` string itself is derived from hardcoded values, the underlying test command (e.g., `npm test`) can execute arbitrary code defined in project configuration files (like `package.json`). This use of `shell=True` introduces a shell injection vulnerability, allowing an attacker who controls the project's test configuration to execute arbitrary commands. This is a risky capability, classifying the skill as suspicious, though there is no clear evidence of intentional malicious exploitation by the skill's author.
能力评估
Purpose & Capability
Name/description and included scripts (finish_branch.py, cleanup_branches.py) are coherent: they implement finishing/cleaning branches. However the skill declares no required binaries or env vars while the code and SKILL.md assume git is available and optionally rely on 'gh' (GitHub CLI), language-specific test runners (npm, cargo, pytest, go test, make, tox), and network access for pushing/deleting remote branches. The omission of these runtime dependencies is an inconsistency that could surprise users.
Instruction Scope
SKILL.md instructions and the Python scripts stay within the stated purpose: verifying tests, determining base branch, presenting options, merging/pushing/creating PRs, and cleaning up worktrees/branches. The skill performs destructive git operations (local branch deletion, remote delete via 'git push origin --delete', worktree removal) — this is expected for the stated task but worth noting because these actions can permanently delete commits/branches if misused. The SKILL.md requires typed confirmation for 'discard' and the scripts support dry-run modes.
Install Mechanism
No install spec is provided (instruction-only is lower-risk). README suggests an 'npx add' command with a GitHub tree URL (https://github.com/.../tree/...) which is not a standard package install URL and looks inaccurate/confusing. Installation instructions are purely copy-based. No archives or external installers are pulled by the skill itself.
Credentials
The skill requests no environment variables or credentials, which is appropriate for local git-based workflows. There is no indication of hidden credential access or external endpoint exfiltration in the code or SKILL.md.
Persistence & Privilege
Skill does not request 'always: true' and does not modify other skills or system-wide configuration. It executes transient git operations and prints cleanup commands; persistent privileges are not requested.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install finishing-branch
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /finishing-branch 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
finishing-branch 0.1.0 – Initial Release - Introduces skill for structured finishing of completed development branches. - Guides users to verify tests and select from four integration options: merge locally, create PR, keep branch, or discard work. - Ensures tests must pass before proceeding. - Provides clear confirmation for destructive actions like deletion. - Integrates worktree cleanup steps for relevant options. - Prevents open-ended prompts, always presenting exact choices.
元数据
Slug finishing-branch
版本 0.1.0
许可证
累计安装 3
当前安装数 1
历史版本数 1
常见问题

Finishing Branch 是什么?

Complete development work by presenting structured options for merge, PR, or cleanup. Use when implementation is complete, all tests pass, and you need to decide how to integrate work. Triggers on finish branch, complete branch, merge branch, create PR, done with feature, implementation complete. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 867 次。

如何安装 Finishing Branch?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install finishing-branch」即可一键安装,无需额外配置。

Finishing Branch 是免费的吗?

是的,Finishing Branch 完全免费(开源免费),可自由下载、安装和使用。

Finishing Branch 支持哪些平台?

Finishing Branch 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Finishing Branch?

由 wpank(@wpank)开发并维护,当前版本 v0.1.0。

💬 留言讨论