publish-branch

Push current branch to remote origin and generate PR title and description from branch name and commit history. Use when publishing a branch, creating a PR, pushing to remote, or preparing PR content. Triggers on publish branch, push branch, create PR, open pull request, push and PR.

6 stars

Best use case

publish-branch is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Push current branch to remote origin and generate PR title and description from branch name and commit history. Use when publishing a branch, creating a PR, pushing to remote, or preparing PR content. Triggers on publish branch, push branch, create PR, open pull request, push and PR.

Teams using publish-branch should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/publish-branch/SKILL.md --create-dirs "https://raw.githubusercontent.com/mParticle/aquarium/main/.claude/skills/publish-branch/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/publish-branch/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How publish-branch Compares

Feature / Agentpublish-branchStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Push current branch to remote origin and generate PR title and description from branch name and commit history. Use when publishing a branch, creating a PR, pushing to remote, or preparing PR content. Triggers on publish branch, push branch, create PR, open pull request, push and PR.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Publish Branch

You are a **branch publishing agent** that pushes the current branch to the
remote, analyzes commit history, and generates a properly formatted PR title and
description ready for submission.

## When to Use

- "Push this branch and create a PR"
- "Publish my branch"
- "Generate PR content"
- When a feature branch is ready for review
- After CI passes and code is ready to submit

**Not for:**

- Just committing changes (use conventional-commit)
- Monitoring CI after push (use ci-watcher)
- Reviewing existing PRs (use GitHub CLI directly)

## Context

Aquarium component library:

- **Language**: TypeScript (React + Ant Design + Storybook)
- **Branch Naming**: `<type>/<description>-<TICKET>` (e.g., `feat/add-tooltip-MPD-59`)
- **PR Size**: < 400 lines preferred
- **Jira Instance**: rokt.atlassian.net

## The Process

### Step 1: Verify Clean State

Check for uncommitted changes:

```bash
git status
```

If there are uncommitted changes, invoke the conventional-commit agent first.

### Step 2: Push to Origin

```bash
git push -u origin $(git rev-parse --abbrev-ref HEAD)
```

### Step 3: Gather Repository Information

```bash
git remote get-url origin
git rev-parse --abbrev-ref HEAD
```

Parse the remote URL to extract org and repo name (handles SSH and HTTPS).

### Step 4: Analyze Changes

Review commit history since branching from main:

```bash
git --no-pager log main..$(git rev-parse --abbrev-ref HEAD)
```

Use `git --no-pager diff main...HEAD` for deeper analysis if needed.

### Step 5: Generate PR Title

Parse the branch name following this convention:

**Branch Format:** `<type>/<description>-<TICKET>`

**Title Format:** `<type>: description`

**Rules:**

- Use conventional commit format for the title
- **NO scopes in parentheses** — CI rejects `feat(scope):`, only `feat:` is valid
- Generate concise description from commits and changes (not the branch name
  verbatim)
- Keep title under 80 characters

**Examples:**

- `feat/add-tooltip-MPD-59`
  - `feat: add help icon tooltip pattern with RoktHelpCircle`
- `fix/button-hover-state-MPD-100`
  - `fix: correct hover state color on disabled buttons`

### Step 6: Generate PR Description

Use this template:

```markdown
## Summary

[High-level overview of changes and context for reviewers]

## Jira Ticket

[TICKET_ID](https://rokt.atlassian.net/browse/TICKET_ID)

## Test Plan

[Testing approach and verification steps]

- [ ] Tested locally
- [ ] Unit tests pass
- [ ] Integration tests pass (if applicable)
```

### Step 7: Create PR

```bash
gh pr create --title "<title>" --body "$(cat <<'EOF'
<description>
EOF
)"
```

## Constraints

- **DO** generate PR title from branch name AND commit content (not branch name alone)
- **DO** include Jira ticket link in the PR description
- **DO** ask if the user tested locally before marking the checkbox
- **DO** keep title under 80 characters
- **DO NOT** push to main/master directly
- **DO NOT** include test-only changes in the PR title/summary
- **DO NOT** create the PR without showing the user the title and description first

## Output Format

1. **Push confirmation** with branch name and remote
2. **PR title** in a code block
3. **PR description** in a markdown code block
4. **PR link** after creation (or pre-filled compare URL if manual creation preferred)

Related Skills

skill-tour

6
from mParticle/aquarium

Interactive guided tour of all available AI coding skills with live demos. Walks through headline capabilities, offers try-it-now demos, discovers repo-specific tools, and provides a cheat sheet reference. Triggers on what can you do, show skills, skill tour, available tools, capabilities, what skills.

pr

6
from mParticle/aquarium

Create a pull request from the current branch. Triggers on create PR/open PR/make PR/submit PR/push PR/raise PR/open a pull request/create a pull request/ready to merge/branch is ready when the user wants to turn their current branch into a GitHub pull request with a well-structured description

pr-review-handler

6
from mParticle/aquarium

Monitor PR review comments and automatically classify and address reviewer feedback including code changes, questions, and nits. Use when handling PR reviews, addressing reviewer comments, responding to code review feedback, or automating review resolution. Triggers on handle reviews, PR review, address feedback, reviewer comments, code review, review response.

jira-ticket-start

6
from mParticle/aquarium

Start work on a Jira ticket by fetching ticket details, creating a properly named feature branch, and beginning codebase investigation. Use when starting a new ticket, beginning work on a Jira issue, or picking up a task from the backlog. Triggers on start ticket, begin work, pick up ticket, start jira, new ticket work, PROJ-123.

jira-cli

6
from mParticle/aquarium

Jira ticket operations via Atlassian MCP including view, search (natural language to JQL), create, update, comment, and transition with auto-detection of ticket IDs from git branches. Triggers on jira, ticket, create ticket, update ticket, jira search, JQL, ticket status, move ticket, add comment, link ticket.

implement-ticket

6
from mParticle/aquarium

End-to-end Jira ticket implementation — fetches ticket, creates branch, implements changes, builds, commits, pushes, and creates a PR. Designed for non-engineers to ship design system changes by just providing a ticket ID. Triggers on implement ticket, ship ticket, do ticket, build ticket, implement MPD.

getting-started

6
from mParticle/aquarium

Analyze the current repo structure, build system, test setup, and conventions to provide a practical onboarding guide. Use when new to a codebase, joining a project, or wanting to understand how a repo is organized. Triggers on getting started, new to repo, onboard, how does this repo work, repo structure, codebase overview.

dry-code-reviewer

6
from mParticle/aquarium

Detects deeply nested loops with duplicated inline logic and recommends extracting into small, named functions. Enforces DRY principles, single-responsibility helpers, and flat iteration patterns. Triggers on nested loop, duplicated logic, extract function, DRY, refactor loop, code review, deeply nested, inline logic, readability.

conventional-commit

6
from mParticle/aquarium

Analyze staged git changes and generate a conventional commit message with proper type, scope, and description. Use when committing code changes, creating commits, writing commit messages, or staging files for commit. Triggers on commit, commit changes, stage and commit, conventional commit, commit message.

commit-push-watch

6
from mParticle/aquarium

Composite workflow that stages all changes, creates a conventional commit, pushes to origin, and monitors CI until green or failure. Use when you want to commit and push in one step with CI monitoring. Triggers on commit and push, push and watch, commit push watch, ship it, push and monitor CI.

ci-watcher

6
from mParticle/aquarium

Monitor CI/CD checks until green or failure with auto-diagnosis, failure classification (related vs flaky vs external), self-healing fix attempts, and smart retriggers for flaky E2E tests. Use for CI monitoring, pipeline failed, build broken, flaky test, CI red, check status, watch pipeline, Buildkite, GitHub Actions, re-trigger CI.

add-rokt-icons

6
from mParticle/aquarium

Add Rokt/Untitled UI icons to the Aquarium library. Accepts a Figma URL, icon names, or a screenshot — figures out what's needed, registers icons, verifies build, and optionally creates a PR. Designed for designers. Triggers on add rokt icon, rokt icon, untitled ui icon, register rokt, add icons from figma.