创建人员:dev.developer.ana.cai
创建时间:2026-07-24T19:11:00+08:00
事项 ID:DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-20260724-001
计划 ID:DEV-PLAN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-R1
任务 ID:TASK-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-20260724-001
当前状态:PENDING_INDEPENDENT_PLAN_REREVIEW
精确开发角色:dev.developer.ana.cai
精确审核角色:dev.reviewer.ana.cai
实现授权:NOT_ISSUED
本文件是 V001 的 append-only R1/V002 替代计划,不修改或覆盖 V001。V001 固定为 13850 bytes / SHA-256 20e452a7f5bce3ac2bc96105577d1f616bd15c06b8884543cedc2d61b5dd7a6f,其审核 AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PLAN-V001=HOLD/3/3,入口为 ana-doc/案例审计报告.md:718。
本版仅关闭:
BLOCK-DEV-PLAN-01:结果状态与模块入口合同漂移。BLOCK-DEV-PLAN-02:L0 编译与零外部进程合同冲突。BLOCK-DEV-PLAN-03:实现证据包 schema、状态矩阵与 hash DAG 缺失。专业 V007、开发目录恢复、旧 A001 不可变、Git 非阻断、秘密/数据库/业务禁令均不回退。专业绑定仍为:
DESIGN-ANA-SEMI-ROOT-IDENTITY-GRANT-PREFLIGHT-V007 / bytes 279657 / SHA-256 5906c63008a2366ebf9b3519df85b9e421e8f706fb916d1749c12af43f99a801。AUDIT-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-DESIGN-001=PASS/0/0 / bytes 176812 / SHA-256 1053a77b49f92d6989c79e7e6ee82b9ef97a103849be69177d8ce095bea5c20b。dev.developer.ana.cai。dev.reviewer.ana.cai,审计入口 ana-doc/案例审计报告.md。BATCH-001。assembly 文件名固定 AnaSemi.NativeProcessRunnerV006.dll,target framework 固定 .NET Framework 4.8,namespace 固定 AnaSemi。公开类型和公开入口只允许:
public sealed class NativeProcessResultV006public sealed class NativeProcessContractExceptionV006 : System.Exceptionpublic string StopCode { get; }public static class WindowsCommandLineV006public static string QuoteAndJoin(string[] logicalArgv)public static string Fingerprint(string[] logicalArgv)public static class NativeProcessRunnerV006public static NativeProcessResultV006 Run(string processKind, string[] logicalArgv, string stdoutPath, string stderrPath, int timeoutMilliseconds, int killWaitMilliseconds, string syntheticFaultMode)public static class ProcessResultEnvelopeValidatorV006public static NativeProcessResultV006 ValidateSingle(object[] items)public static class ProcessResultSidecarCsvV006public static void WriteCreateNew(NativeProcessResultV006 result, string sidecarPath)禁止额外 public type/method、重载、默认参数、动态调用或第二套 runner/validator/sidecar writer。Run 的 syntheticFaultMode 只允许 NONE|FAIL_STDOUT_AFTER_86;后者必须同时要求 processKind=SYNTHETIC_COPYFAIL,对 PROOF|IDENTITY|GRANTS 或任何其他 kind 一律抛出固定 STOP。
NativeProcessResultV006 恰好按下列声明顺序公开 22 个属性,名称大小写、CLR 类型和 nullability 逐字固定:
| property | CLR type | contract |
|---|---|---|
| schema_id | System.String | ANA-SEMI-NATIVE-PROCESS-RESULT-V005 |
| process_kind | System.String | 非空审核枚举 |
| process_started | System.Boolean | 非空 |
| process_id | System.Nullable<System.UInt32> | 状态矩阵 |
| argv_count | System.UInt16 | 非空 |
| argv_fingerprint | System.String | HEX64 |
| command_line_sha256 | System.String | HEX64 |
| roundtrip_argv_fingerprint | System.String | HEX64 |
| started_at | System.Nullable<System.DateTimeOffset> | 状态矩阵 |
| finished_at | System.DateTimeOffset | 非空 |
| exit_code | System.Nullable<System.Int32> | 状态矩阵 |
| timed_out | System.Boolean | 非空 |
| copy_state | System.String | PASS|FAIL|NOT_STARTED |
| child_liveness | System.String | EXITED|NOT_STARTED |
| stdout_path | System.String | 非空 relative PATH |
| stdout_bytes | System.UInt64 | 非空 |
| stdout_sha256 | System.String | HEX64 |
| stderr_path | System.String | 非空 relative PATH |
| stderr_bytes | System.UInt64 | 非空 |
| stderr_sha256 | System.String | HEX64 |
| result_contract_version | System.String | V005-001 |
| wrapper_status | System.String | RETURNED|PROCESS_START_FAILED|TIMED_OUT|COPY_FAILED |
property preimage/count/hash 固定沿用 V007:22 / 92c089153161a08a2327667befda342f4949ae6e2657eca51ad462a763614a2f。EXITED 只属于 child_liveness,绝不属于 wrapper_status;合法 result 不允许 UNKNOWN liveness。
PowerShell 调用唯一为:
$items=@([AnaSemi.NativeProcessRunnerV006]::Run($ProcessKind,[string[]]$LogicalArgv,$StdoutPath,$StderrPath,$TimeoutMilliseconds,$KillWaitMilliseconds,$SyntheticFaultMode))
随后依次且只能:
$result=[AnaSemi.ProcessResultEnvelopeValidatorV006]::ValidateSingle([object[]]$items);[AnaSemi.ProcessResultSidecarCsvV006]::WriteCreateNew($result,$SidecarPath)。所有辅助 API 返回均以 [void] 抑制。合法映射:
| wrapper_status | child_liveness | process_started | exit_code | copy_state |
|---|---|---|---|---|
| RETURNED | EXITED | TRUE | non-null,可 0/非 0 | PASS |
| PROCESS_START_FAILED | NOT_STARTED | FALSE | null | NOT_STARTED |
| TIMED_OUT | EXITED | TRUE | non-null INT32 | PASS 或 FAIL |
| COPY_FAILED | EXITED | TRUE | non-null INT32 | FAIL |
child 无法确认退出或 raw 无法最终化时不得返回对象,必须抛出 NativeProcessContractExceptionV006,StopCode 分别为 STOP_CHILD_LIVENESS_UNCERTAIN 或 STOP_RAW_FINALIZATION_UNCERTAIN。
Invoke-AnaSemiWrapperSelftestV006.ps1:顶层只允许 StrictMode、常量和函数定义;唯一公开函数 Invoke-AnaSemiWrapperSelftestV006。参数恰好为 RunId,RunRoot,RunnerAssemblyPath,ExpectedVectorsPath,ChildPowerShellPath,AuthorizationId,Mode,其中 Mode 只允许 AUTHORIZED_SYNTHETIC。未提供审核通过的单次 AuthorizationId 即 STOP,禁止 contract-only 隐式执行。synthetic-child.ps1:可执行入口为脚本本身,恰好接受一个原始 token --mode=EXIT0|EXIT7|SLEEP_TIMEOUT|COPYFAIL|SIDECAR_CONFLICT;其他 argc/token STOP。只输出 V007 固定 bytes,不读取 credential/network/database。Test-AnaSemiNativeProcessRunnerV006.Static.ps1:顶层只定义 Invoke-AnaSemiL0StaticValidationV001,参数恰好 ProjectRoot,RunnerAssemblyPath,ExpectedVectorsPath,OutputPath;无 success pipeline output,失败抛出固定 STOP。Test-InvokeAnaSemiWrapperSelftestV006.Static.ps1:顶层只定义 Invoke-AnaSemiL1ContractValidationV001,参数同 L0;无 success pipeline output,失败抛出固定 STOP。Invoke-AnaSemiImplementationValidationV001.ps1:唯一实现验证入口,参数恰好 ProjectRoot,RunRoot,CscPath,ExpectedVectorsPath;只允许 dot-source L0/L1 定义并在当前 PowerShell 进程调用,禁止启动 harness/child。实施 run 固定为 RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-IMPLEMENTATION-20260724-001。I01-I07 使用 project-root-relative locator;I08-I15 位于 dev/ana-dev/tmp/<run_id>/。成功包恰好 15 项:
| ID | role | path | media type | schema_id | success status |
|---|---|---|---|---|---|
| I01 | WRAPPER_SOURCE | dev/ana-dev/AnaSemi.NativeProcessRunnerV006.cs |
text/x-csharp | ANA-SEMI-NATIVE-WRAPPER-CS-V001 | SOURCE_FROZEN |
| I02 | HARNESS_SOURCE | dev/ana-dev/Invoke-AnaSemiWrapperSelftestV006.ps1 |
text/x-powershell | ANA-SEMI-WRAPPER-HARNESS-PS1-V001 | SOURCE_FROZEN |
| I03 | CHILD_SOURCE | dev/ana-dev/synthetic-child.ps1 |
text/x-powershell | ANA-SEMI-SYNTHETIC-CHILD-PS1-V001 | SOURCE_FROZEN |
| I04 | L0_TEST_SOURCE | dev/ana-dev/test/Test-AnaSemiNativeProcessRunnerV006.Static.ps1 |
text/x-powershell | ANA-SEMI-L0-VALIDATOR-PS1-V001 | SOURCE_FROZEN |
| I05 | L1_TEST_SOURCE | dev/ana-dev/test/Test-InvokeAnaSemiWrapperSelftestV006.Static.ps1 |
text/x-powershell | ANA-SEMI-L1-VALIDATOR-PS1-V001 | SOURCE_FROZEN |
| I06 | EXPECTED_VECTORS | dev/ana-dev/test/V007ExpectedVectors.json |
application/json | ANA-SEMI-V007-EXPECTED-VECTORS-JCS-V001 | SOURCE_FROZEN |
| I07 | VALIDATION_ENTRY | dev/ana-dev/test/Invoke-AnaSemiImplementationValidationV001.ps1 |
text/x-powershell | ANA-SEMI-IMPLEMENTATION-VALIDATION-PS1-V001 | SOURCE_FROZEN |
| I08 | COMPILED_ASSEMBLY | build/AnaSemi.NativeProcessRunnerV006.dll |
application/octet-stream | PE-DOTNET48-V001 | BUILD_READY |
| I09 | CSC_STDOUT | process/csc.stdout.bin |
application/octet-stream | RAW-BYTES-V001 | RAW_READY |
| I10 | CSC_STDERR | process/csc.stderr.bin |
application/octet-stream | RAW-BYTES-V001 | RAW_READY |
| I11 | CSC_PROCESS_RESULT | process/csc.result.json |
application/json | ANA-SEMI-IMPLEMENTATION-PROCESS-RESULT-JCS-V001 | PROCESS_RESULT_READY |
| I12 | L0_RESULT | test/l0-static.json |
application/json | ANA-SEMI-IMPLEMENTATION-L0-JCS-V001 | TEST_PASS |
| I13 | L1_RESULT | test/l1-contract.json |
application/json | ANA-SEMI-IMPLEMENTATION-L1-JCS-V001 | TEST_PASS |
| I14 | IMPLEMENTATION_RECEIPT | receipt/implementation-receipt.md |
text/markdown | ANA-SEMI-IMPLEMENTATION-RECEIPT-MD-V001 | RECEIPT_FINALIZED |
| I15 | IMPLEMENTATION_MANIFEST | manifest/implementation-source-manifest.csv |
text/csv | ANA-SEMI-IMPLEMENTATION-MANIFEST-CSV-V001 | MANIFEST_SELF_EXTERNAL_HASH |
source/test 文本一律 UTF-8 无 BOM、LF、恰好一个尾 LF;JSON 一律 RFC 8785 JCS、UTF-8 无 BOM、无尾随 bytes;raw/DLL 按原始 bytes;Markdown UTF-8 无 BOM、LF、恰好一个尾 LF;CSV RFC4180、UTF-8 无 BOM、LF、恰好一个尾 LF。
I06 top-level key 恰好且顺序不具语义:schema_id,professional_design,property_contract,implementation_descriptors,scenario_contract,raw_preimages,manifest_contract。
schema_id=ANA-SEMI-V007-EXPECTED-VECTORS-JCS-V001。professional_design 恰好包含 id,path,bytes,sha256,start_line,值为第 1 节固定向量。property_contract 恰好包含 result_type,property_count,property_set_sha256,wrapper_status,child_liveness;状态数组顺序分别为 RETURNED,PROCESS_START_FAILED,TIMED_OUT,COPY_FAILED 与 EXITED,NOT_STARTED。implementation_descriptors 恰好三 key/HEX64:wrapper=bce657782982efe2314ccc0d6eb569170e2690d739c56c94ab71c3094597e019;harness=ffaa17dd858d4201dac14e08afa4db789d6f61fd637c6176cee125f1f2b4e0f6;child=252386b0b88ec664a3b60d706da114aa917b5b443ff3c9d13f7e9c932949c5cf。scenario_contract 固定 schema=ANA-SEMI-WRAPPER-SELFTEST-SCENARIO-CSV-V007、15 列顺序及 9 行。每行必须逐值等于专业 V007 lines 2684-2692,关键状态为:EXIT0/EXIT7/SIDECAR_CONFLICT=RETURNED;START=PROCESS_START_FAILED;TIMEOUT=TIMED_OUT;COPY=COPY_FAILED;三个 probe wrapper=null。EMPTY_SHA256 或 property hash。raw_preimages 恰好包含 EXIT0、EXIT7、PROCESS_START_FAILED、TIMED_OUT、COPY_FAILED、SIDECAR_CONFLICT 的 stdout/stderr escaped preimage、decoded bytes 与 SHA-256,逐值等于 V007 lines 2702-2712。manifest_contract 固定 schema=ANA-SEMI-WRAPPER-SELFTEST-MANIFEST-CSV-V007、target_count=30、status counts=3/1/12/5/4/2/1/1/1 和专业 V007 ST01-ST30 literal matrix 的 30 个 (id,role,path,media,schema,status);不得新增、遗漏或从扩展名推断。I06 不包含当前实现 hash、I14/I15 hash 或运行时 timestamp,避免自引用;L0 必须逐项验证其 shape、类型和值与 V007 design hash 的绑定。
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe / bytes 455680 / SHA-256 9785001b0dcf755eddb8af294a373c0b87b2498660f724e76c4d53f9c217c7a3 / version 10.0.19041.1 (WinBuild.160101.0800)。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe / bytes 2569696 / SHA-256 aae1db57f898ca8bda18590c56f86ced6d0ead80c22033b76fdfe9119706f116 / version 4.8.9232.0 built by: NET481REL1LAST_C。任一 path/bytes/hash/version 漂移即 STOP 并重新审核,不得临时替换工具。
在单独 management 授权后,只允许一个 PowerShell 验证进程:
powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File E:\mb-ms-doc\project-info\dev\ana-dev\test\Invoke-AnaSemiImplementationValidationV001.ps1 -ProjectRoot E:\mb-ms-doc\project-info -RunRoot E:\mb-ms-doc\project-info\dev\ana-dev\tmp\RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-IMPLEMENTATION-20260724-001 -CscPath C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe -ExpectedVectorsPath E:\mb-ms-doc\project-info\dev\ana-dev\test\V007ExpectedVectors.json
外层 exit code 总枚举:0=PASS,11=PRECHECK_STOP,12=CSC_START_STOP,13=CSC_EXIT_OR_TIMEOUT_STOP,14=L0_STOP,15=L1_STOP,16=PACKAGE_STOP。禁止其他参数、环境秘密、stdout success output 或第二次启动。
外层进程内部最多启动一次 csc,argv 顺序固定:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe/nologo/target:library/optimize+/debug-/checked+/platform:anycpu/warnaserror+/utf8output/out:E:\mb-ms-doc\project-info\dev\ana-dev\tmp\RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-IMPLEMENTATION-20260724-001\build\AnaSemi.NativeProcessRunnerV006.dllE:\mb-ms-doc\project-info\dev\ana-dev\AnaSemi.NativeProcessRunnerV006.csUseShellExecute=false,CreateNoWindow=true;I09/I10 在 Start 前 CreateNew,直接从 BaseStream 异步复制。成功要求 exit=0、timed_out=false、I09/I10 均 0 bytes/empty SHA-256、I08 存在且可作为 .NET Framework 4.8 assembly 加载。csc timeout 固定 60 秒,只 kill/wait 一次;任何不确定 STOP。
成功总 external process count=2(外层 PowerShell 1 + csc 1);L0/L1 在同一外层进程内 dot-source 并调用,不产生额外进程。harness_process_count=0、synthetic_child_process_count=0、network/database/credential/config_editor/mysql=0。
key 恰好:schema_id,tool_path,tool_bytes,tool_sha256,argv_count,argv_sha256,process_started,process_id,started_at,finished_at,exit_code,timed_out,stdout_path,stdout_bytes,stdout_sha256,stderr_path,stderr_bytes,stderr_sha256,assembly_path,assembly_bytes,assembly_sha256,status。
类型:bytes/count/id 为非负整数;时间为 RFC3339;exit_code=INT32|null;path/string/hash 非空;status=PASS|PROCESS_START_FAILED|TIMED_OUT|NONZERO_EXIT|OUTPUT_INVALID。成功行全部非空、exit=0、status=PASS。I11 不引用自身、I14 或 I15 hash。
key 恰好:schema_id,run_id,source_hashes,toolchain,assembly,checks,check_count,pass_count,fail_count,external_process_count,network_count,database_count,credential_count,status。source_hashes 恰好 I01-I07 七 key/HEX64;toolchain 恰好 powershell/csc path+bytes+hash;assembly 恰好 path+bytes+hash。
checks 恰好 8 个对象,字段 check_id,expected,actual,pass,stop_code:SOURCE_CANONICAL、CSC_EXIT、PUBLIC_API、PROPERTY_22、POWERSHELL_AST、PROHIBITED_API、TOP_LEVEL_SIDE_EFFECT、EXPECTED_VECTOR_BINDING。成功 count/pass/fail=8/8/0、external_process_count=1(csc)、其余 0、status=PASS。
key 与 I12 相同但不含 toolchain/assembly,checks 恰好 9 项:ARGV_QUOTING、ARGV_FINGERPRINT、ENVELOPE_EXTRA、ENVELOPE_MISSING、RESULT_STATE_MATRIX、RAW_PREIMAGE、REAL_13_TARGET_CONTRACT、SYNTHETIC_30_TARGET_CONTRACT、CREATE_NEW_DECISION。成功 count/pass/fail=9/9/0、external_process_count=0、其余 0、status=PASS。
L1 只调用 WindowsCommandLineV006 和 ProcessResultEnvelopeValidatorV006 的纯内存路径;绝不调用 NativeProcessRunnerV006.Run、harness 或 child。
Markdown heading 顺序固定:Metadata、Toolchain、Source And Test Hashes、Compiler Process、L0 Result、L1 Result、Counts And Boundaries、Stop Or Pass。只记录 I01-I13 bytes/hash、精确命令/argv、exit/count/status、no-secret/network/database/Git/business attestation;排除 I14 自身和 I15 hash。
CSV 恰好 15 行,列顺序:run_id,target_id,artifact_role,project_relative_path,media_type,schema_id,expected_presence,materialized,exists,bytes,sha256,status,created_at,upstream_stop_code。
(run_id,target_id),path 唯一,顺序 I01→I15。MANIFEST_SELF_EXTERNAL_HASH。SOURCE_FROZEN|BUILD_READY|RAW_READY|PROCESS_RESULT_READY|TEST_PASS|TEST_FAIL|RECEIPT_FINALIZED|MANIFEST_SELF_EXTERNAL_HASH|NOT_RUN_UPSTREAM_STOP。M=必须物化,A=必须 absent,C=按实际存在性报告。任何 safe-close 文件创建失败升级 PACKAGE_STOP,不得补造。
| terminal | I01-I07 | I08 | I09-I11 | I12 | I13 | I14 | I15 |
|---|---|---|---|---|---|---|---|
| SOURCE_PRECHECK_OR_CREATE_STOP | C | A | A | A | A | A | A |
| VALIDATION_PRECHECK_STOP | M | A | A | A | A | A | A |
| OUTER_START_STOP | M | A | A | A | A | A | A |
| CSC_START_STOP | M | A | M | A | A | M | M |
| CSC_EXIT_OR_TIMEOUT_STOP | M | C | M | A | A | M | M |
| L0_STOP | M | M | M | M(TEST_FAIL) | A | M | M |
| L1_STOP | M | M | M | M(TEST_PASS) | M(TEST_FAIL) | M | M |
| RECEIPT_CREATE_STOP | M | M | M | M | M | A | A |
| MANIFEST_CREATE_STOP | M | M | M | M | M | M | A |
| PASS | M | M | M | M(TEST_PASS) | M(TEST_PASS) | M | M |
SOURCE_PRECHECK_OR_CREATE_STOP/OUTER_START_STOP 由 native terminal 枚举实际,不允许为收口而再启动进程。VALIDATION_PRECHECK_STOP 发生在 I01-I07 已完成物化之后,故 I01-I07 必须存在且 I08-I15 必须 absent。CSC_START/EXIT、L0/L1 失败仅在 outer 仍确定存活且 I14/I15 CreateNew 可安全完成时生成失败包;否则按实际向量 PACKAGE_STOP,I14/I15 可 absent。未运行下游 target 物理 absent,在 materialized manifest 中记录 NOT_RUN_UPSTREAM_STOP 与固定 upstream code,不伪造零字节文件。
V007 design/audit → I01-I07 → I08-I11 → I12 → I13 → freeze I01-I13 → I14 → I15 → external I15 bytes/hash。计划复审必须确认三项 blocker 均关闭。后续实现验收要求:
dev/ana-dev 治理范围,全部 NOT_BUSINESS_EVIDENCE。计划复审 PASS 后只允许向 management 申请 I01-I15 对应的单次实现物化/验证授权,不得直接执行。实现审核 PASS 后另行申请正式 synthetic 授权;真实 preflight 与业务仍需更后的独立链。
角色、路径、V007/audit、工具、API、argv、target、schema、状态矩阵、canonical bytes、DAG 或授权任一漂移;出现秘密、network、database、Git 修改、ana-data/tmp 可执行源码、正式 target、业务/BATCH;进程/child liveness/raw/sidecar 不确定;任何未列文件或进程——均 STOP/no-retry。
当前事实:
implementation_source_materialization=falsetest_materialization=falsedev/ana-dev_recursive_file_count=0external_process_count=0synthetic_selftest=falsedatabase_execution=falseformal_target_count=0BATCH-001=HELDdarkline_restored=false本 V002 是计划修订,不是源码、测试、synthetic、数据库或业务授权。