手機屏幕暗了不到十秒鐘,林允寧又把它點亮了。
方佩妮的消息還掛在加密頻道界面上。
他用拇指往上滑了滑,把前後兩輪問卷的內容對着看了一遍。
第一輪,九十天非標資產處置時間戳。
第二輪,一百八十天跨部門借調審批記錄和原始郵件存檔。
兩輪之間隔了不到一個小時。
他把手機放在桌上,靠回椅背,盯着天花板。
腦子裏還想着着剛纔模擬裏的東西,凝聚度泛函C[∮]在構型空間上的拓撲約束、示性類退化的判定條件。
這些錯綜複雜的理論碎片還沒來得及沉澱,就被方佩妮的消息攪散了。
但他不得不先想這邊的事。
一百八十天。
往回推半年,覆蓋了第一波七個人從核心崗位挪到邊緣工位的全過程。
HR系統裏掛的全是跨部門借調口徑,趙曉峯調去“遺留硬件兼容性測試”,周維從Argon Dynamics 挪到聯絡崗,每一筆都有正式的審批單和內部郵件鏈。
如果霍爾拿到這些記錄,逐條跟離職日期對齊,至少三個窗口會重疊。
單看每一條都能解釋成正常的業務輪換,但三條擠在一起,序列太整齊了。
借調、降級、裁員、離境。
同一套流程在半年裏走了七遍,時間間隔安排得過於嚴絲合縫了。
但真正棘手是佩妮說的那句話:霍爾問得太巧了,像是有人提示過他該問什麼。
林允寧拿起手機,切到加密語音頻道,撥了戰情室的線路。
兩聲之後方雪若接的。
“你不是在睡覺麼?”
“沒睡着。佩妮那條消息你看了?”
“看了,她人就在我旁邊。”
方雪若的聲音很平,“維多利亞也在,她剛從樓下上來。’
“開免提吧。”
"
電話那頭響了一下,環境音變了,從方雪若一個人的呼吸聲變成了戰情室空調機組的低頻底噪。
“佩妮,你先說。”
佩妮的聲音從遠處傳來,語速有點快,但吐字卻很清楚。
“兩輪問卷我拉在一起看過了。第一輪問九十天非標資產處置,如果單獨回答,我能用D區伴隨診斷設備的折舊批次記錄把時間戳綁上去,口徑是I類醫療器械資產優化。
但第二輪直接要一百八十天的借調審批和原始郵件,這就不是資產線了,是人事線。兩條線如果被他拼在一起看......”
”資產處置的時間戳和人員借調的審批日期會重疊。”林允寧替她說完。
“對,至少三個窗口。”
”維多利亞。“
”我在,老闆。“維多利亞的聲音從更近的位置插進來,沙啞,帶着雪茄煙嗓特有的粗糲感。
“你怎麼看這個問卷?”
”裏面有兩個問題值得思考。“維多利亞說話不快,”第一,一百八十天的借調審批記錄不在經營連續性審計的標準調閱範圍內。
“伯克希爾的盡調合同授權的是資產、負債、經營指標和關鍵人員在職狀態,不包括內部人事管理的審批鏈。霍爾明顯越權了。”
“第二呢?”
“中部時間早上六點發問卷。伯克希爾奧馬哈的審計團隊正常作息是上午八點半到下午五點。
”霍爾要麼昨天晚上一直在琢磨這事沒睡,要麼有人在他的非工作時間給了他東西看。”
電話裏安靜了兩秒。
”應對方案呢?”林允寧問。
”不能直接拒絕,拒絕會觸發升級。”“維多利亞說,”但他越權了,這個事實本身就是武器。
“我們現在可以做三件事:第一,正式要求伯克希爾法務部提供霍爾的調閱資質證明,確認他的授權範圍是否覆蓋內部人事審批鏈;
”第二,因爲這些記錄涉及跨部門員工個人信息,要求出具隱私審查確認函,內部合規流程;
“第三,一百八十天的借調記錄牽涉到多個子公司實體的合併報表邊界,要求出具董事會前置審批的書面授權。
”另外,附件裏有幾份借調通知涉及員工身份證號和社保編號,這部分我會援引伊利諾伊BIPA條款要求補數據脫敏承諾。”
她頓了一下。
”這四樣東西全扔回去,他光走伯克希爾內部流程就得花五到七個工作日。
“而且如果他的問卷確實有外部提示,我們這些反向要求會逼着他走正式授權鏈,提示方沒法繼續藏在後面。”
“這個方法的意圖不是逼他們露頭,”方雪若在旁邊補了一句,聲音很低,“是讓他們自己掂量一下走正式渠道的代價。”
“對。”維多利亞說,“掂量完還想來的,那就來。至少我們多了一個星期。”
“佩妮,你那邊負責的口徑綁定呢?”林允寧間。
“已經在做了。”方佩妮說,“第一波七個人的借調時間戳,我逐條跟D區伴隨診斷設備的折舊批次記錄對上了。
“口徑是這些借調屬於I類醫療器械資產優化配套的人員調配,和設備批次處置是同一輪清理的組成部分。三個重疊窗口都能蓋住。”
”蓋不蓋得住更深的?”
方佩妮停了一下。
”如果霍爾後續追到借調人員的實際工作內容,去對D區的設備操作日誌......那層就薄了。”
”知道了。先按這個口徑跑。第二波的時間戳你也提前做,別等他問到了再補。”
”明白。“
”還有一個事。“佩妮的語氣變了一點,往下壓了壓,“我剛纔在做口徑綁定的時候發現了一個新問題。“
“說。”
”霍爾這輪要的東西,借調審批記錄、資產處置時間戳、差旅報銷單據,這三樣分別在三個系統裏。如果他只看單個系統,我們的口徑都能住。但如果他用自動化審計工具做跨系統聯查……………”
她說到這兒停了一下,像是在組織措辭。
“七個人的記錄在時間軸上會聚成一簇。借調、調崗、離職、差旅覈銷,這套序列在半年裏走了七遍,時間間隔太均勻了。聚類算法跑一遍就能把它們歸到同一個模式裏。”
"Claire,你在線嗎?”林允寧問。
電話裏傳來吧嗒吧嗒的咀嚼聲,克萊爾的聲音含混地冒了出來。
”聽着呢。佩妮沒說錯,伯克希爾用的是Caseware IDEA加定製腳本,專門跑多源時序聚類。
“默認配置下一掃,這七個人的序列會直接彈出來。”
“源記錄能不能動?”
“不能。”方佩妮搶在前面答了,“審批單、原始郵件、報銷憑證,三方的時間戳能互相對上。動了任何一條就是僞造,後面根本兜不住。”
林允寧的手指搭在桌沿上,無意識地敲了兩下。
源記錄不能碰,但自動化掃描這條路必須堵住。
“Claire,這些記錄在跨系統聯查的時候,走的是哪一層的導出接口?”
“標準審計導出,走的是ERP和HRMS的聚合視圖層。不是直接讀原始表,是讀導出接口按分桶規則生成的聚合報表。”
“分桶規則誰定義的?”
“我們自己。系統管理員權限。”
林允寧閉上眼。
【系統,將40小時模擬時長,注入課題:多源人事-資產-差旅時序數據的聚合視圖重構。
【目標爲在不改動任何源記錄的前提下,通過調整導出接口的分桶規則、字段可見層級和聚合粒度,使標準授權層級下的跨系統聯查無法將特定人員序列歸爲同一時序聚類。】
【模擬開始。】
【第3小時:你枚舉了當前ERP和HRMS導出接口的全部分桶規則,共十七條。其中借調審批按“發起部門-目標部門-審批日期”三維分桶,差旅報銷按“費用類型-報銷週期-審批人”三維分桶,資產處置按“資產類別-處置批次-
入庫日期”三維分桶。三套分桶規則獨立運行時不會產生交叉,但聚類算法可以通過審批日期和報銷週期兩個時間維度強行對齊。】
【第11小時:找到關鍵節點。借調審批的分桶規則中,“審批日期”字段在導出時默認精度爲日。如果將該字段的導出精度改爲“所屬業務批次週期”,即按D區伴隨診斷設備的季度折舊批次歸類,則七條借調記錄會被分散到兩
個不同的批次週期中。聚類算法在標準閾值下無法將跨批次的記錄歸爲同一簇。】
【第19小時:進一步優化。將差旅報銷的聚合視圖中“審批人”字段的默認可見層級從L2提升到L3,使得標準授權層級的聯查只能看到部門級彙總,無法定位到具體審批人。這切斷了第二條聚類路徑。】
【第27小時:全量模擬驗證。在調整後的聚合視圖上跑Caseware IDEA標準聚類腳本(K-means,閾值0.15),七條借調記錄分散在三個不同的聚類中,不再構成可識別模式。但如果審計方獲得L4授權逐條展開原始字
段,仍可人工還原完整序列。】
【模擬結束。剩餘模擬時長:12724小時00分鐘。】
林允寧睜開眼。
“Claire,你能改聚合視圖的分桶規則嗎?”
“當然能,系統管理員權限就夠。”
“借調審批的導出精度從日改成所屬業務批次週期,按D區季度折舊批次歸。差旅報銷的審批人字段默認可見層級從L2提到L3。其他不動。”
聽筒裏傳來兩下用力嚼口香糖的吧唧聲。
“這麼改的話......標準權限查出來的報表,這七個人確實會被打散。但是——”
“但如果霍爾拿到更高授權,逐條展開原始字段,還是能拼回來。”
“對。”
“先堵這一條。人工那條路讓維多利亞的法務門檻去扛。”
“明白,我現在就去改。”
鍵盤敲擊聲漸遠,克萊爾乾脆利落地切斷了麥克風。
“還有什麼?”林允寧問。
方雪若答:“沒了。索恩那邊資源分佈今天沒有變化,長島和V7還是大頭。第二波航班正常,預計兩個半小時後落地。”
“行。佩妮,第二波的口徑你盯緊,有情況隨時找我。
“好的,老闆。”
林允寧掛了電話。
戰情室空調機組的底噪被瞬間切斷,書房裏只剩下他自己這臺空調壓縮機單調的嗡鳴。
桌上那張A4紙連邊角的位置都沒挪動過,右下角的字跡正被顯示器的冷白光死死釘着。
手機又亮了一下。
這次是普通短信。
沈知夏發的,就一句話:
“我媽今天挺好的,自己煮了麪條,還把陽臺上的薄荷澆了。”
林允寧盯着沈知夏的消息看了兩秒,將手機翻面扣在桌上。
他起身走到窗前,芝加哥的天光正迅速暗下去。
密歇根湖面上堆疊着沉重的鉛灰色雲層,他伸手拉上半邊窗簾,把最後一點微弱的光擋在了玻璃外面。
奧馬哈,伯克希爾·哈撒韋總部大樓,七樓審計區。
大衛·霍爾把咖啡杯擱在桌角,盯着屏幕上剛刷出來的那封郵件。
發件人是伯克希爾法務合規部,抄送了審計總監辦公室。
標題是“RE:Aether Dynamics經營連續性審計——補充調閱申請材料通知”。
他點開了。
正文不長,但句句設卡。
首先,法務合規部指出調閱涉及被審計方的人事審批鏈,超出了合同約定的標準範圍,要求他補交資質證明以覈實授權邊界。
其次,由於涉及多個子公司實體的合併報表,他還得額外提交董事會前置審批的書面授權原件。
最後得出結論:在這些材料補齊並過完內部審查前,申請暫不受理。
附件附帶了一份四頁的材料清單,詳細列出了所需文件、格式要求及內部流轉節點。
霍爾將郵件從頭到尾讀了兩遍,摘下眼鏡擦拭後重新戴上,順手把那份清單打印出來攤在桌面上。
資質證明得找審計總監簽字;
董事會前置審批得走投委會流程,最快也只能塞進下週三的例會議程;
隱私審查確認函更麻煩,需要法務合規部和外部律所聯籤。
他拿起筆,在打印件的空白處寫了劃,劃了又寫。
他切回調閱申請的草稿界面,選中“180天跨部門人員借調審批記錄及原始郵件存檔”這行,直接刪掉。
光標在空白處閃爍了幾秒。
接着,他重新敲下一行字:“過去180天內涉及經營連續性關鍵崗位變動的人員調配彙總表(不含原始審批鏈及郵件附件)”。
範圍縮減了一半,措辭也從敏感的“原始郵件存檔”降級成了“彙總表”,巧妙地繞開了人事審批鏈的權限爭議。
霍爾保存草稿,但沒急着發送。
他把那四頁清單塞進文件夾,一把推上抽屜。
手邊的咖啡已經涼透,他端起來抿了一口,隨後點開電子日曆,在下週三的投委會議程欄裏加上了一行備註。
上海浦東張江高科技園區,一棟沒有門牌號的灰色小樓。
三樓房間的窗簾拉得死死的,空調定在二十度,牆角散亂地堆着幾箱喝了一半的礦泉水。
秦雅坐在摺疊桌前,盯着筆記本屏幕上不斷刷新的貨運追蹤系統。
頁面閃爍,航班狀態從“In Transit”跳成了“Arrived”。
她順着視線瞥了一眼右下角的時間,九點四十七分,比預計早了十三分鐘。
她摸起桌上的對講機按下側鍵:
“航班落地,貨進轉關。”
滋啦一聲電流後,樓下的車調回了句乾脆的“收到”。
接下來該辦身份轉換了。
十名所謂“醫療公益項目外圍勞務人員”得換上國內合法身份,材料她昨晚早過兩遍,轉關文件和隔離對接方案也都按部就班排好。
她翻開轉關單據,開始和木箱清單逐一比對。
翻到第六隻箱子時,指尖頓住了。
問題出在溫控記錄標籤上。
按照醫療合規包裝要求,木箱外側這東西會記錄全程溫度曲線,供海關係統覈對航線氣候。
只要偏差越過閾值,系統就會自動報警彈flag。
而眼前第六隻箱子的標籤上,起飛後最初兩小時的曲線平滑得有些詭異。
五月的芝加哥地面到萬米高空,貨艙本該有一道陡峭的降溫斜率,可這根線死死趴在水平面上,像是在恆溫室裏畫出來的。
她把標籤湊到檯燈底下,藉着亮光翻看背面的批次編號。
果不其然,號碼對不上——這是第三隻箱子的標籤。
裝車時貼串了。
她趕忙翻出第三隻箱子的單據一查,上面赫然印着第六隻的批次號。
兩者交叉錯貼,直接導致起始環境溫度與實際裝載位置完全錯位。
貨物完好,溫控鏈一切正常,純粹只是個低級失誤。
可一旦帶着這烏龍標籤進轉關,海關係統一掃出氣候數據不符,絕對會觸發異常警報,到時候這兩隻箱子只能進小黑屋單獨查驗。
離轉關窗口關閉只剩四十分鐘。
秦雅瞥了一眼手邊的對講機和加密電話,想了想還是算了。
林允寧這會兒估計正忙着芝加哥上午的審計,等跨越大洋把前因後果扯清楚再要個指示,黃花菜都涼了。
更何況情況很明瞭:單純錯貼而已。
解決辦法也簡單,直接互換標籤,再在單據上補一份更正說明蓋公章就行。
而此時此地,能在單據上簽字的只有她。
秦雅拉開抽屜,翻出備用貼紙和更正表。
她利索地撕下舊標籤對調貼好,提筆在表上飛快寫下:
“裝載環節標籤交叉錯貼,經現場覈查確認溫控鏈完整,已更正歸位。”
簽字、蓋章、拍照留底,一套流程下來花掉十二分鐘。
剛把單據塞進文件袋查完最後一遍批次號,塑料文件袋的摩擦聲還沒停,對講機“滋啦”又響了,樓下在催轉關文件的進度。
“十分鐘。”秦雅捏着對講機,語氣毫無波瀾。
華夏。
大涼山,海拔兩千八百米。
冷備節點藏在一座廢棄水電站的地下二層,混凝土牆面滲着水,空氣乾冷,嗓子吸兩口就發緊。
走廊盡頭改造出來的隔離間大概二十平方米,兩張行軍牀靠牆擺着,中間一張拼起來的長桌上鋪滿了打印紙。
紙上密密麻麻的手寫參數序列,有的打了勾,有的畫了叉,有幾處被圓珠筆重重地圈起來。
趙振華站在長桌一頭,胳膊抱在胸前,看着對面的兩個年輕人。
兩個人都是第二波的核心承載者,坐了十幾個小時的飛機,落地後直接被送到這兒,連行李都沒拆。
現在他們一個坐在桌子左邊,一個坐在右邊,中間隔着那堆打印紙。
校準已經進行了三個小時。
方式說起來簡單:一個人閉着眼背誦自己記憶中某段翻譯矩陣的參數序列,另一個人對着冷備節點導出的存儲版本逐項比對,標出差異點。
實際操作起來,完全是另一回事。
翻譯字典遠比單純的數值表複雜得多。
每一段參數背後都拖曳着冗長的推導路徑和上下文語境,乃至當初“爲何取此舍彼”的邏輯支撐。
負責背誦的人沒法光憑肌肉記憶往外蹦數字,他得回到當時的討論現場。
林允寧提過什麼設想?
中間推翻過哪些試錯方案?
另一頭負責比對的也一樣,眼前的差異究竟是人腦的記憶殘損,還是冷備節點本身的存儲位移,全靠現場拍板判斷。
前兩個小時,他們完成了外圍模塊的比對,差異不大,大部分在小數點後第四位以內,屬於口述還原的正常累積。
第三個小時開始碰核心接口了。
三個關鍵模塊的接口處,漂移集中得厲害。
第一波的人口述還原的時候,最容易丟掉的就是接口處的上下文,因爲那些參數不屬於任何一個單獨的模塊,而是兩個模塊之間的翻譯邏輯,記憶的時候沒有天然的錨點。
趙振華讓他們先跑了一次端到端的盲測。
結果不好。
系統在第一個接口處就開始報錯,下遊模塊收到的輸入和預期格式對不上,連續三個步驟全部返回異常值。
第二個接口直接卡死,盲測跑不下去。
第三個接口沒測到。
屏幕上映出一長串刺眼的紅色報錯信息。
趙振華盯着泛紅的屏幕看了一會兒,什麼也沒說,轉身拐進了走廊,從角落的暖水瓶裏倒了兩杯水端回來。
水是溫的,瓶膽保溫效果不太行。
當然,這個海拔上燒開水也只能燒到九十度出頭。
“先喝口水吧。”他把杯子放在兩個年輕人手邊。
左邊那個接過杯子,手指有點抖,不知道是冷的還是累的。
他們從落地到現在沒有真正休息過,還在倒時差,有連續高強度地工作了三個小時。
“再喫點東西。”趙振華從桌角拿過一個塑料袋,裏面是食堂打包的饅頭和鹹菜。
饅頭已經涼了,硬邦邦的。
鹹菜是當地醃的,齁鹹。
“趙老師,我們可以繼續。”右邊那個說。
“喫完再說。”
趙振華自己也掰了半個饅頭,站在旁邊慢慢嚼。
隔離間沒有窗戶,日光燈管嗡嗡地響,牆角的除溼機每隔幾分鐘咔嗒一聲往外排水。
這個地方冬天零下十幾度,夏天也才十來度,混凝土裏的水汽一年到頭滲不完。
兩個年輕人悶頭喫了幾口饅頭,喝了水。
左邊那個嚥下最後一口,擦了擦手,抬頭看趙振華。
“趙老師,我想先集中攻第三個接口。”
趙振華看了他一眼。
第三個接口是三個裏面最難的,對應的是HfO2瞬態缺陷儲池方法論的核心翻譯層。
“固定前史設計”和“邊界殘差對齊”的參數映射關係就壓在這個接口上。
“爲什麼不從第一個開始?”
“第一個和第二個的漂移主要是數值精度問題,校準方法是確定的,就是費時間。
”第三個不一樣,它的漂移不是精度問題,是上下文丟了一塊。如果第三個通不了,前面兩個校準了也沒用,下遊全是錯的。”
趙振華沒有接話,等了幾秒。
”而且......”
左邊那個人揉了揉眉心,”這個接口的參數,林老師當時解釋過一遍完整的推導邏輯。
“我記得他說,固定前史不是一個單獨的約束條件,它和邊界殘差對齊之間有一個依賴關係,前史的選取方式決定了殘差對齊的基準面。
冷備端存的那版參數把這兩步當成獨立的了,所以映射關係纔會漂。”
右邊那個點了點頭:“我那邊的記憶和他一致。林老師原話大概是'前史不是初始條件,是尺子,量出來的東西取決於你拿哪把尺。
趙振華放下手裏的半個饅頭。
“那就先攻第三個。”
兩個人重新坐回桌前。
左邊的人閉上眼睛,開始背誦第三接口的參數序列。
這個背誦,可不只是一個個蹦數字那麼簡單,而是先要捋清楚推導路徑,再說在那條路徑下參數應該取什麼值,爲什麼。
右邊的人對着冷備端的打印件逐項比對,遇到差異就停下來,兩個人一起回憶林允寧當時的原話和板書內容,確認到底是誰記錯了還是冷備端存錯了。
四十分鐘後,他們在第三接口的參數映射表上標出了七處差異。
其中五處是冷備端在第一波口述還原時丟掉的上下文依賴關係,兩處是數值精度偏差。
左邊的人把七處修正值手寫在一張新的打印紙上,右邊的人輸入系統。
趙振華站在旁邊看着屏幕。
系統重新加載了第三接口的翻譯層。
他跑了一次單模塊盲測。
屏幕上的報錯信息消失了。
輸出值開始逐行刷新,趙振華拿過旁邊一份打印件,是林允寧在IBM窗口內留下的基線結果備份。
他把盲測輸出和基線結果逐行對照。
前二十行,吻合。
前五十行,吻合。
跑完全部一百二十八行,沒有一行偏差超過容許範圍。
打滿黑字的紙頁被趙振華輕輕釦在桌面上。
伴隨着紙張接觸桌面的細微摩擦聲,他轉身走出隔離間,站在略顯空蕩的走廊裏,掏出加密手機,往芝加哥發了一段簡訊:
”第三接口校準完成。盲測輸出與IBM基線可比對。剩餘兩個接口未動。”
林允寧看到趙振華那條消息的時候,正靠在書房的椅子上翻費弗曼的郵件。
他把消息讀了兩遍,退出加密頻道,把手機放在桌上。
第三接口。
最難的那個。
通了。
林允寧閉了一下眼睛,吸了口氣,重新把注意力拉回屏幕上費弗曼那封長郵件的最後一段。
手機響了。
這一次,是芝大內部通訊錄的號碼。
來電顯示:芝加哥大學數學系主任紐加德。
林允寧接起來。
“允寧,你現在方便說話嗎?“紐加德的聲音比平時快,沒有寒暄。
”方便。“
“你之前發的那封閉門研討會申請,我沒法按你說的辦。”
林允寧的手指停在桌沿上。
”這一次,費弗曼的質詢信不只是發給你的。他同時抄送了系委員會六個人,陶哲軒那邊也在arXiv上持續追問。
“普林斯頓物理系昨天下午打電話到我辦公室,問芝大在做什麼。”
紐加德停了一下。
“如果我們只用一個閉門研討會來回應這件事,一旦消息傳出去,學校的處境會很被動。你明白我的意思。”
“但我理解你的需求,咱們需要當面談談。明天上午你能來我辦公室嗎?”
林允寧還沒開口,紐加德已經掛了。
書房很安靜。
桌上那張A4紙還攤在原處。