Aquarium 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.

install
source · Clone the upstream repo
git clone https://github.com/mParticle/aquarium
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/mParticle/aquarium "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/publish-branch" ~/.claude/skills/mparticle-aquarium-publish-branch && rm -rf "$T"
manifest: .claude/skills/publish-branch/SKILL.md
source content

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:

git status

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

Step 2: Push to Origin

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

Step 3: Gather Repository Information

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:

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:

## 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

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)