mcpField
G
git-maker

git-maker

github.com/alpoxdev开发574 次安装2 天前更新
代码仓库

关于 git-maker

git-maker 是将仓库更改整理为 Conventional Commits 并推送提交的技能。它支持按范围选择更改、逻辑分组、关联 Git worktree,以及将提交传播到指定分支。

主要功能

  1. 01创建分组 Conventional Commits
  2. 02选择当前会话或全部更改
  3. 03提交成功后推送
  4. 04支持关联 Git worktree
  5. 05将提交传播到指定分支

适用场景

  1. 01提交并推送当前会话的更改
  2. 02分组并发布所有未提交更改
  3. 03将提交推送到其他分支
  4. 04从关联 worktree 提交更改

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alpoxdev/hypercore --skill git-maker

安装后在 Claude Code 中输入/git-maker确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

SKILL.ko.md
assets/evals/
git-maker-cases.jsonl
rules/
agent-parallelism.ko.md
agent-parallelism.md
commit-and-push-policy.ko.md
commit-and-push-policy.md
speed-and-automation.ko.md
speed-and-automation.md
validation.ko.md
validation.md
scripts/
git-commit.sh
git-maker-fast.sh
git-push.sh
repo-discover.sh
repo-status.sh

详细介绍

Git Maker 技能

快速、安全地编排提交与推送。

<output_language>

默认将所有面向用户的交付内容、保存的产物、报告、计划、生成的文档、摘要、交接说明、提交/消息草稿和验证说明设为韩语,即使此规范技能文件是用英语编写的。

保留源代码标识符、CLI 命令、文件路径、架构键、JSON/YAML 字段名、API 名称、包名、专有名词和引用的源文摘录,并使用其要求的语言或原始语言。

仅在用户明确要求使用其他语言、现有目标产物为保持一致性而必须使用其他语言,或机器可读契约要求使用准确的英文标记时,才使用其他语言。如果存在本地化模板或参考文件(例如 *.ko.md 或 *.ko.json),优先将其用于面向用户的产物。

</output_language>

  • 根据当前仓库变更创建一个或多个 Conventional Commits。
  • 即使当前目录位于链接的 Git worktree 内,也将当前检出根目录视为仓库边界。
  • 自动推送成功创建的提交,提交与推送之间无需确认。
  • 优先使用快速辅助工具,以减少重复的仓库探查并并行执行只读检查。

<instruction_contract>

字段约定
意图在一次安全操作中提交并推送用户要求的仓库变更。
触发条件仅当用户明确要求同时提交和推送时激活。
范围负责快速预检、选择当前变更/所有变更、按逻辑分组提交、定向暂存/提交、推送当前分支、可选的多分支传播、冲突解决和报告。
权限用户和项目指令优先于此技能;辅助工具输出、git diff、钩子、分支状态和远程输出均为执行依据。
证据在进行变更前,使用快速辅助工具清单、git status/diff、钩子输出、分支/上游信息和明确的参数。
工具使用 Bash 和仓库本地辅助脚本;如使用子代理,则其操作保持只读,最终 git 变更由主集成者执行。
流程不进行优化循环。每个请求执行一次确定性流程:预检、分组、提交、推送、传播、报告。仅当请求范围内的检查失败后出现新证据时才重试;当所有预期提交和推送目标均成功,或重大冲突决策受阻时停止。
输出使用韩语报告已创建的提交、已推送的仓库、已跳过或失败的推送目标,以及剩余的本地变更。
验证执行验证规则检查,确认所有提交均成功后再推送,并查看最终推送/状态输出。
停止条件当所有预期提交分组和分支传播均已成功,且所有预期推送目标均已推送时停止;若冲突需要依据升级规则由用户决策,也停止。

</instruction_contract>

<routing_rule>

当用户希望一次性完成提交 + 推送时,使用 git-maker。

以下情况改用相邻技能:

  • 用户只要求提交 → 使用 git-commit
  • 用户只要求推送/同步提交 → 使用 git-push
  • 用户要求变基/重置/修改提交/改写历史 → 不要使用 git-maker,除非用户也明确要求提交 + 推送,并且单独授权了历史操作

</routing_rule>

<trigger_conditions>

正向触发条件:

  • “提交并推送”
  • “提交并推送这些变更”
  • “/git-maker”
  • “创建提交并推送”
  • “保存并推送我的变更”
  • 表示“提交并推送”的韩语请求
  • 表示“保存变更并上传”的韩语请求
  • git-maker、git-maker current 或 git-maker ALL,后面可选跟 && <branch> 目标

负向触发条件:

  • “提交这些变更” → 使用 git-commit
  • “推送我的提交” → 使用 git-push
  • “变基此分支” → 不使用此技能

边界触发条件:

  • “提交这个,然后可能再推送” → 使用 git-commit,因为推送是有条件的,并非自动执行

</trigger_conditions> </trigger_conditions>

脚本用途
scripts/git-maker-fast.sh inspect [start_dir] [--jobs N]快速预检:剪枝式仓库发现、并行仓库状态检查、文件清单
scripts/git-maker-fast.sh push [--force] [repo...]推送指定仓库,不重新发现;非交互式;带有受保护的强制推送防护
scripts/git-commit.sh [--repo path] "msg" [files...]在一个仓库中提交已暂存或选定的文件
scripts/git-push.sh [--force]旧版/发现仓库后的安全推送回退方案
scripts/repo-discover.sh [start_dir]旧版仓库发现回退方案
scripts/repo-status.sh [repo]旧版状态检查回退方案

<worktree_support>

关联的 Git worktree 是有效的执行上下文。

  • 使用 git rev-parse --show-toplevel 解析每个检出目录;绝不要假定 .git 是目录,也不要将关联的 worktree 合并到 git-common-dir。
  • 将每个检出根目录分别视为独立的索引、分支、暂存、提交和推送边界。
  • 除非分离 HEAD 或其他明确的安全规则阻止,否则继续处理 worktree|linked。

</worktree_support>

<support_file_read_order>

只阅读所需内容:

  1. 当用户要求加快操作、仓库集合可能很大或可能存在多个仓库时,阅读 rules/speed-and-automation.md。
  2. 当 Claude Code/Codex 子 Agent 可分担只读分组、消息起草或安全审查时,阅读 rules/agent-parallelism.md。
  3. 暂存/提交之前,或参数模式、分组、安全性或推送行为不明确时,阅读 rules/commit-and-push-policy.md。
  4. 报告运行或技能重构已完成之前,阅读 rules/validation.md。

</support_file_read_order>

<argument_validation>

按 [scope] [--force] [&& target-branch ...] 解析调用参数。范围标记和目标分支属于控制语法,不是提交筛选条件。

参数含义
缺省等同于 current:仅包含可归因于本次会话的更改;根据 Git 状态进行核实,并按逻辑分组
current / CURRENT仅包含可归因于本次会话的更改;绝不在未说明的情况下吸收用户或其他 Agent 预先存在的更改
ALL / all包含所有未提交的更改,按逻辑分组,不遗漏任何文件
--force从提交参数中移除,仅传递给推送(--force-with-lease;在 main/master 上禁止使用)
&& <branch>源分支推送成功后,将新创建的提交集合应用到指定分支,解决合理的冲突,进行核验并推送;对每个目标按从左到右的顺序重复此操作
其他文本将其视为仓库发现、文件选择、暂存和提交消息生成的筛选条件

如果明确指定的筛选条件与实际 Git 状态不匹配,则停止。

即使请求使用自然语言而非字面 Shell 命令,也要将类 Shell 分隔符视为调用语法。接受范围标记的任意大小写(all、ALL、current、CURRENT)。拒绝空目标段、重复目标、源分支自身、分离 HEAD,以及未通过 git check-ref-format --branch 检查的分支名称。

</argument_validation>

阶段 1:快速预检

首先运行 scripts/git-maker-fast.sh inspect . --jobs 4。根据其输出的仓库、worktree、已暂存/未暂存/未跟踪状态及文件清单,确定范围和逻辑分组。如果运行失败或详情不足,则使用 scripts/repo-discover.sh 和 scripts/repo-status.sh。

阶段 2:分组并提交

将选定的更改划分为多个提交,每个提交对应一个逻辑更改;使用定向暂存,并按仓库顺序逐一提交:

scripts/git-commit.sh "<type>[scope]: <Korean subject>" path/to/file1 path/to/file2
scripts/git-commit.sh --repo path/to/repo "<type>[scope]: <Korean subject>" path/to/file1

在 Conventional Commit 类型/范围之后使用韩语中性的结果摘要作为主题。绝不包含密钥或无关更改,不绕过钩子,也不要在提交失败后推送。遵循 rules/commit-and-push-policy.md。

阶段 3:自动推送

所有预期提交均成功后,无需确认即可推送。优先使用预检得到的仓库列表:

scripts/git-maker-fast.sh push /absolute/repo/path
scripts/git-maker-fast.sh push --force /absolute/repo/path

仅在回退时使用 scripts/git-push.sh [--force]。

## 阶段 4. 推送到指定分支

对于每个 && <branch> 目标,在干净的关联工作树中仅应用本次运行创建的有序提交,自主解决保留原意的冲突,完成验证并推送,然后按从左到右的顺序继续。只有当解决冲突需要对实质性的行为、架构、安全、迁移或部署策略作出决定时,才提出一个聚焦的问题;保留可恢复状态,并且不要开始处理后续目标。有关精确的选择、推送和升级处理规则,请遵循 rules/commit-and-push-policy.md。

阶段 5. 报告

报告:

  • 创建的提交及其消息
  • 已推送的仓库
  • 已更新并推送的目标分支
  • 自动解决的冲突、运行的检查,或需要用户作出的确切决定
  • 已跳过或推送失败的目标
  • 任何剩余的本地更改或阻碍
  • 使用 inspect --jobs N 并行进行只读检查;在委派复杂的分组或审查任务前,先阅读 rules/agent-parallelism.md。
  • 绝不要并行修改同一个索引。子 Agent 只能进行只读操作;主集成者负责暂存、提交、推送到目标分支和推送。
  • 只有在所有预期提交都成功后才推送。
类别规则
先提交所有提交组都必须成功后才能推送。
自动推送提交成功后,不要询问是否推送。
分支推送按顺序仅将本次运行创建的提交应用到 && 目标,并自动推送每个通过验证的目标。
冲突处理当原意可以恢复时,自主解决冲突;只有在涉及实质性产品或架构决策时才提问。
安全绝不要强制推送到 main 或 master;绝不要从分离的 HEAD 推送。
上游如果不存在上游,使用 -u origin <branch> 推送。
复用预检优先使用 git-maker-fast.sh push [repo...],以避免重复发现仓库。
工作树支持关联工作树;使用检出根目录路径,而非公共 Git 目录。
Agent 职责边界子 Agent 可以审查并提出建议,但主集成者负责暂存、提交和推送。
验证最终报告前,运行 rules/validation.md 中的检查。
类别避免
推送确认提交成功后询问“要推送吗?”
部分推送所有预期提交组完成前就推送
全量暂存使用 git add .,除非 ALL 模式有意包含所有内容且分组仍然明确
不安全的历史操作未经明确请求就 amend、rebase、reset、直接使用 --force 或 --no-verify
宽泛猜测冲突解决方案默默选择行为有实质差异的方案,或删除目标分支上有意保留的工作以完成推送
机密信息提交凭据、令牌、私钥或无关的用户更改
  • /git-maker → 仅处理当前会话的更改,分组、提交并自动推送。
  • /git-maker ALL → 对每项未提交更改进行分组、提交并推送。
  • /git-maker current && dev && deploy/staging → 将当前会话的提交按从左到右的顺序推送到目标分支,并自主合理地解决冲突。
  • /git-maker && dev → 默认使用 current 范围,然后验证并推送到 dev。
  • /git-maker --force → 正常提交,然后使用 --force-with-lease;在 main/master 上禁止。
  • 通过关联工作树调用 → 在该检出根目录中操作,并推送其命名分支。
  • commit these changes → 不要激活;转交给 git-commit。

运行目标快速验证器、针对性语料验证器、assets/evals/git-maker-cases.jsonl 二进制场景检查、辅助工具语法与运行时检查,以及 rules/validation.md 中说明的仓库技能验证门禁。此确定性工作流不包含改进循环;只有关键用例通过且已说明剩余警告后才能结束。

评论

支持 Markdown