diff --git a/AGENTS.md b/AGENTS.md index 98b21fd9..32c3d76d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,6 +16,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台。本文 - P0: 本机可能有多个并行开发任务;发现未预期本地修改时默认保留,不得自动 `git reset`、`git checkout --`、删除或回滚他人修改。 - P0: 当前目录的主工作区(非 `.worktree/` 路径)必须固定停留在 `master` 分支;禁止把主工作区切到其他分支,非 `master` 开发必须使用独立 `.worktree/`。 +- P0: 主 worktree 同时存在脏改且落后 `origin/master` 时,先用 stash 保存当前脏改(包含 untracked),再 `pull --ff-only` 快进到最新 `master`,然后 apply stash 并按语义合并;禁止用 reset/drop/checkout 覆盖并行改动。 - P0: 固定主 repo 通常只做 source-truth 预检、fetch、status 和 worktree anchor;源码、配置、部署脚本、issue closeout 和高风险 dad-dev 工作必须使用独立 `.worktree/`。文档/skill/长期参考轻量修改可直接在当前主 worktree 处理。细则见 `docs/reference/devops-hygiene.md`。 - P0: 清理任务 worktree 前必须按语义确认已合入 `master`:工作区 clean,相关提交是 `origin/master` 祖先或被 `--cherry-pick` 判定为等价吸收,必要时检查关键文件 diff/PR merge commit;不得仅因分支落后就删除。仍有未合入语义、未提交文件或不确定归属时,先合并/提交/推送到 `master` 或记录阻塞,不清理 worktree。 - P0: UniDesk 工具链自身修复必须先合并到 `master`,再把实际执行工具命令的 checkout 更新到包含该 merge 的最新 `master` 后继续使用;若当前 checkout 有并行脏改或非 master 分支导致不能安全 fast-forward,禁止 reset/stash/checkout 清理,改用干净 `origin/master` worktree 运行工具并说明原因。