skills/git/git-pr/SKILL.md
创建 PR/MR。自动识别远端是 GitHub(用 gh)还是 GitLab(用 glab),从 commit 与 diff 自动写标题正文,通过 CLI 提交,回传最终 PR/MR 链接;--base/参数指定目标分支;提交后检查 CI action 与合并冲突,有问题则提醒用户并给解决方案。触发词:「创建 pr」「提 mr」「发 pull request」「开合并请求」。
npx skillsauth add lazygophers/ccplugin git-prInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
识别平台 → 写内容 → 提交 → 回传链接 → 查 CI/冲突并给方案。深表见 references/。
git push -u origin <branch>(开 PR 的必要前提,非越权 push)。git remote get-url origin
| 远端 host | 工具 | 默认目标分支取法 |
| --- | --- | --- |
| github.com / GH Enterprise | gh | gh repo view --json defaultBranchRef -q .defaultBranchRef.name |
| gitlab.* / 自建 GitLab | glab | glab repo view 取 default branch |
| 其它/识别不了 | 🔴 STOP | AskUserQuestion 问用户平台与工具 |
--base <branch> 参数 > 仓库默认分支。which gh/which glab 空)→ 报安装指引,不硬跑。glab 的 GITLAB_HOST 配置、RTK wrapper 拦截 gh/glab 输出等坑,见 references/platform-and-content.md §platform。BASE=<目标分支>
git log --oneline "origin/$BASE...HEAD" # 三点:本分支相对 merge-base 的提交(非双点)
git diff --stat "origin/$BASE...HEAD" # 改动概览
标题 + 结构化正文(变更/影响范围/验证)的写法、仓库 PR 模板复用,见 references/platform-and-content.md §content。
# GitHub
gh pr create --base "$BASE" --head "$(git branch --show-current)" --title "<标题>" --body "<正文>"
# GitLab
glab mr create --target-branch "$BASE" --title "<标题>" --description "<正文>"
回传 CLI 输出的 PR/MR URL(必须给到用户)。命令全参数(draft/reviewer/label 等)见 references/platform-and-content.md §create。
# GitHub
gh pr checks # CI 状态
gh pr view --json mergeable,mergeStateStatus # 冲突/可合并
# GitLab
glab ci status
glab mr view
| 检查结果 | 动作 |
| --- | --- |
| CI 全绿 + 可合并 | 报「PR/MR 已建、CI 通过、无冲突」+ URL,完成 |
| CI action 失败 | 取失败 job 日志摘要,AskUserQuestion:是否要我修?附诊断+建议方案 |
| 有合并冲突 | AskUserQuestion:是否把目标分支 merge/rebase 进来解冲突?(指路 git-merge/git-rebase) |
| mergeable=UNKNOWN | GitHub 还在后台算,稍等重查一次再判(别当无冲突),见 references/ci-and-conflict.md §mergeable |
| CI 还在跑 | 报当前 pending,给「稍后 gh pr checks/glab ci status 复查」提示 |
CI 字段含义、失败日志取法、冲突判定细节见 references/ci-and-conflict.md。
| 触发条件 | 一线修复 | 仍失败兜底 |
| --- | --- | --- |
| gh/glab 未登录 | 提示 gh auth login / glab auth login(用户自己在终端跑) | 未登录不重试,STOP 待用户授权 |
| 当前分支未推远端 | git push -u origin <branch> 后重试 create | push 被拒(需先 pull)→ 指路 git-rebase/git-merge 同步 |
| PR/MR 已存在(同分支) | 改为回传现有 PR/MR URL,不重复创建 | 列现有 PR 状态供用户决定 |
| 目标分支不存在 | 列远端分支,AskUserQuestion 让用户选正确 base | 用默认分支并明确告知 |
| CI 失败但日志取不到 | 给 PR 页 URL 让用户在网页看 checks | 标「CI 失败,日志需网页查」,不瞎猜原因 |
| 自建 GitLab 域名 | glab 已配 GITLAB_HOST 则直接用 | 未配 → 提示 glab auth login --hostname <host> |
| gh/glab 输出被 RTK wrapper 改写 | 用原始二进制路径 bypass(见 reference) | 仍乱 → 让用户网页确认 URL |
tools
UI/UX 与布局设计——做界面布局/结构/导航/组件/交互的设计决策。触发:做UI/UX/布局/排版/导航/组件/交互/栅格/响应式/图表选型/字体配对。按媒介路由 HTML/Web、原生 App(iOS/Android/桌面)、CLI、TUI。需后端动态系统不适用;配色/主题/色板走姊妹 skill design-color。
tools
主题与配色设计——做颜色搭配/调色板/主题/品牌色阶/暗模式的设计决策。触发:选配色/调色/主题/色板/品牌色/暗模式/对比度/色盲/UI风格。按媒介路由 HTML/Web(CSS变量)、原生App(平台token)、CLI(ANSI)、TUI(真彩/256/16降级)。保证可访问性(对比度/色盲安全)。需后端动态系统不适用;UI/UX 布局/组件/交互走姊妹 skill design-uiux。
tools
跨任意组件(plugin/skill/agent/command)的验证驱动优化循环纪律 skill。当用户要优化某个已有组件却无明确方向、或要防止改了反而更差(自评乐观偏差 / 多维同改归因失效 / 为凑分加废话膨胀)、或要把一套通用「评分→单变量改→改后验证严格更好才留否则回滚→触顶停」的纪律套到任意组件上时使用。管优化过程本身的纪律(validation gate / ratchet / 独立验证 / 触顶停),不评单组件深度(交 skill-dev),不查插件接线(交 plugin-dev)。仅手动 /optimize-any 触发。
data-ai
两层规则记忆 (基于 .skein/spec)。planning 时 recall 召回相关规则、task finish 后 sediment 沉淀学习 + prune 自动精简过期/重复/断链规则。core 常驻硬规 + recall 按需召回, 经判定门自动写盘 (不逐次问用户)。产出 .skein/spec 下 core/recall 规则文件 + index。另支持空仓 bootstrap 播种规则基线、记忆大面积失效 (大重构/换栈) 时 reconstruct 可逆归档后按项目类型分型重建、maintain 手动体检 (超预算/stale/断链/重复/废弃, --apply 自动修复)、auto-fix (Stop hook 写 .pending-fix 标记 → main 派 skein-specer bg 跑 maintain --apply 全自动修, 断链只报告)。