From 86b61b6a07f19941b2f69d7600d86e0530f8b883 Mon Sep 17 00:00:00 2001 From: Cui Date: Sat, 29 Aug 2026 20:37:49 +0800 Subject: [PATCH] =?UTF-8?q?docs(knowledge):=20=E6=B2=89=E6=B7=80=20R-00259?= =?UTF-8?q?=20=E4=B8=A4=E6=9D=A1=20lesson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 上游裁决点名更正某条事实时,同节其余「现状实测」陈述必须一并复跑。 同批陈述出自同一次快照,一句过期则其余大概率同样过期;本卡上该类 漏检出现三次、分属交付方/QA/TD 三个角色。TD 已同步落架构仓 lessons。 - 「一直没出过问题」有两种原因——守护有效,或根本没机会触发。环境变化 会让原本由环境免费执行的约束第一次真正需要被执行(S3③ 架构测试即例)。 准入说明:第一条按「同类第二次出现」准入成立(三次、三角色);第二条属 首现,按用户 2026-08-29 明确要求破例收录,条目内已自标并附清出条件。 Co-Authored-By: Claude Opus 5 --- .spec/knowledge/lessons.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.spec/knowledge/lessons.md b/.spec/knowledge/lessons.md index e66d39e..66a7c57 100644 --- a/.spec/knowledge/lessons.md +++ b/.spec/knowledge/lessons.md @@ -33,4 +33,18 @@ metadata: ## 条目 -(暂无;从第一条复发问题开始。) +### 上游裁决点名更正某条事实时,同节其余「现状实测」陈述必须一并复跑 + +- 日期:2026-08-29 +- 现象:R-00259 设计文档 §6.1「现状(实测)」是 2026-08-28 一次性写下的快照。TD 裁决只点名其中「generated 包 TFM 为 `net8.0`」一条要改;执行更正时按段落复跑,发现同节「6 包 8 个 `.cs` 计 437 行、无类型本体、无 validator」同样已被架构仓 ADR-048 推翻(实为 11 文件 1772 行,含闭合契约类型本体与可执行 gate)。**同一类漏检在本卡上出现三次、分属三个角色**:交付方写入时未标注快照批次;QA 核销只核被点名项;TD 复核表把「generated 面 6 包」判为「✅ 属实」——只核了包数,放过同节 catalog-only 口径,而后者才影响设计结论。 +- 根因:「某处被发现失真」被当成关于**那一句**的信号,实际是关于**该段落维护状态**的信号。同批写下的陈述出自同一次快照,一句过期,其余大概率同样过期。 +- 规避:更正任何「现状 / 实测 / 截至 <日期>」类陈述时,**以段落为单位复跑,不以被点名的句子为单位**;复跑输出贴进证据,并把该段落的日期戳与上游锚点(commit SHA)一并更新。只改被点名句而保留旧日期戳 = 给过期内容盖新章。 +- 来源:R-00259 更正交付(提交 `9c6e592`);TD 总调度追认,并同步落架构仓 `.spec/knowledge/lessons.md`。 + +### 「一直没出过问题」有两种原因——守护有效,或根本没机会触发 + +- 日期:2026-08-29 +- 现象:**首现,非复发**(收录理由见「来源」)。R-00259 §7 的 S3 验收项③「不引用 `Lumio.Gen.*` 有架构测试」,原始理由是「generated 包单 `net8.0`,`netstandard2.1` 目标无法引用」。架构仓改双 TFM 后该理由消失,裁决据此问「这条验收项是否该删」。默认直觉是「前提没了 → 约束多余」,实际相反:此前即使无人写这个测试,`netstandard2.1` 目标也物理引用不到,约束一直由环境**免费执行**;双 TFM 后两个目标都能引用,这条分层纪律的唯一兜底才第一次真正落到该测试上。 +- 根因:把「约束从未被违反」读成「约束不必要」,忽略它可能一直由环境(编译期屏障、权限、拓扑)代为执行。环境一变,免费执行消失,约束才第一次需要被真正执行。 +- 规避:删除任何「从未触发过」的守护前,先回答一句——**它这些年是拦住过什么,还是没机会拦?** 若是后者,且原先代为执行的环境条件正在改变,则该守护不是变多余,而是变更必要;判断依据写进文档或卡面,不留在讨论里。 +- 来源:R-00259 §6.2-2 / §7 更正(提交 `9c6e592`),TD 总调度评价「反直觉且正确」并收进核销评论;用户 2026-08-29 明确要求收录。本条属首现,破例记录;若三次内未被复用,按本文档「防噪音」准入原则清出。