diff --git a/.task/feature-branch-hierarchy-clause.md b/.task/feature-branch-hierarchy-clause.md new file mode 100644 index 00000000..3eff8492 --- /dev/null +++ b/.task/feature-branch-hierarchy-clause.md @@ -0,0 +1,27 @@ +# feature/branch-hierarchy-clause 任务卡 + +任务主记录:;状态:进行中;owner:weichen + +## 基线与授权 + +- 权威仓: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 上位条款覆盖)。 + +## 同步记录 + +| 节点 | sync_base_sha | tested_head_sha | checked_at | +|---|---|---|---| +| 启动 | 7d45719869cfeee203ca3e1e8d6c7f6a468faf2e | 7d45719869cfeee203ca3e1e8d6c7f6a468faf2e | 2026-09-30T16:34:07Z | + +## 结果与验证(完成后填写) + +- 结果:AGENTS.md 任务门禁节新增「分支层级」一条(位于 task-start 条目后):默认 origin/main 单层分支 + 兄弟分支批次模式;堆叠子分支四项条件(记录父任务/父 PR、命名不嵌 SHA、父→子合入次序、父合入后 sync 并改回 base)。 +- 验证:纯文档变更,验证为差异审阅 + 门禁输出——precheck READY(R0=7d45719869)、task-sync 通过(见同步记录行);无代码路径与自动化行为变更,无需 make test(PROJECT.md 验证节针对构建/测试组合,本次不触及)。 +- 影响与剩余项:后续堆叠场景按四项条件执行;自动化对堆叠分支仍不可见(已知边界,写进条款文案)。剩余:无。 +| 同步前验收 | cc2f0b2e19687774f3a0252977eb742b0aa8fac0 | 9e213a89c3ebbcdd469397a3215e9dee16949b85 | 2026-09-30T16:35:09Z | 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 与分支(脚本会把