← Back to Skills Marketplace
ajitsingh25

Arh Pr Workflow

by Ajit Singh · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
144
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install arh-pr-workflow
Description
Expert guidance for managing Pull Requests and feature branches using Uber's arh CLI tool. Use when creating features, publishing PRs, managing stacked PRs,...
README (SKILL.md)

arh-pr-workflow Skill

Expert guidance for arh CLI — Uber's PR and feature branch management tool.

Create Claude task list using TaskCreate for all items below. Mark tasks complete via TaskUpdate as you go.

  • Parse user request (which arh operation?)
  • Detect environment (Uber production repo?)
  • Execute requested operation
  • Verify result
  • Report outcome

Branch Naming & Commit Templates

See references/uber-commit-template.md for branch naming convention, commit template format, and PR metadata gathering.

Initial Setup

arh auth

Opens browser for GitHub authorization. Select all needed orgs (e.g., uber-code, uber-objectconfig). GitHub username must end with _UBER suffix.

Core Capabilities

1. Creating Feature Branches

Create a new feature branch from main:

arh feature \x3Cfeature-name>

Create a stacked feature (branch off current feature):

arh feature next \x3Cfeature-name>

Create feature with specific parent:

arh feature \x3Cfeature-name> --parent \x3Cparent-branch>

2. Publishing Pull Requests

Publish PR for current feature:

arh publish

Publish entire feature stack (root to leaf):

arh publish --full-stack

Publish without interactive prompts (auto-apply lint fixes):

arh publish --no-interactive

Publish as draft PR:

arh publish --changes-planned

Publish with auto-merge enabled:

arh publish --auto-merge

Publish with combined flags:

arh publish --no-interactive --apply-fixes
arh publish --full-stack --changes-planned

3. Viewing PR Status

View feature tree:

arh log -p

View feature tree with PR status:

arh log -s
# or
arh -s

View with commit history (ahead/behind status):

arh log -c
# or
arh -c

4. Merging Pull Requests

Merge current feature and all ancestors:

arh merge

How it works:

  • If on branch A (main -> C -> B -> A), merges A, B, and C
  • If on branch B, merges B and C
  • Requires all checks to pass (Builds, Required Approvers)
  • Merges ancestors first, then current branch

5. Navigating Features

Checkout existing feature:

arh checkout \x3Cfeature-name>
# or
arh co \x3Cfeature-name>

Checkout PR from URL (v0.0.38+):

arh checkout https://github.com/uber-code/go-code/pull/11960
# or
arh checkout uber-code/go-code/pull/11960
# or
arh checkout 11960
# or
arh checkout username/feature-name

This fetches the PR branch from remote and sets up upstream tracking.

Navigate feature stack:

arh checkout next    # Next feature in tree
arh checkout prev    # Previous feature in tree
arh checkout first   # First feature in tree
arh checkout last    # Last feature in tree

6. Rebasing Features

Rebase current feature tree to latest parent:

arh rebase

Pull and rebase from default branch:

arh pull -r

This pulls latest changes from origin main and rebases the entire feature stack.

Important for go-code monorepo: After any git pull or arh pull, always run:

git-bzl refresh

Rebase to new parent:

arh rebase --parent \x3Cnew-parent-branch>

Rebase specific feature:

arh rebase --feature \x3Cfeature-branch-name>

Rebase entire stack:

arh rebase --base \x3Cbase-branch>

Rebase subtree:

arh rebase --subtree \x3Csubtree-root>

Rebase all features:

arh rebase --all

7. Discarding Features

Discard a feature branch:

arh discard -f \x3Cfeature-name>

Important: This deletes both local and remote branches. Any PRs open from this branch will be closed.

Discard local only (keep remote):

arh discard --skip-remote -f \x3Cfeature-name>

Use --skip-remote when checking out someone else's PR branch that you want to discard locally.

8. Cleaning Up Merged Features

Clean up merged/closed feature branches:

arh tidy

Clean up without prompts:

arh tidy --no-interactive

How it works:

  • Lists all closed/merged features
  • Asks for confirmation to discard
  • Updates upstream tracking for dependent branches
  • Example: main -> A -> B -> C, if B is closed, tidy discards B and updates C's parent to A

9. Running Quality Checks

Run linters on changed files:

arh lint

Run tests on changed files:

arh test

10. Version Management

Check arh version:

arh version
# or
arh -v

Common Workflows

  • New feature: arh feature NAME -> commit -> arh publish
  • Stacked PRs: arh feature NAME -> commit -> arh feature next NAME2 -> commit -> arh publish --full-stack
  • Update after review: commit fixes -> arh publish --no-interactive
  • Merge stack: arh checkout last -> arh merge -> arh tidy
  • Rebase on main: arh rebase or arh rebase --all, then arh publish --no-interactive

Troubleshooting

PR publish fails due to lint errors:

arh publish --apply-fixes  # Auto-apply lint fixes

Skip pre-push coverage check (/opt/uber/etc/custom-hooks/coverage-check.sh):

arh publish --no-coverage             # Skip coverage via wrapper (preferred)
SKIP_COVERAGE=1 arh publish           # Skip coverage via env var
COVERAGE_THRESHOLD=70 arh publish     # Lower threshold (default: 80%)

The --no-coverage flag is handled by an arh() shell wrapper in ~/.aliases that creates a marker file (/tmp/.skip-coverage-$(id -u)) consumed by the pre-push hook. Aliases: arh-nc (no coverage), arh-lc (lower threshold) — also in ~/.aliases.

Feature tree is messy:

arh -s              # Check status
arh tidy            # Clean up merged features
arh rebase --all    # Rebase everything

Cannot merge due to failing checks:

  • Check build status: arh -s
  • Ensure all required approvals are received
  • Verify all builds are passing
  • Fix issues and update PR: arh publish

Tips

  • Always create features with arh feature for proper parent tracking
  • Use arh -s frequently to monitor PR status
  • Use --no-interactive in automated/CI contexts
  • Use --changes-planned for WIP/draft PRs
  • Run arh tidy regularly to keep feature tree clean
  • Use --full-stack for dependent changes
  • go-code monorepo: After git pull or arh pull, MUST run git-bzl refresh
Usage Guidance
This skill is a documentation-only helper for Uber's arh CLI and appears coherent with that purpose. It does not install anything or ask for unrelated secrets, but it instructs running real git/arh commands (including destructive ones like arh discard and arh merge) and may prompt you to sign into GitHub via arh auth. Before using: (1) confirm you are in the intended repository (production vs personal) to avoid deleting the wrong branches; (2) review any commands that delete remote branches or close PRs; (3) be aware the docs reference internal helpers (mcp__github__get_me, custom hooks, ~/.aliases) that only apply in Uber's environment—if you are not in that environment, ignore or adapt those parts; (4) the skill itself won’t exfiltrate data, but running the described commands will access your git remotes and may require authentication—ensure you trust the environment and agent before allowing autonomous execution.
Capability Analysis
Type: OpenClaw Skill Name: arh-pr-workflow Version: 1.0.0 The skill bundle provides a comprehensive workflow for Uber's internal 'arh' CLI tool, used for managing pull requests and feature branches in monorepos. It includes detailed instructions for branching, publishing, rebasing, and merging, along with Uber-specific commit templates and environment detection logic (e.g., identifying 'go-code' or 'web-code' paths). The instructions in SKILL.md and references/uber-commit-template.md are consistent with legitimate developer productivity tools and do not exhibit signs of data exfiltration, unauthorized execution, or malicious prompt injection.
Capability Assessment
Purpose & Capability
The name/description describe using Uber's arh CLI and the SKILL.md contains only arh/git workflows, branch naming, and commit templates for Uber repos. References to Uber-specific repos, commit templates, and GitHub auth are consistent with the claimed purpose.
Instruction Scope
The instructions direct the agent (or user) to run arh and git commands, detect repository type (production vs non-production), and use GitHub auth. These actions are within the skill's purpose but imply the agent will read repository state (git remotes, working tree) and may run destructive commands (arh discard, arh merge, arh tidy). Exercise caution when executing commands that delete branches or close PRs.
Install Mechanism
No install spec or code is provided (instruction-only), so nothing will be downloaded or written to disk by the skill itself.
Credentials
The skill declares no required env vars or credentials, which matches being a usage guide. The docs do reference use of SKIP_COVERAGE/COVERAGE_THRESHOLD, ~/.aliases, /tmp marker files, and an mcp__github__get_me helper for fetching GitHub login — these are contextual and expected for Uber internal workflows but mean the agent/user may need GitHub auth and access to repository files. No unexplained external credentials are requested.
Persistence & Privilege
always:false and no install behavior. The skill does not request persistent presence or modify other skills or system-wide configs (only documents using existing wrappers and hooks).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install arh-pr-workflow
  3. After installation, invoke the skill by name or use /arh-pr-workflow
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
arh-pr-workflow skill v1.0.0 – initial release - Provides expert guidance for managing Pull Requests and feature branches with the arh CLI. - Covers setup, feature branching, publishing PRs (including stacked and draft PRs), merging, rebasing, discarding, and cleaning branches in Uber’s monorepo. - Includes step-by-step examples, troubleshooting tips, commit templates, and best practices for Uber engineering workflows. - Adds workflow task list template and common commands for linting, testing, and version management.
Metadata
Slug arh-pr-workflow
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Arh Pr Workflow?

Expert guidance for managing Pull Requests and feature branches using Uber's arh CLI tool. Use when creating features, publishing PRs, managing stacked PRs,... It is an AI Agent Skill for Claude Code / OpenClaw, with 144 downloads so far.

How do I install Arh Pr Workflow?

Run "/install arh-pr-workflow" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Arh Pr Workflow free?

Yes, Arh Pr Workflow is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Arh Pr Workflow support?

Arh Pr Workflow is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Arh Pr Workflow?

It is built and maintained by Ajit Singh (@ajitsingh25); the current version is v1.0.0.

💬 Comments