edit | blame | history | raw

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

  • plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V019
  • role_instance_id: dev.developer.ana.cai
  • created_at: 2026-07-26T13:27:07.6111762+08:00
  • predecessor_plan: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V018 / 23056/1a9b8debc04ca1f29240d55af947e147857ffc28aa9295d95e401cbeeb671744
  • predecessor_review: AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PRECONSUMPTION-REPAIR-PLAN-V018=HOLD/2/2 / 190678/0934e8a17eafa03fc6971760eec8408db6257e49f8de748fcfea1d7b4b39d6c3 / line 1598
  • status: PENDING_INDEPENDENT_PREFLIGHT_REPAIR_PLAN_REREVIEW
  • implementation_authorization: NOT_ISSUED
  • P01-P08/R3/synthetic/database/BATCH-001: ABSENT/HELD/HELD/HELD/HELD

V019 只关闭 BLOCK-V018-01/02。V018 已通过的 provider precedence 4 行、selector 15 行、functional case_total=30、Win32 CommandLine、P08 八行字段、tool/argv、DateTimeOffset、native hash DAG 与 native-only communication 全部继承且不得回退。本版不物化源码、测试、run 或 target,也不启动任何 PowerShell、csc、synthetic、proof、config-editor、mysql、SQL、database、network 或 credential 动作。

1. BLOCK-V018-01:API negative actual observation 的可复演证据

1.1 API_RESULT V004 的完整 property/type observation

V018 API_RESULT V003 被本节完整取代。V019 的 API_RESULT V004 固定 key 顺序为:

actual_object_count,actual_property_count,actual_property_names,actual_property_names_sha256,actual_property_types,actual_property_types_sha256,actual_type_names,api_id,expected_object_count,expected_property_count,expected_property_names,expected_property_names_sha256,expected_property_type_rules,expected_property_type_rules_sha256,expected_type_name,observation_status,status,stop_code

类型/null:

  • object/property count 为 INT32;actual property count 在 object_count!=1 或 type missing 时为 null,其余非负;expected object_count=1、property_count>0。
  • actual/expected property names、actual property types、expected property type rules 均为 ARRAY<STRING>|null;非 null 时长度分别等于对应 property_count。
  • 四个 property SHA-256 字段为 lowercase64|null。preimage 均为对应数组元素 strict UTF-8、单一 0x0A 连接、无尾 LF;数组为 null 时 hash 必须为 null。
  • actual type names 为 non-null ARRAY<STRING>,长度必须等于 actual_object_count,按实际 pipeline ordinal;无 PSTypeName 的单对象写 "",不得伪造类型。
  • observation_status 仍为 SINGLE_VALID|ZERO_OBJECTS|MULTIPLE_OBJECTS|TYPE_MISSING|TYPE_DRIFT|PROPERTY_MISSING|PROPERTY_EXTRA|PROPERTY_ORDER_DRIFT|PROPERTY_TYPE_DRIFT
  • row status=MATCH|MISMATCH;stop_code=null|API_RESULT_MISMATCH。success API row 只在 SINGLE_VALID 且 actual 全字段符合 expected 时 MATCH。

property type 的规范表示:实际非 null 值使用 GetType().FullName;实际 null 使用字面量 <null>。expected rule 只允许:STRING_NONNULL|STRING_OR_NULL|INT64_OR_NULL|INT32_OR_NULL|BOOL_OR_NULL。验证器先按 property name/order 定位,再逐值验证 rule;只有 name/order 都合法后才判 property type。

1.2 Invoke API 的固定 22-property sentinel

八个 negative runtime case 全部针对 Invoke-AnaSemiPreconsumptionPreflight,expected type=ANA.SEMI.PRECONSUMPTION.RESULT.V002。基础 sentinel 使用 V016 已审核的 22 个 property,名称以 LF 连接、无尾 LF:

authorization_id
authorized_at_utc_ticks
authorized_outer_started
candidate_run_exists
credential_access
database_connection_performed
exception_type
expires_at_utc_ticks
finished_at
history_hash_mismatch_count
invocation_count
materialized_target_count
network_access
now_utc_ticks
preflight_stage
related_process_count
result_schema_id
started_at
status
stop_code
target_existing_count
uncertain_field

该 name preimage=403/4c3f8d873a6be20c0e449c6c6d1f196204ec8c3dfa399e3a5ee0e19f5fa153a2

基础 actual property type vector 固定为:

System.String
System.Int64
System.Boolean
System.Boolean
System.Boolean
System.Boolean
<null>
System.Int64
System.String
System.Int32
System.Int32
System.Int32
System.Boolean
System.Int64
System.String
System.Int32
System.String
System.String
System.String
<null>
System.Int32
<null>

preimage=283/f57a1652d597b9cdea4dda4075701e2447e41d3d59261809f434ab62d9927cdd

expected rule vector 固定为:

STRING_NONNULL
INT64_OR_NULL
BOOL_OR_NULL
BOOL_OR_NULL
BOOL_OR_NULL
BOOL_OR_NULL
STRING_OR_NULL
INT64_OR_NULL
STRING_NONNULL
INT32_OR_NULL
INT32_OR_NULL
INT32_OR_NULL
BOOL_OR_NULL
INT64_OR_NULL
STRING_NONNULL
INT32_OR_NULL
STRING_NONNULL
STRING_NONNULL
STRING_NONNULL
STRING_OR_NULL
INT32_OR_NULL
STRING_OR_NULL

preimage=311/e885db2cbe8b0b81f858c539da5c6f310a4db7501690f6481976e7704ac4ceaa

sentinel 值固定为:authorization_id="AUTH-SENTINEL",ticks=1,2,1,五 BOOL=false,五 count=0(invocation_count=1),started_at=finished_at=2000-01-01T00:00:00.0000000Z,stage/status=PASS,result_schema_id 为 expected type,三个 nullable STRING=null。任何 mutation 只能做 1.3 指定的一个变更。

1.3 八个固定 negative runtime cases

P03 api_negative_cases 与 P06 api_negative_results 均由 3 行升级为恰好 8 行,按 case_id ordinal 排序:

case_id 唯一 mutation expected observation expected actual object/type/property evidence
INVOKE-ZERO suppress all output ZERO_OBJECTS 0, [], property fields/hash 全 null
INVOKE-TWO emit two independent base sentinel objects MULTIPLE_OBJECTS 2, [expected,expected], property fields/hash 全 null
INVOKE-TYPE-MISSING remove only PSTypeNames[0] TYPE_MISSING 1, [""], property fields/hash 全 null
INVOKE-TYPE-DRIFT replace only PSTypeNames[0] with ANA.SEMI.PRECONSUMPTION.RESULT.WRONG.V001 TYPE_DRIFT 1, [wrong type], property count=22, valid names/type vectors/hashes
INVOKE-PROPERTY-MISSING remove only stop_code PROPERTY_MISSING count=21; names=bab64f935f2e77a536ff1f6a576874f197a46f9239561b16e0a0d2091dc9bf13/393; types=a9e9390d4c7612b23f68732d7e388123f0b5f164ac0bca567abe1c890eaec197/276
INVOKE-PROPERTY-EXTRA append only zz_extra="x" PROPERTY_EXTRA count=23; names=21b206ce03a18a0521226e5e86944baf71ee20aa4fab226b3471692322acc991/412; types=8f10cdc1f7b6e05f3774537beed5a0a297630af7c018e59f298e8186f7078d46/297
INVOKE-PROPERTY-ORDER swap only ordinal positions of status and stop_code PROPERTY_ORDER_DRIFT count=22; names=67a409a25891a90ba0e353f773bc3895364f820e525bbcccb73491e5ac5515e5/403; types=d969f373480ec41d5dcf7038c51dccb7f8876643b0581ab37a5622c8872ed78f/283
INVOKE-PROPERTY-TYPE replace only authorization_id value with INT32 1 PROPERTY_TYPE_DRIFT count=22; names=valid; types=9cb2c7d0a2f931ee0db92764031d799a24414f0599130975f56accbbf3360777/282

每行 expected_property_names/rules 仍保存完整 valid 22-row vectors与 hash。TYPE_DRIFT 行实际 property evidence 也必须保留,不能因 type 不符丢弃。defect 优先级保持 TYPE_MISSING > TYPE_DRIFT > PROPERTY_MISSING > PROPERTY_EXTRA > PROPERTY_ORDER_DRIFT > PROPERTY_TYPE_DRIFT;zero/multiple 在单对象验证之前终止。

API_NEGATIVE_CASE V004 keys:

api_id,case_id,expected_actual_object_count,expected_actual_property_count,expected_actual_property_names_sha256,expected_actual_property_types_sha256,expected_actual_type_names,expected_observation_status,probe_behavior

API_NEGATIVE_RESULT V004 keys:

actual_object_count,actual_property_count,actual_property_names,actual_property_names_sha256,actual_property_types,actual_property_types_sha256,actual_type_names,api_id,case_id,expected_actual_object_count,expected_actual_property_count,expected_actual_property_names_sha256,expected_actual_property_types_sha256,expected_actual_type_names,expected_observation_status,expected_property_count,expected_property_names,expected_property_names_sha256,expected_property_type_rules,expected_property_type_rules_sha256,expected_type_name,observation_status,status,stop_code

所有字段类型/null 继承 1.1;expected_actual_property_* 对零/多/type-missing 为 null。row status=MATCH 仅当 actual observation 与 case expected 全字段相同;否则 MISMATCH/API_NEGATIVE_EVIDENCE_MISMATCH。P06 不得只复制 expected enum。

P06 summary 的 negative 计数升级为 api_negative_total_count=8,pass+fail=8;顶层 TEST_PASS 要求 fail=0。四个 success api_results 仍独立为 4 行,不进入 functional case_total=30。

2. BLOCK-V018-02:source invalid 与 timeout-known total mapping

2.1 native final V003 与 state identity

V018 native final V002 被 V003 取代。顶层 key 顺序升级为:

artifact_rows,closure_state,final_exit_code,final_status,final_stop_code,manifest_external_bytes,manifest_external_sha256,prepackage_variant,schema_id,state_id

  • schema_id=ANA.SEMI.PRECONSUMPTION.NATIVE.FINAL.V003
  • state_id 非空,enum=C00C39;恰好匹配本版唯一 overlay。
  • C00-C19 未被本版明确 supersede 的字段保持 V018 值;C03-C06 仍只表示 attempted-no-output;C20-C23 专门表示可安全复开的 materialized-invalid source。
  • artifact row 仍是 P01-P08 恰好八行与 V018 六字段 tuple。V/F/S upstream_stop_code=null;A/I/N 使用本 state 的 final_stop_code,除 base vector 的 STATIC_TEST_FAILED|CONTRACT_TEST_FAILED 继承值。

2.2 source create 的 A|I 唯一分支

V018 C03-C06 保持 A 分支。新增四个 I 分支:

state top-level P01 P02 P03 P04 P05-P08
C20 NATIVE_ONLY/STOP/SOURCE_CREATE_STOP/21 I N N N N
C21 NATIVE_ONLY/STOP/SOURCE_CREATE_STOP/21 V I N N N
C22 NATIVE_ONLY/STOP/SOURCE_CREATE_STOP/21 V V I N N
C23 NATIVE_ONLY/STOP/SOURCE_CREATE_STOP/21 V V V I N

C03-C06 的当前 target 必须为 A,C20-C23 的当前 target 必须为 I;不存在自由选择。I 只在文件已关闭、只读独占复开成功、actual bytes/hash 可安全取得时合法;否则 liveness/handle/evidence 不确定进入 C10/U/27。下游 N 的 upstream=SOURCE_CREATE_STOP

2.3 timeout-killed-known 的完整合法前缀

timeout-killed-known 只在以下条件全部成立时使用:outer timeout 已发生;kill/wait 完成;child_liveness=EXITEDactual_outer_exit_code:INT32 非 null并只记录于 parent process result;所有已物化文件均已关闭且只读复开/bytes/hash 完成;P05→P06→P07 的 writer-open 顺序可由 durable sidecar/文件事实唯一判定。任一条件不成立必须 C10/U/27。

C09 是已知 N,N,N 前缀。新增 C24-C39;P01-P04 均为 V,P08 均为 N(OUTER_TIMEOUT_KILLED_KNOWN_PREFIX),top-level 均为 NATIVE_ONLY/STOP/OUTER_TIMEOUT_KILLED_KNOWN_PREFIX/24

state P05 P06 P07 prepackage_variant
C09 N N N null
C24 A N N null
C25 I N N null
C26 F N(STATIC_TEST_FAILED) N null
C27 F N(STATIC_TEST_FAILED) A null
C28 F N(STATIC_TEST_FAILED) I null
C29 F N(STATIC_TEST_FAILED) V STATIC_FAIL
C30 V A N null
C31 V I N null
C32 V F N null
C33 V F A null
C34 V F I null
C35 V F V CONTRACT_FAIL
C36 V V N null
C37 V V A null
C38 V V I null
C39 V V V PASS

表中 A/I 的 upstream=OUTER_TIMEOUT_KILLED_KNOWN_PREFIX;F 的 upstream=null。P06 的 N(STATIC_TEST_FAILED) 保留其直接上游原因;其余 N 使用 timeout code。不存在 F,V,*V,F 后 P07 之外的其他顺序,也不存在跳过 P05/P06 而物化后件。timeout 后 P08 已 closed/self-hash external 的路径仍只用 C19;C19 final stop/exit 继续为 OUTER_TIMEOUT_AFTER_CLOSED_PACKAGE/24

2.4 C18 external hash equality 与 unknown 边界

C18 的 P08 必须为 I,P08 row actual bytes/hash 非 null;top-level manifest_external_bytes/manifest_external_sha256 必须逐值等于该 P08 invalid file 的 actual bytes/hash。C18 不得写 self-row hash;external hash 只在 native final/audit 保存。

只有以下事实允许 U/C10/27:child liveness unknown;handle/stream close unknown;已物化文件无法安全复开;bytes/hash 无法可靠取得;writer-open stage 无法判定。已知 A/I/V/F/N 事实不得降格为 U,也不得伪造为 N。

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

本版 schema identity:

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

P03 top keys 仍按 V018,仅 api_negative_cases 内部升级 V004。P06 top keys 仍按 V018,仅 api_results/api_negative_results/summary 内部升级;functional case_total 仍唯一 30,selector=15,precedence=4,api_negative=8。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/4996ed8ba89aff4ed6d0c227c77e9b3f1963e670183402d3c129700b242d0219

receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V004
run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001
plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V019
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/b032af25edb91b3afe60a5f0ceff12e01cafac078210d16a92217beafba33362

receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V004
run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001
plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V019
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/b4d5e38e7bbfaeee0081077ea68a0f175d3f7b51c611158cab1a14c0eac25323

receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V004
run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001
plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V019
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. 审核验收与门禁

V019 独立复审必须验证:

  1. 八个 API negative case 覆盖全部 retained non-success observation enum;P06 保存 actual object/type/property name/type vectors与 hash,不能仅保存 enum。
  2. 22-property valid/missing/extra/order/type-drift name/type/rule preimage、bytes/hash 可独立复算,negative total=8,functional total 仍为30。
  3. C03-C06 A 与 C20-C23 I 一一对应;C09/C24-C39 恰好覆盖全部合法 timeout-known P05/P06/P07 prefix;C10 只用于真实 unknown。
  4. native final V003 的 C00-C39 state_id、closure/status/stop/exit 与八行 artifact tuple 唯一;C18 external bytes/hash 等于 P08 invalid actual bytes/hash。
  5. V018 已关闭 provider/selector/CommandLine/P07/P08/tool/argv 合同无回退;P01-P08/run/process/database 仍为零。

本 V019 只允许 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。