Git工作流技能Skill skill-git-workflow

这个技能用于自动化git提交工作流,专门针对任务管理和版本控制。它根据任务状态变更和工件创建来创建范围化的提交,包括触发CI的条件和安全检查。关键词:git、工作流、提交管理、任务自动化、DevOps、版本控制。

DevOps 0 次安装 0 次浏览 更新于 3/22/2026

名称: git工作流技能 描述: 为任务操作创建范围化的git提交。在任务状态变更或工件创建后调用。 允许工具: Bash(git:*)

上下文按需加载通过@-引用(见上下文加载部分)


Git工作流技能

为任务操作创建适当范围化的git提交。

上下文加载

按需加载上下文:

  • @.claude/context/core/standards/git-safety.md - Git安全规则和最佳实践
  • @.claude/context/index.md - 完整上下文发现索引

触发条件

此技能在以下情况下激活:

  • 任务状态变更(研究、计划、实施完成)
  • 工件创建
  • 任务生命周期操作发生

提交消息格式

任务操作

操作 格式 触发CI
创建任务 任务 {N}: 创建 {标题}
完成研究 任务 {N}: 完成研究
创建计划 任务 {N}: 创建实施计划
完成阶段 任务 {N} 阶段 {P}: {阶段名称}
完成任务 任务 {N}: 完成实施
完成任务(带CI) 任务 {N}: 完成实施 [ci]
修订计划 任务 {N}: 修订计划 (v{V})

系统操作

操作 格式
归档任务 待办: 归档 {N} 已完成任务
错误修复 错误: 创建 {N} 个错误的修复计划
代码审查 审查: {范围} 代码审查
状态同步 同步: 协调 TODO.md 和 state.json

执行流程

1. 接收提交请求:
   - 操作类型
   - 任务号(如果适用)
   - 范围(要包含的文件)
   - 消息模板

2. 暂存适当文件:
   - git add {范围}

3. 创建提交:
   - 格式化消息
   - 添加共同作者
   - 执行提交

4. 验证成功:
   - 检查退出代码
   - 记录结果

5. 返回结果

提交范围规则

任务特定提交

仅包括任务相关文件:

specs/TODO.md
specs/state.json
specs/{NNN}_{SLUG}/**

实施提交

包括修改的源文件:

Logos/**/*.lean  (用于Lean任务)
src/**/*         (用于一般任务)

阶段提交

范围仅限于阶段变更:

该阶段修改的文件
更新带有阶段状态的计划

安全检查

提交前

1. git status - 验证暂存文件
2. 检查无敏感文件暂存(.env、凭证)
3. 验证提交消息格式

切勿运行

  • git push --force
  • git reset --hard(无明确请求)
  • git rebase -i

消息模板

{范围}: {动作} {描述}

共同作者: Claude Opus 4.5 <noreply@anthropic.com>

CI触发

概述

CI默认在推送事件中跳过。要触发CI,在提交消息中添加[ci]标记。

trigger_ci 参数

创建提交时,trigger_ci参数控制是否运行CI:

行为 用例
false(默认) 无CI标记添加 常规提交、研究、规划
true 在消息后附加[ci] Lean变更、实施完成

CI决策标准

触发CI(trigger_ci: true)当:

  • 修改Lean文件(.lean) - 确保构建通过
  • 实施完成 - 合并前最终验证
  • CI配置更改(.github/workflows/) - 验证工作流变更
  • Mathlib依赖更新(lakefile.lean, lake-manifest.json) - 确保兼容性
  • 关键错误修复 - 验证修复有效

跳过CI(默认)当:

  • 仅文档更改(.md文件)
  • 研究/规划工件
  • 配置更改(非CI)
  • 常规任务管理操作

带有CI标记的提交消息

任务 {N}: 完成实施 [ci]

共同作者: Claude Opus 4.5 <noreply@anthropic.com>

当CI始终运行

CI始终运行,无论标记:

  • 拉取请求事件(所有PR运行CI)
  • 手动workflow_dispatch触发
  • 带有[ci]标记的提交

执行命令

标准提交

git add {文件}
git commit -m "$(cat <<'EOF'
{消息}

共同作者: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)"

任务提交

git add specs/
git commit -m "$(cat <<'EOF'
任务 {N}: {动作}

共同作者: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)"

返回格式

{
  "status": "completed|failed",
  "summary": "创建提交: {短消息}",
  "commit_hash": "abc123",
  "files_committed": [
    "路径/到/文件1",
    "路径/到/文件2"
  ],
  "message": "完整提交消息",
  "ci_triggered": true|false
}

错误处理

无内容提交

{
  "status": "committed",
  "summary": "无更改提交",
  "commit_hash": null
}

提交前钩子失败

{
  "status": "failed",
  "error": "提交前钩子失败",
  "recovery": "修复问题并重试(不要使用--no-verify)"
}

Git错误

{
  "status": "failed",
  "error": "Git命令失败: {错误}",
  "recovery": "检查git状态并手动解决"
}

非阻塞行为

Git失败不应阻止任务操作:

  • 记录失败
  • 继续任务
  • 向用户报告提交失败
  • 任务状态无论如何都保留