Why: boot-config 重复交付事故须按 documentation.md 经验闭环沉淀:根因与 检查动作入经验条目、处置与后续项入过程记录;使用指南启动节仍是纯 CLI 旧文案,需反映已上线配置面(PR#4/PR#12)。 Evidence: 经验条目按 lesson 模板(candidate 状态、事故时间线与完整 SHA 回链);usage §1.3 与已合入实现实测一致(config explain 逐字段来源与 DSN 脱敏、serve --config envs/dev.json 落 data-dev)。 Impact: docs/records/ 新增 lesson-parallel-session-duplication 与 boot-config-followups 两条;docs/guides/usage.md §1.3 重写为四源合并 + 多环境启动说明;无代码影响。 Refs: Agent-System-Backend PR#4(66b4bbf5)与 PR#5(8270acf5,已关闭留 差异清单);本仓 PR#6(配置面设计);Agent-System-Dev PR#12(a58f85e)。
3.1 KiB
3.1 KiB
经验:并行会话同一需求重复交付——worktree 只隔离文件现场,不隔离任务认领
- 状态:candidate(根因已由事故证实;检查动作已定义但未机制化、未在后续任务演练)
- 触发条件/检索词:并行会话 / 重复实现 / 同一需求两个 PR / task-start 后上游合入同名功能 / 陈旧候选重复候选 / 检出里看不到刚合入的设计 / submodule 钉住旧版看不到新提案 / 需求去重
- 根因与来源:2026-09-30 boot-config 任务,两会话自共同基线(Dev main dca932c,04:09 合入)出发:并行会话 04:15 合入配置面设计(Documents PR#6,abc1a6d7849cb2e2ab1ec84c230024ca40eaf980)、04:19 合入实现(Backend PR#4,66b4bbf55a6cf24b60a6d1d945825b0b44503f5f)、04:27 钉入组合(Dev PR#12,a58f85e0d0ade6e8b4da3afe9985985a38bae47a);本会话 04:10 task-start(R0=dca932c,precheck 必读清单生成时设计尚不存在),04:25 提交等价实现(Backend PR#5,8270acf5e085be2177cc211ff31dd70891d3b538),判定重复后关闭。两个机制性缺口:① precheck/task-start 是工作区完整性门禁(树净/基线/子仓漂移),不做需求去重;
.task/任务卡提交在各任务自己的分支上,合入前互相不可见。② 父仓 gitlink 纪律使任务 worktree 的 documents 物化在钉住 SHA(2205138),刚合入 documents main 的设计对在途任务不可见,直到父仓钉入(04:27)才出现在检出里。 - 下次应做的检查:实施类任务动手写代码前三查(合计一分钟内):① Dev main
.task/在途任务卡主题(状态"进行中");② documents origin/main(fetch 后看,不信检出的钉住版本)docs/proposals/是否有本需求的已批准提案——非目标条目同样有约束力;③ 目标子仓 origin/main 近 1–2 小时的合入主题。命中重叠立即停手向负责人确认分工,不要试图把自己的变体硬合进去。 - 验证方法与防护:已落实——本次按协作规则"拒绝陈旧候选"处置(Backend PR#5 关闭并在评论区留差异清单,Dev 任务 task-finish --abandon 回收),处置路径本身正例验证;建议未落实——① task-start 把任务卡推到共享 registry(或建 Gitea issue 认领),precheck 输出在途任务清单;② precheck 增加"碰撞雷达":fetch 并列出近 N 小时 Dev + 各子仓合入主题与 documents 新提案。
- 适用与不适用:适用多会话并行 + 父仓 gitlink 钉版本的多仓组合(本组合 11 仓);不适用单会话串行开发,也不适用于平台级工作区隔离已上线后的场景。
- 尚缺证据/防护:认领登记与碰撞雷达均未机制化(task.sh 未改造,属防护缺口);"三查"动作尚未在后续真实任务中演练验证有效。
- 复核人、日期、版本:weichen,2026-09-30,组合 main a58f85e0d0ade6e8b4da3afe9985985a38bae47a
- 替代/退役条件:task-start 认领登记 + precheck 碰撞雷达上线并以正负例验证后,本条目升级 validated 并将"三查"并入机制;若迁移到平台级每任务独立环境亦可退役检查动作。