# 半导体行业根 canonical 迁移 genesis 执行绑定 V002 ## 1. 事项与目标 - task:`TASK-ANA-SEMI-CANONICAL-MIGRATION-20260829-001` - case:`ANA-SEMI-20260722-001` - batch:`BATCH-053-CANONICAL-MIGRATION` - run:`RUN-ANA-SEMI-CANONICAL-MIGRATION-20260829-001` - 目标:关闭候选审核的两个执行阻断,使645份旧案例成果可以一次迁入行业根 canonical 结构,并在成功后把旧核心树归入审计包。 - 内容边界:不修改研究事实、公司范围、图谱结论、证据强度或估值结论;只处理存储拓扑、入口、manifest、血缘和可恢复发布。 ## 2. 审核阻断与关闭方式 ### 2.1 legacy acceptance 与 archive lineage `legacy_case_path_map.csv`扩为645行完整血缘表,逐行绑定旧路径、canonical目标、旧/新bytes与SHA-256、迁移审核、预期终态、审计归档路径和恢复依据。历史普通L1文档不存在逐文件正式审核号的事实被明确记录为`LEGACY_L1_SEMANTIC_ACCEPTANCE_NO_PER_FILE_AUDIT`,不补造旧审核。 ### 2.2 genesis publisher、manifest self、receipt 与 recovery 公共`DIRECT_STABLE_PATH_SET_V1`增加严格、向后兼容的`ABSENT_GENESIS_V1`前态:prior rows、cases/result current、current state和全部目的地必须在首写前为ABSENT。首次发布继续使用既有exclusive lock、同卷staging、原子recovery anchor、17列事件链、逐边界回滚、严格重放和cases current最后激活合同。 `candidate_output_manifest.csv`为648行,覆盖644份核心文档、legacy map、current manifest、result thin current和cases current;`current_output_manifest.csv`为647行,manifest self由配置中的正式路径、bytes与SHA-256单独绑定。 ## 3. 冻结身份 - publisher:`dev/ana-dev/shared_content_publisher/direct_stable_path.py|96655|4AC9BB06DDC7483281B8957CB645213D377CB6034FF9257B7C4E99983B5D469D` - schema:`dev/ana-dev/shared_content_publisher/batch_config.direct_stable_path_set.schema.json|13501|34329BCE8AC29C26C359CEFD438E13ED43C094D817E5DCCD8767A2387F436D93` - README:`dev/ana-dev/shared_content_publisher/README.md|5631|5349BBDAA72E87C25F60A5F8DC2B24B5648993557EBE73C034518C5078F7586F` - legacy tests:`dev/ana-dev/test/test_shared_content_publisher_v1.py|34875|F5B5FCD4CD9DE879BC7AFD0BB57AC86F34B57F81AA6CC68A58CE4B2E80B3446F` - direct/genesis tests:`dev/ana-dev/test/test_shared_content_publisher_direct_stable_path_v1.py|62126|570877FFB9933015C60691045103C2537A1173EE1C8ABA915A0ACE4506387B77` - generator:`prepare_execution_binding_v002.py|18288|2651FA10B5E7649DAAA27CAE3C019B24B53A23514E69B968EDA74D818F8AE1AE` - production-shaped runner:`test_execution_binding_v002.py|8108|ED0BB854C1A75C7A3683A803FE07D7E7F036B8F91964F67DD0F724754290D5D9` - config:`batch_config.json|451351|97FBDE6E0B98700438FBF764ECCB24F6E7E52C246AA350C9988E0788C847218C` - seed ledger:`genesis_promotion_ledger.csv|1002|A84E8C0EAE4B4991A346FC6A9D7E9191BDE0A211EE34313545588898E76D6CF2` - candidate manifest:`147387|D34AF0C7AD17C4B585ED249392576C9CF3547245000F4DCACFFC60A5953BE326` - current manifest:`108926|46DC09BEF1DBF62D530C9ECD43D00A5789E12A7764DECE168169BBFDF020CCF3` - legacy map:`604977|26CF77F60638112181716A8D5E02CD60BE19601554302B5997020580AD60E1EB` - candidate release set:`3A132AB8C97196D7FDB8E3562A8131FF2D67A4DAFA98B3873C808624CEA0A3C6` - release id:`474859c4c2f6204cace259ef76dff1b44ab6f18c68e9a8baab6e22d2b2db3ff7` ## 4. 验证 - compileall:PASS。 - shared publisher legacy + direct/genesis:`36/36 PASS`,351.839秒。 - 真实648项生产形态隔离执行:`VALIDATION_PASS → COMMITTED → IDEMPOTENT_COMMITTED`。 - current manifest:647行;legacy archive:645行;ledger:`BASELINE_FROZEN → PREPARED → VERIFIED → COMMITTING → COMMITTED`。 - formal drift/archive drift:`0/0`;隔离归档后legacy current:absent。 - 旧农业回归夹具改为读取已提交attempt的不可变prior snapshot;不再从会变化的生产current推断历史前态。 ## 5. 执行与停止边界 - 聚焦复核PASS前,半导体正式canonical目标、ledger、lock、attempt receipt均保持ABSENT,旧645份核心树保持原位。 - PASS后仅执行这一份冻结config:先创建明确列出的普通非reparse父目录和seed ledger,再调用一次publisher;只有`COMMITTED/0`且648目标全量回读通过后,才把旧核心树整体移动到本run审计包。 - 任一identity、路径、卷、reparse、目标预存在、ledger、event chain、manifest、链接或读回不一致均失败关闭;不得逐文件补写。 ## 6. 聚焦复核 - handoff:`HANDOFF-ANA-SEMI-CANONICAL-MIGRATION-EXECUTION-BINDING-FOCUSED-REREVIEW-20260829-001` - audit:`AUDIT-ANA-SEMI-CANONICAL-MIGRATION-EXECUTION-BINDING-FOCUSED-REREVIEW-20260829-001` - 请求结论:`PASS/0`或完整`HOLD/N`。 ## 7. V003 发布后旧目录归档闭环 V002 聚焦复核确认 genesis publisher 已关闭,但对旧树的处理仍只有隔离环境中的一次 `os.rename`,缺少正式回执、失败终态和重启恢复,因此结论为 `HOLD/1`: `BLOCK-ANA-SEMI-CANONICAL-01` 部分关闭。V003 只补这一处,不改候选内容、648项发布 配置、647行 current manifest 或645行血缘映射。 新增公共 `postcommit_archive` 协调器及严格 schema。它只在发布器完整回放为 `IDEMPOTENT_COMMITTED` 后工作;先以 CreateNew 形成归档合同、legacy map 和 manifest 三件套回执锚,再以同卷一次目录原子改名把旧核心树移入审计包,最后原子发布终态。 重命名前后中断均由同一配置恢复;source/target 同时存在或同时缺失、回执部分写、旧树、 归档树或 canonical 树漂移统一 `RECOVERY_REQUIRED`。 冻结身份: - coordinator:`dev/ana-dev/shared_content_publisher/postcommit_archive.py|26319|75F331F49F04C29890D5A3CB4BEAB513565D3E8203958E16A68B1761D11BD1AB` - schema:`dev/ana-dev/shared_content_publisher/postcommit_archive.schema.json|3121|282759F61F2CC8E4C52902D51CB2C7BC3AA8BCD2E1336593472F7A72EFC8EB22` - tests:`dev/ana-dev/test/test_shared_content_postcommit_archive_v1.py|11231|3188383C31AA2A8188CAD056550638F06105829E3798D826786C9BD24EB1C6CE` - production config:`successor_binding_v003_archive/postcommit_archive_config.json|1881|7FFA43D39E0A3988A97D9A97906D4B7BF0C76528E6B45592A882CD7BF1366386` - binding summary:`1192|205127BF703F72C18F5802878B0E75387A132DC48494731D5478FC0DFC2BA717` - bootstrap plan:`711|5404B2546F5859E21AACB112A013A2E87FAE7AAB8F434998239C14AF38A84144` - production-shaped evidence V002:`558|B56B73A941F47A88D6A21AF3247E268573785EC851BFAD931122D7412BBB9081` - binding generator:`prepare_postcommit_archive_binding_v003.py|6519|11A9DD7DB1C9B746711F88EECD53FDB54B6F63A927B3B31CDC18137B453D9C26` - production-shaped runner:`test_postcommit_archive_binding_v003.py|5811|C28B02B37BBDAAF1F21E8323DC88FBC943FE8E90AE68A0991DD2659185B72BC2` - V001 supersession:`659|3FAC2BD6E3D549605C1478620B2CB754CB562EEDCBBE451124795FC91843BEA7` 生产形态测试使用真实648项候选和645行旧路径:publisher=`COMMITTED`,archive= `ARCHIVED→IDEMPOTENT_ARCHIVED`,回执 exact-set 为 contract/map/manifest/terminal 四件, 正式目标前后均保持全部 ABSENT。V001 测试证据因普通 `Path.iterdir()` 未处理 Windows 长路径而漏报回执成员,已由 V002 使用 long-path-safe 枚举完整取代,不作为审核依据。 本后继的唯一审核为 `AUDIT-ANA-SEMI-CANONICAL-MIGRATION-POSTCOMMIT-ARCHIVE-FOCUSED-REREVIEW-20260829-001`; PASS/0 前不执行正式 publisher 或 archive。 ## 8. V004 完整648项回读与独立授权 legacy 恢复 V003 聚焦复核独立复现归档suite `5/5 PASS`,但用一个新反例证明:归档后只篡改 result薄索引,旧实现仍返回 `IDEMPOTENT_ARCHIVED/0`。原因是 archive replay 只复核 legacy map覆盖的645个canonical目标,没有复核完整648项正式发布集;同时V003未提供 前审要求的独立授权 legacy 原路径恢复动作。因此 V003 结论为 `HOLD/1`。 V004 从冻结 publisher config 解析全部648个 formal rows;每次首次归档、归档后重放和 回退前都逐项验证core、manifest-self、cases/result两入口,复算完整集合digest,并从 正式ledger重新验证全部17列事件链、严格UTC/顺序、terminal digest和lock absence。 result/current-manifest/cases-index任一单独漂移均 `RECOVERY_REQUIRED/30`。 另增独立 rollback schema 与CLI。恢复必须使用另一个严格config,绑定原archive config及 terminal bytes/SHA、唯一 `AUTH-*`、`AUDIT-*`、`ROLLBACK-*` 和operator;先持久化独立 rollback contract/archive-terminal/manifest回执锚,再一次no-overwrite原子改名恢复legacy 原路径,最后原子发布terminal。成功与回放分别为`LEGACY_RESTORED`和 `IDEMPOTENT_LEGACY_RESTORED`;回退完成后原archive config被明确拒绝,不能再次归档。 V004冻结身份: - coordinator:`43031/DBAAE5BEAEBEF1A8C4778F1064C2F17F7F196E997AA4DCBB1B7CF6218E293DD1` - archive schema:`3121/282759F61F2CC8E4C52902D51CB2C7BC3AA8BCD2E1336593472F7A72EFC8EB22` - rollback schema:`2755/0A2D347ACD114F7FB60C73741FD50AF69D654ED707134E6E7088CAB81FCA4A18` - README:`7507/12FB57D13AD78DE45DB64473132E5EBAC008443A6FEF47547A644AB5E2F7E6FC` - tests:`17283/6EB54367593246450BBD9D88A095B25D1DBCF3768C368C42F61430063A288AB5` - production-shaped runner:`8550/981F9954A933A9E56FBCD173CA49304D87B91D96C9DD327A994F8DBFCBCA0830` - production-shaped evidence V003:`688/CA8699BE0F4068C5CFE7B03AB2FF35402E64046F14DCC0D8E6CD93D58B6E0D2E` - rollback recipe:`2324/304EAA9BDC12FD5F66C8F8E6F94B86941528D715257731670602C93F1CC3DB07` 完整archive/rollback suite=`8/8 PASS / 573.080s`;额外单独复现完整648项三入口篡改和 授权恢复正例=`2/2 PASS / 125.777s`、4个rollback持久化边界=`1/1 PASS / 129.185s`。 生产形态真实规模为 `COMMITTED→ARCHIVED→IDEMPOTENT_ARCHIVED→LEGACY_RESTORED→IDEMPOTENT_LEGACY_RESTORED`, 正式 mutation=0。生产迁移只使用archive路径;rollback recipe不是当前执行授权。 ## 9. V005 rollback rename 后重启完整复核 V004聚焦复核的标准suite虽为`8/8 PASS`,但定向反例发现:进程在 `INTERRUPT_AFTER_ROLLBACK_RENAME`中断后,legacy已恢复而terminal尚未发布;若此时 result薄索引漂移,同配置重启会漏过完整正式集门禁并错误返回幂等成功。 V005在任何rollback terminal创建或重放前,无条件重新验证archive anchor、648项正式 集合、17列事件链、publisher lock、canonical 645项及恢复后的legacy 645项。新增同一 中断点后的result薄索引漂移反例,预期并实际返回 `RECOVERY_REQUIRED/PUBLISHER_FORMAL_IDENTITY`。 - coordinator:`43602/E7D1DC6892FB50B01E1D1325F050348891FF81D9926E2E7AF007204E89AC2C09` - tests:`18390/D24262420F8A1E0B1F5CBCBFC7FD8E22E0E54A0863C37224BC95C58BC3265F89` - 定向反例:`1/1 PASS / 57.814s` - 完整archive/rollback suite:`9/9 PASS / 610.058s` - production-shaped runner V004:`8552/FC6759D0003B908A49397DF42E76CE483CF5F33995B8915351F695EF7F27005A` - production-shaped evidence V004:`688/875C3F6648632BFE904547995FE817C30C7BA51CD99D27CEEAC1B21EFA4E42E7` 正式publisher/archive/rollback仍为`0/0/0`,canonical目标全部ABSENT,legacy保持 645份、4,805,301字节;仅等待同链最终验证。