# CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V017 - plan_id: `CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V017` - role_instance_id: `dev.developer.ana.cai` - created_at: `2026-07-26T11:59:26.9524354+08:00` - predecessor_plan: `CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V016` / `30554/c7f8068da1a318902ef3f4bd24fe84319ef97471aecb35479c70ee3aadb40a06` - predecessor_review: `AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PRECONSUMPTION-REPAIR-PLAN-V016=HOLD/4/4` / `177159/aeb094d077a23371bafa663e552f352dfa89f8653a518bc4538adf9f32a9aaa9` / line `1516` - status: `PENDING_INDEPENDENT_PREFLIGHT_REPAIR_PLAN_REREVIEW` - implementation_authorization: `NOT_ISSUED` - P01-P08/R3/synthetic/database/BATCH-001: `ABSENT/HELD/HELD/HELD/HELD` 本 V017 只关闭 V016 的四项 retained blocker。V016 已通过的 DateTimeOffset 半开窗口、22-property preimage、PowerShell tool/token/Arguments hashes、C# + PowerShell 技术栈、Stage-P/R3 分权和 native-only communication 均继承且不得回退。 ## 1. BLOCK-V016-01:single-owner terminal、timestamp 与 provider schema ### 1.1 唯一时间源与结果 timestamp owner 调用的唯一时间源是 `NowProvider`。它在 `CLOCK` 阶段恰好调用一次并必须返回单一 `System.DateTimeOffset`;不得在 START/IDENTITY/WINDOW_PARSE 或 terminal 构造中调用 `Get-Date`、`UtcNow` 或第二个 provider。 当 CLOCK 成功时: - `now_utc_ticks = Now.UtcDateTime.Ticks` - `started_at = finished_at = Now.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffK", InvariantCulture)` - timestamp_source_count=1;两个 timestamp 是同一值的两个字段,不代表两次取时。 以下合法结果 timestamp 均为 null: - gate 已消费的 second/concurrent call;它不得调用 NowProvider。 - owner 在 CLOCK 前的 IDENTITY/WINDOW_PARSE 阶段终止。 - NowProvider 抛错、返回 null、多对象或非 DateTimeOffset;不得用 catch 时刻补值。 因此 V016 的 22 字段顺序/count/hash不变,但 `started_at,finished_at` 在 V017 明确为 `STRING|null`。非 null 时格式唯一为 UTC、7 位小数、`+00:00`。PASS 必须非 null且逐字相等;STOP 按上述阶段矩阵确定 null。 ### 1.2 SemaphoreSlim owner/second-call 总状态 入口唯一原子操作仍为 `InvocationGate.Wait(0)`;成功 owner 永不 Release,失败调用不读取任何 provider、文件、进程或时钟。 | gate result | invocation_count | started_at/finished_at | stage | status | stop_code | provider calls | |---|---:|---|---|---|---|---| | true | 1 | CLOCK 前 null;CLOCK 后同一 UTC 字符串 | 实际最后阶段 | PASS/STOP | 按 owner 映射 | 按短路向量 | | false | null | null/null | START | STOP | STOP_PRECONSUMPTION_ALREADY_INVOKED | 六项全 0 | second-call 结果仍有完整 22 个 property;除 `authorization_id,result_schema_id,preflight_stage,status,stop_code` 外均 null。它不生成第二个项目文件,也不发送消息;仅由 P04 的内存测试断言。 ### 1.3 六个 provider 完整返回 schema 所有 object provider 只允许一个 PSCustomObject,PSTypeNames[0] 与下表一致,property 必须按表中顺序、ordinal/case-sensitive、无 missing/extra。 #### NowProvider - 返回类型本身:`System.DateTimeOffset`,无 object property schema。 - object count=1;null、DateTime、STRING、多对象、异常均不合法。 #### IdentityProvider:`ANA.SEMI.PREFLIGHT.IDENTITY.V001` 字段顺序:`cwd,host,role_instance_id,schema_id,source_thread_id,status,uncertain_fields` - 前六项 STRING;uncertain_fields=`ARRAY|null`,元素非空、ordinal 排序、无重复。 - schema_id 固定类型名;status=`PASS|MISMATCH|UNKNOWN`。 - PASS/MISMATCH 时 uncertain_fields=null;UNKNOWN 时必须非空。 #### PlanHashProvider:`ANA.SEMI.PREFLIGHT.PLANHASH.V001` 字段顺序:`bytes,schema_id,sha256,status,uncertain_fields` - bytes=`INT64|null`;sha256=`lowercase-64-hex|null`;schema_id STRING。 - status=`PASS|MISMATCH|UNKNOWN`。 - PASS/MISMATCH 要求 bytes/sha256 非 null、uncertain_fields=null;UNKNOWN 要求 bytes/sha256 中至少一个 null且 uncertain_fields 非空。 #### TargetStateProvider:`ANA.SEMI.PREFLIGHT.TARGETSTATE.V001` 字段顺序:`candidate_run_exists,materialized_target_count,schema_id,status,target_existing_count,uncertain_fields` - candidate_run_exists=`BOOL|null`;两 count=`INT32|null` 非负。 - status=`PASS|MISMATCH|UNKNOWN`。 - PASS 固定 false/0/0;MISMATCH 三项非 null且至少一个非零/true;UNKNOWN 至少一项 null且 uncertain_fields 非空。 #### HistoryProvider:`ANA.SEMI.PREFLIGHT.HISTORY.V001` 字段顺序:`history_hash_mismatch_count,schema_id,status,uncertain_fields` - count=`INT32|null` 非负;status=`PASS|MISMATCH|UNKNOWN`。 - PASS count=0;MISMATCH count>0;UNKNOWN count=null;UNKNOWN only uncertain 非空。 #### ProcessSnapshotProvider:`ANA.SEMI.PREFLIGHT.SNAPSHOT.V001` 字段顺序:`adapter_status,rows,schema_id,snapshot_id,uncertain_fields` - adapter_status=`PASS|UNKNOWN`;snapshot_id=nonempty STRING;rows=`ARRAY|null`。 - PASS:rows 非 null(允许空数组),uncertain_fields=null。 - UNKNOWN:rows=null,uncertain_fields 非空;不得返回 partial rows。 - PROCESS_ROW 字段顺序:`command_line,executable_path,name,parent_process_id,process_id`;前三项 STRING|null,后两项 UINT32;PID 由 adapter 数字升序输出,不允许重复。 ### 1.4 provider 调用/复合错误优先级 每个阶段只适用以下一条,顺序即优先级: 1. provider invocation 抛出 terminating exception:`STOP_PRECONSUMPTION_PREFLIGHT_EXCEPTION`;已产生的 partial pipeline output 全部丢弃,不再做 schema 判断。 2. provider 正常返回,但 object count/type/property/type/null/enum drift:`STOP_PRECONSUMPTION_RESULT_CONTRACT_DRIFT`。 3. 合法 provider object status=UNKNOWN:`STOP_PRECONSUMPTION_STATE_UNCERTAIN`。 4. 合法 provider object status=MISMATCH:`STOP_PRECONSUMPTION_GATE_MISMATCH`。 5. PASS:进入下一阶段。 若合法对象同时表达 unknown 与 mismatch(违反 cross-field)属于第 2 项 contract drift,而不是任选 3/4。首个 stage terminal 后后续 provider call count 全为 0。 固定 provider-call-vector 是 JCS object,key 顺序为:`history,identity,now,plan_hash,process_snapshot,target_state`;每值 INT32 0|1。八个 preflight cases 的固定向量: | case | vector `history,identity,now,plan_hash,process_snapshot,target_state` | |---|---| | PASS | `1,1,1,1,1,1` | | IDENTITY_MISMATCH | `0,1,0,0,0,0` | | TIME_PARSE_STOP | `0,1,0,0,0,0` | | PLAN_HASH_MISMATCH | `0,1,1,1,0,0` | | TARGET_UNKNOWN | `0,1,1,1,0,1` | | HISTORY_MISMATCH | `1,1,1,1,0,1` | | PROCESS_UNKNOWN | `1,1,1,1,1,1` | | SECOND_CALL | `0,0,0,0,0,0` | TIME_PARSE_STOP 在 WINDOW_PARSE 发生,所以 NowProvider=0。 ## 2. BLOCK-V016-02:Win32 CommandLine 与 selector 总合同 ### 2.1 expected Win32_Process.CommandLine 固定前像 未来 Stage P 唯一 outer 的预期 Win32_Process.CommandLine 是下面 483 个 UTF-8 bytes 对应的字符串,禁止 trim、case-fold、quote normalization、slash normalization 或 decode/re-encode替代: ```text C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File E:\mb-ms-doc\project-info\dev\ana-dev\test\Invoke-AnaSemiRepair3PreconsumptionValidationV001.ps1 -ProjectRoot E:\mb-ms-doc\project-info -RunId RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001 -OutputRoot E:\mb-ms-doc\project-info\dev\ana-dev\tmp\RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001 ``` - UTF-8 bytes=`483` - sha256=`5d1ea6971e5c51fe62cd9088fa41d5617a9f009450370ee2462a190916203bee` - base64=`QzpcV2luZG93c1xTeXN0ZW0zMlxXaW5kb3dzUG93ZXJTaGVsbFx2MS4wXHBvd2Vyc2hlbGwuZXhlIC1Ob0xvZ28gLU5vUHJvZmlsZSAtTm9uSW50ZXJhY3RpdmUgLUV4ZWN1dGlvblBvbGljeSBCeXBhc3MgLUZpbGUgRTpcbWItbXMtZG9jXHByb2plY3QtaW5mb1xkZXZcYW5hLWRldlx0ZXN0XEludm9rZS1BbmFTZW1pUmVwYWlyM1ByZWNvbnN1bXB0aW9uVmFsaWRhdGlvblYwMDEucHMxIC1Qcm9qZWN0Um9vdCBFOlxtYi1tcy1kb2NccHJvamVjdC1pbmZvIC1SdW5JZCBSVU4tREVWLUFOQS1TRU1JLVJPT1QtUFJFRkxJR0hULVBSRUNPTlNVTVBUSU9OLVJFUEFJUi1JTVBMRU1FTlRBVElPTi0yMDI2MDcyNi0wMDEgLU91dHB1dFJvb3QgRTpcbWItbXMtZG9jXHByb2plY3QtaW5mb1xkZXZcYW5hLWRldlx0bXBcUlVOLURFVi1BTkEtU0VNSS1ST09ULVBSRUZMSUdIVC1QUkVDT05TVU1QVElPTi1SRVBBSVItSU1QTEVNRU5UQVRJT04tMjAyNjA3MjYtMDAx` selector 在读取 snapshot 前必须完成 input consistency: 1. Base64 严格解码成功、长度=483。 2. bytes strict UTF-8 解码且 roundtrip byte-identical。 3. hash 与固定 sha256 相等。 4. decoded string 逐字等于 `ExpectedOuterExecutablePath + U+0020 + reviewed ProcessStartInfo.Arguments`。 任一失败:`STOP_EXPECTED_COMMANDLINE_CONTRACT`,不读取 snapshot rows。 ### 2.2 selector 优先级与 cross-field 固定优先级: 1. expected input consistency drift → `STOP_EXPECTED_COMMANDLINE_CONTRACT` 2. adapter_status=UNKNOWN → `STOP_SNAPSHOT_CONTRACT` 3. duplicate PID → `STOP_DUPLICATE_PROCESS_ID` 4. relevant name/path/command field unknown → `STOP_RELEVANT_PROCESS_FIELD_UNKNOWN` 5. exact_outer_count>1 → `STOP_MULTIPLE_EXACT_OUTER` 6. exact_outer_count=1 或 prohibited_process_count>0 → `STOP_PROCESS_PRESENT` 7. 全零 → PASS/confirmed_zero=true selector V002 返回字段: `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` 合法 cross-field: - input/adapter failure:confirmed/counts/IDs 可不可靠项均 null;status=STOP;uncertain_fields 非空。 - duplicate:snapshot_row_count 非 null,duplicate>0;exact/prohibited/related/confirmed/IDs=null。 - relevant unknown:duplicate=0,unknown_relevant_count>0;已知 exact/prohibited counts 可非 null,但 confirmed=null;uncertain_fields 非空。 - multiple exact:duplicate/unknown=0,exact>1,related>=exact,confirmed=false,matched IDs 非空升序。 - known present:duplicate/unknown=0,related>0,confirmed=false,matched IDs 为所有 exact/prohibited PID 的去重升序并与 related_count 相等。 - confirmed zero:所有 count=0,matched_process_ids=[],uncertain_fields=null,confirmed=true,status=PASS,stop=null。 任何不满足上表的结果都是 RESULT_CONTRACT_DRIFT。 ### 2.3 十五个 selector 固定向量 | case_id | decisive fact | expected | |---|---|---| | S-EMPTY | adapter PASS/rows=[] | PASS zero | | S-EXACT | one exact outer | PROCESS_PRESENT | | S-CMD-DIFFERENT | same exe/full cmd differs | PASS zero | | S-SUBSTRING | command contains expected only | PASS zero | | S-SOURCE-SELF | source PID otherwise exact | PASS zero | | S-EXE-DIFFERENT | same cmd/known different path | PASS zero | | S-RELEVANT-PATH-NULL | relevant name/path null | UNKNOWN | | S-OUTER-CMD-NULL | expected outer path/cmd null | UNKNOWN | | S-DUP-PID | duplicate PID | DUPLICATE | | S-TWO-EXACT | two exact outer | MULTIPLE | | S-PROHIBITED-CSC | exact reviewed csc path | PROCESS_PRESENT | | S-ADAPTER-UNKNOWN | adapter UNKNOWN/rows null | SNAPSHOT_CONTRACT | | S-NAME-NULL | non-source row name null | UNKNOWN | | S-COMPOUND-UNKNOWN-PRESENT | one prohibited + one relevant path null | UNKNOWN(unknown 优先) | | S-INPUT-BASE64-DRIFT | malformed Base64;snapshot 未读取 | EXPECTED_COMMANDLINE_CONTRACT;adapter call count=0 | ## 3. BLOCK-V016-03:P03/P05/P06 nested schema 完全冻结 全部 JSON 使用 UTF-8 no BOM/CR/NUL/trailing-LF、strict JSON、RFC 8785 JCS;object key 必须按 ordinal 顺序;禁止额外 key、非整数 number、NaN/Infinity、`-0`、重复 key。 ### 3.1 P03 `ANA-SEMI-PRECONSUMPTION-VECTORS-JCS-V002` 顶层 key/type: | key | type/null | |---|---| | api_contracts | ARRAY non-null, count=4 | | forbidden_communication_tokens_base64 | ARRAY non-null, count=5 | | preflight_cases | ARRAY non-null, count=8 | | process_selector_cases | ARRAY non-null, count=15 | | result_schema | RESULT_SCHEMA object non-null | | run_id | STRING exact candidate run | | schema_id | STRING exact V002 schema | | time_cases | ARRAY non-null, count=7 | API_CONTRACT keys:`api_id,parameter_names,parameter_types,return_property_names,return_type_name`;五项均非 null;names/types 是相同 count 的 ARRAY;四行 api_id 按 ordinal。 TIME_CASE keys:`authorized_at_raw,case_id,expected_inside,expected_status,expected_stop_code,expires_at_raw,now_utc`。 - raw/case/status/expires/now 为 STRING non-null。 - expected_inside=BOOL|null;expected_stop_code=STRING|null。 - expected_status=`PASS|STOP`;PASS 要求 inside non-null/stop null,STOP 反之。 PROCESS_ROW keys:`command_line,executable_path,name,parent_process_id,process_id`;前三项 STRING|null,后两项 UINT32。 SELECTOR_CASE keys:`adapter_status,case_id,expected_confirmed_zero,expected_exact_outer_count,expected_prohibited_count,expected_status,expected_stop_code,rows`。 - adapter_status=`PASS|UNKNOWN`。 - expected_confirmed_zero=BOOL|null;两个 count=INT32|null;rows=ARRAY|null。 - expected_status=`PASS|STOP`,stop=STRING|null;按第 2.2 cross-field。 PROVIDER_CALL_VECTOR keys:`history,identity,now,plan_hash,process_snapshot,target_state`;每值 INT32 0|1。 PREFLIGHT_CASE keys:`case_id,expected_finished_at_null,expected_invocation_count,expected_provider_call_vector,expected_stage,expected_started_at_null,expected_status,expected_stop_code`。 - null flags=BOOL;invocation_count=INT32|null;provider vector non-null;其余 STRING,stop nullable。 - PASS:invocation=1/timestamp_null flags=false/stop=null。 - SECOND_CALL:invocation=null/timestamp flags=true/vector all0。 RESULT_SCHEMA keys:`property_count,property_name_preimage_bytes,property_name_sha256,property_names,property_types`。 - count=22;bytes=403;sha exact `4c3f...153a2`;names=22 ordered unique strings。 - property_types 是 22-key object;每值 enum `STRING|STRING_NULL|INT32_NULL|INT64_NULL|BOOL_NULL`,与 V016/V017 result schema逐字段一致。 禁用 token Base64 按下列顺序,P04 strict decode 后作 ASCII ordinal case-insensitive byte scan: 1. `bWJ4IGludGVyYWN0aW9uIHJvdXRl` 2. `bWJ4IHNlbmQ=` 3. `cHJvamVjdCBpbmJveA==` 4. `c2Vzc2lvbiBicmlkZ2U=` 5. `aGlzdG9yeSBmYWxsYmFjaw==` ### 3.2 P05 `ANA-SEMI-PRECONSUMPTION-STATIC-RESULT-JCS-V002` 顶层 key:`check_results,schema_id,status,summary`。 CHECK_RESULT key:`actual,check_id,expected,status,stop_code`。 - actual/expected/check_id=STRING non-null;status=`MATCH|MISMATCH`;stop_code=STRING|null。 - MATCH 要求 actual逐字等于 expected、stop=null;MISMATCH 要求不等且 stop=`STATIC_CHECK_MISMATCH`。 - 12 个 check_id/顺序继承 V016,恰好 12 行,无重复。 SUMMARY key:`fail_count,pass_count,total_count`,全部 INT32 non-null;total=12;pass+fail=12;顶层 status=`TEST_PASS` iff fail=0,否则 `TEST_FAIL`。 ### 3.3 P06 `ANA-SEMI-PRECONSUMPTION-CONTRACT-RESULT-JCS-V002` 顶层 key:`api_results,preflight_results,process_selector_results,schema_id,status,summary,time_results`。 通用 row status=`MATCH|MISMATCH`;MATCH 时 actual/expected 逐字段相等且 stop_code=null;MISMATCH 时至少一项不等且 stop_code=`CONTRACT_CASE_MISMATCH`。 API_RESULT keys:`actual_object_count,actual_property_count,actual_property_sha256,actual_type_name,api_id,expected_object_count,expected_property_count,expected_property_sha256,expected_type_name,status,stop_code`。 - counts=INT32 non-null;hash/type/api=STRING non-null;stop nullable。 TIME_RESULT keys:`actual_inside,actual_status,actual_stop_code,case_id,expected_inside,expected_status,expected_stop_code,status,stop_code`。 - inside=BOOL|null;status fields STRING;actual/expected stop=STRING|null;row stop nullable。 SELECTOR_RESULT keys:`actual_confirmed_zero,actual_exact_outer_count,actual_prohibited_count,actual_status,actual_stop_code,case_id,expected_confirmed_zero,expected_exact_outer_count,expected_prohibited_count,expected_status,expected_stop_code,status,stop_code`。 - zero=BOOL|null;counts=INT32|null;status strings non-null;stop fields nullable。 PREFLIGHT_RESULT keys:`actual_finished_at_null,actual_invocation_count,actual_provider_call_vector,actual_stage,actual_started_at_null,actual_status,actual_stop_code,case_id,expected_finished_at_null,expected_invocation_count,expected_provider_call_vector,expected_stage,expected_started_at_null,expected_status,expected_stop_code,status,stop_code`。 - null flags=BOOL;invocation=INT32|null;vectors use fixed object;stage/status STRING;stop nullable。 P06 SUMMARY keys:`api_fail_count,case_fail_count,case_pass_count,case_total_count,status`。 - counts INT32;case_total=30(7 time +15 selector +8 preflight);case_pass+case_fail=30。 - status=`TEST_PASS|TEST_FAIL`,等于顶层 status;TEST_PASS iff api_fail_count=0 且 case_fail_count=0。 - api_results count=4,time=7,selector=15,preflight=8;数组按 ID ordinal,无 missing/extra/duplicate。 ## 4. BLOCK-V016-04:P07/P08 finalization、literal rows 与 native closure ### 4.1 P07 只表示 prepackage/as-of P06 P07 schema 升级为 `ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V002`。它不含 final_status/final_stop_code、P08 状态/hash 或 outer finished timestamp;`as_of_artifact_id=P06` 明确它只描述 P01-P06 已冻结状态。 P07 只允许以下三个 exact UTF-8 literal(no BOM/CR/NUL,恰好一个 final LF),不得模板自由渲染: #### P07-PASS:`471/6768e110469d1811e26a6726f217b07428e76adf74a27c8663f5d7d1ce674b6b` ```text receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V002 run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001 plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V017 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 ``` #### P07-STATIC-FAIL:`502/702e6c1fbb78826496660d734099913823eed9a51b7edcfe199abef9d3854ceb` ```text receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V002 run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001 plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V017 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 ``` #### P07-CONTRACT-FAIL:`492/74251161418ffc523c90442384765cd612617f97710540326a6d4ef71b1e9cc8` ```text receipt_schema_id: ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V002 run_id: RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001 plan_id: CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V017 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 ``` code fence 内容的最后一行后加一个 LF 即上述 hash preimage;fence 本身不属于 preimage。 ### 4.2 P08 八行 literal fixed fields P08 列顺序继续为:`artifact_id,run_id,role,schema_id,relative_path,media_type,expected_presence,materialized,exists,status,upstream_stop_code,bytes,sha256`。 固定字段逐行如下;run_id 八行均为 candidate run: | ID | role | schema_id | relative_path | media_type | expected_presence | |---|---|---|---|---|---| | P01 | SOURCE | ANA-SEMI-PRECONSUMPTION-MODULE-PSM1-V001 | `dev/ana-dev/AnaSemi.Repair3PreconsumptionV001.psm1` | `text/plain; charset=utf-8` | REQUIRED_BEFORE_OUTER | | P02 | TEST_SOURCE | ANA-SEMI-PRECONSUMPTION-STATIC-TEST-PS1-V001 | `dev/ana-dev/test/Test-AnaSemiRepair3PreconsumptionV001.Static.ps1` | `text/plain; charset=utf-8` | REQUIRED_BEFORE_OUTER | | P03 | TEST_VECTOR | ANA-SEMI-PRECONSUMPTION-VECTORS-JCS-V002 | `dev/ana-dev/test/AnaSemiRepair3PreconsumptionVectorsV001.json` | `application/jcs+json` | REQUIRED_BEFORE_OUTER | | P04 | VALIDATION_SOURCE | ANA-SEMI-PRECONSUMPTION-VALIDATION-PS1-V001 | `dev/ana-dev/test/Invoke-AnaSemiRepair3PreconsumptionValidationV001.ps1` | `text/plain; charset=utf-8` | REQUIRED_BEFORE_OUTER | | P05 | TEST_RESULT | ANA-SEMI-PRECONSUMPTION-STATIC-RESULT-JCS-V002 | `dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001/test/static-result.json` | `application/jcs+json` | REQUIRED_ON_STATIC_STAGE | | P06 | TEST_RESULT | ANA-SEMI-PRECONSUMPTION-CONTRACT-RESULT-JCS-V002 | `dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001/test/contract-result.json` | `application/jcs+json` | REQUIRED_ON_CONTRACT_STAGE | | P07 | RECEIPT | ANA-SEMI-PRECONSUMPTION-RECEIPT-MD-V002 | `dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001/receipt/preflight-repair-receipt.md` | `text/markdown; charset=utf-8` | REQUIRED_ON_CLOSURE_STAGE | | P08 | MANIFEST | ANA-SEMI-PRECONSUMPTION-MANIFEST-CSV-V002 | `dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PRECONSUMPTION-REPAIR-IMPLEMENTATION-20260726-001/manifest/preflight-repair-manifest.csv` | `text/csv; charset=utf-8` | SELF | 仅三种 P08 合法 status vector: | package | P01 | P02 | P03 | P04 | P05 | P06 | P07 | P08 | |---|---|---|---|---|---|---|---|---| | PASS | VALID | VALID | VALID | VALID | VALID | VALID | VALID | SELF | | STATIC_FAIL | VALID | VALID | VALID | VALID | TEST_FAIL | NOT_RUN | VALID | SELF | | CONTRACT_FAIL | VALID | VALID | VALID | VALID | VALID | TEST_FAIL | VALID | SELF | 映射:VALID=`true,true,MATERIALIZED_VALID,null,decimal-bytes,lowercase-sha`;TEST_FAIL=`true,true,MATERIALIZED_TEST_FAIL,null,decimal-bytes,lowercase-sha`;NOT_RUN=`false,false,NOT_RUN_UPSTREAM_STOP,STATIC_TEST_FAILED,blank,blank`;SELF=`true,true,MANIFEST_SELF_EXTERNAL_HASH,null,blank,blank`。 P08 使用 RFC4180 CRLF + final CRLF;八行 ID 升序、无额外行。P08 self file bytes/hash 只进入 external native final/audit。 ### 4.3 原生 final schema(包括 P08 absent) 每个 terminal 都必须生成内存/原生对象 `ANA.SEMI.PRECONSUMPTION.NATIVE.FINAL.V001`,不写项目文件。顶层 key: `artifact_rows,closure_state,final_status,final_stop_code,manifest_external_bytes,manifest_external_sha256,schema_id` - artifact_rows 恰好 P01-P08 八行,使用 P08 相同 13 字段和相同固定字段;即使 P08 absent 也必须八行闭合。 - closure_state=`MANIFEST_CLOSED|NATIVE_ONLY|MANIFEST_INVALID|STATE_UNCERTAIN`。 - final_status=`PASS|STOP`;final_stop_code=STRING|null。 - P08 valid:external bytes INT64>0/hash64 non-null。 - P08 absent:external bytes/hash null;P08 row 为 ATTEMPTED_NO_OUTPUT 或 NOT_RUN_UPSTREAM_STOP。 - P08 materialized-invalid且安全 hash:closure=MANIFEST_INVALID,external bytes/hash 等于实际 invalid file;不得称 MANIFEST_CLOSED。 - 任一 target/handle/liveness unknown:closure=STATE_UNCERTAIN,受影响 row status=STATE_UNCERTAIN/null fields,final=STOP/27。 native final 的八行先由实际 filesystem/handle facts产生,再计算 top-level closure;禁止用期望矩阵反写事实。 ### 4.4 合法 Cartesian target matrix 符号:V=VALID,F=TEST_FAIL,A=ATTEMPTED_NO_OUTPUT,I=MATERIALIZED_INVALID-known,N=NOT_RUN,U=STATE_UNCERTAIN,S=SELF。以下为全部合法状态;未列组合一律 U/27。 | state | P01 | P02 | P03 | P04 | P05 | P06 | P07 | P08 | final | |---|---|---|---|---|---|---|---|---|---:| | C00 PASS | V | V | V | V | V | V | V | S | 0 | | C01 STATIC_FAIL_CLOSED | V | V | V | V | F | N | V | S | 11 | | C02 CONTRACT_FAIL_CLOSED | V | V | V | V | V | F | V | S | 11 | | C03 SOURCE_P01_STOP | A/I | N | N | N | N | N | N | N | 21 | | C04 SOURCE_P02_STOP | V | A/I | N | N | N | N | N | N | 21 | | C05 SOURCE_P03_STOP | V | V | A/I | N | N | N | N | N | 21 | | C06 SOURCE_P04_STOP | V | V | V | A/I | N | N | N | N | 21 | | C07 OUTER_START_STOP | V | V | V | V | N | N | N | N | 22 | | C08 OUTER_NONZERO_NO_OUTPUT | V | V | V | V | N | N | N | N | 23 | | C09 TIMEOUT_KILLED_NO_OUTPUT | V | V | V | V | N | N | N | N | 24 | | C10 LIVENESS_OR_STREAM_UNKNOWN | V | V | V | V | U | U | U | U | 27 | | C11 P05_NO_OUTPUT | V | V | V | V | A | N | N | N | 27 | | C12 P05_INVALID_KNOWN | V | V | V | V | I | N | N | N | 27 | | C13 P06_NO_OUTPUT | V | V | V | V | V | A | N | N | 27 | | C14 P06_INVALID_KNOWN | V | V | V | V | V | I | N | N | 27 | | C15 RECEIPT_NO_OUTPUT | V | V | V | V | V/F | V/F/N | A | N | 25 | | C16 RECEIPT_INVALID_KNOWN | V | V | V | V | V/F | V/F/N | I | N | 25 | | C17 MANIFEST_NO_OUTPUT | V | V | V | V | V/F | V/F/N | V | A | 26 | | C18 MANIFEST_INVALID_KNOWN | V | V | V | V | V/F | V/F/N | V | I | 26 | | C19 TIMEOUT_AFTER_CLOSED_PACKAGE | V | V | V | V | V | V | V | S | 24 | C15-C18 的 P05/P06 只允许三种前像组合 `(V,V)|(F,N)|(V,F)`;这不是自由 Cartesian。任何其他 P05/P06 组合直接 C10/27。 closure precedence:任何 U/prepackage27 > known P07 failure25 > known P08 failure26 > primary。actual outer exit 与 governance final 分字段,禁止用 27 伪造未观察的 child exit。 ## 5. P05/P06 summary 与 terminal 交叉 - P05 TEST_PASS iff 12/12 MATCH;TEST_FAIL iff fail_count>0。 - P06 TEST_PASS iff 4 API +29 case 全 MATCH;TEST_FAIL iff任一 mismatch。 - P05 TEST_FAIL 时 P06 必须 N,P07 使用 STATIC literal。 - P05 PASS/P06 TEST_FAIL 时 P07 使用 CONTRACT literal。 - P05/P06 PASS 时 P07 使用 PASS literal。 - P05/P06 invalid/unknown 不得创建 P07;native final 采用 C11-C14。 - P07 exact bytes/hash 与 prepackage combination 不一致:RESULT_CONTRACT_DRIFT,P08 不创建,native final C16/25(若 hash 可知)或 C10/27。 - P08 row vector 与 P05/P06/P07 不一致:manifest invalid C18/26;若状态不知 C10/27。 ## 6. static communication no-regression P01-P04 不含消息发送实现。P04 只在内存解码 P03 的五个 Base64 token并扫描 P01/P02/P04;不扫描 P03 自身编码值。任何 raw forbidden token 命中为 P05 TEST_FAIL,不进入 P06。终态由 source 使用 Codex native exact-thread 各发送至 management/reviewer 至多一次;ambiguity 不 retry/fallback。 ## 7. 审核验收与门禁 V017 独立复审必须证明: 1. timestamp source/count/format/null 矩阵闭合,second-call 不取时且合法 22 字段。 2. 六 provider schema 与 exception/contract/unknown/mismatch 优先级无重叠。 3. expected Win32 CommandLine bytes/Base64/hash 与 selector input check 可复算,14 vectors 和 compound precedence/cross-field total。 4. P03/P05/P06 每层 key/type/null/enum/count/vector/token/summary total。 5. 三个 P07 exact literal bytes/hash可复算;P08 固定八行与三 vector一致。 6. C00-C19 与 native eight-row closure 覆盖 P08 absent/invalid,不存在 final-before-manifest 环。 7. V014-V016 和历史失败包不变;P01-P08/run/process/database 仍为零。 本计划只允许 `dev.reviewer.ana.cai` 独立计划复审。PASS 也只允许向 management.admin 申请新的 Stage P P01-P08 单次实现/验证授权。未经新授权,禁止物化 P01-P08、启动 validation/csc/synthetic/proof/config-editor/mysql/SQL/database/network/credential/formal target、进入 R3 或 BATCH-001。