第十一月最后一个星期一,程久来了。
她比预定时间早了二十分钟。门卫打电话到项目组时,顾远正在备用机房核对回波日志的第五版附录。他放下电话,没有通知其他人,自己走到一楼大厅。
程久站在门外,背着一个黑色的双肩包,穿深灰色外套,手里拿着一个牛皮纸文件袋。门外风大,她的头发被吹得有些乱,但她没有整理。她看起来不像三十二岁。她看起来像是已经把三十二岁之前的大部分东西都处理干净了。
“顾老师。”她先开口,声音不高,刚好压过风声。
“程久。”
“数据合规审查组。之前通过宋协调员和您的团队有过一次非正式技术沟通。”
“我记得。”顾远说。“十七行。没问第十八行。”
程久没有接这句话。她把文件袋换到左手,腾出右手推了一下眼镜。眼镜框很细,银灰色的。手指在镜框边缘停了一瞬,然后放下。
“今天想当面看几样东西。”她说。“不是非正式的。今天是正式访问,会有记录。”
顾远侧身让她进门。走廊里的日光灯管还是那根在频闪的,整流器的震颤声在早晨的安静里格外清晰。程久抬头看了一眼灯管,没有说什么。她的鞋跟敲在水磨石地面上,声音很轻,每一步间隔完全一致。
他们经过茶水间时,伊琳正在往墙上钉一张照片。钉锤敲了两下,声音短促。她转过头,和程久对视了一眼。程久的目光在伊琳身后的地图上停了一瞬——五处断层的图钉,昨天地图上还没有那根绷直的细线。细线从灰白色小楼的位置延伸到中东管线事故地点,在日光灯下像一道被拉长的伤口。
程久没有问那根线是什么意思。她继续往前走。伊琳把钉锤放在桌上,锤柄磕到杯沿,发出瓷器轻颤的声音。
陈路从茶水间出来时正好看见程久的背影。他站住了,手里端着刚倒的热水,杯子举在半空。他认出那个走路的姿态——肩膀微微前倾,步子不快但每一步都踩实,像是在默算什么。那次非正式沟通时她也是这样走的。杯口的热气扑在他下巴上,他没有低头喝。
周启明在档案室门口碰见了他们。档案室的门半开着,里面传出打印机预热的声音。他向程久点了点头,没有握手。
“合规审查组。”他说。“上次宋协调员带来的那位技术协调员。”
“是我。”程久说。
“今天不用三不原则了吧。”
“不用。今天是正式的。”
“有议程吗?”
程久从文件袋里抽出一张对折的纸递给他。纸上是打印的访问清单,三行,宋体,行间距很宽。纸张边缘有折痕,不是新的。
一、静默预警库数据存档的合规性核验
二、内部回测摘要传播路径的追溯
三、待定期数据环境变化的评估依据
周启明看完,把纸还给她。他的手指在第三行停了一下。从国际能源署上周发布的秋季评估报告,到中东管线事故的技术调查结论,再到联合委员会对GCS待定期数据完整性的内部质询函——这些外部事件在一周内接连发生,而清单上只有三行字。他没有说这些。
“清单写得简单。”
“正式访问的清单都写得简单。”程久说。“复杂的是看的过程。”
顾远把他们带进了备用机房。这是项目组能找到的最中性的房间——不是主控室,不是会议室,不是任何人的独立办公室。白板还在墙角,上面顾远画的时间线和那个写着“锁”字的圈还在。标记的墨迹已经有些干了,边缘微微发灰。程久进门时扫了一眼白板,目光在那个圈上停了不到一秒,没有问。
她在第三排终端前坐下,打开背包,取出一台便携终端、一个硬壳笔记本、一支钢笔。三样东西在桌面上摆成一条直线,终端在左,笔记本在中,钢笔在右。摆好之后,她抬头看了一圈房间里的人。
顾远靠在窗台边。窗外是灰色的天,楼下的树光秃秃的,枝杈在风里晃。远处有一条输电线从城郊方向延伸过来,架空地线上停着一排鸟。周启明坐在斜对面的椅子上,椅子的气柱往下沉了一截,发出很轻的泄气声。他刚从档案室出来,手里还捏着那份咨询章程修订草案的打印件,纸边被手指捏出两道褶皱。陈路站在门口,杯子里的热水还在冒气,水面微微晃动。林序坐在最后排,笔记本摊在膝盖上,笔帽已经摘下来了。
“第一项。”程久说。“静默预警库的数据存档。”
陈路把纸板从墙上取下来,放在程久面前的桌上。纸板边角有些卷了,上面有反复擦写的痕迹。第七期更新的数字还留在上面——二十一项偏差,方向一致概率降至千分之一以下。最下面那行后加的字还在:他们知道我们在看什么。
程久低头看纸板,看了大约两分钟。她的视线从左往右移动,一行一行,最后停在最下面那行字上。她没有问这行字是谁写的。
“这个纸板不是系统生成的。”
“不是。”陈路说。“手写的。”
“数据来源是系统实时流?”
“是。被有限输出模板过滤掉的微小偏差,按节点和方向手动记录。”
“为什么要手动记录?”
陈路看了顾远一眼。顾远没说话,窗外的风把窗框吹得轻轻响了一下。
“因为模板过滤掉的东西系统不会自动存档。”陈路说。“不手动记,就没了。”
程久在笔记本上写了两行字。钢笔尖在纸上刮出很轻的沙沙声,写到第二行末尾时笔尖停顿了,然后继续写完。
“数据合规的角度。”她写完之后抬起头,没有看笔记本。“手动存档本身不违规,但存档内容如果包含了被模板标记为不应外传的数据,就进入了合规审查的范围。”
“什么是‘不应外传’?”周启明问。他的声音比平时低。
“模板的设计是为了让系统在有限输出期间只发出必要信息。被过滤掉的部分,在模板的设计逻辑里,是不需要被外部接收的。”
“不需要被外部接收。”周启明重复了前半句。“不等于不需要被内部记录。”
“对。”程久说。“所以我不是来判定违规。我是来核验存档内容与模板过滤标准之间的边界。”
她转向陈路。“我能看最近一期的原始数据缓存吗?系统自动过滤前的数据流。”
陈路走到终端前,手指在键盘上敲了几下。屏幕上出现了密密麻麻的数据行,二十一项偏差被系统自动标记为灰色,旁边有过滤时间戳,精确到秒。没有被过滤的数据是绿色的,只有三行,夹杂在灰色的数据行之间。这些灰色行如果被单独看,每一项偏差都微不足道——第七处断层应力监测点漂移0.03%,天然气管道压力波动0.01%,电网频率偏移不到0.005赫兹。但二十一项叠在一起指向同一个方向。方向是中东管线事故地点的地质应力集中带。伊琳昨天在茶水间钉下的那根细线,在地图上绷直的距离不到四十公里,而屏幕上这些被标记为“未达统计显着性阈值”的数据点,在事故前七十二小时就已经开始漂移。系统每一项都看见了。每一项都过滤掉了。
程久看着屏幕,钢笔又在本子上写了两行。写完之后她用笔尖点了一下屏幕上的灰色数据行,但没有碰到屏幕。
“系统在过滤这些数据时,给出的理由是什么?”
陈路点开其中一条灰色数据的标记备注。弹窗出现在屏幕右侧,理由栏里的字是等宽字体:偏差幅度未达统计显着性阈值,依据有限输出模板第4.2条自动过滤。
“未达统计显着性阈值。”程久念了一遍,语气是平铺直叙的,没有上扬也没有下沉。“这二十一项都有这个标记吗?”
“都有。”
“但你们手动记录时判断它们是连续趋势。”
“单个看不显着。”陈路说。他放在键盘上的手指蜷起来,又伸直。“二十一项排在一起方向完全一致。单独过滤每一项,都是对的。合在一起,趋势被拆碎了。”
碎到什么程度——他在心里想,但没有说出来——碎到可以合法地不被看见。
程久在本子上写了第三行字。写完之后她合上笔帽,笔帽套上去时发出很轻的咔嗒声。她把笔放在本子旁边,和本子的边缘完全平行。
“第一项核验暂时没有合规结论。”她说。“因为边界本身存在矛盾——过滤标准是单项阈值,但风险识别需要趋势判定。这两个东西撞在一起了。”
房间里没有人接话。排风扇还在低频嗡鸣,声音闷在墙壁里,像是某种持续的低音和弦。墙角的白板上,那个“锁”字下面的箭头被日光灯照得若隐若现。窗外的输电线上,那群鸟飞走了一只,剩下几只收紧了爪子。
程久喝了一口自己带来的水,拧上瓶盖。瓶盖拧到底时,她的手指多加了一圈力。
“第二项。内部回测摘要的传播路径。”
顾远从窗台边走到终端前。他的步子不快,鞋底在地面上擦出轻微的摩擦声。他调出那份三天前发出的内部回测摘要的传播记录。屏幕上出现了一条链路,用箭头连接,每个节点旁边有时间戳和接收方名称:项目组发至三家法定听到机构,其中一家在同一天转发给联合委员会秘书处,转发时加了一句备注——“项目组主动提交的补充材料”。备注栏的底色是浅灰的,字是黑色的。
程久盯着屏幕上的备注栏看了很久。她的眼睛没有动,瞳孔在日光灯下微微收缩。屏幕上那行备注像一个句号——不是项目组的句号,是信息的句号。信息一旦离开发送方,句号就变成了引号。谁来引用它,就用谁的口径。
“这份摘要是你们主动发的?”
“是我们发的。”顾远说。“发给三家机构,供评估参考。不是发给委员会。”
“但委员会收到了。”
“收到了。加上了‘主动提交’的标记。”
“那行备注是谁加的?”
顾远把光标移到备注的来源字段。光标在屏幕上闪烁,字段显示:接收机构A,转发时添加。
“A机构。”程久说。“不是你们。”
“不是我们。”
程久在本子上又写了两行。这次写得比之前慢,笔尖停顿的时间更长。第一行写完时她抬了一下笔,在空中悬了半秒,然后继续写第二行。周启明注意到她抬笔的位置——正是“主动提交”和“被动提供”这两个词之间的空白。她在标记信息性质的转变点。
“这也不是合规问题。”她说。“至少不是你们的合规问题。信息接收方对信息重新标记并转发,不在项目组控制范围内。”