AgentStack
SKILL verified MIT Self-run

Repo Sync Dev Main

skill-sakurapainting-you-skills-repo-sync-dev-main · by Sakurapainting

Create a PR from dev to main based on actual changes, merge it, then sync and push dev/main so both branches are aligned safely.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-sakurapainting-you-skills-repo-sync-dev-main

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Repo Sync Dev Main? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Repo Sync Dev Main

用于对自己有权限的 origin 仓库执行 dev -> main 的自我 PR 同步流程:基于实际改动生成 PR 标题与描述、创建并合并 PR、再把 devmain 同步到一致状态。

何时使用

仅使用 /repo-sync-dev-main 时

本技能默认目标是用户自己的 origin 仓库,且用户对创建 PR、合并 PR、推送分支有权限。

输入格式

默认约定:

  • 远端:origin
  • 来源分支:dev
  • 目标分支:main
  • 默认 merge 策略:merge commit

可接受的附加输入:

  • 自定义 source / target branch
  • 自定义 remote
  • 指定 merge 策略:merge / squash / rebase
  • 用户补充本次发布重点或 PR 备注

如果用户没有特别说明,始终按 origin/dev -> origin/main 处理。

依赖要求

  • 必须安装并已登录 GitHub CLI:gh auth status
  • 当前目录必须是目标仓库的 git 根目录或其子目录
  • 远端上必须存在目标分支与来源分支
  • 用户必须具备创建 PR、合并 PR、推送分支的权限
  • 仓库若启用了 branch protection,必须遵守,不可绕过

标准流程

  1. 预检查
  • 先执行:
  • gh auth status
  • git status --short
  • git fetch origin --prune
  • git branch -r --list origin/dev origin/main
  • git rev-list --left-right --count origin/main...origin/dev
  • 必须确认:
  • working tree 干净
  • origin/devorigin/main 都存在
  • dev 相比 main 确实有待同步改动
  • 如果 devmain 没有差异,直接说明无需创建 PR,并停止。
  1. 生成 PR 标题和描述
  • 必须基于真实 git 输出,优先使用:
  • git log --oneline origin/main..origin/dev
  • git diff --stat origin/main...origin/dev
  • git diff --name-only origin/main...origin/dev
  • 标题要求:
  • 反映本次 dev -> main 的主要改动主题
  • 简短明确,不使用空泛标题如 sync dev to main
  • 如果改动较杂,可使用偏中性的 release/sync 标题,但仍要体现主要模块或收益
  • PR body 建议采用以下结构:
## Summary
- 

## Included changes
- 

## Validation
- 
  • 不允许凭空编造变更说明;证据不足时要明确说明不确定性。
  1. 检查是否已有现成 PR
  • 先检查:
  • gh pr list --base main --head dev --state open --json number,title,url,headRefName,baseRefName
  • 如果已存在 open 的 dev -> main PR:
  • 优先复用该 PR
  • 不重复创建新 PR
  • 报告已有 PR 的编号和链接
  1. 创建 PR
  • 只有确认不存在 open PR 时,才创建:
  • gh pr create --base main --head dev --title "" --body ""
  • 标题和描述必须来源于当前实际 diff / commit,而不是固定模板。
  1. 检查 PR 状态与可合并性
  • 创建后或复用现有 PR 后,必须检查:
  • gh pr view --json number,title,url,state,mergeable,reviewDecision,statusCheckRollup,headRefName,baseRefName
  • gh pr checks
  • 如果存在以下任一情况,则停止:
  • merge conflict
  • required checks 失败
  • 无 merge 权限
  • PR 已关闭或状态异常
  • 停止时明确列出阻塞项和建议下一步动作。
  1. 合并 PR
  • 默认使用 merge commit:
  • gh pr merge --merge
  • 可选策略:
  • gh pr merge --squash
  • gh pr merge --rebase
  • 只有在用户明确要求或仓库策略要求时才使用 squash / rebase
  • 不允许绕过保护规则,不允许使用强制或破坏性参数。
  1. merge 后同步 devmain
  • PR 合并成功后,继续执行:
  • git fetch origin --prune
  • git checkout main
  • git pull --ff-only origin main
  • git checkout dev
  • 优先执行 git merge --ff-only origin/main
  • git push origin dev
  • 最终验证:
  • git fetch origin --prune
  • git rev-parse origin/main
  • git rev-parse origin/dev
  • 目标结果:
  • origin/mainorigin/dev 指向同一提交
  1. 结果汇报
  • 输出应包含:
  • 是否创建了新 PR,或复用了已有 PR
  • PR 标题
  • PR 链接
  • merge 是否成功
  • origin/devorigin/main 是否已对齐
  • 如果任一步骤因保护规则、冲突或权限问题中止,要明确写出阻塞原因。

执行约束

  • 所有 PR 标题与描述必须基于实际 git / gh 输出生成。
  • 不允许编造变更原因、测试结果或合并状态。
  • 不允许在 dirty working tree 下继续执行切分支、merge 或 push。
  • 不允许 force push。
  • 不允许绕过 branch protection、required checks 或权限控制。
  • 如果已存在 open 的 dev -> main PR,不要重复创建。
  • 如果 merge 或 checks 存在阻塞,不要继续执行 post-merge sync。
  • 如果远端状态在执行过程中发生变化,必须重新 fetch 并重新判断。
  • 如果 git merge --ff-only origin/main 失败,说明 dev 已发生新的分叉,必须停止并汇报,不要擅自改用危险命令修复。
  • 默认 remote/source/target 为 origin / dev / main,除非用户明确指定其他值。
  • 这是一个会影响远端仓库的工作流;执行创建 PR、合并 PR、push 前必须明确告诉用户将要执行的动作,并在缺少明确授权时先征求确认。

推荐输出结构

# Dev -> Main 同步结果

## 1. 基本信息
- 仓库:
- 远端:
- 来源分支:
- 目标分支:
- merge 策略:

## 2. PR 信息
- 是否复用现有 PR:
- PR:
- 标题:
- 链接:

## 3. 执行结果
- PR 创建:成功 / 跳过 / 失败
- PR 合并:成功 / 跳过 / 失败
- 分支同步:成功 / 跳过 / 失败

## 4. 最终状态
- `origin/main`:
- `origin/dev`:
- 是否一致:是 / 否

## 5. 阻塞项或后续动作
- 

失败兜底

当出现以下情况时,必须停止并给出最小修复建议:

  1. gh 不可用或未登录
  • 提示检查:
  • gh --version
  • gh auth status
  • gh auth login
  1. 当前目录不是 git 仓库
  • 明确提示需要在目标仓库目录下重新执行。
  1. 缺少 origin/devorigin/main
  • 明确提示缺失的分支名,并要求用户提供正确分支。
  1. working tree 不干净
  • 明确提示先提交或 stash 本地改动,再重新执行。
  1. 已存在 open 的 dev -> main PR
  • 报告该 PR 链接与编号,并继续基于该 PR 判断是否可合并;不要重复创建。
  1. PR 有冲突、checks 失败或无权限
  • 列出具体阻塞项。
  • 不执行 merge,也不执行后续 branch sync。
  1. merge 后 dev 无法安全 fast-forward 到 origin/main
  • 明确提示 dev 已出现新的分叉或远端状态已变化。
  • 不要使用 force push 或破坏性修复手段。
  • 向用户汇报当前状态并请求下一步决策。

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.