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.
git clone https://github.com/mParticle/aquarium
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"
.claude/skills/publish-branch/SKILL.mdPublish 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:
(e.g.,<type>/<description>-<TICKET>
)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
, onlyfeat(scope):
is validfeat: - Generate concise description from commits and changes (not the branch name verbatim)
- Keep title under 80 characters
Examples:
feat/add-tooltip-MPD-59feat: add help icon tooltip pattern with RoktHelpCircle
fix/button-hover-state-MPD-100fix: 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
- Push confirmation with branch name and remote
- PR title in a code block
- PR description in a markdown code block
- PR link after creation (or pre-filled compare URL if manual creation preferred)