用途:该技能用于根据 Git 变更自动生成面向业务的合并请求(MR/PR)描述,把原本面向 JIRA 发布说明的结构化分析思路,改为直接基于 git 数据分析。
主要能力:
- 从 git 分支提取提交、diff 和统计信息(提交列表、完整 diff、diffstat、变更文件清单、逐文件行变更、summary.json)。
- 从已有 GitLab MR 获取元数据、提交和 diff。
- 用 AI 按域对变更分类:缺陷修复、功能增强、技术债、文档、测试、构建与 CI、非功能性变更。
- 从提交信息与 diff 模式推断意图,识别破坏性变更与迁移要求,判断受影响组件,并评估对用户和开发者的影响。
- 使用格式化脚本从 AI 分析 JSON 生成 Markdown 描述,自动应用模板、按类别格式化、截断过长文件列表(默认每项最多 5 个文件)、突出破坏性变更、按需生成部署说明,并用 Rich 渲染预览。
- 识别 Conventional Commits 前缀(fix、feat、refactor、docs、test、chore、ci、perf、style)并映射到对应类别。
- 支持自定义组件映射(文件路径到逻辑组件)。
- 生成结果可粘贴到 GitLab/GitHub MR/PR、保存为文档或用于发布说明。
使用方式: 最常用流程为三步。
- 提取 git 数据: uv run scripts/analyze_git_changes.py [base_ref] [head_ref] --output-dir /tmp/mr-analysis 默认 base_ref 为 main,head_ref 为 HEAD。
- 读取 references/analysis_prompts.md 的提示词,结合上一步输出运行 AI 分析,得到分类后的 JSON。
- 格式化描述: uv run scripts/format_mr_description.py <analysis-json> --output /tmp/mr-description.md 可选参数 --title、--no-preview、--max-files。
另一种流程从已有 GitLab MR 出发: uv run scripts/fetch_gitlab_mr.py <mr-id> --output /tmp/mr-data.json MR ID 支持 123、!123 或完整 URL;--no-diff 可跳过 diff 以加速。
集成示例(保持原样): glab mr create --fill --description "$(cat /tmp/mr.md)" gh pr create --fill --body-file /tmp/pr.md
适用场景:需要为分支或 MR 快速生成结构化、分类清晰的变更说明;多人协作的项目中统一 MR/PR 描述格式;作为发布说明或文档的素材来源。
限制:
- 分类基于模式推断,结果可能不准确,需人工核对与编辑,最终描述应作为起点而非定稿。
- 使用描述性提交信息并遵循 conventional commits 时效果更好;提交信息模糊会降低分析质量。
- 变更规模过大时建议拆分 MR;可用 git diff 排除生成文件等路径以聚焦分析。
- 分析脚本依赖 git 仓库、存在的基准分支以及基准与目标之间存在提交。
- 官方资料未说明具体平台、收费、价格等其它细节,暂未提供。