From 0db5c5ea1a2f0e7f467e9034d9e1b059e83abc4d Mon Sep 17 00:00:00 2001 From: Martin Zeman Date: Wed, 8 Jul 2026 03:30:48 +0200 Subject: [PATCH] refactor: retire FinishBranch, absorbed by forge-core ExecutePlan --- skills/FinishBranch/.provenance/SKILL.yaml | 28 --- skills/FinishBranch/SKILL.md | 209 --------------------- 2 files changed, 237 deletions(-) delete mode 100644 skills/FinishBranch/.provenance/SKILL.yaml delete mode 100644 skills/FinishBranch/SKILL.md diff --git a/skills/FinishBranch/.provenance/SKILL.yaml b/skills/FinishBranch/.provenance/SKILL.yaml deleted file mode 100644 index 73da4a1..0000000 --- a/skills/FinishBranch/.provenance/SKILL.yaml +++ /dev/null @@ -1,28 +0,0 @@ -provenance: - _type: https://in-toto.io/Statement/v1 - subject: - - name: SKILL.md - digest: - sha256: be69358c7fe85de9ab42476ba433250c6364736e80bedac1c0cfbd8b0acfd10c - predicateType: https://slsa.dev/provenance/v1 - predicate: - buildDefinition: - buildType: https://forge-cli/adopt/v1 - externalParameters: - upstream_url: https://raw.githubusercontent.com/davila7/claude-code-templates/d8e7e60f6fa962bd7842ae2a287361b0a6477f6a/cli-tool/components/skills/development/finishing-a-development-branch/SKILL.md - resolvedDependencies: - - name: upstream - uri: https://raw.githubusercontent.com/davila7/claude-code-templates/d8e7e60f6fa962bd7842ae2a287361b0a6477f6a/cli-tool/components/skills/development/finishing-a-development-branch/SKILL.md - digest: - sha256: dd2f82c6dc8582b621f9eb57fcb65f557f88eadf872727ac81d0840ae12c504e - - name: AdoptArtifact - uri: forge-core/skills/AdoptArtifact/SKILL.md - digest: - sha256: f672615fffe1b219d4b8200fc8e105d260bd4a1c4ba355e0a3543be9fe2373ef - runDetails: - builder: - id: forge-cli - version: - forge: 0.3.1 - metadata: - startedOn: "2026-04-18T00:00:00Z" diff --git a/skills/FinishBranch/SKILL.md b/skills/FinishBranch/SKILL.md deleted file mode 100644 index af94d3e..0000000 --- a/skills/FinishBranch/SKILL.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -name: FinishBranch -version: 0.1.0 -description: "Decide how to integrate completed work — merge, PR, or cleanup — once implementation is done and tests pass. USE WHEN implementation is complete and tests pass, deciding merge strategy, or cleaning up a feature branch." -allowed-tools: Read, Bash -upstream: https://raw.githubusercontent.com/davila7/claude-code-templates/main/cli-tool/components/skills/development/finishing-a-development-branch/SKILL.md ---- - - -# Finishing a Development Branch - -## Overview - -Guide completion of development work by presenting clear options and handling chosen workflow. - -**Core principle:** Verify tests → Present options → Execute choice → Clean up. - -**Announce at start:** "I'm using the finishing-a-development-branch skill to complete this work." - -## The Process - -### Step 1: Verify Tests - -**Before presenting options, verify tests pass:** - -```bash -# Run project's test suite -npm test / cargo test / pytest / go test ./... -``` - -**If tests fail:** -``` -Tests failing ( failures). Must fix before completing: - -[Show failures] - -Cannot proceed with merge/PR until tests pass. -``` - -Stop. Don't proceed to Step 2. - -**If tests pass:** Continue to Step 2. - -### Step 2: Determine Base Branch - -```bash -# Try common base branches -git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null -``` - -Or ask: "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 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? -``` - -**Don't add explanation** - keep options concise. - -### Step 4: Execute Choice - -### Option 1: Merge Locally - -```bash -# Switch to base branch -git checkout - -# Pull latest -git pull - -# Merge feature branch -git merge - -# Verify tests on merged result - - -# If tests pass -git branch -d -``` - -Then: Cleanup worktree (Step 5) - -### Option 2: Push and Create PR - -```bash -# Push branch -git push -u origin - -# Create PR -gh pr create --title "" --body "$(cat <<'EOF' -## Summary -<2-3 bullets of what changed> - -## Test Plan -- [ ] <verification steps> -EOF -)" -``` - -Then: Cleanup worktree (Step 5) - -### Option 3: Keep As-Is - -Report: "Keeping branch <name>. Worktree preserved at <path>." - -**Don't cleanup worktree.** - -### Option 4: Discard - -**Confirm first:** -``` -This will permanently delete: -- Branch <name> -- All commits: <commit-list> -- Worktree at <path> - -Type 'discard' to confirm. -``` - -Wait for exact confirmation. - -If confirmed: -```bash -git checkout <base-branch> -git branch -D <feature-branch> -``` - -Then: Cleanup worktree (Step 5) - -### Step 5: Cleanup Worktree - -**For Options 1, 2, 4:** - -Check if in worktree: -```bash -git worktree list | grep $(git branch --show-current) -``` - -If yes: -```bash -git worktree remove <worktree-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) | - -## Common Mistakes - -**Skipping test verification** -- **Problem:** Merge broken code, create failing PR -- **Fix:** Always verify tests before offering options - -**Open-ended questions** -- **Problem:** "What should I do next?" → ambiguous -- **Fix:** Present exactly 4 structured options - -**Automatic worktree cleanup** -- **Problem:** Remove worktree when might need it (Option 2, 3) -- **Fix:** Only cleanup for Options 1 and 4 - -**No confirmation for discard** -- **Problem:** Accidentally delete work -- **Fix:** Require typed "discard" confirmation - -## Red Flags - -**Never:** -- Proceed with failing tests -- Merge without verifying tests on result -- Delete work without confirmation -- Force-push without explicit request - -**Always:** -- Verify tests before offering options -- Present exactly 4 options -- Get typed confirmation for Option 4 -- Clean up worktree for Options 1 & 4 only - -## Integration - -**Called by:** -- **subagent-driven-development** (Step 7) - After all tasks complete -- **executing-plans** (Step 5) - After all batches complete - -**Pairs with:** -- **using-git-worktrees** - Cleans up worktree created by that skill - - ---- - -*Originally from [davila7/claude-code-templates](https://github.com/davila7/claude-code-templates) (MIT), adapted under EUPL-1.2. Pinned at commit `d8e7e60f6fa962bd7842ae2a287361b0a6477f6a`.*