Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Merge Up

ASecurity

Use when the user is inside a parallel stream (worktree branch) and wants to merge that branch's committed work into the parent branch it was created from, then bring the stream back up to date with the parent. True merge (keeps individual commits); prompts before pushing the parent. Pairs with /parallel-work, which records the parent in git config (branch.<name>.exosuitParent), and with /merge-down (the inverse direction).

7 stars
0 votes
0 copies
0 views
Added 9/22/2026
ai-agentsgobashgit

Security Analysis

A100/100

Scanned 9/22/2026

Install to Claude Code

$npx -y skills add joris887/exosuit --skill merge-up --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Merge Up?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Merge Up
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/joris887-merge-up/badge)](https://www.skillsdirectory.com/skills/joris887-merge-up)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: merge-up
version: 1.0.0
description: Use when the user is inside a parallel stream (worktree branch) and wants to merge that branch's committed work into the parent branch it was created from, then bring the stream back up to date with the parent. True merge (keeps individual commits); prompts before pushing the parent. Pairs with /parallel-work, which records the parent in git config (branch.<name>.exosuitParent), and with /merge-down (the inverse direction).
trigger: manual
depends-on: []
references: []
disable-model-invocation: true
user-invocable: true
allowed-tools: Read, Glob, Grep, Bash, AskUserQuestion
argument-hint: ""
---
______________________________________________________________________

## merge-up

Merge the **current stream's branch** into the parent it was created from, then
fast-forward the current branch back up to the parent. Safe across worktrees:
the parent is usually checked out in another worktree, so the merge runs there
via `git -C` rather than checking the parent out here (git forbids that).

### Step 1 — Identify branches

```bash
B="$(git rev-parse --abbrev-ref HEAD)"
echo "current branch: $B"
```
- If `B` is `HEAD` (detached), STOP — tell the user to check out a branch.
- Resolve the parent `P`:
  ```bash
  P="$(git config "branch.$B.exosuitParent" || true)"
  ```
  - If empty, fall back to stripping the last `-<suffix>` (e.g. `sprint-3-a` →
    `sprint-3`) and verify it exists with `git show-ref --verify --quiet refs/heads/<cand>`.
  - If still unresolved or ambiguous, ASK the user which branch is the parent.
- If `P == B` or `P` doesn't exist, STOP and report.

### Step 2 — Pre-flight cleanliness (both worktrees)

```bash
git status --porcelain            # current worktree — must be empty
```
- If the current worktree is dirty, STOP: the skill merges **committed** work only.
  Tell the user to commit or stash first.
- Locate the parent's worktree dir:
  ```bash
  git worktree list --porcelain
  ```
  Find the entry whose branch is `refs/heads/$P`; call its path `PDIR`.
  - If `P` is not checked out in any worktree, STOP and tell the user to check it
    out in a worktree first (the merge needs a working tree to run in).
- Verify the parent worktree is clean: `git -C "$PDIR" status --porcelain` must be
  empty. If dirty, STOP and report which worktree/path needs attention.

### Step 3 — Merge current branch into parent (true merge)

Run the merge **in the parent's worktree**:
```bash
git -C "$PDIR" merge "$B"
```
- This keeps `B`'s individual commits (fast-forwards when possible).
- On "Already up to date." → nothing to merge; tell the user and SKIP to Step 5.
- On conflict: run `git -C "$PDIR" merge --abort`, then STOP and report the
  conflicting files. Offer to help resolve, but do NOT leave the parent worktree
  in a half-merged state without telling the user.
- On success, show `git -C "$PDIR" log --oneline -3`.

### Step 4 — Offer to push the parent

ASK the user (AskUserQuestion): "Push `$P` to origin now?" — Yes / No.
- If yes: `git -C "$PDIR" push origin "$P"` (never `--force`; if rejected, report
  and let the user decide — likely needs a pull/merge of origin first).
- If no: leave it local.
- Note: if `P` is the repository's default branch, do NOT push — the framework's
  git rules require all changes to the default branch to go through a PR
  (`/sprint-end` handles that). Skip this step and say so.

### Step 5 — Sync current branch back up to parent

Back in the current worktree:
```bash
git merge "$P"          # fast-forward: B now contains everything on P
```
- This should fast-forward cleanly (P already contains B's commits plus anything
  else that landed on P). If it somehow reports a conflict, STOP and report.

### Step 6 — Report

Show the final state so the user can see both branches aligned:
```bash
echo "$B:"; git log --oneline -3
echo "$P:"; git -C "$PDIR" log --oneline -3
git status --short
```
Summarize: what merged into `$P`, whether it was pushed, and that `$B` is now up
to date with `$P` and ready for continued work.

### Notes

- True merge by design so the stream branch stays alive and Step 5 is a clean
  fast-forward. Do not switch to squash/rebase without re-checking with the user.
- The parent worktree's checked-out branch tip moves as a result of this skill —
  that's intended (it IS the merge). Anyone else working in that worktree should
  be clean before you run this.
- Typical cadence with several streams: each stream runs `/merge-up` when a story
  completes, then every still-active stream runs `/merge-down` to pick up the
  integrated result.

Attribution

joris887joris887
View sourceMore from joris887 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →