From 2d21ed9bcda804217b851345e5251d511be56d56 Mon Sep 17 00:00:00 2001 From: troytt <47798984@qq.com> Date: Thu, 24 Sep 2026 06:07:28 +0000 Subject: [PATCH] docs(agents): require isolated git worktree for all changes, merge to main, then clean up --- AGENTS.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 03b8921..d528cde 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -87,3 +87,25 @@ - **渲染图标(Rendered Sprite Billboard)**:投射物的视觉图元是基于原版 DCC 导出的 2.5D 公告板(Billboard),其在渲染时由 `drawMissileProjectile` 通过 `shot.x + frame.anchorX`, `shot.y + frame.anchorY` 锚点对齐绘制,并依据切线速度向量 `(vx, vy)` 的朝向动态选取 16/32 方向的 DCC 预烘焙视角图。 - **严禁混淆两者的职责**:绝对禁止通过拉伸/变形渲染图标去强行模拟椭圆,也绝对禁止把渲染图标的像素尺寸误当作物理坐标。渲染图标保持原版 DCC 原始比例,而物理轨迹坐标严格遵循 2:1 地面椭圆数学方程。 +--- + +## 7. Git Worktree 隔离开发铁律 (Mandatory Worktree Isolation) + +> [!IMPORTANT] +> 适用于所有人类开发者与所有 AI Agent(包括 teamwork 多智能体编排器及其派生的全部子 Agent)。 + +1. **所有新改动必须在独立 worktree 中进行**: + - 任何代码、脚本、资产、测试或文档改动,开工前必须先从最新 `main` 新开独立分支与 worktree,例如: + `git worktree add -b / .worktrees/ main` + - **严禁直接在主工作区(仓库根目录的 `main` 检出)上编辑文件或提交。** +2. **不得触碰他人未提交的改动**: + - 主工作区或其他 worktree 中存在的未提交改动(modified / untracked)属于其他进行中的工作,严禁 `checkout`、`restore`、`stash`、`reset`、`clean`、覆盖或顺带提交。 + - 合并时只允许带入本 worktree 分支自身的提交。 +3. **完成后合并回 `main`**: + - 在 worktree 内完成开发并通过门禁(`npm run typecheck` 0 errors、相关 `vitest` 全部通过)后,再合并回 `main`(优先 fast-forward;若 `main` 已前进,先在 worktree 内 rebase 到最新 `main` 并重新验证)。 + - 合并后推送到 `origin/main`。 +4. **合并后必须清理 worktree**: + - 合并并推送成功后,立即执行 `git worktree remove .worktrees/` 与 `git branch -d /`,并执行 `git worktree prune`,确保不遗留悬空 worktree 或分支。 +5. **一个主题一个 worktree**: + - 不同功能、不同 issue 使用不同 worktree,严禁在同一 worktree 中混杂无关改动。 +