Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer, web workflow engine and protocol, tooling, docs and task records. Large generated evidence, user-testing archives, build snapshots and imported test assets remain untracked. Co-Authored-By: Claude Code <noreply@anthropic.com>
6.8 KiB
既有成果复用与实施交接规则
本规则仅供当前工作包使用。任务 WBV2-P1424-001 / parent WBV2-P1424-000 / nextTask=null 不变。
首要约束:接续十多天已有移植成果
- 本计划的 DW 编号是“功能补齐责任包”,不是 31 个从零重做的项目。已有 16 模块、34 任务、原生主入口、Python、GPU 与本地候选全部作为基础保留。
- 领取时只读执行队列、当前上下文、本阶段小入口及当前一张 DW 卡;复用证据按需取一个结果的 summary/remaining/changedFiles,随后只检索列出的精确生产入口。不要默认加载总规划、所有 status、完整 route catalog 或 inventory。
- 第一个实现动作是定位同一功能现有 producer→protocol→Worker→consumer→history/storage,辨别“已有实现”“只差接线”“缺必要依赖”“真实缺失”。已有完整实现仅引用并保留,不重复编码/复制协议/创建新 Worker。
- 旧任务卡 planned、早期 remaining、历史 LINK_BLOCKED 和总表 in_progress 都不能单独证明代码尚未实现。结合后续 scoped handoff 和当前聚焦源码判断,不运行验证来决定是否重做。
- 优先复用已有源码、OCCT WASM、WebEngine/Python/Naga、模块及候选。只在所需范围读取其版本/接口/已记录哈希;产物需适配或缺失时增量生成,生成时记录 SHA-256。不得把哈希元数据当功能通过证据,不开展独立证据审计。
- 未在该包聚焦阅读过的原生 operator/node/modifier,不宣称已明确缺失;领取后按模块小批量定位,保留实现存在但未验证这一状态。
共同实现契约
一个连贯包包括真实用户入口、原生 Blender 5.2 operator/reader/context、协议/Worker、生产者/消费者、Main/资源所有权、错误/取消、undo/redo 与 save/reopen 的适用语义。UI、GPU、bpy 围绕同一工作流补依赖;这些角色不是可各自宣称全局完成的独立项目。
功能实现必须使用原生 WebEngine/WASM 路径;JS 只作浏览器能力接线。几何运算统一到已有 OCCT 出口,需要的算法语义在此扩展绑定/适配;不能另建平行几何实现。Three.js 只显示。现有服务端/本机能力保留可用性,但不记成 browser-native 移植完成。浏览器等价能力须保留操作者目的、数据与错误语义;纯 OS 机制差异必须有实际可用替代,不用禁用按钮算完成。
每包先沿用旧源代码,再补具体断点。跨包依赖可先实现最小共享接口并回到业务;dependsOn 表示完整交付所需接口,不禁止提前完成独立子项。发现新依赖写入包内剩余,不默认全量重排队列。多个包涉及同一文件时以一个生产所有者串行写入,必要 build/package 串行复用,不能并发覆盖同一产物。
全部功能实现前不运行测试、回归、冒烟、浏览器验收、类型检查、独立语法检查、上下文检查、性能基准或证据审计。源码阅读是定位实现,不能出具验证通过结论。只为生成所需构件做必要增量编译;编译成功不等于功能完成。
每轮交接(不作为验证命令)
报告必须列:业务入口;原生 operator/create-info 与 source path;复用的既有结果/构件;保留实现;本轮补齐的具体缺口;仍未实现的精确路由/原因/下一动作;产物及版本元数据(若生成);implementationStatus;validation=NOT_RUN;acceptance=NOT_CLAIMED。不以报告数、循环数、文件数或路由分类数统计完成功能。
状态分开记录:reuse_assessment_pending → implementing_gap / blocked_concrete → implemented_unverified → ready_for_user_use → user_confirmed。计划中的 planned_gap_closure 只表示尚未记录本计划交接,不否认其已有代码。记录包含 codeOrigin 和 previousResult,允许已完整实现的子项直接保留为 implemented_unverified;不虚构本轮开发或通过结果。
缺口条目最低字段:workflow、operator/node/modifier/reader、sourceUnit/sourcePath、entry、producer、consumer、executionRoute、missingBehavior、ownerPackage、nextRepair、implementationStatus。设备或编译器暂不支持仍是明确缺口,不能删除或把“不支持”标成已实现。
每 30 分钟或 3 次实现交接做一次本包聚焦源码梳理;重复同一业务阻塞提前处理。此举不是运行验证。先修源码/绑定/依赖;未解决则保留构件,继续无此依赖的子项,不循环生成无实现变化的报告。实际功能仍未完成,不得通过改状态跳过。
产物和交接状态
完成一包说明实现的业务语义闭合,但运行结果仍未验证。每包涉及的逻辑接口与必要构件持续对齐,最终 DW31 汇总完整候选;不能把所有集成拖到最后才发现只有孤立源码。旧已发布产物和候选保留,本阶段不发布部署。
现有 desktop-delivery-manifest 的七阶段 ID 和 focusOrder 保留。新增的包索引是交接计划,现有调度器仍按 stage/focus 工作;不声称它已具备自动 DW DAG 调度。下一安全轮次从阶段 focus 中读取小入口,再沿最新交接选择一个包。不能把完成一张 DW 卡当作整阶段 focus 完成。
队列只认根 manifest 的 nextTask;DW/CS 不创建新的队列任务,不手动推进主队列。计划不会启动、停止或重置已有执行进程。遇到旧阶段进度滞后,按现有真实实现补交接,不能重做业务。
后续用户使用
所有目标功能实现完成后进入 USER01,操作者在 Chromium 使用时测试。此时收集具体操作/素材/版本/预期/实际,按原包修复并继续使用;不能提前要求用户代测每个未实现包。仅本包完成不解锁任何中途验证。
源码覆盖记录沿用当前目录历史快照:unitCount=3802、verifiedUnits=1025、unverifiedUnits=2777、sourceTreeSha256=311791df5e2b96c31ee9cefd5ab0c9a8ded87309f1a814c3b92dec328a607d6a。未刷新、不代表当前树哈希;本次计划新增绑定/验证均 0。后续只记实际绑定增量,不伪造 verified 增长。
跨包共享接口的交付次序
新计划按 DW 业务依赖领取;旧 CS 卡的 dependsOn 是原专项的串行安排,只作为历史技术参考,不再叠加为第二套硬性调度约束。DW16 先交付通用 image/resource/cancel/recovery 机制,DW19 再接 compositor 消费者,DW30 最后补跨业务系统恢复;CS10/CS11 的跨消费者条目分别随相应包关闭,不要求先完成 compositor 才实现图像后端。DW12 的基础资产事务可以先完成,渲染型预览由 DW17 共同关闭;此类跨阶段必要接口在当前业务阻塞时提前实现,不等到正式阶段切换才补。任何被拆到其他责任包的条目必须保留 ownerPackage,当前包不能把尚缺结果标成完整交付。