.claude/skills/finishing-a-development-branch/SKILL.md
Complete development with structured merge/PR options. Use when ready to merge or submit work.
npx skillsauth add oimiragieo/agent-studio finishing-a-development-branchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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."
Before presenting options, verify tests pass:
# Run project's test suite
npm test / cargo test / pytest / go test ./...
If tests fail:
Tests failing (<N> 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.
# 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?"
Present exactly these 4 options:
Implementation complete. What would you like to do?
1. Merge back to <base-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?
Don't add explanation - keep options concise.
# Switch to base branch
git checkout <base-branch>
# Pull latest
git pull
# Merge feature branch
git merge <feature-branch>
# Verify tests on merged result
<test command>
# If tests pass
git branch -d <feature-branch>
Then: Cleanup worktree (Step 5)
# Push branch
git push -u origin <feature-branch>
# Create PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>
## Test Plan
- [ ] <verification steps>
EOF
)"
Then: Cleanup worktree (Step 5)
Report: "Keeping branch <name>. Worktree preserved at <path>."
Don't cleanup worktree.
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:
git checkout <base-branch>
git branch -D <feature-branch>
Then: Cleanup worktree (Step 5)
Run this before ANY commit, regardless of which option was chosen.
4.5.1 — Project root scan:
ls -1 | grep -vE '^(\.|node_modules|src|tests|scripts|dist|build|docs|package\.json|package-lock\.json|pnpm-lock\.yaml|tsconfig|eslint|prettier|jest|vitest|README|LICENSE|CHANGELOG|CLAUDE\.md|\.env)'
If this outputs anything, those files are AI slop. Delete or move them before proceeding.
4.5.2 — Prune stale worktrees:
git worktree prune
4.5.3 — Clean temp directory:
ls .claude/context/tmp/ 2>/dev/null && echo "Temp files exist — delete if from this session"
4.5.4 — Log to session gap log if slop was found:
echo '{"timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","type":"cleanup","agent":"developer","description":"Deleted AI slop from project root: <filenames>","context":"finishing-a-development-branch cleanup scan"}' >> .claude/context/runtime/session-gap-log.jsonl
4.5.5 — Queue reflection if slop was found (append to reflection-spawn-request.json):
{
"id": "<uuid>",
"trigger": "ai-slop-found",
"priority": "low",
"context": "Cleanup scan found unexpected files in project root. Investigate which task created them."
}
See .claude/rules/cleanup-always.md for the full slop pattern list and correct file destinations.
For Options 1, 2, 4:
Check if in worktree:
git worktree list | grep $(git branch --show-current)
If yes:
git worktree remove <worktree-path>
For Option 3: Keep worktree.
| Option | Merge | Push | Keep Worktree | Cleanup Branch | | ---------------- | ----- | ---- | ------------- | -------------- | | 1. Merge locally | Yes | - | - | Yes | | 2. Create PR | - | Yes | Yes | - | | 3. Keep as-is | - | - | Yes | - | | 4. Discard | - | - | - | Yes (force) |
Skipping test verification
Open-ended questions
Automatic worktree cleanup
No confirmation for discard
Never:
Always:
Called by:
Pairs with:
Before ANY commit on a feature/skill/agent branch:
[Unreleased] with today's datedescription: accurately reflects new capabilitiesIf any item is unchecked → DO NOT COMMIT. Update docs first.
| Anti-Pattern | Why It Fails | Correct Approach |
| -------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------------------- |
| Skipping test verification before merge | Broken code lands on main; CI fails after the fact | Always run test suite first; gate options on passing tests |
| Presenting open-ended completion questions | Developer doesn't know available paths; worktrees left orphaned | Present exactly 4 numbered options with clear labels |
| Deleting branch without confirmation | Developer loses in-progress work permanently | Require typed "discard" confirmation for Option 4 |
| Cleaning up worktree for Option 2 (PR) | Kills local context before PR review is complete | Only remove worktree for Options 1 and 4 |
| Merging directly without pulling latest base | Merge conflicts or stale base; CI detects drift | git pull on base branch before git merge |
Before starting:
Read .claude/context/memory/learnings.md
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: If it's not in memory, it didn't happen.
tools
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
tools
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
data-ai
Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.
development
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.