DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-20260725-001DEV-PLAN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-IMPLEMENTATION-R6TASK-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-PLAN-20260725-003SUBMIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-PLAN-V007dev.developer.ana.caidev.reviewer.ana.caiCODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V00622258/8cbd64e1b764987ea0d142034713398b0be5ad616576cd561a280ccfa6c53c16AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-REPAIR-PLAN-V006=HOLD/3/3PENDING_INDEPENDENT_REPAIR_PLAN_REREVIEWNOT_ISSUEDV006 已关闭 BLOCK-REPAIR-PLAN-03,且工具、outer/csc argv、R16 12 行、R17 7 行、历史不可变和零物化均已独立复算通过。本版禁止回退这些合同,只关闭:
BLOCK-V006-01=PACKAGE_UNCLOSED_PRECEDENCE_REGRESSION;BLOCK-V006-02=PRIMARY_AND_SOURCE_TRUTH_TABLE_NOT_TOTAL;BLOCK-V006-03=NATIVE_FINAL_SCHEMA_NOT_UNIQUELY_TYPED。V005/V006 的 R01—R20 路径、新 run、R02 单一 JCS writer、R14-before-throw、exact tool/argv/LoadFile/timeout/order、R07/R16/R17 和无环 DAG 全部继承。旧 A001/I01—I16 仍 history-only。本版仍不授权实现、编译、测试、synthetic 或数据库。
final exit 唯一函数按下列顺序求值,命中后停止,禁止后续 closure 把结果降级:
R18.as_of_exit_code=27,则任何 C0—C7 的 final_exit_code=27。C1|C2|C7,final=27。C3|C4,final=25。C5|C6,final=26。C0,final=R18.as_of_exit_code。这保持继承优先级 PACKAGE_UNCLOSED(27) > RECEIPT(25) > MANIFEST(26) > primary > PASS。完整 combination table:
| as_of class | C0 | C1 | C2 | C3 | C4 | C5 | C6 | C7 |
|---|---|---|---|---|---|---|---|---|
B0 (as_of=0) |
0 | 27 | 27 | 25 | 25 | 26 | 26 | 27 |
BP (as_of=11..24|28) |
primary | 27 | 27 | 25 | 25 | 26 | 26 | 27 |
B27 (as_of=27) |
27 | 27 | 27 | 27 | 27 | 27 | 27 | 27 |
R07 closure_vectors 恰好 24 个 object,按 B0-C0..C7,BP-C0..C7,B27-C0..C7 排序;每个 key 恰好:
case_id,as_of_class,closure_id,package_closure_state,prepackage_terminal_state,r19_status,r20_status,final_rule
final_rule=ZERO|PRIMARY|EXIT25|EXIT26|EXIT27,逐格对应上表。package_closure_state=CLOSED;R19=RECEIPT_FINALIZED;R20=MANIFEST_SELF_EXTERNAL_HASH。R18_ABSENT|R18_INVALID;prepackage=ABSENT|INVALID;R19/R20=NOT_RUN_UPSTREAM_STOP。RECEIPT_ATTEMPTED_NO_OUTPUT|RECEIPT_PARTIAL_INVALID;R19 同名 status;R20=N。MANIFEST_ATTEMPTED_NO_OUTPUT|MANIFEST_PARTIAL_INVALID;R19 finalized;R20 同名 status。PACKAGE_STATE_UNCERTAIN;R19/R20 按 actual,final_rule 始终 EXIT27。新增固定 B27 package-failure vector:
{"as_of_exit_code":27,"case_id":"ASOF27_RECEIPT_FAILURE","closure_exit_code":25,"final_exit_code":27,"package_closure_state":"RECEIPT_ATTEMPTED_NO_OUTPUT"}15559241f6d54dfebfa52e69c7769e82a552fe6ced9e6f1d1250117f81aea0a5114eyJhc19vZl9leGl0X2NvZGUiOjI3LCJjYXNlX2lkIjoiQVNPRjI3X1JFQ0VJUFRfRkFJTFVSRSIsImNsb3N1cmVfZXhpdF9jb2RlIjoyNSwiZmluYWxfZXhpdF9jb2RlIjoyNywicGFja2FnZV9jbG9zdXJlX3N0YXRlIjoiUkVDRUlQVF9BVFRFTVBURURfTk9fT1VUUFVUIn0=R17 增加该第 8 行,expected=final_exit_code=27;不匹配则仍按 V006 P01=STOP_R17_L0_CLOSURE_CONTRACT/11,csc 不运行。
V006 P05 拆成两个字面 primary:
| ID / primary | csc exit | R09 | R10 | R11-R12 | R13 | stop / primary / as-of |
|---|---|---|---|---|---|---|
| P05A CSC_OUTPUT_MISSING | 0 | ATTEMPTED_NO_OUTPUT |
N | RAW | PRF | STOP_CSC_OUTPUT_INVALID/15/15 |
| P05B CSC_OUTPUT_INVALID | 0 | COMPILER_STAGING_INVALID |
N | RAW | PRF | STOP_CSC_OUTPUT_INVALID/15/15 |
P05A 只适用于 csc 成功退出、R09 producer 已进入但文件 absent;禁止标记 N。P05B 适用于 R09 materialized 但 PE/.NET identity/bytes/hash 无效。两行 R14/R15=N,R16/R17=CP,R18=PTF;再与 C0—C7 组合。V006 P05 由本表完全替代。
未来新授权中 R01—R08 必须严格按 ID 顺序逐一 CreateNew、write、Flush(true)、close、exclusive reopen/hash 验证;只有当前 target 完全 SOURCE_FROZEN 后才进入下一个。外层进程在八项全部完成前不得启动。
状态 enum 增加 SOURCE_PARTIAL_INVALID:source 文件已 materialized,但 write/flush/close/reopen/canonical/hash 不完整或不匹配;bytes/hash/created_at 按可安全取得的 actual,upstream 为该 target 固定 source stop。文件 absent 且 producer 已进入用 ATTEMPTED_NO_OUTPUT;producer 未进入用 N。
固定 STOP:STOP_SOURCE_CREATE_NEW_OR_VERIFY_FAILED_R01 至 ..._R08,每个只对应同 ID。SOURCE_CREATE_STOP scenario 恰好 16 行:
| scenario | R01..R(k-1) | Rk | R(k+1)..R08 | R09-R20 | outer/final |
|---|---|---|---|---|---|
| S01A—S08A | SOURCE_FROZEN |
ATTEMPTED_NO_OUTPUT |
N | N | not started/null |
| S01P—S08P | SOURCE_FROZEN |
SOURCE_PARTIAL_INVALID |
N | N | not started/null |
其中 k 由 scenario 数字决定;例如 S04A 的 R01—R03 frozen、R04 attempted absent、R05—R20 N。upstream_stop_code:Rk 及其全部下游 N 行均为该 STOP_SOURCE...Rk;已 frozen source upstream=null。external native final 固定:primary_phase=SOURCE_CREATE,primary_exit_code=null,primary_stop_code=STOP_SOURCE...Rk,prepackage_terminal_state=NOT_APPLICABLE,package_closure_state=NOT_APPLICABLE_SOURCE_OR_OUTER_STOP,final_exit_code=null,status=STOP_BEFORE_OUTER,所有 process/access count=0。
路径预检查在任何 CreateNew 前失败时为 S00:R01—R20 全部 N,stop=STOP_TARGET_ALREADY_EXISTS_OR_PATH_ESCAPE,其他字段同 SOURCE_CREATE_STOP。不得为收口创建 R18/R19/R20。
schema 保持 NATIVE-ANA-SEMI-IMPLEMENTATION-FINAL-V006。顶层字段、类型/null 固定如下:
| field | type | null/enum | |
|---|---|---|---|
| schema_id | STRING | exact schema,非空 | |
| run_id | STRING | exact new run,非空 | |
| authorization_id,attempt_id | STRING | future management fixed value,非空 | |
| started_at,finished_at | RFC3339 STRING | finished_at>=started_at;pre-write STOP 仍记录 source terminal 时间 |
|
| outer_process_started | BOOL | 非空 | |
| outer_exit_code | INT32 | null | started=true 时等于 final_exit_code 且非空;started=false 时 null |
| primary_phase | STRING | SOURCE_CREATE|OUTER_START|PRECHECK|CSC|PUBLISH|ASSEMBLY|MODULE|L0|L1|PACKAGE|PASS |
|
| primary_exit_code | INT32 | null | 0|11..24|28;source/outer-start 为 null |
| primary_stop_code | STRING | null | PASS 为 null;failure 为 R07 固定 STOP |
| prepackage_terminal_state | STRING | VALID_PASS|VALID_FAILED|ABSENT|INVALID|NOT_APPLICABLE |
|
| package_closure_state | STRING | V006 九值 enum,非空 | |
| final_exit_code | INT32 | null | 0|11..28 或 pre-outer null;按第 2 节求值 |
| artifact_rows | ARRAY[20] | 恰好 R01—R20、ordinal、无重复/缺项 | |
| r20_external_bytes | UINT64 | null | 仅 C0 非空 |
| r20_external_sha256 | HEX64 | null | 仅 C0 非空 |
| outer_process_count,csc_process_count | UINT16 | outer=0|1;csc=0|1 |
|
| harness_process_count,synthetic_child_process_count,proof_process_count,config_editor_process_count,mysql_process_count,query_count | UINT16 | 本阶段全部 0 | |
| database_connection_performed,network_access,credential_access | BOOL | 本阶段全部 false | |
| formal_target_count | UINT16 | exact 0 | |
| BATCH_001_status | STRING | exact HELD |
|
| darkline_restored | BOOL | exact false | |
| status | STRING | PASS|PRIMARY_FAILED_CLOSED|PACKAGE_UNCLOSED|STOP_BEFORE_OUTER |
每个 artifact_rows object key 恰好且类型固定:
| key | type/null | |
|---|---|---|
| target_id | STRING enum R01—R20,非空 | |
| expected_presence | V006 六值 STRING enum,非空 | |
| materialized,exists | BOOL,必须相等 | |
| status | V006+SOURCE_PARTIAL_INVALID 完整 STRING enum |
|
| bytes | UINT64 | null |
| sha256 | HEX64 | null |
| created_at | RFC3339 STRING | null |
| upstream_stop_code | R07 STOP STRING | null |
行级联动:
SOURCE_PARTIAL_INVALID|COMPILER_STAGING_PARTIAL|COMPILER_STAGING_INVALID|BUILD_PUBLISH_PARTIAL|PROCESS_RESULT_FAIL|TEST_FAIL|TEST_OUTPUT_INVALID|CONTRACT_FAIL|PREPACKAGE_TERMINAL_FAIL|RECEIPT_PARTIAL_INVALID|MANIFEST_PARTIAL_INVALID 均为 failure 状态。| status | outer | primary | prepackage | closure | final | R20 external | |||
|---|---|---|---|---|---|---|---|---|---|
| STOP_BEFORE_OUTER | false/exit null/count0 | source/outer,exit null,stop non-null | NOT_APPLICABLE | NOT_APPLICABLE_SOURCE_OR_OUTER_STOP | null | null/null | |||
| PASS | true/exit0/count1 | PASS/0/null | VALID_PASS | CLOSED | 0 | non-null/non-null | |||
| PRIMARY_FAILED_CLOSED | true/exit=final/count1 | failure/non-null/stop | VALID_FAILED | CLOSED | primary 11..24|28 |
non-null/non-null | |||
| PACKAGE_UNCLOSED | true/exit=final/count1 | PASS/0/null 或 failure/non-null/stop | VALID_PASS | VALID_FAILED | ABSENT | INVALID | C1—C7,或 B27+C0 | 25|26|27,按第2节 |
仅 B27+C0 可非空;其他 null |
额外约束:
package_closure_state=CLOSED ⇔ R19=RECEIPT_FINALIZED、R20=MANIFEST_SELF_EXTERNAL_HASH、R20 external 非空。ABSENT|INVALID、final=27。outer_exit_code 是实际唯一 outer 返回码;不存在“outer 返回 25 但 native final 声称 27”。R07 除 24 个 closure_vectors 外,固定 native_final_examples 恰好 10 行:
每行必须逐字段提供第 5 节全部顶层值和 20 个 artifact_rows,不得使用 wildcard、same as 或省略 null。实现者从 R07 反序列化这些 literal object 后,使用同一 reducer 重算 actual;10/10 才允许 R16/R17 之后进入 csc。任一 drift=STOP_R17_L0_CLOSURE_CONTRACT/11。
V006 P00—P04、P06—P22 保持;P05 仅由本版 P05A/P05B 替代。V006 C0—C7 的最终值仅由本版第 2 节取代;其 path/status/DAG 不变。source/outer-start 仅使用本版 S00/S01A—S08P external terminal,不创建 package。
权威 DAG 仍为:R01-R08 → R16 → R17 → csc/R09/R11/R12 → R10 → R13 → LoadFile → R14 → R15 → R18 → R19 → R20 → external native final。任何 pre-outer stop 在 DAG 之前结束。
独立复审 PASS 后仍只允许向 management 提交 V007 与审核终态,请求全新单次实现授权;本文件不授权 R01—R20、新 run、compiler/test/synthetic/database。旧 A001/run/I01—I16 保持不可变,Git 非阻断且不得 clean/stage/revert,BATCH-001 继续 HELD。