360 Secure SkillHub
360 安全技能中心

split-to-prs

该 Skill 检查当前工作区与默认分支差异,结合聊天意图和代码所有权信号提出 PR 拆分方案,经用户批准后用 Git 创建分支、提交、推送并打开 PR,同时保留可恢复快照并报告结果。

eohmig
eohmig
热度 15.00
最近更新 2026-09-20 04:23:06
分类:开发依赖:代码执行 / 读写文件应用场景:代码审查 / DevOps / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add split-to-prs
Metadata
name
split-to-prs
description
Split current work into small reviewable PRs. Use when the user asks to split a chat, set of changes, branch, or PR.

Split to PRs

Turn one pile of work into a few small PRs.

Hard rules

  • Do not create branches, commit, push, or open PRs until the user approves the split plan.
  • Never discard user work. No destructive git commands (reset --hard, clean -fdx, branch deletion, force-push, history rewrite) without explicit approval.
  • Always save a recoverable snapshot before moving work around. This often starts from dirty work on main, so do not assume there is already a safe branch.
  • Stage only named files or hunks. No git add . / git add -A.

1. Check the state

Compare the current work to the repo's default branch, including committed and uncommitted changes. Summarize the real slices you see, and use the chat history to recover intent.

Before proposing slices, find ownership signals for the touched paths (CODEOWNERS, nested ownership files, tools/ownership/PRODUCTOWNERS, or repo equivalents) and use them to identify natural reviewer boundaries.

2. Propose the split

Use judgment on detail. Usually PR titles are enough. Add a one-line scope note only when a title is unclear. Show a Mermaid diagram when there are multiple slices.

Optimize for reviewer-aligned PRs with minimal unrelated diff: split independent owners or concerns, keep tightly coupled changes together, and when stacking is necessary, order foundations before consumers.

Default to independent PRs off the default branch. Stack PRs only when the dependency is real.

Ask for approval before starting.

3. Execute the split

  • If there is uncommitted work, save a recoverable snapshot without changing the working tree:

    SHA=$(git stash create "pre-split")
    if [ -n "$SHA" ]; then
      git update-ref "refs/backup/pre-split-$(date +%s)" "$SHA"
    fi
    
  • For each approved slice, create a branch from the right base, stage and commit only the planned files or hunks, then push and open the PR.

4. Report back

Keep it short: PR titles and URLs, plus anything left on the starting branch or working tree. Do not delete the backup ref or original branch unless the user asks.