name: config-git description: 交互式Git配置设置,用于用户身份和项目约定。在为新项目设置Git、配置提交范围/类型或创建项目特定的Git设置时使用。 user-invocable: true allowed-tools: [“Bash(git:)", "Bash(ls:)”, “Bash(find:*)”, “Read”, “Write”, “Glob”, “AskUserQuestion”] model: sonnet context: fork version: 0.1.0
交互式Git配置
设置Git用户身份并创建 .claude/git.local.md,包含约定提交范围、类型和分支命名约定。
当前Git配置上下文:
!git config --list --show-origin
阶段1:验证用户身份
目标:确保git user.name和user.email已配置
操作:
- 查看上面的“当前Git配置上下文”
- 检查
user.name和user.email是否已设置 - 如果任何一个缺失,使用
AskUserQuestion请求缺失信息 - 使用
git config全局(或如果用户指定则本地)设置值
阶段2:分析项目上下文
目标:理解项目结构和现有提交模式
操作:
- 运行
ls -F或find . -maxdepth 2 -not -path '*/.*'以检测项目语言/框架 - 运行
git log --format="%s" -n 50(如果git仓库存在)以分析现有提交消息模式和范围
阶段3:确定范围
目标:基于项目结构生成适当的提交范围
关键 - 范围命名规则:
- 所有范围必须简短(仅限单个单词或缩写)
- 单个单词:按原样使用(例如,
<word1>,<word2>,<word3>) - 多词名称:必须转换为首字母(例如,
<multi-word-name>→<mwn>,<another-example>→<ae>) - 不得使用完整多词名称如
<multi-word-name>或<another-example>作为范围
操作:
- 基于分析提出提交范围列表
- 确保所有范围遵循上述命名规则
- 仅在存在真正歧义时请求用户输入
阶段4:生成配置文件
目标:使用示例模板的完整结构创建 .claude/git.local.md
关键 - 模板要求:
- 使用整个示例文件结构作为模板
- 保留示例中的所有部分:
- 包含
scopes、types、branch_prefixes和gitignore的YAML frontmatter - “# 项目特定的Git设置”部分
- “## 用法”部分,包含所有要点
- “## 附加指南”部分,包含所有要点
- 包含
操作:
- 读取示例配置文件:
${CLAUDE_PLUGIN_ROOT}/examples/git.local.md - 用确定的简短范围替换
scopes列表 - 基于检测到的项目语言/框架更新
gitignore技术 - 保持
types为标准约定提交类型(除非用户请求更改) - 保持
branch_prefixes如示例所示(除非用户请求更改) - 在项目根目录创建或覆盖
.claude/git.local.md - 读取文件以验证其匹配示例的完整结构
输出:带有项目特定配置的 .claude/git.local.md 文件
阶段5:确认
目标:通知用户配置成功
操作:
- 确认配置完成
- 显示创建文件的位置