﻿## 1. 结论

本次为增量复核，范围明确限定为 DL-AC12/13/16/17/18 及 S01 最近成功操作时间补充。在已检查的5条AC及1项正文补充中：

- 全部条目均属于B类（补充方案待批准），核对结论为"待确认"，这是正确的判定口径，不构成正文与AC冲突。
- 未发现AC新增业务规则、数值门槛或承诺的情况。
- 发现3条实质性缺口，涉及操作时间更新时点、AC13状态保持的覆盖完整性和AC17的前置分层，均不阻塞当前文档评审，但须在批准B类方案前由产品确认。

本次增量复核不代表22条AC全量重新验证通过。全量结果以 v0.1 基线评审结论为准，本次仅覆盖声明范围内条目。


## 2. 主要问题

1. **缺口一：S01"最近成功操作时间"更新时点与S03"保存失败"场景存在语义衔接空缺。** S01 第5.1节补充写明"最近成功操作时间仅名称/企业/项目/排序保存、上下线成功后更新；未提交修改或操作失败不更新"。但S03定义"保存失败，原内容与原状态保持不变"。若保存前用户仅改动排序而未改动名称/企业/项目，保存失败时"排序未保存"且时间不更新是清晰的；但若保存失败时部分校验发生在服务端（如S03所述"保存前再次检查名称、企业、项目有效期、占用及数量门槛"），用户已提交了包含有效修改的整份内容，失败原因可能并非内容本身无效，而是并发冲突（S08）或服务不可用（S09）。此时"最近成功操作时间"不更新是明确的，但S01未回答"最近操作人"是否也仅在成功时更新——若并发冲突场景下后提交者被拒绝，该次未成功的提交是否算作"最近操作"存在歧义。虽然S01的字面表述合理，但"操作失败不更新"中的"操作"涵盖并发拦截、超时、校验拒绝等多元失败场景，与S08"后提交者发现内容已变化时提示刷新"的边界未对齐。

2. **缺口二：DL-AC13"保持原上下线状态"仅覆盖保存动作，未覆盖DL-AC12b"首次保存默认下线"与S03的交叉场景。** S03明确"保存不改变原上线/下线状态"，而S02/Q01建议"新增首次保存后默认为已下线"。对于"已下线列表编辑保存"和"已上线列表编辑保存"两个场景，AC13的表述与S03完全一致、无冲突。但增量复核需指出：AC13未覆盖"已下线列表在编辑保存后是否仍可被上线"这一组合断言——虽然S04状态表第2行"已下线→编辑保存→保存仍下线"已明确覆盖，AC13的核对须引用该状态表而非仅引用S03文字，否则对状态保持的验证依据不完整。

3. **缺口三：DL-AC17"项目主档续期更新后，后续读取按最新结果重新判断"的验证边界未区分"读取时点"。** S06明确"(续期后)本模块在后续读取时消费项目主档最新有效期结果，无需重新保存列表"，但未定义"后续读取"的最小触发单位：是B/C端每次发起列表数据请求时实时核验，还是A端清单页刷新时核验？AC17后半句"列表下线时不自动上线"的前置是"项目续期"，但若列表此时处于下线状态，项目续期本就不应触发上线（S04已定义上线为独立操作，S06亦复述此点）。因此AC17中"列表下线时不自动上线"这一子断言存在事实冗余，虽然不构成冲突，但应从AC17的待验证子项中标注为"S04/S06双重依据，验证优先级最低"，避免实施时误以为需为新机制验收。


## 3. 需要追问的问题

1. **Q-时限-01：** S01"最近成功操作时间"中的"操作失败"是否包含S08定义的并发冲突被拒场景？若包含，请明确"最近操作人"在该场景下是否记录"后提交者"（即使未成功）？当前S01仅说"时间不更新"，未定义"人"的更新规则。

2. **Q-时限-02：** AC17中"后续读取"的最小触发单位是否等同于DL-AC08/R07定义的"列表读取请求"？即B/C端每发起一次列表数据请求都须实时核验项目有效期，还是允许有缓存窗口？若为实时，请明确该实时性是否依赖Q04有效期服务的可用性承诺（不可用时是否阻断输出）。

3. **Q-时限-03：** AC17"列表下线时不自动上线"已有S04（第4行状态表：已下线→编辑保存→保存仍下线）和S06（"项目续期不自动使下线列表上线"）双依据，是否可从AC17子断言中降级为"说明性重述"，不纳入实施验收清单？


## 4. 建议改法

1. **针对缺口一：** 在S01表格"最近操作人、最近操作时间"行，将"仅名称/企业/项目/排序保存、上下线成功后更新"扩展为"仅名称/企业/项目/排序保存、上下线成功后更新；被并发拦截或校验拒绝的提交不更新人也不更新时间"。或在S08补一句"后提交者未成功保存，不更新S01最近成功操作人与时间"。

2. **针对缺口二：** 在DL-AC13"正文依据"列，将"S03"改为"S03；S04状态表第2、3行"，并明确"保持原上下线状态"的两个实例：已下线保存后仍为下线、已上线保存后仍为上线。不改AC编号。

3. **针对缺口三：** 在DL-AC17条目后追加注记（不改变验收断言）："项目续期不自动上线已在S04第4行状态表与S06双重依据中覆盖，本AC不予重复验收；'后续读取'的实时性边界须Q04确认后实例化。"同时在"批准前置"列将"Q04"保留、"列表下线时不自动上线"标注为"依据已覆盖，无需待确认"。


## 5. 可作为需求文档落稿的要点

以下为本次增量复核后，在B类方案获批前提下可直接落稿的边界要点（不替代产品确认）：

- 最近成功操作人/时间仅在保存成功、上线成功、下线成功后更新；并发拦截、校验拒绝、查询失败、超时均不更新。
- 保存动作不改变上下线状态；已下线→保存→仍下线；已上线→保存→仍上线。上下线为独立动作。
- 续期由项目主档完成；A端演示列表模块在读取时消费主档最新有效期结果，不因续期改变列表上下线状态，不自动上线。
- "后续读取"的核验粒度须在Q04确认后实例化；在此之前不得在实施验收中宣称"实时核验"已通过。


## 6. 验收标准与需求正文逐条核对表

**检查范围声明：** 本次为增量复核，范围仅为 DL-AC12/13/16/17/18 及 S01 最近成功操作时间补充。DL-AC01~11、DL-AC14、DL-AC15、DL-AC19~22 不在本次范围内，结论沿用 v0.1 基线评审，不因本次未复核而改变其原结论。所有条目均为B类，共用前提"对应S/Q已确认"存在，按B类口径判定。

| AC编号 | 验收要求 | 正文依据（章节/规则编号及证据） | 核对结论 | 缺口与处理建议 |
| --- | --- | --- | --- | --- |
| DL-AC12a | 名称、企业已填写，首次保存生成稳定只读列表编号 | S01正文："列表编号……首次保存成功生成，后续不因改名或排序改变；新增未保存时不显示虚构编号。"（第5.2节表格）；S01常规字段未拆Q | 待确认（B类待批准；正文依据充分，无冲突） | 无缺口。批准S01后可按此验收。编号格式未定义不构成缺口。 |
| DL-AC12b | 名称、企业已填写，首次保存默认下线 | S02正文："建议新建首次保存后默认为已下线，由运营明确上线。"（第6节S02首段）；Q01待确认项 | 待确认（B类待批准；正文依据为"建议"，非已确认规则） | 无缺口。须Q01确认后才可实施验收。 |
| DL-AC12c | 下线可保存0/1个项目；上线及线上主动编辑保存至少保留2个有效关联项目 | S02正文："建议下线列表可保存0个或1个项目，以便分步准备，但企业及名称仍必填。建议上线时至少有2个处于有效期内的关联项目；已上线列表主动编辑保存时也须保留至少2个有效关联项目。"（第6节S02第2、3段）；Q01待确认 | 待确认（B类待批准；正文依据充分，无冲突） | 无缺口。"线上主动保存"与"下线可保存0/1"为两个独立子断言，S02均已覆盖。 |
| DL-AC13 | 保存前编辑、移除、排序不改变有效内容；保存成功整份替换且保持原上下线状态；失败保留原内容及状态，本页保留输入 | S03正文："输入、暂时加入/移除、拖拽排序仅改变当前编辑内容；点击保存并成功后，整份配置一次成为唯一有效内容……保存不改变原上线/下线状态……保存失败，原内容与原状态保持不变，本页保留输入并标明原因。"（第6节S03第1、3、4段）；状态保持双场景实例见S04状态表第2、3行："已下线→编辑保存→保存仍下线；已上线→编辑保存→保存仍上线" | 待确认（B类待批准；正文依据充分，无冲突） | **缺口二：** AC13对"保持原上下线状态"的验证依据仅引用S03文字，但S03只说"不改变原状态"，未给出已下线/已上线两个实例