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

git-commit-push-prgit 提交推送 pr

Agent Skill

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

总安装

5,998

周安装

245

GitHub Stars

15,888

下载量

1,940
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill git-commit-push-pr

简介

git-commit-push-pr 组合提交、推送与创建 PR 的完整工作流,端到端自动化。

  • 适合独立开发者或小团队快速发布功能或修复。
  • 自动创建分支、提交变更并打开 PR,附带标准描述模板。
  • 创建 PR 需目标仓库写入权限,建议先在测试环境验证流程。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Git Commit, Push, and PR

Go from working changes to an open pull request, or rewrite an existing PR description.

Asking the user: When this skill says "ask the user", use the platform's blocking question tool (AskUserQuestion in Claude Code, request_user_input in Codex, ask_user in Gemini). If unavailable, present the question and wait for a reply.

Mode detection

If the user is asking to update, refresh, or rewrite an existing PR description (with no mention of committing or pushing), this is a description-only update. The user may also provide a focus (e.g., "update the PR description and add the benchmarking results"). Note any focus for DU-3.

For description-only updates, follow the Description Update workflow below. Otherwise, follow the full workflow.

Context

If you are not Claude Code, skip to the "Context fallback" section below and run the command there to gather context.

If you are Claude Code, the six labeled sections below contain pre-populated data. Use them directly -- do not re-run these commands.

Git status:!git status

Working tree diff:!git diff HEAD

Current branch:!git branch --show-current

Recent commits:!git log --oneline -10

Remote default branch:!git rev-parse --abbrev-ref origin/HEAD 2>/dev/null || echo 'DEFAULT_BRANCH_UNRESOLVED'

Existing PR check:!gh pr view --json url,title,state 2>/dev/null || echo 'NO_OPEN_PR'

Context fallback

If you are Claude Code, skip this section — the data above is already available.

Run this single command to gather all context:

printf '=== STATUS ===\n'; git status; printf '\n=== DIFF ===\n'; git diff HEAD; printf '\n=== BRANCH ===\n'; git branch --show-current; printf '\n=== LOG ===\n'; git log --oneline -10; printf '\n=== DEFAULT_BRANCH ===\n'; git rev-parse --abbrev-ref origin/HEAD 2>/dev/null || echo 'DEFAULT_BRANCH_UNRESOLVED'; printf '\n=== PR_CHECK ===\n'; gh pr view --json url,title,state 2>/dev/null || echo 'NO_OPEN_PR'

Description Update workflow

DU-1: Confirm intent

Ask the user: "Update the PR description for this branch?" If declined, stop.

DU-2: Find the PR

Use the current branch and existing PR check from context. If the current branch is empty (detached HEAD), report no branch and stop. If the PR check returned state: OPEN, note the PR url from the context block — this is the unambiguous reference to pass downstream — and proceed to DU-3. Otherwise, report no open PR and stop.

DU-3: Write and apply the updated description

Read the current PR description to drive the compare-and-confirm step later:

gh pr view --json body --jq '.body'

Generate the updated title and body — load the ce-pr-description skill with the PR URL from DU-2 (e.g., https://github.com/owner/repo/pull/123). The URL preserves repo/PR identity even when invoked from a worktree or subdirectory where the current repo is ambiguous. If the user provided a focus (e.g., "include the benchmarking results"), append it as free-text steering after the URL. The skill returns a {title, body_file} block (body in an OS temp file) without applying or prompting.

If ce-pr-description returns a "not open" or other graceful-exit message instead of a {title, body_file} pair, report that message and stop.

Evidence decision: ce-pr-description preserves any existing ## Demo or ## Screenshots block from the current body by default. If the user's focus asks to refresh or remove evidence, pass that intent as steering text — the skill will honor it. If no evidence block exists and one would benefit the reader, invoke ce-demo-reel separately to capture, then re-invoke ce-pr-description with updated steering that references the captured evidence.

Compare and confirm — briefly explain what the new description covers differently from the old one. This helps the user decide whether to apply; the description itself does not narrate these differences. Summarize from the body already in context (from the bash call that wrote body_file); do not cat the temp file, which would re-emit the body.

  • If the user provided a focus, confirm it was addressed.
  • Ask the user to confirm before applying.

If confirmed, apply with the returned title and body file:

gh pr edit --title "<returned title>" --body "$(cat "<returned body_file>")"

Report the PR URL.


Full workflow

Step 1: Gather context

Use the context above. All data needed for this step and Step 3 is already available -- do not re-run those commands.

The remote default branch value returns something like origin/main. Strip the origin/ prefix. If it returned DEFAULT_BRANCH_UNRESOLVED or a bare HEAD, try:

gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'

If both fail, fall back to main.

If the current branch is empty (detached HEAD), explain that a branch is required. Ask whether to create a feature branch now.

  • If yes, derive a branch name from the change content, create with git checkout -b <branch-name>, and use that for the rest of the workflow.
  • If no, stop.

If the working tree is clean (no staged, modified, or untracked files), determine the next action:

  1. Run git rev-parse --abbrev-ref --symbolic-full-name @{u} to check upstream.
  2. If upstream exists, run git log <upstream>..HEAD --oneline for unpushed commits.

Decision tree:

  • On default branch, unpushed commits or no upstream -- ask whether to create a feature branch (pushing default directly is not supported). If yes, create and continue from Step 5. If no, stop.
  • On default branch, all pushed, no open PR -- report no feature branch work. Stop.
  • Feature branch, no upstream -- skip Step 4, continue from Step 5.
  • Feature branch, unpushed commits -- skip Step 4, continue from Step 5.
  • Feature branch, all pushed, no open PR -- skip Steps 4-5, continue from Step 6.
  • Feature branch, all pushed, open PR -- report up to date. Stop.

Step 2: Determine conventions

Priority order for commit messages and PR titles:

  1. Repo conventions in context -- follow project instructions if they specify conventions. Do not re-read; they load at session start.
  2. Recent commit history -- match the pattern in the last 10 commits.
  3. Default -- type(scope): description (conventional commits).

Step 3: Check for existing PR

Use the current branch and existing PR check from context. If the branch is empty, report detached HEAD and stop.

If the PR check returned state: OPEN, note the URL -- this is the existing-PR flow. Continue to Step 4 and 5 (commit any pending work and push), then go to Step 7 to ask whether to rewrite the description. Only run Step 6 (which generates a new description via ce-pr-description) if the user confirms the rewrite; Step 7's existing-PR sub-path consumes the {title, body_file} that Step 6 produces. Otherwise (no open PR), continue through Steps 6, 7, and 8 in order.

Step 4: Branch, stage, and commit

  1. If on the default branch, create a feature branch first with git checkout -b <branch-name>.
  2. Scan changed files for naturally distinct concerns. If files clearly group into separate logical changes, create separate commits (2-3 max). Group at the file level only (no git add -p). When ambiguous, one commit is fine.
  3. Stage and commit each group in a single call. Avoid git add -A or git add.. Follow conventions from Step 2: git add file1 file2 file3 && git commit -m "$(cat <<'EOF' commit message here EOF)"

Step 5: Push

git push -u origin HEAD

Step 6: Generate the PR title and body

The working-tree diff from Step 1 only shows uncommitted changes at invocation time. The PR description must cover all commits in the PR.

Detect the base branch and remote. Resolve both the base branch and the remote (fork-based PRs may use a remote other than origin). Stop at the first that succeeds:

  1. PR metadata (if existing PR found in Step 3): gh pr view --json baseRefName,url Extract baseRefName. Match owner/repo from the PR URL against git remote -v fetch URLs to find the base remote. Fall back to origin.
  2. Remote default branch from context -- if resolved, strip origin/ prefix. Use origin.
  3. GitHub metadata: gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name' Use origin.
  4. Common names -- check main, master, develop, trunk in order: git rev-parse --verify origin/<candidate> Use origin.

If none resolve, ask the user to specify the target branch.

Gather the full branch diff (before evidence decision). The working-tree diff from Step 1 only reflects uncommitted changes at invocation time — on the common "feature branch, all pushed, open PR" path, Step 1 skips the commit/push steps and the working-tree diff is empty. The evidence decision below needs the real branch diff to judge whether behavior is observable, so compute it explicitly against the base resolved above. Only fetch when the local ref isn't available — if <base-remote>/<base-branch> already resolves locally, run the diff from local state so offline / restricted-network / expired-auth environments don't hard-fail:

git rev-parse --verify <base-remote>/<base-branch> >/dev/null 2>&1 \
  || git fetch --no-tags <base-remote> <base-branch>
git diff <base-remote>/<base-branch>...HEAD

Use this branch diff (not the working-tree diff) for the evidence decision. If the branch diff is empty (e.g., HEAD is already merged into the base or the branch has no unique commits), skip the evidence prompt and continue to delegation.

Evidence decision (before delegation). If the branch diff changes observable behavior (UI, CLI output, API behavior with runnable code, generated artifacts, workflow output) and evidence is not otherwise blocked (unavailable credentials, paid services, deploy-only infrastructure, hardware), ask: "This PR has observable behavior. Capture evidence for the PR description?"

  • Capture now -- load the ce-demo-reel skill with a target description inferred from the branch diff. ce-demo-reel returns Tier, Description, and URL. Note the captured evidence so it can be passed as free-text steering to ce-pr-description (e.g., "include the captured demo: as a ## Demo section") or spliced into the returned body before apply. If capture returns Tier: skipped or URL: "none", proceed with no evidence.
  • Use existing evidence -- ask for the URL or markdown embed, then pass it as free-text steering to ce-pr-description or splice in before apply.
  • Skip -- proceed with no evidence section.

When evidence is not possible (docs-only, markdown-only, changelog-only, release metadata, CI/config-only, test-only, or pure internal refactors), skip without asking.

Delegate title and body generation to ce-pr-description. Load the ce-pr-description skill:

  • For a new PR (no existing PR found in Step 3): invoke with base:<base-remote>/<base-branch> using the already-resolved base from earlier in this step, so ce-pr-description describes the correct commit range even when the branch targets a non-default base (e.g., develop, release/*). Append any captured-evidence context or user focus as free-text steering (e.g., "include the captured demo: as a ## Demo section").
  • For an existing PR (found in Step 3): invoke with the full PR URL from the Step 3 context (e.g., https://github.com/owner/repo/pull/123). The URL preserves repo/PR identity even when invoked from a worktree or subdirectory; the skill reads the PR's own baseRefName so no base: override is needed. Append any focus steering as free text after the URL.

ce-pr-description returns a {title, body_file} block (body in an OS temp file). It applies the value-first writing principles, commit classification, sizing, narrative framing, writing voice, visual communication, numbering rules, and the Compound Engineering badge footer internally. Use the returned values verbatim in Step 7; do not layer manual edits onto them unless a focused adjustment is required (e.g., splicing an evidence block captured in this step that was not passed as steering text — in that case, edit the body file directly before applying).

If ce-pr-description returns a graceful-exit message instead of {title, body_file} (e.g., closed PR, no commits to describe, base ref unresolved), report the message and stop — do not create or edit the PR.

Step 7: Create or update the PR

New PR (no existing PR from Step 3)

Using the {title, body_file} returned by ce-pr-description:

gh pr create --title "<returned title>" --body "$(cat "<returned body_file>")"

Keep the title under 72 characters; ce-pr-description already emits a conventional-commit title in that range.

Existing PR (found in Step 3)

The new commits are already on the PR from Step 5. Report the PR URL, then ask whether to rewrite the description.

  • If yes, run Step 6 now to generate {title, body_file} via ce-pr-description (passing the existing PR URL as pr:), then apply the returned title and body file: gh pr edit --title "<returned title>" --body "$(cat "<returned body_file>")"
  • If no -- skip Step 6 entirely and finish. Do not run delegation or evidence capture when the user declined the rewrite.

Step 8: Report

Output the PR URL.

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

36.35%
按下载量换算705

Claude

29.54%
按下载量换算573

Cursor

19.87%
按下载量换算385

Gemini CLI

9.06%
按下载量换算176

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/everyinc/compound-engineering-plugin --skill git-commit-push-pr 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

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

来源信息

继续浏览同类 Skills