edit | blame | history | raw

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-DateUtcNow 或第二个 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<STRING>|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<PROCESS_ROW>|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替代:

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

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

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

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。