mcpField
S
submit-pr

submit-pr

github.com/tisfeng開発053 回インストール6 日前に更新
リポジトリ

submit-pr について

現在の checkout にあるコミット済み変更を基に、GitHub Pull Request を計画、作成、または再利用するスキルです。読み取り専用のプレビューに加え、通常と Draft の提出モードがあり、変更範囲とリモート PR の状態を確認します。

主な機能

  1. 01読み取り専用の PR 計画とプレビュー
  2. 02GitHub PR の作成または再利用
  3. 03Draft PR の提出モード
  4. 04コミットとファイル範囲の検証
  5. 05提出後のリモート PR 情報確認

活用シーン

  1. 01リポジトリに書き込まず PR をプレビュー
  2. 02コミット済みのタスク変更から PR を作成
  3. 03Draft PR を作成してリモート状態を検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tisfeng/skills --skill submit-pr

インストール後、Claude Code で/submit-prを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
assets/
pull_request_template.md
references/
workflow.md
scripts/
submit_pr.py
tests/
test_submit_pr.py

詳細

プロジェクトの README より

提交 GitHub PR

根据当前 Git checkout 的已提交变更,规划、创建或复用 GitHub Pull Request。 <submit-pr-skill-dir> 指实际加载的本 Skill 目录。 PR 正文只使用 Skill 自带的 固定模板;不发现、读取或合并目标 仓库的 GitHub PR 模板。

模式与授权

  • plan:只读发现仓库拓扑,预览提交范围、标题、正文、base、head 和 push remote; 不 fetch、创建分支、写仓库文件、push 或创建 PR。
  • 默认:在明确的 PR 交付授权下,fetch 精确 base、推送任务分支、创建或复用正式 PR, 并验证最终远程状态。
  • draft:与默认模式相同,但创建 Draft PR。

用户未指定时使用默认模式。用户的只读、确认、暂缓和范围限制持续有效。

分支命名依赖完整的 git-commit 技能,须同级安装;命名只使用其 统一规范与工具,不触发提交流程。 只有需要把既有 staged 内容创建为提交时才执行 git-commit 的提交流程。 依赖缺失时可报告已知事实,但在 Git 写入前停止,不复制或另拟规则。

主流程

  1. 读取 工作流契约,确定英文标题、正文语言、固定正文、Issue 策略、repository 拓扑、base/head 分支与恢复规则。
  2. 记录 HEAD、当前分支和 staged、unstaged、untracked 边界。若 checkout 处于 detached 状态:
    • 根据统一命名规范获取用户明确名称或生成任务候选。
    • 使用统一命名工具的 validate 校验字面名称,并在本轮 preflight、plan 与 apply 都 显式传入 --head-branch;调用 Agent 不在 helper 之外创建或切换分支。
  3. 在创建 staged 提交、fetch 或 apply 前运行 helper preflight,使用本轮相同的拓扑参数与 --head-branch。它只读解析目标 base 和 GitHub default branch。当前分支名与任一分支相同时, 停止并提示用户新建、切换到任务分支后重新运行;即使指定了不同的 --head-branch 也不得继续。 调用 Agent 不自动创建或切换分支、不在保护分支上提交。已有提交会随新分支保留,无需重复创建 相同提交。显式 head 名称与 base/default 同名时也停止,包括 head 来自 fork 的情况。
  4. plan 模式运行 helper plan 并展示完整 PR 预览。该模式不 fetch、创建分支、写仓库文件、push 或创建 PR。缺少提交或 cached base 时报告预览缺口,不为使 plan 成功而写入。
  5. 默认或 draft 模式要求工作树可安全交付:
    • 存在 unstaged 或 untracked 内容时停止,不运行 git add。
    • 仅 staged 非空时,按宿主交付规则使用 git-commit;工作树干净时复用已有提交。
    • 精确 fetch base ref,检查完整 <base-remote>/<base>..HEAD 提交与文件范围。 范围为空、来源不明或 HEAD 未包含 base 时停止,不自动修正历史。
  6. 根据真实范围起草 Context、Changes 和 Verification;不读取目标仓库中的 pull_request_template 文件或目录。运行 helper plan 并展示语言来源和完整预览。 默认模式继续;用户要求确认或暂缓时先停止。
  7. 使用相同内容运行 helper apply;draft 追加 --draft。helper 重新发现并校验本地/远程状态, 精确 push,创建或复用 PR,然后读回验证身份、head SHA、title、body 和 Draft 状态。
  8. 报告 PR URL、base/head repository 与 branch、head SHA、Draft、分支/push/PR 动作和截图提醒。 本轮创建提交时同时保留 git-commit 的完整回执。

安全、完成与停止

  • 只支持 GitHub remote;拓扑有歧义时要求显式参数,不创建 fork。
  • 不 force push,不 rebase、merge、reset、stash、删除 remote/分支,不切换 checkout 或推送保护分支。
  • detached checkout 只在 helper apply 内从冻结 HEAD 创建或复用命名分支 ref;plan 不创建 ref, apply 后 checkout 仍保持 detached。
  • 不自动添加 reviewer、label、milestone 或 project,不 merge PR、评论或关闭 Issue。
  • 只有 helper apply 返回成功且 pr_verification.status == "passed" 时才声称 PR 交付完成。 默认不等待 CI;仅在用户或宿主规则要求时查询或等待 checks。
  • 远程实体或已有 PR 与冻结计划不匹配、范围/身份漂移、授权被拒或写后验证失败时, 保留已完成动作并停止;不覆盖维护者编辑、创建第二个 PR 或重复已成功的远程写入。

コメント