创建人员: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
本 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。
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。
V003 的 generic module STOP 在 implementation validation 中唯一展开为:
STOP_L0_MODULE_DOTSOURCE_OUTPUT_DRIFT / exit 22。STOP_L0_MODULE_SUCCESS_OUTPUT_DRIFT / exit 22。STOP_L1_MODULE_DOTSOURCE_OUTPUT_DRIFT / exit 22。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 表,两个链不得混用。
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 或运行时推断。
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。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 的文字由本条完全取代。
下表新增到 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。
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。status=FAIL 只表示 check FAIL;module output drift 时 JCS 内部 status 可为 PASS 或 FAIL 的实际值,但 I16 target status 强制 TEST_OUTPUT_INVALID,primary stop 来自第 3 节,禁止伪称 TEST_PASS/TEST_FAIL。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。权威 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 更正记录有效。
复审只需判断:
BLOCK-DEV-PLAN-02 必须保持 CLOSED。复审 PASS 后仍只允许向 management 请求一次实现物化/验证授权;本文件不授权 I01-I16、compiler、test、harness、child、proof、config-editor、mysql、SQL、数据库或业务。开发目录和 run root 当前仍为空/不存在,Git 非阻断且不得修改,BATCH-001 继续 HELD。