# Round 69 工作计划:北海造船场景高拟真 SYNTHETIC APS 数据包 日期:2026-08-03 ## 1. 目标与真实性边界 在当前仓库直接实现一个可重复执行的 Python 数据生成器,并生成完整目录 `beihai-shipyard-aps-data/`。数据用于 APS 开发和验证,严格声明: - `datasetType = SYNTHETIC` - `organizationScenario = BEIHAI_SHIPYARD_APS` - `timezone = Asia/Shanghai` - `generatedFor = APS development and validation` - `dataDisclaimer = 模拟数据,不代表北海造船真实业务数据` - 项目、人员、供应商、船东及全部业务参数均为模拟,不得表述为北海造船内部 ERP/MES/PLM/WMS/SRM/QMS 数据。 ## 2. 交付范围 ### 2.1 生成器与 CLI 新增 `server/shipyard_synthetic/` 包和 `scripts/generate_beihai_shipyard_aps.py`,支持: - 固定随机种子,默认 `20260901`; - `--scale small|standard|full`,默认 `full` 满足附件最低规模; - `--project-count 1..4`; - `--output`; - `--incremental`:确定性业务 ID 不复用,以内容哈希跳过未变化文件;删除语义使用 tombstone/status,不静默复用旧 ID; - `--scenario baseline|material-delay|crane-failure|dock-delay|design-change|all`; - `--validate-only`; - JSON、CSV、统一 `world.json`、统计和校验报告。 ### 2.2 数据域 完整覆盖: 1. 四个 BH-SYN 船舶合同/项目与 18 类里程碑; 2. 项目→专业→区域→总段→分段→托盘/区域工作包→生产任务→工序 WBS; 3. 图纸与工程发布、EBOM/PBOM/MBOM; 4. 物料、替代料、库存、分配、计划收货、齐套; 5. MAKE/BUY/OUTSOURCE/STOCK 分类和净需求明细; 6. 工艺路线、前后置、工序资源/技能/质量要求; 7. 组织、车间、工作中心、设备、船坞、码头、胎架、堆场、涂装房、起重机、运输、班组、人员、日历与班次; 8. 生产工单、采购建议、委外建议、有限能力排产、资源负荷、瓶颈、冲突、KPI; 9. MES 模拟下发/报工、领料、质量检验、不合格和返工; 10. baseline 与 4 个异常场景、局部重排和方案对比; 11. 20 个船舶 APS Skill manifest 与 schema; 12. 20 类以上 SYNTHETIC RAG 知识资产和 evidenceRefs; 13. expected 结果、完整性/约束/质量报告和数据字典。 ### 2.3 最低 full 规模 - 4 项目、72 里程碑; - 280 分段、72 总段、1,000 工作包、4,000 WBS 生产任务; - 12,000 物料、50,000 BOM 行; - 220 工艺路线; - 2,400 生产工单、12,000 工序、12,000 排产槽位(4 艘船各 3,000 道工序,解决附件局部/全局规模交集); - 150 设备资源、60 班组、40 供应商; - 550 采购建议、140 委外建议; - 180 风险/冲突记录; - 120 RAG 知识条目(20 类各至少 6 条)。 ## 3. 架构与算法 - 生成器完全确定性:稳定 ID、稳定排序、固定基准日 `2026-09-01`,不使用当前时间进入业务内容。 - `world.json`/领域 JSON 是规范模型,CSV 为同版本的确定性投影;领域记录以 `DatasetBundle` 聚合,CSV 表由单一 table registry 导出; - BOM 展开与净算输出 gross / stock / releasedAllocation / plannedReceipt / substitute / safetyStock / scrap / netRequirement 明细;供应语义拆为 `sourcingMode=MAKE|BUY|OUTSOURCE|OWNER_SUPPLIED` 与 `fulfillmentMode=STOCK|TRANSFER|PLANNED_RECEIPT|NEW_SUPPLY|DESIGN_PENDING`; - MAKE 必须绑定 routing,BUY/OUTSOURCE 必须绑定供应商或进入显式风险; - baseline 采用滚动时域瓶颈启发式 + RCPSP 风格资源序列:按项目优先级、里程碑、物料可用日、前置工序和资源能力排入唯一资源时间轴; - 船坞、码头、胎架、涂装房、起重机为独占资源;尺寸/重量、技能、日历、Hold Point 为硬约束; - 多方案固定为 7 类:交期优先、资源均衡、成本优先、加班最小、船坞优先、风险最小、综合推荐;输出算法、输入摘要、约束数、求解状态、时间、gap、软代价、归一化方法、降级原因和证据; - 生成 15 类异常事件;附件列出的 4 个 canonical scenario 文件聚合其中关键事件,同时增加 `scenarios/events/` 保存每个事件的 input/before/after/diff;采用冻结区保护 + 半冻结影响报告 + 自由区局部修复;不可满足时输出 `INFEASIBLE`、冲突核心和解除建议,不伪造成功。 ## 4. world.json 接入 统一 world 同时包含: - 顶层 `datasetMetadata` 和完整 `shipyard*` 数据域; - 现有 APS 兼容投影:`flexMaterials`、`flexOrders`、`flexRoutings`、`flexEquipment`、`flexScheduleVersions`、`flexWorkOrders`、采购/委外/自制建议; - `planningSourceHash`、输入版本、scenarioId、algorithmEvidence、explanations; - 不接触或覆盖 `server/data/**` 现场文件。 ## 5. 校验与验收 必须生成并验证: - 外键错误 = 0; - 未解释排产决策 = 0; - 未标记资源重叠 = 0; - baseline 未标记硬约束违反 = 0; - MAKE 无 routing = 0 或显式数据质量异常; - BUY/OUTSOURCE 无供应商 = 0 或显式供应风险; - 采购建议都有净算明细; - 生产工单都有 routing/resource requirement; - 委外建议有前后工序和供应商; - 四项目都有 milestone/baseline/schedule version; - 固定种子双次生成内容哈希一致;不同种子至少 manifest/sourceHash 不同; - full 规模满足下限,CSV 行数与 manifest 统计一致; - JSON Schema 校验通过; - `world.json` 可被现有 `WorldStore` 隔离加载; - 真实业务文件哈希前后不变。 ## 6. 写边界 - W69-CONTRACT:`server/shipyard_synthetic/config.py`、`models.py`、`registry.py`、`__init__.py`。 - W69-MASTER:`server/shipyard_synthetic/master_data.py`、`projects.py`、`engineering.py`。 - W69-PLAN:`server/shipyard_synthetic/materials.py`、`planning.py`、`scheduler.py`、`scenarios.py`。 - W69-OUTPUT:`server/shipyard_synthetic/rag_skills.py`、`schemas.py`、`validation.py`、`exporter.py`、`cli.py`、`scripts/generate_beihai_shipyard_aps.py`。 - W69-TEST:`tests/golden/test_shipyard_synthetic_dataset.py`。 - 主 agent:集成、生成 full 数据包、运行验证、文档收口、独立审计。 各 worker 写集互斥;共享契约以 W69-CONTRACT 为先,其他 worker 只能导入,不得回写 contract 文件。 ## 7. 验证命令 - `.venv\Scripts\python.exe -m ruff check server/shipyard_synthetic scripts/generate_beihai_shipyard_aps.py tests/golden/test_shipyard_synthetic_dataset.py` - `.venv\Scripts\python.exe -m compileall -q server/shipyard_synthetic scripts/generate_beihai_shipyard_aps.py` - `.venv\Scripts\python.exe -m pytest tests/golden/test_shipyard_synthetic_dataset.py -q` - `.venv\Scripts\python.exe scripts/generate_beihai_shipyard_aps.py --scale full --output beihai-shipyard-aps-data --scenario all` - `.venv\Scripts\python.exe scripts/generate_beihai_shipyard_aps.py --validate-only --output beihai-shipyard-aps-data` - 关联 golden、全量 `tests/golden`、Node 60、Web build、8003/5173/browser。 ## 8. 外部边界与停止条件 - 本轮不需要北海造船真实凭据或内部数据;所有参数明确为模拟。 - 真实数据映射、真实船坞/设备/工时/供应商校准只输出待校准参数清单,不冒充完成。 - 不 commit/push/merge/publish;若后续要提交或合并,必须另行向用户报告风险、测试和数据包体量并获得授权。 ## 9. Plan Audit 待并行实施计划完成后执行独立 feasibility audit;只有 `PLAN AUDIT: PASS` 才进入实现。 ## 10. 首轮 Plan Audit 修订(权威覆盖前文) ### 10.1 精确规模与基数 full profile 固定为:4 projects / 72 milestones / 72 GRAND_BLOCK / 280 SECTION / 1,000 work packages / 4,000 WBS production tasks / 12,000 materials / 50,000 BOM relations / 220 routing templates / 2,400 production orders / 12,000 operations / 12,000 schedule slots / 150 equipment resources / 60 teams / 40 suppliers / 550 purchase suggestions / 140 outsource suggestions / 180 risks-conflicts / 120 knowledge assets。 关系冻结为: - project 1:N WBS task;4,000 task 均匀分配到 4 船,每船 1,000; - task 0..1 production order;2,400 task 产生 production order; - production order 1:5 operation,恰好 12,000 operations; - baseline 中每个 active operation 恰好 1 schedule slot; - GRAND_BLOCK 1:N SECTION,`blocks.csv` 用 `blockType` 和 `parentBlockId` 区分; - 50,000 BOM relations 是 EBOM/PBOM/MBOM 总和,三者行数分别写入 manifest。 small/standard 按同一公式缩放,project 选择顺序固定 BH-SYN-2601→2604,任何 scale/项目数下业务 ID 稳定。 ### 10.2 完整方案、异常与执行质量闭环 - 7 类方案:DELIVERY_FIRST、RESOURCE_BALANCED、COST_FIRST、MIN_OVERTIME、DOCK_UTILIZATION、MIN_RISK、RECOMMENDED。 - 15 类异常事件必须全部生成 `scenarios/events//{input,before,after,diff}.json`;附件 4 个 canonical scenario JSON 是事件聚合视图。 - execution 六表必须含数据:MES orders、operation reports、material issues、quality inspections、nonconformities、rework orders。质量状态机为 PLANNED→HOLD→RELEASED;NCR→REWORK→REINSPECTION→CLOSED,返工真实占用 slot/resource/team。 ### 10.3 硬约束矩阵 validator 与 scheduler 必须覆盖并逐项报告:设计释放、FS/SS/FF/SF+lag、MBOM/routing、materialReadyAt、库存守恒、独占资源、dock/berth/fixture/paint booth、设备维护、重量/尺寸/吊装半径、运输路径/车辆/窗口、涂装温湿度/固化、技能/人数/资质/连续工时、供应商月产能/blackout、委外运输加工检验回厂、已开工/MES/frozen 保护、空间干涉、动火-油漆-密闭舱互斥、区域施工密度、Hold Point、船级社/船东见证日历、天气窗口、战略区粗粒度规则。每项有 validator metric 和测试。 ### 10.4 Skill/RAG 可观察验收 - Skill registry 必须逐一包含附件指定的 20 个 exact skillId;每项含 skillId/name/description/inputSchema/outputSchema/requiredData/algorithmCandidates/hardConstraints/softConstraints/fallbackAlgorithm/timeoutSeconds/validationRules/evidenceFields/version。 - 20 份 input/output schema 必须可解析;validator 逐字段校验。 - RAG 固定 20 category × 6 assets = 120;每条具备附件全部字段,sourceType 固定 SYNTHETIC_KNOWLEDGE;所有 schedule/solution evidenceRefs 必须解析到真实 asset/skill/input/version。 ### 10.5 算法证据语义 第一版 baseline 使用确定性 rolling-horizon bottleneck heuristic + RCPSP-style serial schedule generation,不声称 CP-SAT/MILP 最优: - `algorithm=ROLLING_HORIZON_BOTTLENECK_HEURISTIC`; - `solveStatus=FEASIBLE|INFEASIBLE|UNKNOWN`; - heuristic 的 `optimalityGap=null`、`gapType=NOT_APPLICABLE`; - solve time 为真实 measured milliseconds,但不进入业务内容摘要/determinism hash; - fallback/timeout 必须显式,不能把 fallback 结果冒充原算法; - 只有未来真实 CP-SAT/MILP 返回 bound 时才允许数值 gap。 ### 10.6 WorldStore 语义 smoke 验证必须在临时目录并设置 `APS_DB_DISABLED=1`: 1. 复制生成的 world 到 temp; 2. 用 `WorldStore(tempPath, world_key='bh-syn-test', tenant_uuid='synthetic')` 加载; 3. 断言加载前后规范业务摘要不变; 4. 调用现有 flex summary / flex gantt / material/sourcing consumer,确认兼容投影可消费; 5. 不连接或修改现场 DB,不触碰 `server/data/**`; 6. 现场四文件 SHA-256 前后相同。 ### 10.7 独立 worker 自检与资源上限 每个 worker 的命令见并行计划 §6。full 生成必须使用 sibling temp dir,校验全绿后原子替换;失败清理 temp。验收上限:180 秒、峰值内存 1.5 GiB、输出目录 300 MiB;超限必须显式失败,不以 small 代替 full。 ### 10.8 Pre-merge stop 本轮不提交/合并。未来用户授权前,主 agent 必须独立报告:主要结论、关键洞察、风险与覆盖率、未关闭项、数据包文件数/体量、交付 branch/commit(若存在)、特殊注意事项,并明确询问是否合并目标分支。 ## 11. 完成状态与验收结论 - CONTRACT、MASTER、SUPPLY、SCHEDULE、SCENARIO、OUTPUT、VALIDATION、TEST 九条边界均已完成并汇合。 - Full 规模精确计数全部满足;完整目录 `beihai-shipyard-aps-data/` 已生成。 - 独立校验为 PASS/FEASIBLE,全部硬约束、主外键、证据引用、净算、采购/委外追溯、独立返工、真实方案/场景差异和执行闭环错误数为 0。 - 同种子两次 full 输出业务摘要一致、逐文件 SHA-256 不一致数为 0。 - Round 69 focused 49 passed(含 26 个硬约束非法变异);全量黄金 1120 passed / 2 warnings;Node 60 passed;Web build 通过。 - fresh full 生成、校验、导出并逐文件比对用时 87.238 秒,峰值工作集 1,298.496 MiB,输出 205.206 MiB,哈希差异 0,均低于门槛。 - 8003/5173 HTTP 200,浏览器真实运行 title 与主界面通过、warning/error=0。 - `server/data` 四个受保护文件哈希未变化。 - 详细证据见 `docs/round-69-beihai-shipyard-synthetic-dataset-state.md` 与 `docs/round-69-beihai-shipyard-synthetic-dataset-runtime.json`。 - 最终限定范围只读审计 `AUDIT PASS`;manifest/world 审计前后哈希不变。 - 未 commit、push、merge 或 publish。