# 变更提案: 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