Make the stacked-branch exception explicit in AGENTS.md

Why: worktree feature branches occasionally spawned child branches
(e.g. backend feature/cross-session-reading-1-gcb7f79d) outside the
task-start gate; collaboration.md conditionally allows stacked branches
but the Dev entry never said so, leaving stacking as an automation
blind spot with ad-hoc sha-embedded names.

Evidence: collaboration.md common-baseline section states the stacking
exception verbatim; historical numbered branches are all already merged
into main (origin/main..branch empty); precheck READY at R0=7d45719869.

Impact: AGENTS.md only. Default stays single-level branches from
origin/main with sibling branches for batch subtasks; stacking requires
recording the parent task/PR in the card, child naming without embedded
SHAs, parent-before-child merge order, and a sync back onto latest main
with PR base retargeted before merge (branch protection enforces this).

Refs: task card feature-branch-hierarchy-clause
This commit is contained in:
2026-09-30 16:35:09 +00:00
parent ee25cc3a02
commit 5194da2119
2 changed files with 11 additions and 5 deletions
+6 -5
View File
@@ -6,11 +6,12 @@
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 7d45719869cfeee203ca3e1e8d6c7f6a468faf2e - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 7d45719869cfeee203ca3e1e8d6c7f6a468faf2e
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-branch-hierarchy-clause(worktree);分支:feature/branch-hierarchy-clause - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-branch-hierarchy-clause(worktree);分支:feature/branch-hierarchy-clause
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明> - 授权与交付终点:用户 2026-09-30 认可分支层级研究结论后授权落地——把"默认从 origin/main 切分支、堆叠分支有条件许可"写成 Dev 仓入口可见条款(collaboration.md 已有上位依据,本任务只做入口显式化)。终点:PR 合入 main。未授权:改 task.sh 自动化逻辑、改兄弟仓与 Development-Guidelines、分支保护变更。
## 目标与非目标 ## 目标与非目标
<预期结果、受影响入口/模块/契约;明确不做什么。> - 目标:AGENTS.md 任务门禁节新增一条「分支层级」:① 任务分支一律从权威 origin/main 切(task-start 已强制),同批互不依赖子任务用同 R0 兄弟分支;② 确有顺序依赖时允许从父 feature 分支切子分支(collaboration.md「确有堆叠分支依赖时显式记录父任务……」条款的入口显式化),须满足:任务卡记录父任务与父 PR、子分支命名 `<type>/<父slug>-<子题>` 且不嵌 SHA、合入顺序固定父→子、父合入后子分支 task-sync 并入最新 main 并把 PR base 改回 main 方可声明可合入。
- 非目标:不改 task.sh/precheck 行为(自动化仍只认 origin/main);不追溯清理历史编号子分支(均已合入);不动兄弟仓 AGENTS.md(分支纪律由 collaboration.md 上位条款覆盖)。
## 同步记录 ## 同步记录
@@ -20,6 +21,6 @@
## 结果与验证(完成后填写) ## 结果与验证(完成后填写)
- 结果: - 结果:AGENTS.md 任务门禁节新增「分支层级」一条(位于 task-start 条目后):默认 origin/main 单层分支 + 兄弟分支批次模式;堆叠子分支四项条件(记录父任务/父 PR、命名不嵌 SHA、父→子合入次序、父合入后 sync 并改回 base)。
- 验证: - 验证:纯文档变更,验证为差异审阅 + 门禁输出——precheck READY(R0=7d45719869)、task-sync 通过(见同步记录行);无代码路径与自动化行为变更,无需 make test(PROJECT.md 验证节针对构建/测试组合,本次不触及)。
- 影响与剩余项: - 影响与剩余项:后续堆叠场景按四项条件执行;自动化对堆叠分支仍不可见(已知边界,写进条款文案)。剩余:无。
+5
View File
@@ -9,6 +9,11 @@
`SHARED_WORKSPACE_BUSY / SYNC_REQUIRED` 时不得编辑。 `SHARED_WORKSPACE_BUSY / SYNC_REQUIRED` 时不得编辑。
- 按其必读清单完成阅读,然后 `make task-start NAME=feature/<slug>` 建立独立 worktree + - 按其必读清单完成阅读,然后 `make task-start NAME=feature/<slug>` 建立独立 worktree +
feature 分支(自动记录 R0 与任务卡);任务中途不重复运行 precheck。 feature 分支(自动记录 R0 与任务卡);任务中途不重复运行 precheck。
- **分支层级**:任务分支一律从权威 `origin/main` 切(`task-start` 已强制);同批互不依赖的
子任务用同一 R0 的兄弟分支。确有顺序依赖需从父 feature 分支切子分支时(collaboration.md
允许的堆叠例外):任务卡显式记录父任务与父 PR;子分支命名 `<type>/<父slug>-<子题>`,
不嵌 SHA;合入顺序固定父→子;父合入后子分支须 `make task-sync` 并入最新 main 并把 PR
base 改回 main,方可声明可合入(分支保护要求 head 含 origin/main,未同步必被拦)。
- **验收、请求审核、合入前**各运行一次 `make task-sync`;完成声明附 precheck、task-sync、 - **验收、请求审核、合入前**各运行一次 `make task-sync`;完成声明附 precheck、task-sync、
测试三段输出。 测试三段输出。
- 合入后**在 worktree 内**运行 `make task-finish` 回收 worktree 与分支(脚本会把 - 合入后**在 worktree 内**运行 `make task-finish` 回收 worktree 与分支(脚本会把