生产订单排程工具 · 制作与验收记录
2026-10-12，Windows / PowerShell，工作目录仅 .artifacts/meta-skill-rebuild/02-production。

授权及采用标准
独立读 imagination-developer/SKILL.md 和 task-capabilities、delivery-standard、local-delivery、domain-verification、state-and-content。没有读旧案例或其他代理答案。浏览器操作前完整读 Browser skill、选中浏览器文档、local-web-development、file-uploads 和 screenshots。使用该 skill 指定的 Browser runtime。确认已有 http://127.0.0.1:4176/ 返回 200；未启动新服务。没有改根 package.json、公用 public/src/skill、Git 或远端，没有清理他人标签。

成品
index.html，88150 字节（本记录时），全部模型、样例、UI、样式内嵌。无运行依赖、CDN、远程字体、fetch/XHR、模块、Service Worker 或账户。开发源及模型/控制器脚本仅为后续维护，最终用户只打开 HTML。
最终 HTML SHA256：00C41D3C86A06ADC7CC83E2334B9DA18C1A24FE9FF654EB80885F2F4A98C14FF。
初期浏览器发现内嵌构建使用 String.replace 的替换字符串，导致 $$ 被解释成 $；已改为函数替换返回原始源码。最后新建测试标签加载最终副本，error/warn 日志为空。十进制工时曾发现 20 + 180 × 1.1 向上取整产生多一分钟，改为精确十进制有理数，显式回归应为 218 分钟。

真实默认内容
4 单、620 件、21 道工序、7 台设备、8 个独立位置。早/午两班，周一至周六，2026-10-12 起21天；加工中心1于10-13 08:00–10:00维护。默认总工时69.5小时，全部工序可安排，约束问题0；2单预计逾期。没有人为把交期风险隐藏，也没有随机条块。生产数据明确标“示例订单”。

模型 / 控制器测试（单独证据，不算浏览器操作）
运行 node planner-regression.cjs：17项通过。
1. 默认21工序均保留；独立逐分钟核算数量工时、允许设备、位置容量、工作日、班次、停机和依赖。
2. 独立 CSV 用户订单：2单 / 91件 / 7工序；带逗号产品名；36件每批3件、2分钟+10准备的终检应为34分钟。
3. CSV引号、换行、Unicode、零准备/转运往返。
4. 中文表头与英文表头导入对象一致。
5. 数量0、投产晚于交期、环依赖、重复工序、容量0、非法日历日期以及订单重复字段不一致均拒绝，控制器当前数据原子保留。
6. 手动设备重叠 / 早于投产定位，锁定重排保留；撤销与重做一致。
7. 后序提前产生可定位的依赖错误；不允许设备和超容量位置拒绝。
8. 双前置汇合工序须等两分支完成再加20分钟转运；独立例应10:59开始。
9. 改数量和停工日期使旧计划出现工时 / 班次错误；重排恢复有效。
10. 改交期立即计算逾期，对照方案的原输入和结果不被回写。
11. 排程范围不足时，已排+未排等于全部工序；未排及理由实际写入派工CSV。
12. CSV由独立读取器回读，逐段起止分钟和数量对应；合计等于工序需求。
13. JSON真实写磁盘、换批、读磁盘恢复；锁定、位置、规则、方案和计划均一致。
14. 第二批保留改过的容量和停工规则，旧ID不串入；未知版本恢复失败不改当前。
15. 跨年、午夜24:00分班；容量2让两单真正同时加工，均跨到2027-01-01 03:00，独立分钟核算通过。
16. 对照方案内损坏的时段 / 数字ID拒绝；重复停机不重复扣可用工时。
17. 页面实际内嵌的模型源码与 .cjs 一致；没有外部运行资源或网络读取。

实际浏览器任务（HTTP，Browser runtime）
地址：http://127.0.0.1:4176/meta-skill-rebuild/02-production/index.html。
A. 文件选择器选 fixtures/user-batch.csv，点校验导入。界面为自有订单，2单91件、7工序全部未排而不是默认数据。点重新排程，得到12.5小时、0问题、0未排；U1-30显示34分钟，U1-20跨午休两段，U2-20跨日两段。
B. 选择USR-202的U2-10，用开始字段移至10-12 08:00并锁定。实际报3项：U2-10早于13:00投产，U1-10/U2-10相互占用同一设备位置。问题行都可定位。重排保留08:00锁定并继续报投产错误；解锁后重排，恢复0问题。screenshot-conflict.png来自这次操作。
C. 保存“用户订单 · 原交期”对照；在订单表把USR-101交期改为10-12 08:01并保存。当前方案预计完成14:38、逾期6.6小时；对照原交期保持准时。实际应用对照恢复原交期。
D. 规则页把QC-01容量从2改3，停工日期填10-16并保存。将U1-30手动分配QC-01位置2并锁定，0问题。
E. 点击保存计划，浏览器生成JSON并请求下载；完整计划载荷实际在备份文本区可见。读取该可见载荷到 fixtures/browser-saved-plan.json（不是读取隐藏应用状态）。导出派工CSV，同样读取可见载荷到 browser-user-dispatch.csv；9个班次连续段。准备分钟只在每工序首段计一次。没有声称检查浏览器下载目录。
F. “新一批 · 保留规则”后0订单，规则页实际仍见容量3和10-16停工日期。文件选择器导入second-batch.csv，1单28件3工序，重排及定位到10-19；下料08:00–09:08、钻孔09:18–10:57、终检11:07–11:38。0问题，旧订单未出现。screenshot-second-batch.png来自该过程。
G. 用文件选择器回导E的浏览器备份载荷，恢复2单7工序、QC容量3、位置2、1道锁定、“用户订单 · 原交期”对照，全部约束通过。也通过重载页面后“恢复暂存”恢复过上一份用户计划。
H. 粘贴数量0的CSV，校验显示“订单 USR-101 数量须为1–1000000的整数”。关闭弹窗后当前仍是2单7工序、1锁定，错误输入未覆盖。
I. 实际拖动U1-10条块16像素（标准尺度等于60分钟）到09:00，开始字段同步，锁定变2道；U1-20报告须等待U1-10完成和20分钟转运。撤销后恢复原位置与有效计划。
J. 空白新批次通过界面手工新增MAN-01专用托架18件、MAN-10下料，再新增MAN-20孔位钻削，前置引用MAN-10。排程实际下料08:00–08:51，转运10分钟，钻孔09:01–09:52，2工序全部通过。这证明不仅接受固定示例或文件。
K. 最终副本新标签重新加载，默认21工序检查0问题；选文件恢复用户备份再选中34分钟的锁定终检。screenshot-default.png、screenshot-user-plan.png均从最终副本捕获，并实际查看截图确认布局。
Browser runtime 曾在DOM评估遇到两个瞬时节点/选择器超时；通过查看新AX状态确认操作已生效、结果在DOM可见，再从可见textarea读取。这些不是假定操作通过；最后截图、载荷及新标签日志均已确认。

浏览器载荷另测
运行 node browser-output-regression.cjs：通过。独立读取真实浏览器载荷的JSON / CSV，核验2单7工序、容量3、10-16停工、方案、锁定位置2、9行派工分段、22列结构、原订单数量、实际起止耗时、准备只计一次、每工序分钟合计。该脚本不自行操作浏览器，也不证明下载目录落盘。

证据与限制
已做：最终HTML HTTP实际浏览器操作；模型与控制器回归；真实磁盘快照保存/回读；用户可见导出载荷核算及文件选择器回导；截图视觉检查。
未做：file://、干净首次断网冷启动、浏览器下载目录检查、物理打印/PDF输出、真实工厂执行、人员/库存/良率验证。本会话已有file://安全禁止，严格不重试、不绕过，不把HTTP成功写成离线冷启成功。
源代码按单文件离线设计，没有外部网络依赖；该源码检查与未实测的离线冷启是两种不同证据。
启发式只提供可解释候选，不保证最优；约束满足与交期风险分别报告。不满足的工序、锁定冲突或未输入现实条件都没有被默默删掉。

交付目录包含 readme、完整制作提示词、metadata、MIT许可、模型/控制器回归、浏览器载荷回归和fixtures。入口是index.html，用户无需读取工程记录先开始工作。
