agentsclimarketplace

Merge

Skill ajaygunalan/flow-friction/skills/merge

Claude Code skills for researchers, by a researcher. Humans + agents exploring what hasn't been built yet — without losing alignment along the way.

Install
npx -y skills add ajaygunalan/flow-friction --skill merge

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Squash-merge a worktree branch into main — rebase, test, merge, free slot

SKILL.md

1.9 KB, 460 tokens by cl100k_base, as published. Nobody here has run it

Abort if $ARGUMENTS is empty. Find the worktree path for $ARGUMENTS via git worktree list. Abort if branch or worktree doesn't exist. Abort if worktree has dirty working directory.

Detect layout

Check git worktree list. If the first entry ends with (bare)standalone (bare repo + internal worktrees). Otherwise → nested (original repo is main, worktrees are external).

Rebase

cd into the worktree. Tag backup/$ARGUMENTS as safety net. Fetch and rebase onto origin/main. Conflict → git rebase --abort, tell user to fix in worktree, run /merge again. Stop.

Test

Detect test runner in order: package.xml (ROS2 — run bash ~/.claude/skills/merge/scripts/ros2-test.sh <worktree-path>), package.json, Makefile test target, Cargo.toml, pytest, go.mod. If none found, ask user. Fail → abort.

Squash merge

Find the main worktree — the entry in git worktree list with branch [main]. cd there. git merge --squash --ff-only $ARGUMENTS. FF-only fail → abort.

Commit message

Read branch log and staged diff. Present 4 commit message options via ask_user_question — same intent, four distinct phrasings. User picks or writes their own. Commit.

Push + free slot

Push main. If push fails → warn but continue.

Delete the backup tag. Delete the remote branch (ignore if never pushed).

Free the slot: cd into the worktree that had the merged branch. Extract the slot name by finding a path component matching w<N> where N is any digit (match /w[0-9]+/ or /w[0-9]+ at end of path — not substrings in repo names). Run git checkout <slot>-slot to reset the slot to its placeholder branch. Delete the local feature branch.

Print git log --oneline -5 from the main worktree to confirm.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.