Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计提醒

pr-create公关创建

Agent Skill

pr-create 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

4,563

周安装

194

GitHub Stars

322

下载量

1,599
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:pr-create(公关创建)
来源仓库:https://github.com/posit-dev/skills
仓库路径:skills/pr-create
安装命令:
npx skills add https://github.com/posit-dev/skills --skill pr-create
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/posit-dev/skills --skill pr-create

简介

pr-create 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词或任务场景快速定位候选结果。

  • 适用于研究检索类任务,可辅助信息收集、线索筛选或内容匹配等场景。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需确保宿主环境兼容该技能调用。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 具体功能细节请参考来源仓库的 README 文档进行核验与配置。

SKILL.md

PR Creator Skill

Get changes into a PR, monitor CI, fix any failures, and notify the user when the PR is ready for review.

The user may already have commits ready on a feature branch, or may have uncommitted changes, or both. Adapt the workflow to the current state.

Task List Integration

CRITICAL: Use Claude Code's task list system for progress tracking and session recovery. Use TaskCreate, TaskUpdate, and TaskList tools throughout execution.

Task Hierarchy

[Main Task] "Create PR: [branch-name]"
  └── [CI Task] "CI Run #1" (status: failed, reason: lint)
      └── [Fix Task] "Fix: lint"
  └── [CI Task] "CI Run #2" (status: failed, reason: test failures)
      └── [Fix Task] "Fix: test failures"
  └── [CI Task] "CI Run #3" (status: passed)

At the start, always call TaskList to check for existing PR tasks. If a "Create PR" task exists with status in_progress, resume using the Session Recovery section below.

Process

Step 1: Assess Current State

Check for a --reviewer argument in the user's message. If present, store the value for use in Step 5. It may be a GitHub handle (@username) or a name (Jane Doe).

Create the main PR task:

TaskCreate:
- subject: "Create PR: [branch-name or 'pending']"
- description: "Create pull request from current changes."
- activeForm: "Checking git status"

TaskUpdate:
- taskId: [pr task ID]
- status: "in_progress"

Determine the base branch and current state:

git status
git diff --stat
# Detect the default branch (main, master, develop, etc.)
gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
git log --oneline <base-branch>..HEAD
gh pr view 2>/dev/null

Determine the starting point:

StateNext Step
On base branch with uncommitted changesStep 2 (create branch)
On feature branch with uncommitted changesStep 3 (commit)
On feature branch with commits, nothing uncommittedStep 4 (sync)
PR already exists for this branchInform user, ask whether to update or monitor CI
No changes anywhereInform user "No changes detected. Nothing to do." and stop

Update task with branch info:

TaskUpdate:
- taskId: [pr task ID]
- subject: "Create PR: [actual-branch-name]"
- metadata: {"branch": "[branch-name]", "baseBranch": "[base-branch]"}

Step 2: Create Branch (if needed)

If currently on the base branch:

git checkout -b <descriptive-branch-name>

Use the project's branch naming conventions if documented in CLAUDE.md or AGENTS.md. Otherwise use:

  • feat/short-description for features
  • fix/short-description for bug fixes
  • refactor/short-description for refactoring
  • docs/short-description for documentation

Step 3: Stage and Commit Changes (if needed)

Skip this step entirely if there are no uncommitted changes.

Stage specific files rather than using git add -A:

git status
git add <file1> <file2> ...
git diff --cached --stat
git commit -m "$(cat <<'EOF'
<type>: <short summary>

<optional longer description>
EOF
)"

Follow the project's commit conventions if documented in CLAUDE.md or AGENTS.md. Otherwise use conventional commits: feat:, fix:, refactor:, docs:, test:, chore:.

If the commit fails due to a pre-commit hook:

  1. Read the error output to understand what the hook requires
  2. Fix the flagged issues
  3. Stage the fixed files
  4. Create a new commit (do NOT amend the previous commit)

Step 4: Sync with Base Branch (if needed)

git fetch origin
git log --oneline HEAD..origin/<base-branch> | head -20

If up to date (no output), proceed to Step 5.

If behind, inform the user how many commits behind and offer options using AskUserQuestion:

  1. Rebase (recommended when no PR exists yet)
  2. Merge (safer with many commits or shared branches)
  3. Skip (proceed without syncing)

Do NOT rebase or merge without user confirmation.

If conflicts arise, inform the user and help resolve them.

Step 5: Draft PR Title and Body

Get user approval on the PR content now, before running pre-flight checks. This keeps the user engaged while they're focused on the task.

5a. Gather context:

git log --oneline <base-branch>..HEAD
git diff <base-branch>...HEAD --stat

5b. Draft the PR title and body:

Follow the project's PR conventions if documented in CLAUDE.md or AGENTS.md. Otherwise:

  • Title: Under 70 characters, describes the change
  • Body: Start with issue references on the first line (e.g. Closes #45), then a structured description:
[issue references: Fixes #...]

## Summary
<summary>

## Verification
<how to verify>

Summary: Give an overview of the changes in the PR. The target audience is an experienced developer who works in this code base and needs to be informed about design or architectural changes. Highlight key decisions, structures and patterns.

Verification: include an example that demonstrates the changes in the PR as seen or used by the intended audience. For code packages, include a small, reproducible exmaple. For apps and interfaces, describe the steps required to see the new behavior.

5c. Preview and get user approval:

CRITICAL: Use AskUserQuestion to show the user the proposed PR title and body. Also include a reviewer question in this same interaction:

  • If a --reviewer was provided, resolve and confirm the GitHub handle (see below), then show it as part of the preview.
  • If no reviewer was given, ask in the same AskUserQuestion call whether they want to request a review from anyone (free-text, optional).

Resolving a reviewer by name (not handle): If the reviewer value doesn't look like a GitHub handle (no @, not clearly a username), look up the correct handle:

# Check recent contributors in the repo first
gh api repos/{owner}/{repo}/contributors --jq '.[].login' | head -20

# Search GitHub users if not found in contributors
gh api search/users?q=<name>+in:name --jq '.items[] | "\(.login) \(.name // "")"' | head -10

Confirm the resolved handle with the user before storing it.

Store the confirmed reviewer handle in task metadata:

TaskUpdate:
- taskId: [pr task ID]
- metadata: {"reviewer": "<github-handle>"}

Include approval options directly in the AskUserQuestion call for the PR preview. The options should be:

  1. "Looks good, proceed" *(default)* — approve and immediately continue to Step 6
  2. "Looks good, tell me what you'll do next" — approve but show the plan outline before continuing

Do NOT create the PR until the user has selected one of these options.

5d. Show plan outline (only if user selected option 2):

Present the following before continuing:

Here's what I'll do next: 1. Run local checks (if available for this project) 2. Push the branch to origin 3. Create the PR as a draft with the approved title and body 4. Monitor CI and fix any failures 5. Publish the PR (remove draft status) once CI passes 6. Request a review from @<reviewer> (if applicable) I'll auto-fix small issues (formatting, lint, type errors, test failures). If anything bigger comes up, I'll check with you first.

After showing the outline, ask one more AskUserQuestion to confirm before proceeding to Step 6.

Step 6: Run Local Pre-flight Checks

This step catches most CI failures before pushing.

Determine the project's local check commands by consulting (in priority order):

  1. CLAUDE.md or AGENTS.md in the project root (may specify lint, test, build commands)
  2. Project config files: package.json (scripts), Makefile, pyproject.toml, DESCRIPTION, Justfile, Taskfile.yml, etc.
  3. CI workflow files in .github/workflows/ to understand what CI will run

Run the checks that are available locally. Common patterns:

  • Lint/format: npm run lint, ruff check, air format, biome check, etc.
  • Build: npm run build, pip install -e., devtools::check(), etc.
  • Type check: npm run check-types, mypy, pyright, etc.
  • Tests: npm test, pytest, devtools::test(), cargo test, etc.

If no local check commands are discoverable, skip this step and rely on CI.

Fixing failures:

  • Obvious, mechanical fixes — fix autonomously:

- Formatting issues (run auto-formatter if available) - Lint errors with clear fixes - Simple build, test, or type errors with obvious corrections - Stage the fixed files and commit the fix (specific files, not git add -A) - Re-run the failing check to confirm it passes - ALWAYS call out changes made in this step in the final summary

  • Non-obvious failures — use AskUserQuestion to present the issue and offer resolution options

Step 7: Push Branch

git push -u origin <branch-name>

Step 8: Create Pull Request

Create the PR as a draft so it is not prematurely sent for review while CI is still running.

GitHub's markdown parser renders every newline literally — do not wrap long lines in the PR body. Write each paragraph as a single unbroken line.

gh pr create --draft --title "<approved-title>" --body "$(cat <<'EOF'
<approved-body>
EOF
)"

Capture the PR URL and store in task metadata:

TaskUpdate:
- taskId: [pr task ID]
- metadata: {"prUrl": "<url>", "prNumber": <N>, "prTitle": "<title>", "commits": <count>}

Step 9: Monitor CI

Create a CI run task:

TaskCreate:
- subject: "CI Run #[N]: monitoring"
- description: "Monitoring CI run for PR #[number]"
- activeForm: "Monitoring CI Run #[N]"

TaskUpdate:
- taskId: [ci task ID]
- addBlockedBy: [pr task ID]
- status: "in_progress"

Wait for CI to start, then monitor:

# List workflow runs for this PR
gh run list --branch <branch-name> --limit 5

# Watch a specific run silently until completion
# --exit-status returns exit code 0 on success, non-zero on failure
gh run watch <run-id> --exit-status > /dev/null 2>&1
echo "Exit: $?"

# Or check status without blocking
gh run view <run-id>

IMPORTANT: Do NOT run gh run watch without redirecting output. It generates thousands of lines of repeated status updates. Always redirect to /dev/null and rely on the exit code.

Store run ID in task:

TaskUpdate:
- taskId: [ci task ID]
- metadata: {"runId": "[run-id]", "status": "running"}

Step 10: Handle CI Results

If CI Passes:

TaskUpdate:
- taskId: [ci task ID]
- subject: "CI Run #[N]: passed"
- status: "completed"
- metadata: {"status": "passed"}

Publish the PR (remove draft status):

gh pr ready <pr-number>

Request a review (if a reviewer was stored in task metadata):

gh pr edit <pr-number> --add-reviewer <github-handle>
  • STOP HERE - do not merge
  • Report to user with PR URL, branch, and CI status

If CI Fails:

TaskUpdate:
- taskId: [ci task ID]
- subject: "CI Run #[N]: failed"
- status: "completed"
- metadata: {"status": "failed", "failureReason": "[brief reason]"}
  1. Get failure details: --log-failed can produce thousands of lines. Use a targeted approach: # Summary of which jobs/steps failed gh run view <run-id> # Failed logs, limited to the last 40 lines (where the error usually is) gh run view <run-id> --log-failed 2>&1 | tail -40 # Search for specific errors if needed gh run view <run-id> --log-failed 2>&1 | grep -A 5 -B 5 "error\|Error\|FAIL\|failed" Work from the bottom of the output upward — the actual error is almost always near the end.
  2. Reproduce locally using the project's local check commands (discovered in Step 6).
  3. Create a fix task: TaskCreate: - subject: "Fix: [failure reason]" - description: "Fixing CI failure from Run #[N]: [detailed error]" - activeForm: "Fixing [failure reason]" TaskUpdate: - taskId: [fix task ID] - addBlockedBy: [ci task ID] - status: "in_progress"
  4. Fix the issue, verify locally, then commit and push: git add <specific-files> git commit -m "$(cat <<'EOF' fix: <what was fixed> EOF)" git push
  5. Mark fix task completed: TaskUpdate: - taskId: [fix task ID] - status: "completed"
  6. Return to Step 9 — monitor the new CI run (increment run number)

Repeat until CI passes.

Step 11: Final Report

Mark main PR task as completed.

Call TaskList to gather all CI run and fix tasks, then generate the summary:

## PR Ready for Review

**PR:** [#<number> <title>](<url>)
**Branch:** `<branch-name>` -> `<base-branch>`
**Commits:** <count>
**CI Status:** All checks passed
**Reviewer:** @<handle> (if requested)

### CI Runs
- Run #1: Failed (lint) -> Fixed in [hash]
- Run #2: Passed

**Note:** This PR has NOT been merged. Please review and merge manually.

Session Recovery

If resuming from an interrupted session:

TaskList shows:
├── PR task in_progress, no CI tasks
│   └── PR was created, start monitoring CI (Step 9)
├── PR task in_progress, CI task in_progress
│   └── Resume monitoring CI run from task metadata runId
├── PR task in_progress, CI task failed, no fix task
│   └── Analyze failure and create fix task (Step 10)
├── PR task in_progress, fix task in_progress
│   └── Continue fixing, then push and monitor new CI run
├── PR task completed
│   └── PR is done, show final report
└── No tasks exist
    └── Fresh start (Step 1)

When resuming, use gh run view <runId> from CI task metadata to check if the run is still active, completed, or superseded. Inform the user of the current state before resuming.

Important Rules

  1. NEVER merge the PR - only create it and ensure CI passes
  2. NEVER force push unless explicitly asked
  3. NEVER push to base branch directly
  4. Continue fixing until CI passes - don't give up after one failure
  5. Preserve commit history - don't squash unless asked
  6. ALWAYS preview PR title and body with the user before creating
  7. ALWAYS stage specific files - never use git add -A or git add.
  8. NEVER amend commits unless explicitly asked - always create new commits for fixes
  9. ALWAYS open PRs as drafts - use gh pr create --draft; publish with gh pr ready only after CI passes
  10. NEVER request a review before CI passes
  11. Do NOT wrap markdown lines in PR bodies - GitHub renders every newline literally

Error Handling

Authentication issues: If gh commands fail with auth errors, inform the user to run gh auth login.

Branch conflicts: Offer rebase or merge options. Resolve conflicts if any, then continue.

PR already exists: Inform user a PR already exists for this branch. Ask if they want to update it or monitor its CI.

Pre-commit hook failures: Read the hook error output, fix the flagged issues, stage the fixes, and create a new commit. Do NOT amend.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.81%
按下载量换算605

Claude

30.04%
按下载量换算480

Cursor

19.07%
按下载量换算305

Gemini CLI

10.13%
按下载量换算162

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills