edit | blame | history | raw

慧博 10 分钟快速采集工具开发方案 V010

创建人员:dev.developer.ana.cai
文件职责:append-only 关闭 V009 唯一 terminal-outcome ErrorCode 阶段域矛盾。
predecessor:V009=6927/50f76a6356d6048656e672c4c68d241b152fc3c4b792931f11cfec40b9b2706c;review=AUDIT-DEV-ANA-HIBOR-FAST-COLLECTION-DESIGN-V009=HOLD/1/1,audit snapshot=409465/d8b7f332ef15f85b23ec86bce8b78e278f7b50ac590c9389feb7c1aeef410d09
继承:V009 七种 Z outcome、51-key public wire 和 V001–V008 已关闭合同全部不变。V010 只后继 V006 第 4 节,增加 terminal phase 的权威 ErrorCode overlay。

1. 两阶段 code validator

error_origin=PACKAGE|TERMINAL 为内部 validator 参数,不新增 public key:

  • PACKAGE:继续使用 V006 COMMON ∪ STAGE_CODES[state],用于 Z writer 调用前发生的业务/package 错误。
  • TERMINAL:仅使用下表 TERMINAL_OUTCOME_CODE[outcome,source_state],不得再套用 V006 source-state stage code。这样 P06–P09 可如实记录 terminal writer 的 RECOVERY_UNKNOWN/PROCESS_LIVENESS_UNKNOWN,而不把它误当 manifest/delivery/timing 业务错误。

T00U 属 PACKAGE;T00B 属 PACKAGE/common deadline;T01/T02/T03F/T03L 属 TERMINAL;T04 使用已验证的原 item outcome,不产生新 error。

2. 七 outcome × P00–P09 权威映射

R=RECOVERY_UNKNOWNL=PROCESS_LIVENESS_UNKNOWND=DEADLINE_EXPIREDP=PERSIST_LATEQ=QUOTA_LEDGER_INVALIDITEM(Pxx)=V006 对该 source state 已唯一验证的原 item code(含 NONE 或 DUPLICATE_EXISTING_ARTIFACT)X=事实不可达且必须拒绝

outcome P00 P01 P02 P03 P04 P05 P06 P07 P08 P09
T00U pre-Z object U R R Q R R R P P P X
T00B known budget exhausted D D D D D D D D D D
T01 Z known absent after attempted create P P P P P P P P P P
T02 Z known partial/invalid P P P P P P P P P P
T03F Z file facts unknown, operation complete R R R R R R R R R R
T03L Z writer liveness unknown L L L L L L L L L L
T04 Z valid ITEM(P00) ITEM(P01) ITEM(P02) ITEM(P03) ITEM(P04) ITEM(P05) ITEM(P06) ITEM(P07) ITEM(P08) ITEM(P09)

ITEM(Pxx) 不是自由占位:其定义是 V006 build_terminal_item(validated_snapshot,outcome).stop_code 的返回值;测试逐 ErrorCode 枚举展开,而实现只接受该已验证值,不能另选。T04 的 terminal receipt error_code=null;原 item code 仍保留在 TerminalItem/top-level outcome,二者不可互相覆盖。

T00U 的 state 表示 U 之前最高 durable state:M=U→P06,D=U→P07,T=U→P08;P09 已表示 timing=V,故 pre-Z object U 不可达。P02 的 U 是 quota terminal U,故 Q;P03–P05 是 cache/staging/artifact/recovery U,故 R。

3. top-level status/exit 与 item overlay

outcome top-level internal/public status exit top stop_code item handling
T00U STATE_UNCERTAIN 27 上表 code source state + STOPPED + 同 code
T00B TIME_BUDGET_STOP 10 DEADLINE_EXPIRED source state + STOPPED + D
T01 INTERNAL_ERROR 20 PERSIST_LATE source state + STOPPED + P
T02 INTERNAL_ERROR 20 PERSIST_LATE source state + STOPPED + P
T03F STATE_UNCERTAIN 27 RECOVERY_UNKNOWN source state + STOPPED + R
T03L STATE_UNCERTAIN 27 PROCESS_LIVENESS_UNKNOWN source state + STOPPED + L
T04 inherited V004/V006 mapping inherited original item/top outcome unchanged;state=P10

T01/T02 不得被归入 TIME_BUDGET_STOP;T03F/T03L 不得被归入 INTERNAL_ERROR;T04 不得因 receipt.error_code=null 抹掉原 item failure/duplicate outcome。

4. 强制测试

  1. 将 70 个表格单元逐个实例化:69 个合法 predicate count=1,T00U/P09 唯一 X 并 ContractError。
  2. 对 T03F/T03L 的 P06/P07/P08/P09 正向测试,证明不再进入 V006 package-stage validator;若误走 PACKAGE validator 测试必须失败。
  3. T00U 的 Q/M/D/T U 分别验证 Q/P code;T00U/P09 拒绝。
  4. T04 对每个 P00–P09 展开该 state 全部合法 V006 code、NONE、duplicate;receipt code 始终 null,item/top outcome 不变。
  5. top-level 六个非 T04 outcome 的 status/exit/stop 与 item overlay exact equality;未知 outcome/code/origin 拒绝。
  6. V009 51-key wire、legacy projection、V008 receipt、V007 U no-P10 与 V006 package matrix 全量回归。

当前状态:PENDING_INDEPENDENT_DESIGN_REREVIEW。V010 PASS 前不创建候选源码/测试/quota ledger,不运行 Python/ADB/APP/dry-run,不触发下载;新增 trigger=0