diff --git a/.task/feature-branch-hierarchy-clause.md b/.task/feature-branch-hierarchy-clause.md index 71fba488..28cc7921 100644 --- a/.task/feature-branch-hierarchy-clause.md +++ b/.task/feature-branch-hierarchy-clause.md @@ -6,11 +6,12 @@ - 权威仓: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 -- 授权与交付终点:<本次允许的动作与终点;未授权事项写明> +- 授权与交付终点:用户 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、子分支命名 `/<父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 验证节针对构建/测试组合,本次不触及)。 +- 影响与剩余项:后续堆叠场景按四项条件执行;自动化对堆叠分支仍不可见(已知边界,写进条款文案)。剩余:无。 diff --git a/AGENTS.md b/AGENTS.md index bc0cb36b..4f01e2ba 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,6 +9,11 @@ `SHARED_WORKSPACE_BUSY / SYNC_REQUIRED` 时不得编辑。 - 按其必读清单完成阅读,然后 `make task-start NAME=feature/` 建立独立 worktree + feature 分支(自动记录 R0 与任务卡);任务中途不重复运行 precheck。 +- **分支层级**:任务分支一律从权威 `origin/main` 切(`task-start` 已强制);同批互不依赖的 + 子任务用同一 R0 的兄弟分支。确有顺序依赖需从父 feature 分支切子分支时(collaboration.md + 允许的堆叠例外):任务卡显式记录父任务与父 PR;子分支命名 `/<父slug>-<子题>`, + 不嵌 SHA;合入顺序固定父→子;父合入后子分支须 `make task-sync` 并入最新 main 并把 PR + base 改回 main,方可声明可合入(分支保护要求 head 含 origin/main,未同步必被拦)。 - **验收、请求审核、合入前**各运行一次 `make task-sync`;完成声明附 precheck、task-sync、 测试三段输出。 - 合入后**在 worktree 内**运行 `make task-finish` 回收 worktree 与分支(脚本会把