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 Down

ASecurity

Use when the user is inside a parallel stream (worktree branch) and wants to bring that branch up to date with the LATEST of its parent branch — typically after one or more sibling streams have merged their work up into the parent (via /merge-up). Pulls the parent's accumulated commits down into the current branch with a true merge. Inverse of /merge-up; the parent is recorded by /parallel-work in git config (branch.<name>.exosuitParent). Read-only on the parent — safe to run while the parent...

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

Security Analysis

A100/100

Scanned 9/22/2026

Install to Claude Code

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

Installs into .claude/skills of the current project.

Are you the author of Merge Down?

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

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

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

Download Zip
Files
SKILL.md
---
name: merge-down
version: 1.0.0
description: Use when the user is inside a parallel stream (worktree branch) and wants to bring that branch up to date with the LATEST of its parent branch — typically after one or more sibling streams have merged their work up into the parent (via /merge-up). Pulls the parent's accumulated commits down into the current branch with a true merge. Inverse of /merge-up; the parent is recorded by /parallel-work in git config (branch.<name>.exosuitParent). Read-only on the parent — safe to run while the parent worktree is busy.
trigger: manual
depends-on: []
references: []
disable-model-invocation: true
user-invocable: true
allowed-tools: Read, Glob, Grep, Bash, AskUserQuestion
argument-hint: ""
---
______________________________________________________________________

## merge-down

Bring the **current stream's branch** up to date with the parent it was created
from. Use it after a round of `/merge-up`s have landed sibling streams' work on
the parent: each sibling still only has its OWN commits, so run this in each
stream to integrate everyone else's merged work.

This is the complement of `/merge-up`:

- `/merge-up` — merge THIS branch **into** the parent (publish your work upward).
- `/merge-down` — merge the parent **into** this branch (pull everyone's work downward).

Because all worktrees of a repository share one object store and one set of
branch refs, the parent ref already reflects every local `/merge-up` — no
network fetch is needed for local merges. A fetch is only relevant if merges
were *pushed* from another machine (Step 3 handles that optionally). This skill
never writes to the parent's working tree, so it is safe to run even while the
parent worktree is in use.

### 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: `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 (current worktree only)

```bash
git status --porcelain            # current worktree — must be empty
```
- If dirty, STOP: merging the parent in could collide with uncommitted work. Tell
  the user to commit or `git stash` first, then re-run.
- Unlike `/merge-up`, the parent worktree does **not** need to be clean — this skill
  only reads the parent branch ref; it never commits into the parent's working tree.

### Step 3 — Optionally refresh the parent from origin

Only needed if parent commits were **pushed from elsewhere** (local `/merge-up`s
already updated the shared parent ref). Best-effort; skip silently if there is no
remote.

```bash
git fetch origin "$P" 2>/dev/null || true
# Is origin/P ahead of local P?
git rev-list --left-right --count "$P...origin/$P" 2>/dev/null || true
```
- If `origin/$P` is ahead of local `$P` (right-count > 0), the canonical latest is
  on the remote. Note: local `$P` is usually checked out in the primary worktree, so
  it cannot be fast-forwarded from here. In that case ASK the user whether to merge
  `origin/$P` instead of local `$P` in Step 4 (substitute the ref). For the common
  all-local workflow, local `$P` already holds every merged sibling — proceed with it.

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

```bash
git merge "$P"          # or origin/$P if Step 3 selected it
```
- **"Already up to date."** → the current branch already contains everything on the
  parent. Report and SKIP to Step 5.
- **Fast-forward** when the current branch has no commits of its own ahead of `$P`.
- **On conflict** (the parent's merged work overlaps this branch's work): do NOT
  auto-abort — the user usually wants to integrate. STOP and:
  - Show the conflicting files: `git diff --name-only --diff-filter=U`.
  - Offer two paths: (a) help resolve the conflicts now, then
    `git add <files> && git commit` to complete the merge; or (b) back out with
    `git merge --abort` to return to the pre-merge state.
  - Do not leave the worktree half-merged without telling the user which state it's in.
- On success, show `git log --oneline -5`.

### Step 5 — Report

```bash
echo "$B now contains $P:"; git log --oneline -5
git status --short
git rev-list --left-right --count "$P...$B"   # left = parent-only (should be 0), right = this branch ahead
```
Summarize: the current branch is now up to date with `$P` (it contains every
sibling's merged work), and is ready for continued work or a later `/merge-up`
(whose Step 5 sync stays a clean fast-forward).

### Notes

- True merge by design, matching `/merge-up`, so history is preserved and a later
  `/merge-up` of this branch fast-forwards cleanly.
- Typical cadence: run all the `/merge-up`s for the round first, then run
  `/merge-down` in each still-active stream to redistribute the integrated parent
  to every branch.
- Read-only on the parent: this skill never moves the parent's branch tip and never
  touches the parent worktree's working files — only the current branch advances.

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 →