edit | blame | history | raw

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

创建人员:dev.developer.ana.cai
创建时间:2026-07-24T20:20:00+08:00
计划 ID:DEV-PLAN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-R3
当前状态:PENDING_INDEPENDENT_PLAN_REREVIEW
角色:dev.developer.ana.cai
独立审核:dev.reviewer.ana.cai
实现授权:NOT_ISSUED

1. 适用范围

本 V004 是 append-only R3,仅关闭 AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PLAN-V003=HOLD/2/2 的两项剩余问题。V001/V002/V003 均保持历史不变;V003=20425 bytes / SHA-256 facce6a8ded0cde38d414605b3364dd5cd9669c5efa8ca447b21420d2510aeea,审计入口 ana-doc/案例审计报告.md:799

  • BLOCK-DEV-PLAN-02=CLOSED,V003 I08 compiler staging→I09 FileMode.CreateNew publish 合同完整继承,不再修改。
  • 本版为 BLOCK-DEV-PLAN-01 增加每个 assembly/module primary 的唯一 outer exit、I13/I14 物化结果和 closure。
  • 本版为 BLOCK-DEV-PLAN-03 增加 media_type literal、timeout exit 非空、attempted-no-output 与行级状态,并 append-only 更正 R2 账本 DAG。

与 V003 冲突时以 V004 为准;未提及部分全部继承 V003。

2. Outer exit 总映射与优先级

I07 验证进程只允许以下 exit code。每个已启动 I07 的 primary 必须且只能映射一个值:

exit primary / StopCode family
0 PASS
11 VALIDATION_PRECHECK_STOP / STOP_VALIDATION_PRECHECK
12 CSC_START_STOP / STOP_CSC_PROCESS_START_FAILED
13 CSC_TIMEOUT_STOP / STOP_CSC_TIMEOUT
14 CSC_NONZERO_STOP / STOP_CSC_NONZERO_EXIT
15 CSC_OUTPUT_INVALID_STOP / STOP_CSC_OUTPUT_INVALID
16 PUBLISH_STOP / STOP_BUILD_PUBLISH_CREATE_NEW_OR_VERIFY_FAILED
17 ASSEMBLY_PATH_HASH_STOP / STOP_ASSEMBLY_PATH_OR_HASH_DRIFT
18 ASSEMBLY_ALREADY_LOADED_STOP / STOP_ASSEMBLY_ALREADY_LOADED
19 ASSEMBLY_LOAD_FAILED_STOP / STOP_ASSEMBLY_LOAD_FAILED
20 ASSEMBLY_LOAD_CONFLICT_STOP / STOP_ASSEMBLY_LOAD_CONFLICT
21 ASSEMBLY_API_STOP / STOP_ASSEMBLY_PUBLIC_API_DRIFT
22 MODULE_STOP / L0/L1 dot-source 或 success-output phase-specific STOP
23 L0_STOP / 第一个 L0 固定 STOP
24 L1_STOP / 第一个 L1 固定 STOP
25 RECEIPT_CREATE_STOP
26 MANIFEST_CREATE_STOP
27 PACKAGE_UNCLOSED_STOP
28 STOP_UNKNOWN_CODE

closure 优先级固定:PACKAGE_UNCLOSED_STOP(27) > RECEIPT_CREATE_STOP(25) > MANIFEST_CREATE_STOP(26) > primary exit > PASS(0)。因此 primary 已失败但 I15/I16 收口失败时,outer 只返回 closure exit,并在 native terminal 同时记录 original primary/stop;禁止返回两个 exit 或用最后异常覆盖 primary 字段。I07 未启动的 SOURCE/OUTER_START failure 无 process exit,native terminal 使用 outer_process_started=false/exit_code=null

所有未知 exception/error/StopCode 必须转为 exit 28;不得映射到最接近的已知 primary。

3. Module phase STOP 与调用结果

V003 的 generic module STOP 在 implementation validation 中唯一展开为:

  • I04 dot-source output/count/type 漂移:STOP_L0_MODULE_DOTSOURCE_OUTPUT_DRIFT / exit 22。
  • I04 function success pipeline 非 0:STOP_L0_MODULE_SUCCESS_OUTPUT_DRIFT / exit 22。
  • I05 dot-source output/count/type 漂移:STOP_L1_MODULE_DOTSOURCE_OUTPUT_DRIFT / exit 22。
  • I05 function success pipeline 非 0:STOP_L1_MODULE_SUCCESS_OUTPUT_DRIFT / exit 22。

assembly path/hash/load/API primary 全部发生在 I13 前,绝不伪造 L0 执行。I04 dot-source failure 也发生在 I13 前。I04 function success-output drift 发生在 I13 已 CreateNew 后,I13 记录其内部 checks 结果,但 manifest status 必须=TEST_OUTPUT_INVALID。I05 dot-source failure 发生在 I13=TEST_PASS 后、I14 前;I05 success-output drift 发生在 I14 已 CreateNew 后,I14 status=TEST_OUTPUT_INVALID

L0/L1 的业务 check FAIL 继续使用 V003 exit 23/24 与 TEST_FAIL。这四种 module STOP 不得伪装成 L0/L1 check FAIL。

future authorized synthetic harness 的 generic module STOP 仍按 V003 caller exit 72/73/74;它不属于本 implementation outer exit 表,两个链不得混用。

4. I01-I16 media_type literal

I16 的 media_type 列只能使用下列逐 ID literal:

ID media_type
I01 text/x-csharp; charset=utf-8
I02 text/x-powershell; charset=utf-8
I03 text/x-powershell; charset=utf-8
I04 text/x-powershell; charset=utf-8
I05 text/x-powershell; charset=utf-8
I06 application/json
I07 text/x-powershell; charset=utf-8
I08 application/vnd.microsoft.portable-executable
I09 application/vnd.microsoft.portable-executable
I10 application/octet-stream
I11 application/octet-stream
I12 application/json
I13 application/json
I14 application/json
I15 text/markdown; charset=utf-8
I16 text/csv; charset=utf-8

不得从扩展名、Windows registry、MIME database 或运行时推断。

5. Attempted-no-output 与 timeout 修正

5.1 Attempted-no-output

manifest status enum 在 V003 基础上新增:

  • ATTEMPTED_NO_OUTPUT:该 target 的创建/生成动作已经开始或其 producer 已启动,但 target 最终物理 absent。
  • TEST_OUTPUT_INVALID:test JCS 已物化,但函数违反零 success pipeline 合同。

ATTEMPTED_NO_OUTPUT 行固定 materialized=false,exists=false,bytes=null,sha256=null,created_at=null,upstream_stop_code=primary stop。它不同于 NOT_RUN_UPSTREAM_STOP:后者表示 producer 从未进入。

逐 primary 适用:

  • CSC_TIMEOUT_STOP|CSC_NONZERO_STOP:若 I08 absent,I08=ATTEMPTED_NO_OUTPUT;若存在,按 V003 partial status。
  • PUBLISH_STOP:若 I09 absent,I09=ATTEMPTED_NO_OUTPUT;若存在,BUILD_PUBLISH_PARTIAL
  • CSC_START_STOP:csc producer 未成功启动,I08 仍为 NOT_RUN_UPSTREAM_STOP,不是 attempted。
  • assembly/module/L0/L1 primary 中 I08/I09 已成功,不使用 attempted。

5.2 Timeout exit

I12 status=TIMED_OUT 若可合法物化,必须同时满足 process_started=true,child_liveness=EXITED,finished_at non-null,exit_code non-null INT32,timed_out=true。kill/wait 后无法取得 exit code 或无法确认 EXITED 时,不构造 I12/I15/I16,唯一终态=PACKAGE_UNCLOSED_STOP/exit 27,由 native terminal 报 actual vector。V003 TIMED_OUT 允许 exit null 的文字由本条完全取代。

6. 新增 primary 向量(I01-I14)

下表新增到 V003 primary table;所有行 I01-I07=M(SOURCE_FROZEN)、I08=M(COMPILER_STAGING_READY)、I09=M(BUILD_PUBLISHED)、I10/I11=M(RAW_CAPTURED)、I12=M(PROCESS_RESULT_PASS)

primary I13 I14 stop exit
ASSEMBLY_PATH_HASH_STOP A(NOT_RUN) A(NOT_RUN) STOP_ASSEMBLY_PATH_OR_HASH_DRIFT 17
ASSEMBLY_ALREADY_LOADED_STOP A A STOP_ASSEMBLY_ALREADY_LOADED 18
ASSEMBLY_LOAD_FAILED_STOP A A STOP_ASSEMBLY_LOAD_FAILED 19
ASSEMBLY_LOAD_CONFLICT_STOP A A STOP_ASSEMBLY_LOAD_CONFLICT 20
ASSEMBLY_API_STOP A A STOP_ASSEMBLY_PUBLIC_API_DRIFT 21
L0_MODULE_DOTSOURCE_STOP A A STOP_L0_MODULE_DOTSOURCE_OUTPUT_DRIFT 22
L0_MODULE_SUCCESS_OUTPUT_STOP M(TEST_OUTPUT_INVALID) A STOP_L0_MODULE_SUCCESS_OUTPUT_DRIFT 22
L1_MODULE_DOTSOURCE_STOP M(TEST_PASS) A STOP_L1_MODULE_DOTSOURCE_OUTPUT_DRIFT 22
L1_MODULE_SUCCESS_OUTPUT_STOP M(TEST_PASS) M(TEST_OUTPUT_INVALID) STOP_L1_MODULE_SUCCESS_OUTPUT_DRIFT 22

这里 A 的完整 manifest 行为=materialized=false,exists=false,status=NOT_RUN_UPSTREAM_STOP,upstream_stop_code=本行 stop,其余物理字段 null。M(TEST_OUTPUT_INVALID) 的 bytes/hash/time 非空且 upstream=本行 stop。

上述每个 primary 均适用 V003 closure state:CLOSED 时 I15/I16 materialized 并记录 primary;RECEIPT/MANIFEST_CREATE_STOP 时按 closure 优先级返回 25/26;无法安全收口返回 27。不得把 assembly/module primary 改写成 L0_STOP。

7. I12/I13/I14/I16 行级总合同补充

  • I12 PASS 只能在 I09 CreateNew publish、exclusive reopen/hash equal 后物化;其 publish metadata 必须非空。
  • I12 failure status 与 V003 六状态表一一对应;PROCESS_START_FAILED 的 I08/I09 未运行,TIMED_OUT/NONZERO 的 I08 使用 partial 或 attempted-no-output,OUTPUT_INVALID 的 I08 必须 materialized invalid,PUBLISH_FAILED 的 I09 使用 partial 或 attempted-no-output。
  • I13/I14 status=FAIL 只表示 check FAIL;module output drift 时 JCS 内部 status 可为 PASS 或 FAIL 的实际值,但 I16 target status 强制 TEST_OUTPUT_INVALID,primary stop 来自第 3 节,禁止伪称 TEST_PASS/TEST_FAIL。
  • I16 status 总枚举升级为:SOURCE_FROZEN|COMPILER_STAGING_READY|COMPILER_STAGING_PARTIAL|COMPILER_STAGING_INVALID|BUILD_PUBLISHED|BUILD_PUBLISH_PARTIAL|RAW_CAPTURED|PROCESS_RESULT_PASS|PROCESS_RESULT_FAIL|TEST_PASS|TEST_FAIL|TEST_OUTPUT_INVALID|ATTEMPTED_NO_OUTPUT|RECEIPT_FINALIZED|MANIFEST_SELF_EXTERNAL_HASH|NOT_RUN_UPSTREAM_STOP
  • ATTEMPTED_NO_OUTPUT|TEST_OUTPUT_INVALID 必须 upstream non-null;成功 target upstream=null;failure/partial 继续按 V003。

8. Authoritative DAG 与账本更正

权威 DAG 唯一为:

V007 design/audit → I01-I07 → csc/I08/I10/I11 → exclusive CreateNew publish I09 → I12 → unique LoadFile I09 → I13 → I14 → freeze I01-I14 → I15 → I16 → external I16 bytes/hash

dev-doc/开发事项计划.md R2 条目中将 I12 写在 I09 前的压缩 DAG 为历史登记错误,不得用于实现。本版在根账本 append-only 新增更正记录,不覆盖原文;只有上述顺序与 R3 更正记录有效。

9. 复审与当前边界

复审只需判断:

  1. 每个 assembly/module primary 是否已有唯一 I13/I14/closure/outer exit。
  2. I08-I16 media_type、timeout exit、attempted-no-output、TEST_OUTPUT_INVALID 和总 status/null/upstream 是否唯一。
  3. R3 账本是否 append-only 更正 I09→I12 顺序。

BLOCK-DEV-PLAN-02 必须保持 CLOSED。复审 PASS 后仍只允许向 management 请求一次实现物化/验证授权;本文件不授权 I01-I16、compiler、test、harness、child、proof、config-editor、mysql、SQL、数据库或业务。开发目录和 run root 当前仍为空/不存在,Git 非阻断且不得修改,BATCH-001 继续 HELD。