logo
0
0
WeChat Login
合并来自 chore/auto-commit-20260520171327 的合并请求 #3

auto-commit Skill

一个端到端自动化的 commit + push + PR + 可视化报告 Skill。

功能

当你让 AI 改完代码后,只需说一句:

  • "提交" / "帮我提交"
  • "commit 一下"
  • "提交代码"
  • "推上去" / "push"
  • "提个 PR" / "开 PR"

AI 会全自动完成(绝不二次确认;触发即完整流程,没有"只 commit 不 push"的退路):

  1. 分析 git status / git diff 与本次会话上下文,生成符合规范的 commit message(中/英语言由项目历史决定)
  2. git add + git commit
  3. push 当前分支
    • 受保护分支(main/master/develop/...)→ 自动切到 chore/auto-commit-<时间戳> 临时分支再 push,并把本地保护分支 reset 回 origin/<branch> 保持干净
    • 普通分支(含上次 skill 创建的临时分支)→ 直接 push 当前分支
  4. LLM 推理 4 维度分析(不真跑测试):
    • 🎯 Impact:行为变化、Affects 范围、Breaking 与否
    • 🧪 Tests:模拟测试结论(PASS / WARN / FAIL)+ 推理依据
    • ⚠️ Risks:性能/并发/缓存/回滚等风险点
    • Reviewer Checklist:reviewer 应重点验证的项
  5. 测试模拟判定关卡
    • PASS / WARN → 继续:生成 HTML → 本地 Chrome headless 截图为 PNG → 上传到 cnb 图床
    • FAIL → 终止流程:不生成 HTML、不上传、不创建 PR;commit + push 保留在分支,终端输出 markdown 失败报告(含失败依据 + 影响面 + 修复建议)
  6. 创建 / 追加 PR
    • 当前分支无 open PR → 创建新 PR,body 内嵌 4 维度分析 + 截图
    • 当前分支已有 open PR → 在已有 PR 追加评论(避免重复创建)
  7. 输出 PR / 评论链接

远程不是 cnb(github / gitlab)时优雅降级:完成 push,跳过 PR/评论;终端仍输出 markdown 4 维度分析,并提示用户去对应平台手动开 PR。

想本地暂存式 commit(不推送)?请直接 git commit,不要召唤本 skill。

文件结构

采用 Progressive Disclosure(渐进式披露) 设计,主入口精简,按需加载详细文档:

commit-skill/
├── SKILL.md                                # 主入口:触发条件 + 6 步主流程 + 红线
├── README.md                               # 你正在看的这份
└── references/
    ├── commit-message-guide.md             # commit message 完整生成规范(type、风格对齐、正反例)
    ├── protected-branch-flow.md            # 受保护分支自动分流(切临时分支 + reset main)
    ├── visual-report-and-pr.md             # 可视化报告生成(Chrome headless)+ PR 创建
    ├── push-conflict-resolution.md         # push 失败的 6 种场景及处理 SOP
    └── edge-cases.md                       # 边界情况(未跟踪文件、hook 失败等)

主流程中通过相对路径链接到 references/ 下的文档,AI 仅在需要时才会加载,节省上下文。

安装

将整个 commit-skill 目录放到对应 Agent 的 skills 路径下:

# 用户级(所有项目可用)
npx skills add https://cnb.cool/skill-studio/auto-commit.git -g -y

# 项目级(仅当前项目)
cp -r commit-skill .codebuddy/skills/auto-commit

具体路径以你使用的 AI Agent(CodeBuddy / Claude Code 等)文档为准。

系统依赖(用于可视化报告)

  • Google Chrome / Chromium:必须本地已安装(macOS / Linux / Windows 自动寻路)。不会自动安装浏览器。
  • cnb-cli@cnbcool/cnb-cli):用于 upload-imagepost-pull
  • 可选:jq(拼装 PR body JSON 时用,缺失则退路用系统 Python json.dumps)。
  • 可选:ui-ux-pro-max skill(提供 design tokens 让报告更美观;不可用时使用内置默认 tokens)。

安全保证

  • ❌ 不修改 git config
  • ❌ 不执行破坏性命令(push --force / --force-with-lease / clean -fd 默认禁用)
  • ❌ 不跳过 git hooks(不会加 --no-verify
  • ❌ 不主动 --amend 已有 commit
  • 不直接 push 到远程 main/master(必须经临时分支 + PR)
  • 不安装 playwright / puppeteer / selenium 等浏览器自动化框架——只用本地 Chrome headless
  • ⚠️ push 冲突时优先 rebase/merge 整合,绝不强推
  • 唯一受控豁免git reset --hard origin/<protected-branch>——仅在受保护分支自动分流时、且工作区已 clean 时使用,用于把本地 main 拉回干净状态

自定义

直接编辑对应文件即可:

想改什么改哪个文件
触发关键词、主流程顺序SKILL.md
commit 语言(中/英)、type 取值、风格references/commit-message-guide.md
受保护分支识别、切分支命名规则references/protected-branch-flow.md
可视化报告 HTML 模板、Chrome 寻路、PR body 结构references/visual-report-and-pr.md
push 冲突的处理策略references/push-conflict-resolution.md
边界情况(hook 失败、lock 文件等)references/edge-cases.md

About

No description, topics, or website provided.
228.00 KiB
Skills
0 forks0 stars2 branches0 TagREADME