pr-create
npx skills add https://github.com/ag-grid/ag-charts --skill pr-create
Agent 安装分布
Skill 文档
Create Pull Request
Commit current changes (if any), push the branch, and open a pull request.
Read and follow all conventions in .rulesync/skills/git-conventions/SKILL.md.
Help
If the user provides a command option of help:
- Explain how to use this command.
- DO NOT proceed, exit the command immediately after these steps.
Prerequisites
- Git CLI and GitHub CLI (
gh) must be available. - The user must be authenticated with
gh(gh auth status). - The repository must have a remote named
origin.
Workflow
STEP 1: Assess Current State
Gather all necessary context in parallel:
git status
git log --oneline -10
git branch --show-current
git remote -v
Determine:
- Current branch name (
CURRENT_BRANCH). - Whether there are uncommitted changes (staged, unstaged, or untracked).
- Whether there are unpushed commits on this branch.
STEP 2: Identify Base Branch
Determine the correct base branch for the PR:
- Check if the current branch was created from a
bX.Y.Zrelease branch:git log --oneline --decorate --all | head -30 git merge-base --is-ancestor origin/latest HEAD && echo "descends from latest" - Default base:
latest(the main branch). - Release base: If the branch clearly descends from a
bX.Y.Zbranch (and notlatest), use that release branch as the base. - If ambiguous, ask the user which base branch to target.
Store the result as BASE_BRANCH.
STEP 3: Ensure Topic Branch
If currently on latest or a bX.Y.Z branch, a new topic branch is required:
- Determine the branch name following git-conventions:
- If
${ARGUMENTS}contains a JIRA ticket (e.g.,AG-12345): useag-12345/<descriptive-slug> - Otherwise: use
<initials>/<descriptive-slug>(derive initials fromgit config user.name, or ask the user) - Derive the slug from the change description or
${ARGUMENTS}.
- If
- Create and switch to the new branch:
git checkout -b <branch-name>
If already on a topic branch (not latest or bX.Y.Z), continue on the current branch.
STEP 4: Commit Changes (If Any)
If there are uncommitted changes:
- Review the changes:
git diff git diff --staged git status - Stage relevant files (prefer specific files over
git add -A). - Write a commit message following git-conventions:
- JIRA-linked:
AG-XXXX <description>(uppercase JIRA number) - No JIRA:
<description>(concise, imperative mood) - Under 72 characters.
- Never attribute agentic tooling.
- JIRA-linked:
- Commit:
git commit -m "$(cat <<'EOF' <commit message> EOF )"
If there are no uncommitted changes and no unpushed commits, inform the user there is nothing to submit and STOP.
STEP 5: Push Branch
Push the branch to the remote, setting the upstream:
git push -u origin <branch-name>
STEP 6: Create Pull Request
Create the PR using gh:
gh pr create --base <BASE_BRANCH> --title "<title>" --body "$(cat <<'EOF'
<body>
EOF
)"
Follow git-conventions for the PR:
- Title: Under 70 characters. JIRA-linked:
AG-XXXX <description>. No JIRA:<description>. - Body: JIRA-linked: include link(s) to the JIRA ticket(s). No JIRA: concise description of the change.
- Keep descriptions concise – this is a public repo.
- Never attribute agentic tooling.
- If JIRA-linked include “Fix #AG-XXXX”
STEP 7: Report Result
Output the PR URL and a brief summary:
PR created: <URL>
Base: <BASE_BRANCH> â Head: <branch-name>
Title: <title>
Arguments
${ARGUMENTS} can optionally include:
- A JIRA ticket number (e.g.,
AG-12345) – used for branch naming, commit prefix, and PR title. - A description of the change – used for branch slug, commit message, and PR title.
--base <branch>– override the base branch detection.
Examples:
/pr-create– infer everything from current state and changes./pr-create AG-12345 Add tooltip delay support– JIRA-linked PR./pr-create Fix axis label overlap for long text– no-JIRA PR./pr-create --base b13.0.0– target a specific release branch.