Files
Xboard/.helloagents/archive/2026-04/202604161703_create-git-merge-preserve-local-skill/proposal.md
T

129 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 变更提案: create-git-merge-preserve-local-skill
## 元信息
```yaml
类型: 新功能
方案类型: implementation
优先级: P1
状态: 已确认
创建: 2026-04-16
```
---
## 1. 需求
### 背景
本次已在 `Xboard-new` 仓库中完成一次“以 `upstream/master` 为基线、保留本地改动优先”的真实合并。
这类需求在多仓协作中出现频率高,且容易踩到 dirty worktree、`modify/delete` 冲突、子模块 gitlink
冲突、错误远端基线等问题,适合沉淀成一个可复用 skill。
### 目标
- 在全局技能目录创建一个可自动发现的 skill。
- 让 skill 能指导 Codex 安全地把远端最新代码合并到当前分支,同时尽量保住本地改动并在冲突时偏向本地实现。
- 覆盖常见高风险场景,包括未提交改动、`modify/delete` 冲突、子模块冲突和合并后核验。
### 约束条件
```yaml
时间约束: 当前回合内完成创建、校验和可用性说明
性能约束: N/A
兼容性约束: skill 需放在 C:/Users/xiaohuli/.codex/skills 下以便全局自动发现
业务约束: 说明必须体现“保本地优先”语义,避免把 merge 写成 rebase/reset/强推流程
```
### 验收标准
- [ ] `C:/Users/xiaohuli/.codex/skills/git-merge-preserve-local/` 下存在完整 skill 目录
- [ ] `SKILL.md` 明确描述触发场景、工作流和关键风险点
- [ ] 至少有一份参考文档沉淀具体命令模板与冲突处理要点
- [ ] skill 通过 `quick_validate.py` 校验
---
## 2. 方案
### 技术方案
创建一个轻量级 workflow skill
1.`init_skill.py` 在全局技能目录初始化 `git-merge-preserve-local`
2. 将核心触发条件和执行骨架写入 `SKILL.md`,保持内容精炼。
3. 将具体命令模板、冲突配方和核验清单下沉到 `references/merge-playbook.md`
4.`generate_openai_yaml.py` 生成 `agents/openai.yaml`,补齐 UI 元数据。
5. 运行 `quick_validate.py` 做结构校验。
### 影响范围
```yaml
涉及模块:
- 全局 Codex skills: 新增 git-merge-preserve-local skill
- 当前仓库 .helloagents: 新增本次方案包与执行记录
预计变更文件: 4-6
```
### 风险评估
| 风险 | 等级 | 应对 |
|------|------|------|
| 说明过长、触发词不清,导致 skill 不易命中或上下文成本过高 | 中 | 将流程骨架留在 `SKILL.md`,把命令细节下沉到 references |
| 将“保本地优先”误写成 `reset``rebase``push --force` | 高 | 明确写出推荐 merge 路径与禁用路径 |
| 忽略子模块 gitlink 冲突,导致 skill 在真实仓库里误导操作 | 高 | 单独增加子模块冲突章节和验证清单 |
---
## 3. 技术设计(可选)
> 本次为全局 skill 创建,不涉及业务系统架构/API/数据模型设计。
### 架构设计
N/A
### API设计
N/A
### 数据模型
N/A
---
## 4. 核心场景
> 该 skill 面向 Git 合并流程复用,不同步项目业务模块文档。
### 场景: 将上游最新代码合并到当前分支且保留本地优先
**模块**: 全局技能 / Git 工作流
**条件**: 用户要求同步远端最新代码,但不希望丢失本地改动,且冲突时偏向本地实现
**行为**: 先识别真实上游基线、保护现场,再执行 merge、处理冲突并核验
**结果**: 能在真实仓库中复用一套较稳健的“保本地优先合并”操作流程
---
## 5. 技术决策
> 本方案涉及的技术决策,归档后成为决策的唯一完整记录
### create-git-merge-preserve-local-skill#D001: 采用“SKILL.md + references”而非附带脚本自动执行 merge
**日期**: 2026-04-16
**状态**: ✅采纳
**背景**: 这类 Git 合并任务高度依赖现场状态,直接自动执行脚本容易因远端、分支、dirty worktree、子模块结构差异而误伤仓库。
**选项分析**:
| 选项 | 优点 | 缺点 |
|------|------|------|
| A: `SKILL.md + references` | 复用性高,允许结合现场状态判断,适合不同仓库差异 | 不是一键脚本,需要代理自己执行命令 |
| B: 直接附自动 merge 脚本 | 执行更快 | 风险高,容易在错误远端/错误分支/脏工作树下误操作 |
**决策**: 选择方案 A
**理由**: 该问题的关键不是缺少命令,而是缺少“什么时候用什么命令”的判断框架;skill 更适合作为操作协议而不是盲目自动化脚本。
**影响**: skill 主要由说明文档构成,强调流程判断、冲突配方和验证步骤
---
## 6. 成果设计
> 含视觉产出的任务由 DESIGN Phase2 填充。非视觉任务整节标注"N/A"。
### 设计方向
- N/A
### 视觉要素
- N/A
### 技术约束
- **可访问性**: N/A
- **响应式**: N/A