with one click
branch-tidy
开发分支提交重组——分析、分组、walkthrough 确认、reset-soft 重提交、验证无内容丢失。不修改代码。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
开发分支提交重组——分析、分组、walkthrough 确认、reset-soft 重提交、验证无内容丢失。不修改代码。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
使用 DicePP Shell 工具进行交互式机器人指令验收。涉及用户可见指令、骰子结果、会话状态、多步骤流程、私聊/群聊差异或需要确认机器人实际回复时使用;开发验证时可由 auto-test-run 配合调用。
运行 DicePP Persona 真实 LLM 功能回归,客观验收生活模拟、主动消息、私聊多轮、群聊上下文、持久化和 trace。仅在用户显式调用本技能或明确要求 Persona 真实 LLM 回归时使用;不得自动触发,也不得由 subagent 自行调用。
代码审视清理——扫描变更中的遗留调试代码、废弃注释、无 backlog 引用的 TODO 等,一次确认后批量修改,跑通全量测试。
用当前 dev 源码在 5090 端口起一个 Dashboard 实例(默认仅本地 127.0.0.1,--expose 才绑 0.0.0.0),联动 dicepp-shell serve 常驻 Bot Runtime,做 Dashboard 开发联调验收。需要可视化 Dashboard 状态、调试控制通道、验证 Bot↔Dashboard 通信、测试 Dashboard 面板与真实 Bot 生命周期联动,或要在不碰生产 docker 栈的前提下用 --expose 临时把 Dashboard 暴露给外网查看时使用。
从 master 创建新的 feature 分支,基于 git worktree 实现环境隔离。
生成 DicePP 群分发整合离线包。Linux 整合包包含 NapCat (Docker 模板 + NapCat.Shell.zip),Windows 整合包包含 LLOneBot 桌面包。当用户要求制作、更新或检查整合离线包,或提到 full offline bundle、群文件整合包时使用。
| name | branch-tidy |
| description | 开发分支提交重组——分析、分组、walkthrough 确认、reset-soft 重提交、验证无内容丢失。不修改代码。 |
将零散的开发草稿提交重新组织为干净、可读的历史,每个 commit 独立可理解、可编译、可测试。只重组 commit 边界和 message,不修改代码内容。完成后可用 /branch-polish 清理代码遗留项。
/branch-tidy # 当前分支
/branch-tidy <branch> # 指定目标分支
确认工作区干净:git status --short 必须无输出。有未提交改动则停止。
确认 worktree 隔离:git worktree list 检查是否已在 worktree 中。不在 → 调 EnterWorktree 创建。
确认目标分支:必须是 feature 分支(feature/ 前缀),非 master/main。
建 backup 分支:git branch feature/xxx-backup,若已存在则追加 -backup-2、-backup-3。
列出提交:git log --oneline master..HEAD
逐 commit 精读:对每个 commit 必须完整阅读 git show <hash>(不得只看 --stat),理解实际改了什么逻辑、与前后 commit 的关系、是否被后续推翻。超过 15 个 commit 可分批,但不得跳过任何一个。
规划分组:
squash:
docs/dev/backlog.md 的 chore 全合成一个独立保留:
refactor(core))拆分——原始 commit 混了多个不相关改动时必须拆分,不得因"原来就在一个 commit 里"而保留混合状态。触发信号:message 用"与""和""同时""顺便"连接多主题、改了分属不同模块的文件、diff 内存在逻辑上无关联的改动块。此规则优先于迭代 squash。
何时停手——以下任一触发说明 group 太大,必须进一步拆:
重排时处理依赖:如需调整 commit 顺序(如把独立重构移到最前),先诊断目标 commit 依赖的文件是否在目标位置已存在。若不存在:
分组验真:方案完成后启动 subagent 做对抗性验真——独立阅读全部 commit diff,挑战归组合理性、遗漏拆分、遗漏 commit、边界规则触发。主 agent 逐条审查反馈后更新方案,争议项在 walkthrough 中标注。
逐组展示,每次只展示一组,等待用户回复。
【X / N】<组标题>
涉及提交:
squash: 1452487 feat(dev): 新增 dicepp-shell serve...
squash: 739a705 fix(dev): lease 改 os.link... ← 废弃方案,最终改 filelock
keep: 4ce2829 fix(dev): lease 改用 filelock... ← 最终方案
squash: 8288e3b test(dev): lease 并发测试...
→ 新 commit type/scope: feat(dev)
→ 新 commit message:
feat(dev): 新增 dicepp-shell serve 常驻 HTTP runtime 与 session lease 文件锁
- serve 子命令启动常驻 HTTP server,send 子命令收发指令
- session lease 基于 filelock OS 级文件锁,消除并发双 lease 竞态
→ 涉及文件: shell/main.py, shell/server.py, shell/session.py, ...
→ 拆分需求: 无
---
有问题可以提问、调整分组、重写 message,或回复"继续"。
标注规范:
squash: — squash 进本组;keep: — 独立保留(说明原因)← 废弃方案 — 被后续推翻的尝试;← 需拆分:A 归本组,B 归第 Y 组交互:"继续"→ 下一组;"这个拆开"/"xxx 独立保留"→ 调整后重新展示;修改 message → 重写后重新展示;"停"→ 深入解释。
最终确认:展示完整分组摘要(各组标题 + message 首行),等待确认。
动态获取 hash:引用 commit 时必须从当前 HEAD 动态读取:
git log --oneline --format='%H' master..HEAD
不得使用阶段二记录的 hash——cherry-pick/rebase 会改变 hash 值,过期 hash 导致错误。
reset 到 merge-base:git reset --soft $(git merge-base HEAD master)
逐组提交:每组 git reset HEAD 清空暂存区,git add 只暂存本组文件。
拆分一个 commit 到多个组时,用非交互方式提取目标文件的指定 diff:
git diff <source-commit> -- <target-files> | git apply --cached
这替代了 git add -p(交互式,不可自动化)。确认提取范围正确后 git commit,剩余改动留在工作区归入后续组。
若使用 fixup + autosquash 合并时遇到冲突:逐个冲突块判断哪一侧是最终想保留的状态,不预设 --theirs 或 --ours。无法判断时 git rebase --abort 后调整策略,不要强行解决。
验证无内容丢失:git diff feature/xxx-backup 必须无输出。若有差异回退到 backup 排查。
通过后报告:
提交重组完成。
原分支: feature/xxx (N 个提交)
整理后: M 个提交
git diff feature/xxx-backup 无差异 ✓
确认无误后可删除 backup:git branch -D feature/xxx-backup