DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-20260725-001DEV-PLAN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-R4TASK-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-PLAN-20260725-001SUBMIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-PLAN-V005HANDOFF-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-PLAN-REVIEW-20260725-001dev.developer.ana.caidev.reviewer.ana.caiDESIGN-ANA-SEMI-ROOT-IDENTITY-GRANT-PREFLIGHT-V007=PASS/0/0CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V00410483/445d9449b223a0d2abae79f95bdca09cfda8518c99b3b6e9f1517cd967c9628bAUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PLAN-V004=PASS/0/0AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-FAILURE-001=PASS_FAILURE_PATH/2/2PENDING_INDEPENDENT_REPAIR_PLAN_REVIEWNOT_ISSUEDNOT_ISSUED/NOT_ISSUED本版只定义一次**全新实现链**,关闭下列两个阻断:
BLOCK-IMPLEMENTATION-FAILURE-01=I12_INVALID_JCS_WINDOWS_PATH_ESCAPE;BLOCK-IMPLEMENTATION-FAILURE-02=L0_PRIMARY_AND_CLOSURE_NOT_DURABLY_OBSERVABLE。历史授权 AUTH-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-IMPLEMENTATION-20260724-001、attempt ...A001 和 run RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-IMPLEMENTATION-20260724-001 已永久终止,禁止 retry、resend、A002、replacement 或 renewal。旧 I01—I12 只作不可变历史证据;旧 I13—I16 必须继续物理 absent,禁止覆盖、删除、重命名、修补或回填。
历史冻结向量:
| 旧 target | bytes/SHA-256 或状态 |
|---|---|
| I01 | 32868/11ba31375f75f9dc29b9562185590de05da58ce2edc28c3bb0bfd5e8fcb1e325 |
| I02 | 4637/bb40d6a7b2ccef3b8b31f322d854503b8fc796b42ff1b53cb7402439592a1bc6 |
| I03 | 2629/2e9b516dd51a67908ea7b51de1e06c6024f993effd17628876a65b862567f75f |
| I04 | 18046/498f86594583827e513cc8974c468e12380a9f3538600ec725814c1a1d265590 |
| I05 | 16022/e2a74e744b2657967fa93e2dc126360b18904dc184100950162f31eb9b9e6fd8 |
| I06 | 16770/b12ac6c4cf321d10c1c4a6a5b53a1175f3c6f1935e7ab12bd9d47c37861311b1 |
| I07 | 22131/adda25a9cb0421250e4125ab9a91a73ffc3bf9f7834769306c104b71702dc0f1 |
| I08/I09 | 22528/53095f89d0fa1f34854b54043a76c204b5b8e1f58f2786a62e8817fee7475052 |
| I10/I11 | 0/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
| I12 | 1676/1e7c1ce163becb066a01ec66b4a738ffbaf94a1d061e32de0bed7ac12077a6c4(invalid JSON/JCS) |
| I13—I16 | ABSENT_MUST_NOT_BACKFILL |
本计划不授权写新源码、编译、L0/L1、synthetic、proof、config-editor、mysql、SQL、数据库、网络、credential、正式 target 或业务产物。
旧 I07 的 Escape-JsonString 在 switch 内追加反斜杠转义后仍可能继续执行 switch 后的普通字符追加,实际 I12 出现 E:\\\mb-ms-doc...,严格 JSON 解析在 offset 274 报 Unrecognized escape sequence。旧 L0/L1 还各自持有类似序列化逻辑,存在实现漂移。
修复原则:新链只允许一个共享 JCS writer;所有 JSON 证据必须调用该模块,禁止复制第二套 escape/排序/写入实现。
旧 I07 以 catch { exit 23 } 吞掉 exact L0 stop。实际 outer exit=23,但 I13 absent;既不能证明哪个 L0 check 失败,也没有在 I13 收口失败时升级 PACKAGE_UNCLOSED_STOP/27。
修复原则:L0 模块必须先以 CreateNew 持久化完整 I13,再抛出带固定 stop code 的 typed failure;outer 只有在 I13 严格解析、canonical 重算和状态校验全部通过后,才可返回 23。I13 absent/invalid/无法复验时唯一 final exit=27。
全新实现 run:RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001。
所有 target 均为新路径,禁止复用旧 I01—I16:
| ID | 路径 | role | media_type/schema |
|---|---|---|---|
| R01 | dev/ana-dev/AnaSemi.NativeProcessRunnerV006.R1.cs |
SOURCE | text/x-csharp; charset=utf-8 |
| R02 | dev/ana-dev/AnaSemi.JcsEvidenceWriterV001.psm1 |
SOURCE | text/x-powershell; charset=utf-8 |
| R03 | dev/ana-dev/Invoke-AnaSemiWrapperSelftestV006.R1.ps1 |
SOURCE_STATIC_ONLY | text/x-powershell; charset=utf-8 |
| R04 | dev/ana-dev/synthetic-child-v006-r1.ps1 |
SOURCE_STATIC_ONLY | text/x-powershell; charset=utf-8 |
| R05 | dev/ana-dev/test/Test-AnaSemiNativeProcessRunnerV006.R1.Static.ps1 |
TEST_SOURCE | text/x-powershell; charset=utf-8 |
| R06 | dev/ana-dev/test/Test-InvokeAnaSemiWrapperSelftestV006.R1.Static.ps1 |
TEST_SOURCE | text/x-powershell; charset=utf-8 |
| R07 | dev/ana-dev/test/V007ExpectedVectors.R1.json |
TEST_VECTOR | application/json; ANA-SEMI-V007-EXPECTED-VECTORS-R1-JCS-V001 |
| R08 | dev/ana-dev/test/Invoke-AnaSemiImplementationValidationV002.ps1 |
VALIDATION_ENTRY | text/x-powershell; charset=utf-8 |
| R09 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/staging/AnaSemi.NativeProcessRunnerV006.dll |
COMPILER_STAGING | application/vnd.microsoft.portable-executable |
| R10 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/build/AnaSemi.NativeProcessRunnerV006.dll |
BUILD_PUBLISHED | application/vnd.microsoft.portable-executable |
| R11 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/process/csc.stdout.bin |
RAW_STDOUT | application/octet-stream |
| R12 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/process/csc.stderr.bin |
RAW_STDERR | application/octet-stream |
| R13 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/process/csc.result.json |
PROCESS_RESULT | application/json; ANA-SEMI-IMPLEMENTATION-PROCESS-RESULT-JCS-V003 |
| R14 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/test/l0-static.json |
L0_RESULT | application/json; ANA-SEMI-IMPLEMENTATION-L0-JCS-V003 |
| R15 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/test/l1-contract.json |
L1_RESULT | application/json; ANA-SEMI-IMPLEMENTATION-L1-JCS-V003 |
| R16 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/test/jcs-canonical-contract.json |
JCS_CONTRACT_RESULT | application/json; ANA-SEMI-JCS-CONTRACT-RESULT-V001 |
| R17 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/test/l0-failure-closure-contract.json |
CLOSURE_CONTRACT_RESULT | application/json; ANA-SEMI-L0-CLOSURE-CONTRACT-RESULT-V001 |
| R18 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/process/validation-terminal.json |
TERMINAL_RESULT | application/json; ANA-SEMI-IMPLEMENTATION-TERMINAL-JCS-V001 |
| R19 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/receipt/implementation-receipt.md |
RECEIPT | text/markdown; charset=utf-8 |
| R20 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-V007-REPAIR-IMPLEMENTATION-20260725-001/manifest/implementation-source-manifest.csv |
MANIFEST | text/csv; charset=utf-8; ANA-SEMI-IMPLEMENTATION-MANIFEST-V005 |
target count=20,formal target count=0。R01—R20 和新 run root 必须在未来授权前全部 absent;任何预存在、reparse/path escape 或路径漂移均 STOP。源码和证据只允许 CreateNew/no-overwrite;失败后保留已物化子集,禁止修补或回填。
R02 唯一导出下列三个函数,R05、R06、R08 必须从同一绝对解析路径加载,且模块在加载前后均只能出现一个 module instance:
ConvertTo-AnaSemiJcsUtf8BytesV001(object value) -> byte[]Write-AnaSemiJcsCreateNewV001(string path, object value) -> fixed result objectTest-AnaSemiJcsFileV001(string path, string schemaId) -> fixed result object固定规则:
\",backslash 输出 \\,并支持 \b、\t、\n、\f、\r,每个输入 scalar 只消费一次;U+0000—U+001F 其余字符使用小写 \u00xx;非控制 Unicode 输出原始 UTF-8;未配对 surrogate STOP。FileMode.CreateNew;write 后 Flush(true)、关闭 writer、独占只读复开;严格 JSON parse 后以同一 writer 重序列化并要求 bytes 完全相等,再记录 bytes/SHA-256。以下 canonical byte preimage 及 hash 固定进入 R07,并由 R16 独立验证:
| vector | exact UTF-8 preimage(无尾 LF) | bytes | SHA-256 |
|---|---|---|---|
| JCS-PATH-001 | {"path":"E:\\mb-ms-doc\\project-info\\dev\\ana-dev\\tmp\\x"} |
60 | fdc584feaf575a8ba805867b1465f48be1f095639630cc10f13c58415a83d873 |
| JCS-ESCAPE-002 | {"path":"E:\\x\\\"q\\\"","tab":"a\tb","text":"中"} |
51 | 36113c2f15426ed6adc4c02224ddb3d19318c8a77fbf11dab373d29dba112220 |
负向向量至少覆盖:单反斜杠非法 escape、重复 escape、trailing LF、BOM、duplicate key、non-ordinal key order、浮点、未配对 surrogate、CreateNew 冲突和重序列化 byte drift。R16 每行必须记录 case_id,expected_status,actual_status,expected_stop_code,actual_stop_code,preimage_bytes,preimage_sha256,全部匹配才 status=PASS。
R05 的 L0 检查必须累计完整 ordered check rows,并确定唯一 primary_stop_code。离开 L0 之前必须调用 R02 CreateNew 写 R14;R14 顶层固定键:
schema_id,run_id,status,primary_stop_code,failed_check_id,check_count,passed_check_count,failed_check_count,checks,runner_assembly_path,runner_assembly_bytes,runner_assembly_sha256,expected_vectors_path,expected_vectors_bytes,expected_vectors_sha256,created_at
枚举:status=TEST_PASS|TEST_FAIL;PASS 时 primary_stop_code/failed_check_id=null,failed_check_count=0;FAIL 时二者非空、failed_check_count>=1,且 primary_stop_code 必须由第一个 ordinal check failure 唯一映射。R14 成功写入、复开、严格解析、canonical byte equality 和 hash 完成后,R05 才可返回 PASS 或抛出固定 typed L0 failure。禁止先 throw 再尝试补写。
R08 禁止 catch { exit 23 }。捕获 L0 typed failure 后按以下顺序:
primary_stop_code 与 failed_check_id 均属于 R07 固定枚举;status=TEST_FAIL 且 exact primary 与异常完全一致;primary_exit_code=23,primary_evidence_state=VALID_TEST_FAIL,closure_state=CLOSED,final_exit_code=23;primary_exit_code=23,但设 closure_state=PACKAGE_UNCLOSED,final_exit_code=27。R15 在 L0 primary failure 下必须 absent=NOT_RUN_UPSTREAM_STOP。R18 必须在退出前以 CreateNew 尝试持久化;若 R18 自身无法安全物化,则不伪造 closed package,由 native terminal 回报 PACKAGE_UNCLOSED/27 和已物化矩阵。
R17 以纯内存 reducer 验证以下固定 preimage,不启动子进程:
| case | exact UTF-8 preimage(无尾 LF) | bytes | SHA-256 |
|---|---|---|---|
| L0-CLOSED-001 | {"case_id":"L0_CHECK_FAIL_PERSISTED","closure_exit_code":23,"closure_state":"CLOSED","primary_evidence_state":"VALID_TEST_FAIL","primary_exit_code":23,"primary_stop_code":"STOP_L0_SOURCE_CANONICAL_DRIFT"} |
204 | 9f2a10fd3a9d0e245360fc2b747c0caa72420a893b7aca69a520af30fdcf8984 |
| L0-ABSENT-002 | {"case_id":"L0_EVIDENCE_ABSENT","closure_exit_code":27,"closure_state":"PACKAGE_UNCLOSED","primary_evidence_state":"ABSENT","primary_exit_code":23,"primary_stop_code":"STOP_L0_SOURCE_CANONICAL_DRIFT"} |
200 | 025c6b6639ac6be0d9632c63685a60b87608f0603cf16058f5229bf9e8ba4110 |
| L0-INVALID-003 | {"case_id":"L0_EVIDENCE_INVALID","closure_exit_code":27,"closure_state":"PACKAGE_UNCLOSED","primary_evidence_state":"INVALID","primary_exit_code":23,"primary_stop_code":"STOP_L0_SOURCE_CANONICAL_DRIFT"} |
202 | 76cf9f52a5953cba615355701b9c52ca12bcedfc4703d32882a1ed2be6949777 |
R18 顶层 key 集合固定且不得缺失/增加:
schema_id,run_id,primary_phase,primary_exit_code,primary_stop_code,primary_evidence_target_id,primary_evidence_state,closure_state,closure_stop_code,final_exit_code,materialized_target_ids,absent_target_ids,outer_process_count,csc_process_count,harness_process_count,synthetic_child_process_count,network_count,database_count,credential_count,status
类型与枚举:
schema_id=ANA-SEMI-IMPLEMENTATION-TERMINAL-JCS-V001;run_id 为本版固定 run。primary_phase=PASS|PRECHECK|CSC|PUBLISH|ASSEMBLY|MODULE|L0|L1|PACKAGE。primary_exit_code/final_exit_code=INT32,只允许 0|11..28;PASS 为 0。primary_stop_code/closure_stop_code=string|null,FAIL 时按 R07 固定 enum。primary_evidence_target_id=null|R13|R14|R15|R16|R17。primary_evidence_state=NOT_APPLICABLE|VALID_PASS|VALID_TEST_FAIL|ABSENT|INVALID。closure_state=CLOSED|PACKAGE_UNCLOSED|RECEIPT_CREATE_STOP|MANIFEST_CREATE_STOP。materialized_target_ids/absent_target_ids 为 ordinal 排序、无重复、全集恰好 R01—R20 的 string array。status=PASS|PRIMARY_FAILED_CLOSED|PACKAGE_UNCLOSED。退出优先级沿用 V004 的 0 与 11—28 总映射,新增约束只收紧 closure:任何 primary 若其必须证据 absent/invalid,均不得保留原 primary exit,唯一 final exit=27;未知状态仍为 28。尤其 L0:23+VALID_TEST_FAIL+CLOSED -> 23;23+ABSENT|INVALID|unknown -> 27。
R20 固定列序:
run_id,target_id,artifact_role,media_type,schema_id,path,expected_presence,materialized,exists,status,bytes,sha256,created_at,upstream_stop_code
(run_id,target_id);恰好 20 行、R01—R20 各一行;path 唯一。expected_presence=REQUIRED_ON_PASS|CONDITIONAL_ON_PRIMARY|SELF。status=SOURCE_FROZEN|COMPILER_STAGING_READY|COMPILER_STAGING_PARTIAL|BUILD_PUBLISHED|RAW_CAPTURED|PROCESS_RESULT_PASS|PROCESS_RESULT_FAIL|TEST_PASS|TEST_FAIL|TEST_OUTPUT_INVALID|CONTRACT_PASS|CONTRACT_FAIL|TERMINAL_PASS|TERMINAL_FAIL|ATTEMPTED_NO_OUTPUT|RECEIPT_FINALIZED|MANIFEST_SELF_EXTERNAL_HASH|NOT_RUN_UPSTREAM_STOP。TEST_FAIL;R14 absent/invalid 的物理状态分别为 NOT_RUN_UPSTREAM_STOP 或 TEST_OUTPUT_INVALID,R18 必须 PACKAGE_UNCLOSED/27。NOT_RUN_UPSTREAM_STOP。R16/R17 必须在调用 L0 前完成,避免 L0 failure 丢失修复合同的验收证据。唯一 DAG:
V007 design/audit + V005 plan/audit → R01-R08 → R16/R17 contract validation → csc/R09/R11/R12 → CreateNew publish R10 → R13 → unique LoadFile(R10) → R14 → R15 → R18 → freeze R01-R18 → R19 → R20(self hash blank) → external R20 bytes/hash。
L0 failure 的 closed DAG 为:...→R13→R14(TEST_FAIL)→R18(final 23)→R19→R20→external hash,R15 absent。L0 evidence absent/invalid 的 safe terminal 为:...→R13→attempt R14→R18(final 27);只有 R18 后续 receipt/manifest 安全闭合时才可物化 R19/R20,否则 native terminal 回报已物化子集。禁止 receipt 引用自身或 R20 hash;R20 记录 R19 hash,R20 自身 hash只由外部 handoff/audit记录,DAG 无环。
本计划审核 PASS 后,开发者只能向 management.admin 申请一个绑定新 run、新 authorization、新 attempt 和 R01—R20 的单次实现授权。授权未签发前仍为零物化、零进程。
未来实现允许的成功进程上限:outer PowerShell exactly 1,csc 0..1;L0/L1/R16/R17 均在 outer 内执行;harness/synthetic child/proof/config-editor/mysql/SQL/database/network/credential 均为 0。R03/R04 在本实现阶段只作静态 source,不执行。
任何失败立即 fail-closed;不得删除、覆盖、重命名、重跑、补造、回填或复用 run。Git 继续是 INFORMATIONAL_NON_BLOCKING_BY_HUMAN_OVERRIDE,不得 clean、stage、revert 或把其重新设为 STOP gate。root_never_readonly_proven=true,BATCH-001 与全部市场/业务动作继续 HELD。
请 dev.reviewer.ana.cai 只审核本修复计划,不执行源码、compiler、测试或数据库,并独立确认:
VALID_TEST_FAIL+CLOSED,absent/invalid 必定 exit 27。审核 PASS 后唯一下一步:把 V005 bytes/hash、审核 PASS、旧证据不变和 R01—R20/new run absent 的事实提交 management 请求新的单次实现授权。审核 HOLD 时只允许 append-only 新计划修订,不得物化任何实现 target。