Skip to main content

git-commit

在 CalVer 仓库中执行用户明确要求的提交、打标签、推送或提交历史整理。普通开发和准备 PR 不自动触发提交或历史改写。

Zur Installation springen

Quellinformationen

Repository
zrong/skills
Letzte Quellaktivität
15. September 2026 um 04:15
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
12
Forks
4

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
git-commit
description
在 CalVer 仓库中执行用户明确要求的提交、打标签、推送或提交历史整理。普通开发和准备 PR 不自动触发提交或历史改写。
# Git Commit with CalVer Tag 将当前仓库变更提交到 git,并按 CalVer 规则打 tag。 ## 核心规则 - 仅执行用户已授权的操作。修改本 skill、普通开发或准备 PR,不构成提交或改写历史的授权。 - 已授权提交且仓库采用提交后打 CalVer tag 的约定时,**先提交,再算版本,再打 tag**;用户明确只要 commit 时不打 tag。 - **版本号必须来自 `calver.py`,不得手动推断。** - **`calver.py` 是本 skill 自带脚本,不属于项目仓库。** - 需要打 tag 时定位本 skill 的真实安装目录;脚本不可用则停止版本计算和打 tag,说明缺口。仍可完成不依赖该脚本且已授权的工作。 - **只有用户明确要求时,才执行 `git push` 和 `git push --tags`。** ## 脚本定位 `calver.py` 指的是 skill 自带脚本,而不是项目仓库里的同名文件。 执行时先定位 skill 的安装目录,再运行: ```bash python3 <skill安装目录>/scripts/calver.py ``` 通过本 SKILL.md 的实际路径解析安装目录和符号链接;无法可靠定位时,不猜测版本号,只停止依赖该脚本的步骤。 ## 工作流程 1. 查看仓库状态,确认当前变更范围。 2. 只暂存并提交与当前任务相关的文件。 3. Commit Message 必须严格遵循下面的 **Commit Message 规范**(若用户提供了额外的说明,应当融合至该格式中)。 4. 本次包含打 tag 时,运行 `calver.py` 获取下一个版本号。 5. 本次包含打 tag 时,用该版本号创建 tag。 6. 如用户明确要求推送,再执行 `git push` 和 `git push --tags`。 ## Commit Message 规范 提交变更时,Commit Message 必须严格遵循以下格式约束: ```text <type>(<scope>): <summary> <正文:描述本次变更的背景与动机> Agent-Task: <原始任务描述或任务 ID> Agent-Model: <使用的模型,如 gpt-4o、gemini-2.5-pro> Agent-Decision: <关键设计决策及理由> Agent-Limitation: <已知局限或后续 TODO> ``` - **`<type>`**:变更类型,如 `feat` (新功能), `fix` (修复), `docs` (文档), `style` (格式), `refactor` (重构), `perf` (性能), `test` (测试), `chore` (构建/工具)。 - **`<scope>`**:影响范围,可以是具体的组件、模块或 Skill 名称。 - **`<summary>`**:简短概括变更内容(必须使用简体中文)。 - **`Agent-Task`**:原始任务描述或任务 ID。 - **`Agent-Model`**:执行任务时所使用的模型名称(例如,本轮运行所使用的模型,如 gemini-3.5-flash-high 等)。 - **`Agent-Decision`**:关键技术/设计决策及其背后的合理理由。 - **`Agent-Limitation`**:任何已知的局限性、潜在风险或后续待办事项(TODO)。 - **语言约束(简体中文)**:除了必要的 Conventional Commits 英文关键字(如 `feat`, `fix` 等 `<type>` 和 `<scope>`)以及英文字段名/元数据(Meta)的 Key(如 `Agent-Task:`)之外,**`<summary>`、`<正文>` 以及各元数据字段的具体 Value 描述,必须使用简体中文进行撰写**。 ## 原子提交规范 仅在用户已授权提交时,按独立、可验证的逻辑边界组织**原子提交(Atomic Commits)**;一个完整的小改动可用一个提交,不为凑数量而拆分。每次提交遵循以下要求: - **单一逻辑变更**:每次提交必须且仅代表一个清晰的逻辑变更(例如:独立实现一个子功能、修复一个特定的 bug、添加一组相关的测试等)。 - **可构建且可测试**:每次提交都必须使代码库保持在可构建、可运行且测试能够通过的状态,绝不能提交破坏构建的半成品。 - **功能与重构分离**:严禁在同一个提交中混合代码重构(Refactoring)与新功能开发/Bug修复。重构应当作为独立的提交。 - **模块解耦**:严禁在同一个提交中混合对多个不相关模块的修改。不同模块的变更应当分作不同的提交。 ## 原子提交工作流 用户已授权提交,且要求拆分或变更包含多个独立逻辑单元时,采用以下工作流: 1. **分析变更集**:开发完成后,使用 `git diff` 或 `git status` 评估所有代码修改。 2. **划分逻辑块**:将代码变更合理规划并拆分为若干个在逻辑上相互独立、先后依赖清晰的子块。 3. **分步暂存与提交**: - 使用 `git add <file>` 或 `git add -p` 仅暂存属于当前首个逻辑块的修改,避免混入无关代码。 - 为该块撰写符合 **Commit Message 规范** 的 commit message。 - 执行提交:`git commit -m "..."`。 - 按受影响范围验证。可复用同一代码状态的有效结果;不因提交数量重复全量构建。验证中间提交时使用其实际文件树,不能以包含后续未提交改动的工作树测试代替。 4. **循环往复**:重复步骤 3,直到本次授权范围内的变更块均已提交。 5. **CalVer 与 Tag 规则**: - 本次包含打 tag 时,**仅在最后一个原子提交**完成后,才运行 `calver.py` 获取最新版本号,并为该次最新提交打上 tag。 - 前置的过渡性原子提交**不需要**打 tag。 ## 整理提交历史工作流 仅在用户明确要求 squash、合并提交或 rebase 等历史整理时使用;“准备开 PR”本身不触发历史改写。 1. 读取分支、工作树和上游状态,确定实际基线 `<base>` 与待整理的提交范围;不要假定主干叫 `main`。保护无关改动并保存原 HEAD,便于恢复。 2. 规划保留、合并的提交及其消息,遵循上面的 Commit Message 规范。 3. 用户已明确授权范围内的本地历史整理可直接执行,不重复索要确认。共享/已发布历史的改写或超出已授权范围时,先展示具体方案并取得相应授权;已有明确授权继续有效。 4. 在该范围内执行 `git rebase -i <base>`,必要时用非交互的 `GIT_SEQUENCE_EDITOR`。历史整理不自动授权强制推送。 5. 检查最终提交历史和文件树;纯 squash 若文件树未变,可复用原验证结果;冲突解决改变代码时验证受影响部分。完成已授权目标后结束,不自动追加整理或优化。 ## CalVer 规则 - 格式:`YY.WW.MICRO` - `YY`:ISO 年份后两位 - `WW`:ISO 周数 - `MICRO`:全局递增序号,跨年不重置 ## 常见错误 | 错误做法 | 正确做法 | |---|---| | 在项目仓库里找 `scripts/calver.py` | 在 skill 安装目录里执行脚本 | | 找不到路径就手动算版本号 | 停止计算版本和打 tag,报告原因 | | 用户没明确要求就 push | 仅完成已授权的本地 commit/tag | | 把无关文件一起提交 | 只提交当前任务相关文件 |
Auf GitHub ansehen