恒辉零售创新中心的签到台前,采购组工作人员把一张新的演示须知推到林川面前。
“各位入围方注意,今天不允许使用自带演示设备,不允许接入外部网络,所有方案统一在恒辉临时演示环境里运行。”工作人员声音不高,却把星川准备了一整晚的设备清单直接按在了桌上。
陈海提着设备箱的手僵了一下。
刘敏立刻翻到昨天通知:“昨天写的是演示设备与接入环境由采购组现场统一安排,没有写禁止自带设备。”
“现场统一安排就是这个意思。”工作人员把胸牌递给她,“如有异议,可以登记,但演示顺序不变。”
林川没有立刻争。他接过胸牌,先看时间。八点五十六分,距离签到截止还有四分钟。大厅尽头已经竖起入围方指示牌,云盛科技的名字排在第二位,星川排在第四位。赵凯没有站在签到台前,只在不远处和恒辉一名业务经理说话,侧脸很平静。
这种平静比直接挑衅更难处理。
林川低声道:“先签到,所有新规则拍照留存。不要在前台争执。”
陈海压住火,把设备箱放到脚边。叶辰抱着电脑包,手指捏得发白:“林总,我们的本地演示包和回退脚本都在自己的机器上。恒辉临时环境如果没有依赖库,跑不起来。”
“所以先确认环境。”林川说。
签到完成后,工作人员带他们进入三号准备室。房间里没有投影,只有四台恒辉统一配置的工作站、一个内网数据口和一张打印好的接入说明。星川昨晚封存的演示笔记本、移动硬盘、备用路由和测试屏,全都只能贴上封条放在门边寄存柜里。
陈海看完说明,脸色更沉:“只能用恒辉内网镜像,系统是干净的,不能安装外部软件包。样本数据也不是昨晚附件里的格式,字段名换了一批。”
刘敏迅速拍下工作站编号和镜像版本:“规则对所有入围方一样吗?”
工作人员点头:“一样。所有供应商现场抽取同一套脱敏样本,演示过程由技术部记录。”
林川问:“规则变更的书面时间?”
工作人员明显被问住,翻了翻夹板:“今早八点四十,采购组现场发布。”
“请在异议登记上写清楚:八点四十现场发布,禁止自带设备,禁止外网,禁止安装外部软件包。”林川把笔递过去,“我们接受现场规则,但保留对准备时间和环境差异的记录。”
工作人员看了他一眼,还是照写了。
门外传来几声笑。云盛团队从走廊经过,几个人推着空手推车,显然没有带多少设备。赵凯走在最后,经过三号准备室门口时停了半步。
“林川。”他看向寄存柜里的设备箱,“做客户项目,不能总靠自己办公室那套东西。现场环境都适应不了,方案写得再漂亮也没用。”
陈海猛地抬头。
林川把异议登记单收进文件夹,语气平稳:“所以今天看的是谁能在客户规则里解决客户问题,不是谁提前知道规则。”
赵凯脸上的笑淡了一点。
恒辉工作人员皱眉:“请各入围方保持准备室秩序。”
赵凯没有再说,转身进了二号准备室。
门关上后,陈海低声骂了一句:“他们像是早知道会换环境。”
“像,不等于能写进材料。”林川把接入说明放到桌上,“我们现在只处理三件事。第一,确认环境限制;第二,确认样本字段变化;第三,找出不改核心模型也能演示业务逻辑的最小路径。”
刘敏已经打开恒辉工作站。启动页面卡了二十多秒,随后弹出权限提示:外部介质读取已禁用;非白名单程序执行已禁用;网络访问仅限恒辉内网服务。
陈海把昨晚准备的部署清单摊开,逐项划掉:“本地容器不能用,压测脚本不能用,推荐理由页的前端包也不能直接跑。我们只能拿他们给的基础运行环境。”
叶辰插上内网账号,尝试读取样本数据。屏幕上很快跳出红色报错:字段映射失败,缺少sku_group、manual_pin_flag、stock_snapshot_time。
这三个字段,正好是星川用来排除人工置顶、库存滞后和商品池边界的关键入口。
准备室里安静了一瞬。
如果没有这三个字段,星川昨晚方案里最能说明“可解释”和“失败条件”的部分会直接断掉。更麻烦的是,恒辉现场样本只给了新字段:item_bucket、campaign_mark、sync_batch。看上去像是同类含义,却没有解释文档。
陈海盯着屏幕:“这不是单纯换场,这是把我们的验证口径拆了。”
“别急着定性。”林川看向刘敏,“找技术部要字段说明,走现场问询表,不口头问。”
刘敏点头,拿起准备室桌上的黄色表单,按字段逐项写明:现有样本缺失竞标文件中未禁止使用的库存快照、人工置顶标记和商品分组字段;星川请求技术部说明新旧字段映射关系。
叶辰忽然说:“林总,campaign_mark可能不是人工置顶,它有A、b、c三种值,像活动批次。sync_batch倒是可能对应库存同步,但时间精度被压成了批号。”
“能不能证明?”林川问。
叶辰摇头:“现在不能,只能从前二十行猜。”
“那就先写成假设,不写结论。”
林川打开星川方案的纸质版,把昨晚那句“接口兼容,不继承黑盒”圈出来。临时换场不是坏事本身,客户有权统一环境,甚至应该统一环境。真正的问题在于,规则发布太晚,字段说明不足,而云盛作为一期承建方天然熟悉这些口径。
如果星川在这里吵“被针对”,只会显得输不起。
如果硬跑旧包,必然报错。
他需要让恒辉先看见一件事:星川即使被拿走自带设备,也不会碰客户未公开参数,更不会把责任推给环境。
十分钟后,恒辉技术部回了现场问询表。回复很短:item_bucket为商品业务分组,campaign_mark为运营活动来源标记,sync_batch为库存同步批次;详细字段解释将在正式演示前统一口头说明。
刘敏把回执递给林川:“没有给旧字段一一对应。”
陈海看了眼倒计时屏:“我们第四个演示,前面三家平均二十五分钟,最多还有一个小时。要把整套东西搬到这环境里,不现实。”
林川望向工作站屏幕。红色报错还停在那里,像一道很窄的门。
他问:“如果不搬整套,只做最小旁路流程呢?”
陈海皱眉:“可以试,但推荐理由页、回退按钮、字段映射都要改。没有外部包,我们只能用内置环境写一个简化接口。”
叶辰抬起头,声音比刚才稳了一点:“如果技术部确认那三个新字段的业务含义,我可以先把场景发现流程拆成临时映射表,不碰模型权重,只让候选召回和推荐理由跑通一小段。”
话一出口,他自己也顿住了,像是才意识到这不是办公室里的练习。
陈海看向林川:“风险很高。现场改,出错就是当着客户出错。”
“不改也是出错。”林川把纸质方案翻到失败条件页,“我们不承诺完整复刻昨晚环境。我们承诺在恒辉统一环境下说明业务逻辑、数据边界和不继承黑盒的实现路径。”
他拿起笔,在白纸上写下四行:
公开字段。
临时映射。
最小接口。
可解释输出。
“陈海,你盯运行环境,只用白名单工具;刘敏,所有现场变更逐项留痕,别让任何口头说明变成无来源结论;何旭,准备一页客户能听懂的环境变更说明;叶辰,你先把新字段样本按假设拆出来,等技术部口头说明确认后再落表。”
几个人同时应声。
林川最后打开远程会议请求,没有催周野立刻接。他只把现场环境说明、报错截图和字段回执发进星川内部群,附上一句:只看公开字段,不碰云盛黑盒,准备最小接口。
准备室门外,第一家供应商的演示已经开始。倒计时屏亮起,第四位“星川科技”后面还有一行灰字。
预计准备剩余:三十二分钟。