edit | blame | history | raw

CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V020

  • plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V020
  • role_instance_id: dev.developer.ana.cai
  • created_at: 2026-07-26T14:07:29.6346599+08:00
  • predecessor_plan: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V019 / 16404/b49de51253d4c740e3c0e664ebf3135dfcd75693dc1adb50cf5ff82c3073359d
  • predecessor_review: AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PRECONSUMPTION-REPAIR-PLAN-V019=HOLD/2/2 / 197470/359ec9d4ceb5853785ee9dc0c0b891b8472711d92b988e2c35a4de4b8bf24f9d / line 1635
  • status: PENDING_INDEPENDENT_PREFLIGHT_REPAIR_PLAN_REREVIEW
  • implementation_authorization: NOT_ISSUED
  • P01-P08/R3/synthetic/database/BATCH-001: ABSENT/HELD/HELD/HELD/HELD

V020 只关闭 BLOCK-V019-01/02。V019 已独立复算通过的 22-property name/type/rule 与 mutation hashes、API negative actual evidence、source A/I、C18 equality、P07 literals、C10 unknown boundary及 V018 之前全部已关闭合同均继承且不得回退。

1. BLOCK-V019-01:四 API 的完整 property-rule vectors

1.1 API_RESULT V005 rule enum

V019 API_RESULT/API_NEGATIVE_RESULT V004 的字段顺序与 object/type/property evidence 全部继承;schema identity 升级为 V005。expected property rule enum 完整升级为:

STRING_NONNULL|STRING_OR_NULL|INT64_OR_NULL|INT32_OR_NULL|BOOL_OR_NULL|ARRAY_UINT32_OR_NULL|ARRAY_STRING_OR_NULL

验证顺序固定为:object count → expected custom schema type → ordinal/case-sensitive property names → property count → 每项 value rule → actual name/type vector/hash。实际非 null 数组的 CLR FullName 必须分别为 System.UInt32[]System.String[];实际 null 仍记录 <null>。禁止把 System.Object[]ArrayList、scalar 或其他 enumerable 解释为 reviewed array。

1.2 四个 success API 的权威 vectors

所有 preimage 均为表中 ordered vector 各元素 strict UTF-8、单一 LF 连接、无尾 LF。API success probe 的 producer 必须构造下表指定的实际 CLR 类型;nullable 字段在 sentinel 为 null 时 actual type 为 <null>

api_id / expected type property count names bytes/hash actual types bytes/hash expected rules bytes/hash
CONVERT / ANA.SEMI.AUTHORIZATION.WINDOW.V001 7 104/7f4433249dd9701ceeaa398eac966cc0e6cd4ca223306f3ea634796b1628f23f 88/f9dc71beb1a36b25739303f652bd81e3394540585072e0207c30f7022ede76cd 102/df47afa24888ccca46ee7458c4638ab6f6e0f6106c3ba0748fbd097ff37520ec
TEST / ANA.SEMI.AUTHORIZATION.WINDOW.TEST.V001 7 99/7301aa3efc985cded8fc118f7bf2f6ac95538ab51d7b9b25f3acc9686965c44a 88/ba1be1eb1de37bc66399789c734ec39db91865a66646c9ea07f549b79e738984 99/b555dc7a69374f7ab48692b1d516e5f84db44414957daf95dedcc7589c67e94b
SELECTOR / ANA.SEMI.PROCESS.SELECTOR.RESULT.V001 12 212/813f027476cd41d85483af03563344093792ac46712e4c52930ed3264c653198 150/8ad7da1e0a011180021d477d1566abed1d83b1be6a4e473aa4c273abc4241165 183/b0f88a82f26e2ba98235fd7f8bf851a30ea92318fd3605e278dd5558a0938575
INVOKE / ANA.SEMI.PRECONSUMPTION.RESULT.V002 22 403/4c3f8d873a6be20c0e449c6c6d1f196204ec8c3dfa399e3a5ee0e19f5fa153a2 283/f57a1652d597b9cdea4dda4075701e2447e41d3d59261809f434ab62d9927cdd 311/e885db2cbe8b0b81f858c539da5c6f310a4db7501690f6481976e7704ac4ceaa

四组 ordered vectors 为:

CONVERT.names=authorized_at_raw|authorized_at_utc_ticks|expires_at_raw|expires_at_utc_ticks|schema_id|status|stop_code
CONVERT.types=System.String|System.Int64|System.String|System.Int64|System.String|System.String|<null>
CONVERT.rules=STRING_NONNULL|INT64_OR_NULL|STRING_NONNULL|INT64_OR_NULL|STRING_NONNULL|STRING_NONNULL|STRING_OR_NULL
TEST.names=authorized_at_utc_ticks|expires_at_utc_ticks|inside_window|now_utc_ticks|schema_id|status|stop_code
TEST.types=System.Int64|System.Int64|System.Boolean|System.Int64|System.String|System.String|<null>
TEST.rules=INT64_OR_NULL|INT64_OR_NULL|BOOL_OR_NULL|INT64_OR_NULL|STRING_NONNULL|STRING_NONNULL|STRING_OR_NULL
SELECTOR.names=confirmed_zero|duplicate_process_id_count|exact_outer_count|matched_process_ids|prohibited_process_count|related_process_count|schema_id|snapshot_row_count|status|stop_code|uncertain_fields|unknown_relevant_count
SELECTOR.types=System.Boolean|System.Int32|System.Int32|System.UInt32[]|System.Int32|System.Int32|System.String|System.Int32|System.String|<null>|<null>|System.Int32
SELECTOR.rules=BOOL_OR_NULL|INT32_OR_NULL|INT32_OR_NULL|ARRAY_UINT32_OR_NULL|INT32_OR_NULL|INT32_OR_NULL|STRING_NONNULL|INT32_OR_NULL|STRING_NONNULL|STRING_OR_NULL|ARRAY_STRING_OR_NULL|INT32_OR_NULL
INVOKE.names_hash=4c3f8d873a6be20c0e449c6c6d1f196204ec8c3dfa399e3a5ee0e19f5fa153a2
INVOKE.types_hash=f57a1652d597b9cdea4dda4075701e2447e41d3d59261809f434ab62d9927cdd
INVOKE.rules_hash=e885db2cbe8b0b81f858c539da5c6f310a4db7501690f6481976e7704ac4ceaa

该 code block 的 | 仅为展示分隔;hash preimage 必须使用每组元素间 LF。SELECTOR success sentinel 固定使用 [uint32[]]@() 作为 matched_process_ids,因此 actual FullName=System.UInt32[]uncertain_fields=$null,因此 actual type=<null>。在 UNKNOWN/STOP 业务对象中非 null uncertain_fields 必须由 producer 显式 cast [string[]],不得隐式成为 Object[]。

1.3 TYPE_MISSING 的真实分类

V019 INVOKE-TYPE-MISSING 的 expected actual_type_names=[""] 被 supersede。probe 仍只执行一次 PSTypeNames.RemoveAt(0),移除 expected custom type;其后 PSCustomObject 的首个可见基础类型必须精确为:

System.Management.Automation.PSCustomObject

因此 V020 的 expected actual_type_names=["System.Management.Automation.PSCustomObject"]TYPE_MISSING 的精确定义改为:expected custom schema type 不存在,且第一个可见类型只属于固定 generic allowlist {System.Management.Automation.PSCustomObject,System.Object},并且不存在任何以 ANA.SEMI. 开头的 remaining type。它表示“可接受的自定义 schema type 缺失”,不表示 CLR/base type 列表为空。

若首个可见类型是其他 custom type、或存在非 expected ANA.SEMI.* type,则必须 TYPE_DRIFT;如果无法读取 PSTypeNames,则 result contract drift/STOP,不能写 TYPE_MISSING。该 probe 的 object_count=1,property count/names/types/hash 仍为 valid sentinel 全量值,不得丢失。

八个 negative runtime cases、api_negative_total=8、functional case_total=30 均不变;只有 TYPE_MISSING expected actual_type_names 从 [""] 升级为上述 base type。

2. BLOCK-V019-02:补齐 V,N,N timeout-known prefix

2.1 native final V004 state enum

V019 native final V003 升级为 ANA.SEMI.PRECONSUMPTION.NATIVE.FINAL.V004。顶层 keys 不变;state_id enum 从 C00-C39 升级为 C00-C40,state count=41。C00-C39 全部保持 V019 值。

新增唯一状态 C40:

state prepackage_variant closure final stop exit P01-P04 P05 P06 P07 P08 external manifest
C40 null NATIVE_ONLY STOP OUTER_TIMEOUT_KILLED_KNOWN_PREFIX 24 V,V,V,V V N N N null

C40 的 P06/P07/P08 row 均为 false,false,NOT_RUN_UPSTREAM_STOP,OUTER_TIMEOUT_KILLED_KNOWN_PREFIX,null,null。P01-P05 row 均 V,upstream=null,actual bytes/hash 非 null。C40 仅在 P05 已关闭、只读复开、bytes/hash 完成,而 P06 writer-open 尚未发生时合法。

timeout-known prefix 权威集合因此恰好 18 个:C09,C24-C40。它们在 (P05,P06,P07) 上依次覆盖:

NNN,ANN,INN,FNN,FNA,FNI,FNV,VAN,VIN,VFN,VFA,VFI,VFV,VVN,VVA,VVI,VVV,VNN

集合必须无重复且无额外组合。C10/U/27 仍只用于真实 liveness/handle/close/hash/writer-stage unknown;C19 仍只用于完整 closed package 后 timeout。

3. P03/P06/P07/P08 identity 与 literals

本版 schema identity:

  • P03=ANA-SEMI-PRECONSUMPTION-VECTORS-JCS-V005
  • P05=ANA-SEMI-PRECONSUMPTION-STATIC-RESULT-JCS-V002(不变)
  • P06=ANA-SEMI-PRECONSUMPTION-CONTRACT-RESULT-JCS-V006
  • P07=ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V005
  • P08=ANA-SEMI-PRECONSUMPTION-MANIFEST-CSV-V002(列 schema 不变)

P08 固定八行中的 P03/P06/P07 schema_id 必须使用本节值。P07 仍是 as-of P06;UTF-8 no BOM/CR/NUL、恰好一个 final LF。以下 code fence 内容加一个 final LF 是完整 preimage。

PASS=471/c56b188d5c6591c215d8109f5901218b5280fa188c52cc64f9239d66d275798b

receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V005
run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001
plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V020
as_of_artifact_id: P06
prepackage_status: PASS
prepackage_stop_code: null
P05_status: TEST_PASS
P06_status: TEST_PASS
outer_process_count: 1
prohibited_process_count: 0
network_access: false
credential_access: false
database_connection_performed: false

STATIC=502/b54fa7e9e9429c53471da958dfc6e0fbdd23376cd34aa3a0bee2d52492dc0b90

receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V005
run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001
plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V020
as_of_artifact_id: P06
prepackage_status: TEST_FAIL
prepackage_stop_code: STATIC_TEST_FAILED
P05_status: TEST_FAIL
P06_status: NOT_RUN_UPSTREAM_STOP
outer_process_count: 1
prohibited_process_count: 0
network_access: false
credential_access: false
database_connection_performed: false

CONTRACT=492/241d2db0a168009ea28d92a59015a8151725a44003324378a8a4b9d9627724aa

receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V005
run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001
plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V020
as_of_artifact_id: P06
prepackage_status: TEST_FAIL
prepackage_stop_code: CONTRACT_TEST_FAILED
P05_status: TEST_PASS
P06_status: TEST_FAIL
outer_process_count: 1
prohibited_process_count: 0
network_access: false
credential_access: false
database_connection_performed: false

4. 审核验收与门禁

V020 独立复审必须验证:

  1. 四 API names/actual types/rules vectors 的 count、bytes/hash;selector UINT32[]/STRING[] rule 与明确 typed producer。
  2. TYPE_MISSING probe 的实际 base type、absence-of-custom definition 与 full property evidence;TYPE_DRIFT 边界不重叠。
  3. C40 八行 tuple、top-level/exit/external null;C09/C24-C40 恰好 18 个合法 timeout-known prefix,state count=41。
  4. V019 已通过 API negative actual evidence/source A|I/C18 equality/unknown/P07 hash 与全部 inherited contracts 无回退。
  5. P01-P08/run/process/database 仍为零。

本 V020 只允许 dev.reviewer.ana.cai 独立计划复审。即使 PASS,也只允许向 management.admin 申请 Stage P P01-P08 的新单次实现/验证授权。在明确授权前,禁止任何 source/test/target 物化、PowerShell/csc/synthetic/proof/config-editor/mysql/SQL/database/network/credential/formal target、R3 或 BATCH-001。