凌晨四点三十七分,战情室的灯还亮着,冷白得像一层薄薄的刀光。屏幕上那条从“年标签池”延伸出来的分叉线,刚刚被周砚拉到最大,红线在白底图里像一根被人硬生生掰开的骨头,左支落向维护台账,右支落向标准库底层,而最下方那枚不起眼的灰色节点,正安安静静地挂着两个字:种子。
“分叉开了。”顾明盯着屏幕,嗓子哑得发紧,“根是活的。”
周砚没接话,指尖停在鼠标上,视线却压在那枚灰节点旁边的时间戳上。不是标准更新时间,也不是审核更新时间,而是一段被刻意压低到几乎看不见的写入窗口。写入窗口短得离谱,像有人趁夜色最浓时,把一粒看不见的东西塞进了土里。
他知道对方在等什么。
等的不是发现,是命名。
一旦命名不准,后面所有追责都会被拖进“误读”里;一旦命名准了,这颗种子就不再是“异样输入”,而是“投毒”。
“再放一层。”周砚说。
顾明立刻切换视图,把根分叉下的三级调用链铺开。第一层是维护批次,第二层是标准复核,第三层才是那颗种子真正落下的地方。那不是常规上传,也不是人工修订,而是一条被包装成“例行校准”的自动通道。通道里有三次轻微重写,两次签名回绕,一次灰区确认。每一个动作都像合法流程的一部分,连顺序都安排得滴水不漏,像专门为了让人看见“正常”而存在。
周砚盯着那条回绕,眼神一点点冷下去。
“不是标准漂移。”他说,“是种子先下,漂移后长。”
顾明没听明白,眉头皱起:“什么意思?”
“标准漂移像水温慢慢变。种子投毒不是变,它是先把根掰开,再往里塞东西。”周砚伸手在屏幕上点了点,“你看这里,维护台账的变更记录是后补的,标准复核意见是顺着写的,真正早一拍的,是种子包签收。”
“签收人是谁?”
周砚没有立刻回答,而是调出封册页脚里的责任表。那一页昨晚刚被梁总让人补进闭门会材料,页脚密密麻麻,像一张为了遮掩什么而反复缝补的网。周砚把签名列放大,停在最下方一行。
“沈闻。”他吐出两个字,“还有一层联签,是董事会办公室联络人。”
顾明倒抽了一口气。
“那不是普通协办。”周砚说,“是把种子伪装成‘共识输入’。只要签收链上有联络人,有会务接口,有维护批次,后面所有漂移都能被说成‘正常吸收历史差异’。”
“那就更麻烦了。”顾明低声道,“他们会说是为了适配新年号、新标签、新口径。”
“所以得问名。”周砚抬起眼,“问的不是谁改了参数,是谁先把这粒东西叫成了‘种子’。”
话音刚落,门外响起一阵极轻的脚步声,像有人踩着规矩的缝隙走进来。纪检负责人推门而入,脸色比走廊灯还沉,手里捏着一份刚打印出来的内控简报。
“出事了。”他说,“标准委员会那边发来正式问询,点名要我们说明‘年标签池根分叉后,种子包为何未在一级台账标记风险源’。”
周砚接过简报,扫了一眼就笑了,笑意却没有半分温度。
“问得真快。”他把纸放到桌上,“说明他们已经知道种子包被看见了。”
纪检负责人点头:“更麻烦的是,他们用了一个词,叫‘自然分叉’。意思是把根分开,说成系统生长。”
“自然分叉?”顾明听得发火,“谁种的谁不知道?”
周砚却抬手止住他。
“别急。”他慢慢道,“对方现在要做的,不是证明自己没投,是先把投毒改写成生长。只要根分叉被叫成自然,种子就能从‘异常输入’变成‘必要补丁’。”
他说着,打开那份问询,直接翻到附录。
果然,附录里藏着一张被淡化处理过的流程图。图上没有“种子包”三个字,只写着“年模板校准组件”。而校准组件下面,分出了两条极细的支线:一条写“公开解释口径”,一条写“内部维护建议”。两条线看似平行,实际在最末端合成了一句话——“统一适配历史偏差”。
“历史偏差。”周砚一字一顿,“他们连毒都想洗成历史。”
顾明忍不住问:“能不能直接把签收链打出来?只要证明种子是从谁手里进来的,不就行了?”
“能。”周砚说,“但不够。”
他把鼠标往下拖,拖到最底层的哈希比对结果。结果栏里有一行细字,原始包名与二次打包名之间只差了一个后缀。那个后缀像一枚针,针尖不大,却正好扎在解释权上。
“你看这里。”周砚指着那行字,“原始包叫seed_base,二次打包叫seed_patch。一个是种子,一个是补丁。只差一个词,性质就全变了。对方不是单纯投毒,是先投,再补命名,把投毒变成维护。”
顾明愣住了。
纪检负责人也沉默了。
这一下,战情室里只剩空调出风口的轻响。每个人都知道,真正难的不是抓到动作,而是抓到动作前那一下“叫什么”。名字一旦被抢走,后面的刀就会看起来像手术刀。
周砚合上简报,沉声道:“把种子包的原始入库日志调出来,再把当天所有‘例行校准’的审批人列表拉全。不要只看谁签了,要看谁先把它叫进了维护序列。”
“你怀疑有人在抢名?”纪检负责人问。
“不是怀疑。”周砚说,“已经在抢了。”
他说完,屏幕右上角忽然弹出一条新消息,是系统自动推送的标准问询回执。回执内容很短,却把整个局面往前推了一步:
【请于09:00前提交“根分叉说明”:包括分叉原因、输入来源、责任归属、对外口径。】
顾明看着那行字,咬牙切齿:“这不就是逼我们替他们把话写圆?”
“对。”周砚点头,“而且逼得很准。”
他没有马上回消息,而是先在文档里新建了一页,标题只写了四个字:投毒问名。
顾明盯着那个标题,呼吸都顿了一下。
“你要把它写进去?”
“不是写进去,是钉进去。”周砚说,“根分叉一开,种子就没法再装成土壤的一部分。它要么是正常输入,要么是异常投放。中间没有第三种说法。现在唯一要做的,就是把‘谁先命名’这件事钉出来。”
纪检负责人听懂了,立刻拿起电话去叫技术组。
战情室外的走廊渐渐有了人声。门禁一声声响起,像有人正顺着这条线往里摸。周砚却反而更稳了。他把标准问询的截图压在左边,把种子包的哈希链压在右边,中间留出一条细窄的空白。那道空白,不是给对方补口子的,是给真相落脚的。
九点零二分,标准委员会的线上会议正式接入。
投屏亮起的一瞬,屏幕里那几张熟悉的脸全都安静地看向镜头。有人面色如常,有人眼底发虚,还有人连镜头都不敢直视。坐在最中间的,是那位昨晚还在说“只是历史残留”的秘书处联络人。
周砚没有寒暄,直接把第一页摊出来。
“先不谈分叉。”他声音平静,“先谈这粒种子,最早是谁命的名。”
会议室里安静了半秒。
秘书处联络人嘴角微动:“周砚,你这话过了。标准校准本来就是为了吸收历史差异,分叉只是调整路径,不代表——”
“你先别代表。”周砚打断他,“把种子包签收记录打开。”
对方眼神猛地一缩。
周砚看见了。
那一缩,比任何辩解都管用。因为那不是困惑,是被点到名后的本能躲避。周砚很清楚,真正的答案已经露了头。接下来,对方会开始往“流程”“历史”“共识”里缩,而他要做的,就是把每一次缩回去的动作都变成证据。
“签收记录里有两个名字。”周砚继续说,“一个是沈闻,一个是你们联络人。你们把seed_base改成seed_patch,放进例行校准,再在说明会上写成自然分叉。现在,问问你们自己,这到底是补丁,还是投毒?”
话音落下,屏幕里那位联络人的脸彻底白了。
顾明在侧边迅速把原始入库日志切出来,投到同一屏幕上。那一行最早的命名记录,时间早得刺眼,早在任何“维护批次”之前,先有了一个被压得极低的入库标记。标记旁边的备注只有六个字:
【来源待补。】
这三个字像一把刀,直接划开了对方最想藏的那层皮。
来源待补,不是来源未明,而是有人故意让来源空着,方便后面把名字补成“共识”。周砚盯着那行备注,缓缓开口,声音不高,却像钉子一样落在桌面上。
“现在可以问名了。”
“谁在种,谁在补,谁在把毒写成规则,今天一个都别想躲。”