Help us improve
Share bugs, ideas, or general feedback.
From bb-channel
Git 开发流程纪律——覆盖"开始任务前的分支决策"、"阶段性本地 commit 节奏(不立即 push)"、"PR 描述三段式规范"、"按需建 issue 策略"、"合并后清理(本地分支 + 远程引用 + 远程分支)"。强制要求:禁止 main 直接提交、禁止自作主张创建 worktree、整个功能本地验证后才推送。TRIGGER when:用户开始任何非 main 分支开发任务("做个新功能"/"改 bug"/"开个分支"),或准备 commit/push/开 PR,或 PR 合并完成需要清理时。与 git-push-pr(用户主动调用的推送流程)互补:前者是"始终生效的行为约束",后者是"被显式触发的执行流程"。
npx claudepluginhub 0xbb2b/skills --plugin bb-channelHow this skill is triggered — by the user, by Claude, or both
Slash command
/bb-channel:git-workflow-disciplineThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
适用于:**所有非纯阅读 / 纯咨询的开发任务的整个生命周期**——从决定开发新内容那一刻起,到 PR 合并清理完成为止。
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Compacts the current conversation into a handoff document for another agent to continue the work, with suggested skills and redacted sensitive info.
Share bugs, ideas, or general feedback.
适用于:所有非纯阅读 / 纯咨询的开发任务的整个生命周期——从决定开发新内容那一刻起,到 PR 合并清理完成为止。
核心理念:Git 流程纪律不是工具,是约束。 工具(如
/git-push-pr)只在被调用时执行;纪律必须在每一个会改动代码的瞬间都生效。
TRIGGER(命中任一即应应用本纪律):
/git-push-pr skill 完成具体执行)SKIP(以下情况本纪律不适用):
git worktree 场景(仍需遵守 PR 描述规范、合并后清理)绝对禁止:在 main(或 master)分支上提交任何内容。
每次新增或修改内容时,默认通过创建新分支进行开发。
除非用户明确要求使用 git worktree,否则一律采用新分支方式工作。
即使判断为"非 worktree 不可"的场景(如需并行多分支同时编译/运行),也必须先向用户说明原因并征得同意再创建 worktree。不得自作主张。
任何开发任务开始前,第一步先用以下命令检查当前分支:
git branch --show-current
按以下分叉处理:
分叉 A:当前在 main(或 master)
git pull 拉取最新主干git switch main
git pull
git switch -c <new-branch-name>
分叉 B:当前不在 main
必须先询问用户两种意图中的哪一种,得到明确答复前不得自行切换或新开分支:
基于当前分支继续 / 新开子分支——多分支并行场景:
切回 main 后再开新分支——与当前分支无依赖关系的全新任务
git switch main && git pull,再开新分支每完成一个可独立验证的子任务,必须先 git commit 在本地保存进度:
completedcommit message 遵循当前仓库历史风格(先 git log --oneline -20 看一眼现有风格再写)。
禁止在阶段性 commit 完成后立即 git push 或开 PR。
原因:后续修改中可能发现前面的 commit 错误。本地未推送时可用 git commit --amend / git rebase -i 修正;一旦推送并合入 main,再发现错误只能另开 PR 反向修复,徒增噪音。
若任务队列中仍有进行中或待处理项,commit 后直接继续下一阶段,无需中断询问用户。
仅当满足以下所有条件后,才进入推送流程:
实际推送与开 PR 的执行流程,建议调用
/git-push-prskill(覆盖测试、push、PR 创建、合并、清理的完整链路)。
若本次工作按依赖关系拆成多个 PR:
git switch 到下一个分支、git rebase 到最新目标分支,然后 push + 开 PR无依赖关系的多 PR(修改的模块互不影响)可并行推送,但仍需在所有本地验证完成后再统一开始推送。
所有 PR / MR 描述必须分三段写明上下文,不能只写 What。
reviewer 不跳转 issue、不读 commit 也能完整理解本次改动。
## 背景 (Context)
当前状态、相关模块/链路、为什么现在要做。
## 原因 (Why)
具体动因、要解决的问题或痛点、不做的代价。
## 优化方案 (How)
本 PR 实际改动点、范围边界、验证方式、影响面;如有备选方案需简述取舍。
PR 描述已承载 Context/Why/How,单 PR 工作不再强制建 issue。
建 issue 时正文同样按 Context/Why/How 三段组织。
GitHub (gh):
gh issue create --title "..." --body "..." --label "..."
gh issue edit <num> --body "..."
gh issue comment <num> --body "..."
GitLab (glab):
glab issue create --title "..." --description "..." --label "..."
glab issue update <num> --description "..."
glab issue note create <num> --message "..."
建了 issue 的 PR 顶部一行写:
Closes #<num>
若 PR 合入非默认分支(关键字不会自动触发关闭),由 Agent 在合并完成后主动关闭:
# GitHub
gh issue close <num> --comment "..."
# GitLab
glab issue close <num>
并在对话中回报已关闭,不把这一步推给用户(除非用户明确说"我自己关")。
每次 PR / MR 合并完成后,Agent 必须立即执行清理,避免本地与远端分支列表随时间膨胀。
⚠️ 如果用户通过
/git-push-pr完成的推送与合并,该 skill 的步骤 8、9 已完成本节清理工作,无需重复执行。仅当用户绕过/git-push-pr直接合并时,按下列步骤手工清理。
# 1. 切回主干并同步最新代码
git switch main
git pull
# 2. 同步远端引用并清理本地已失效的 remote-tracking 分支
git fetch --prune
# 3. 删除已合并的本地分支
git branch -d <branch> # 优先用 -d(保留安全检查)
# 若 squash/rebase merge 让 git 检测不到合并关系导致 -d 拒绝:
gh pr view <num> --json state -q .state # GitHub 确认已 merged
glab mr view <num> --output json | jq -r .state # GitLab 确认已 merged
git branch -D <branch> # 确认后强删
# 4. 远程分支若 PR 平台未配置自动删除,手动删除
git push origin --delete <branch>
部分仓库已开启"合并后自动删除源分支",此时步骤 4 不需要执行:
未开启的仓库需手动执行步骤 4。
保持 git branch / git branch -r 输出始终反映进行中的工作,避免历史分支堆积形成认知噪音与误操作风险。
| 场景 | 本 skill(纪律) | git-push-pr(流程) |
|---|---|---|
| 用户开始新任务 | ✅ 检查分支、决定起点 | ❌ |
| 阶段性 commit | ✅ 节奏控制(不 push) | ❌ |
| 准备推送 + 开 PR | ✅ 提醒"先本地验证完整功能" | ✅ 用户主动 /git-push-pr 执行 |
| PR 描述规范 | ✅ 强制三段式 | ⚠️ 仅生成简短描述(应由本 skill 补全) |
| PR 合并 / 关闭 | ❌ | ✅ 执行合并操作 |
| 合并后清理 | ✅ 兜底(用户绕过流程时) | ✅ 内置清理 |
协作原则:本 skill 是"心智模型",git-push-pr 是"执行手册"。用户主动调用 /git-push-pr 时,按其流程执行;其他所有时候,按本 skill 的纪律行事。
任务的不同阶段对照以下清单:
开始任务前:
git branch --show-current 检查当前分支开发过程中:
准备推送时:
/git-push-pr)写 PR 描述时:
PR 合并后:
git fetch --prune