下一章 上一章 目录 设置
14、旧矩阵重新落下 一项历史迁 ...
-
匿名帖出现二十分钟后,学业排名系统开放查询。
许砚知的名字排在第一行。总分右侧多出一个他从未见过的加分项:科研实践预认定,三分。
页面底部写着“数据仅供阶段参考”,但截图不需要等数据定稿。班群、年级群和论坛里已经开始转发,有人把排名页面与那篇“年级第一为何能旁听旧项目调查”拼在一起,红框圈住三分加成,配文只有一句:原来调查也能算科研成果。
许砚知没有先解释。他下载页面、保存时间、记录浏览器地址和系统版本,又给教务办公室提交异议:本人未申请科研实践认定,请冻结该项分值并保留导入日志。
提交完成后,他才把截图发进四人材料组。
沈砺川的电话几乎同时打来:“你在哪?”
“公共课教室。”
“别动排名页面,我过来。”
“页面已经保存。你先别来。”
电话那头停了一秒:“为什么?”
“下一节课点名。你现在冲过来解决不了导入日志,只会让匿名帖多一张我们一起离场的照片。”
沈砺川呼吸有点重,却没有说“我不管”。他问:“那我能做什么?”
许砚知看着讲台上正在连接投影的老师:“查论坛首发时间和文件名来源,但不要碰账号后台。十五分钟后把公开信息发我。”
“收到。”
这是他们成为固定搭档后第一次在不见面的情况下分工。沈砺川没有替许砚知决定要不要回应,许砚知也没有用“我自己处理”把他完全推开。
课堂讲的是概率分布。老师让学生判断一个极端值究竟是异常,还是总体变化的信号。许砚知记下公式,手机在桌肚里震了四次。他没有每次都看,直到随堂练习开始才打开沈砺川发来的整理。
匿名帖首发于八点零七分,排名系统八点整开放。发帖截图中的页面生成时间却是七点四十九分,比普通学生可查询时间早十一分钟。截图右下角有一段未裁净的打印页脚:AcademicRank_preview_07,说明它来自预览或导出文件,不是个人浏览器页面。
更重要的是,帖子引用的EABS_EN_v3_comments文件名,字体和换行位置与档案室调阅系统的下载清单一致。能同时接触排名预览与档案调阅清单的人不一定是同一个,但两份材料被放进同一篇帖子,说明有人正在主动把许砚知的学业记录与寒灯调查绑定。
随堂练习最后一题问“是否应删除极端样本”。许砚知写:不能因为它破坏整体分布就删除,应先确认生成机制。
下课铃响,他没有等同学围过来祝贺或询问,直接去了教务服务中心。陈以宁已经在那里排号,手里带着一份本人授权模板,没有替他查分。
“系统窗口的人可能会让你直接展示成绩明细。”她说,“你可以授权他们查,不必同意向班级公开。”
许砚知接过模板:“论坛会说我不敢公开。”
“论坛还会说你公开得不够快、不够全、截图经过处理。”陈以宁把取号单递给他,“隐私不是用来交换清白的。”
窗口老师查到三分来自一批“创新实践临时导入”。文件中有二十七名学生,并非只针对许砚知;但他的记录来源异常,项目编号写的是CL-REVIEW,负责人栏空白,审核状态却显示“预通过”。
“这个项目不存在。”许砚知说。
老师核对项目库:“至少正式库里没有。”
“谁导入的?”
“批次账号是JX-ACADEMIC,教务公共任务号。真实操作者要信息办查。”
许砚知要求立即撤销自己的临时加分,同时保留导入前后快照。老师提醒,单独撤销会让他当前排名下降,系统晚上统一复核后也可能自动恢复。
“先冻结,不需要保留对我有利的错误。”他说。
窗口老师让他签署异议单。许砚知逐项阅读,发现最后一条默认同意“将本人完整成绩用于澄清相关争议”。他划掉这句话,改成“授权教务部门核验分值来源并公布核验结论,不授权公开完整成绩明细”。老师请示后接受修改。
签完时,沈砺川和林疏月才到。沈砺川站在大厅入口,没有越过排队护栏。他看见许砚知已经办完,没有问为什么不等自己,只把论坛传播记录交给陈以宁。
“你想怎么回应?”他问。
“先等教务核验。”
“帖子正在涨。”
“事实不会因为浏览量改变。”
“现实后果会。”林疏月说,“你不需要立刻公开成绩,但至少要告诉同学你已经提交异议,否则沉默会被别人填满。”
四个人没有在大厅争。许砚知把可能的回应分成三层:第一层,只确认本人已申请核验;第二层,公布教务结论与分值处理;第三层,若出现具体指控,再提供对应流程证据。完整成绩单不在任何一层。
沈砺川问:“需不需要我说明你参与寒灯调查不是靠排名?”
“需要学院说明授权来源,不需要你替我证明资格。”
“好。”
他回答得很快,随后又补:“如果有人问我,我只说材料组的进入条件和流程,不评价你够不够格。”
这句话使许砚知抬头看了他一眼。沈砺川以前最容易做的,就是把保护写成判断:许砚知当然够格,许砚知不需要理会,许砚知不会被这种话影响。现在他把选择权留在本人手里,只处理自己能够说明的事实。
教务处原本准备只给主动申诉的学生发送更正通知。许砚知看见二十七人的批次后,要求系统按同一标准逐人告知:错误分值从哪里来、是否影响奖学金和分流、何时完成撤销。窗口老师提醒,这会扩大工作量,也可能让原本没有注意到排名变化的人产生焦虑。
“但不通知,就等于让没发现的人继续承担错误结果。”许砚知说。
陈以宁补充:“可以分层通知。先告知存在临时导入与是否影响本人,再由学生选择是否查看详细记录。”
教务处接受了这个方式。二十七人中,有十九人的正式排名不受影响,六人名次发生一到三位变化,两人的评优候选状态被临时改动。系统在当天下午恢复前,必须先撤回自动生成的候选名单。
其中一名大二学生孙韬赶到服务中心时,手里还拿着社团证明。他的临时加分来自一项根本没参加过的“智能学习诊断”,如果不主动撤销,他可能进入评优名单;可一旦后来被认定材料不实,又会被视为本人申报问题。
“我什么都没填。”他说,“为什么最后要我证明不是我填的?”
窗口老师解释数据导入流程,语气很耐心,孙韬仍不安。他担心撤回记录会在个人档案里留下“申报取消”。许砚知把自己的异议单给他看,指出应写“系统错误更正”,不能写“学生申请撤销”。
孙韬没有因此变成调查成员。他只要求教务在通知里明确责任主体,随后带着盖章更正单离开。这个短暂交集让匿名帖里的“某人特殊处理”变得更荒唐:错误波及二十七人,只是论坛选择了最容易制造故事的那一个名字。
许砚知建议教务公布批次人数与影响范围,不公布任何学生姓名。沈砺川在传播记录里把孙韬相关内容全部删除,只留下制度问题。他没有把另一个学生的遭遇当成替许砚知洗清嫌疑的材料。
中午,教务处发布简短通知:排名预览中部分创新实践分值存在导入错误,系统暂停显示,复核后重新开放。通知没有点名任何学生,也没有说明CL-REVIEW来源。
匿名帖很快更新:系统为某人紧急关榜。
林疏月气得想在评论区贴时间线。许砚知没有阻止她表达,而是要求区分个人账号与材料组身份。最终她用自己的账号只转发教务通知,并写“预览错误涉及多人,别把未核验分值编成个人利益链”。没有提内部文件,也没有把四人组的调查进展当作反击素材。
下午,学院通知许砚知参加一次“情况沟通”。这次地点换成了学生工作办公室,没有沿用听取会的小会议室。辅导员、教务老师和陆行简都在,桌上放着匿名帖打印件。
辅导员建议他公开一张去掉课程名称的分数汇总,以减少猜测。许砚知问:“公开后,能否保证不再要求我证明其他信息?”
没人能保证。
“那我不同意。”他说,“教务可以公开核验结论。我的具体成绩不是调查材料,也不是论坛质疑的公共证据。”
辅导员提醒,拒绝公开可能承受更多议论。
“我接受这个后果。”
陆行简一直没有说话。等许砚知表态结束,他才问:“如果压力继续扩大,你是否退出寒灯材料组?”
这不是建议,更像一次边界测试。
许砚知回答:“如果学院认为我的参与构成程序风险,请给出书面理由和替代安排。如果只是因为别人把排名和调查写在一起,我不退出。”
“为什么?”
“退出会把错误关联变成有效手段。以后任何人只要制造流言,就能改变材料组成员。”
陆行简点头,没有再问。他要求学院宣传口只说明授权流程,不评价学生能力,也不使用“优秀学生参与”之类会进一步绑定排名的措辞。
沟通结束后,沈砺川在楼下等。他没问办公室里说了什么,只把一张折好的纸递过来。上面是他拟的回应草稿,只有三句:材料组成员依据具体证据工作分配产生;当前排名预览存在系统错误;本人不掌握也不评价许砚知的完整成绩。
“你没发?”许砚知问。
“等你决定。”
“第三句保留,前两句由学院发。”
沈砺川当着他的面删掉草稿,没有截图纪念,也没有说自己忍得多辛苦。
为了确认“旧风险矩阵”究竟怎样进入排名系统,信息办没有把迁移脚本交给学生,而是在可观察会议室现场运行一份去除真实数据的副本。屏幕一侧显示输入字段,另一侧显示转换结果。许砚知、沈砺川和陈以宁只能提出测试样例,由信息员操作。
第一个样例把旧字段reviewer留空,系统没有分配导师。第二个样例填ZSONG,输出自动匹配赵嵩。第三个样例填一个不存在的缩写,系统却从姓名首字母相似的人中选出最近记录。这个“兼容功能”没有置信度阈值,也没有要求人工确认。
“它会尽量填满空白。”信息员说。
“填错也比留空更优先?”林疏月问。
“旧迁移项目追求字段完整率,当时验收看的是空值比例。”
这套目标和寒灯公开展示很像:空白被视为难看,系统不知道被视为需要修补。最终得到的表格很完整,责任却可能落在错误的人身上。
许砚知要求加入一个完全同名的测试。系统按学号年份、学院和最近访问记录排序,优先把旧XZ映射给当前接触寒灯证据库的许砚知。若没有“最近访问记录”这一项,他不会被选中。
“谁把证据库访问记录设成身份匹配条件?”他问。
信息员查脚本配置。默认条件里没有这一项,它来自昨天任务启动时临时加载的参数文件。参数文件只保存了九分钟,与LQ_admin_migrate角色同时创建、同时销毁,文件名是focus_pair.json。
“pair?”沈砺川盯着屏幕。
信息员展示恢复出的字段:target_source=coldlight_next_evidence,target_limit=2,include_recent_access=true。它没有直接写两个人的名字,却通过筛选条件准确得到他们。
“这能证明有人针对我们吗?”沈砺川问。
“能证明任务参数被设计为筛选最近访问证据库的两名学生。”许砚知回答,“是否针对个人,要看配置者知不知道当时只有我们两人符合。”
信息员补充,证据库访问名单并非公开,只有仓库管理员、学院安全联系人和负责权限审计的临时角色能查看。贺承远是仓库管理员,但他的个人账号当天没有创建参数文件;安全联系人账号无登录;临时角色正是LQ_admin_migrate。
角色自己调用角色,真实操作者仍藏在动态授权之后。
他们请求保留副本运行录像、测试输入和配置恢复过程。沈砺川没有尝试从系统缓存追真实IP,因为当前授权只允许验证脚本行为。许砚知没有把“针对性任务”写成“有人陷害”,只在结论里注明:该导入属于针对特定访问条件生成的小范围任务,区别于常规全量迁移。
退出观察室前,信息员问是否要立刻禁用所有历史兼容角色。沈砺川本能地想说要,随后问:“有没有仍在运行的正常迁移?”
有。三个学院的旧课程记录还依赖同类角色,如果直接禁用,今晚的成绩同步会失败。
最终方案选择冻结LQ角色族的动态授权,同时保留已登记批处理,由两名管理员逐项确认,避免一刀切停机。许砚知在风险说明上签字,接受这会增加系统维护时间;沈砺川在技术方案上签字,承担自己提出的审计规则可能导致同步延迟。
他们第一次共同参与一个不只影响自己、也会给别人带来现实成本的决定。保护证据不能变成让所有系统停摆,恢复服务也不能继续靠模糊角色绕过记录。
傍晚,信息办给出初步日志。CL-REVIEW记录由教务公共任务号批量导入,但源文件并非来自正常实践项目库,而是从一份旧的学生映射测试表转换而来。表中字段与寒灯旧版risk_matrix结构高度相似:学号、课程、风险值、展示分组。
旧表中的XZ缩写再次被自动映射到许砚知的新学号,这才使他的姓名进入导入批次,并非排名本身触发。可与前一次门禁异常不同,这次转换发生在昨天凌晨,是当前系统任务,不是三年前遗留数据静止地留在那里。
有人或者某个未清理的流程,仍在让旧风险矩阵进入新系统。
更麻烦的是,导入任务同时修改了许砚知的学业导师分组。原本待分配的导师字段被写成赵嵩,状态为“建议绑定”,尚未生效。
“这是想把你推到他名下,还是只因为旧表负责人字段?”沈砺川问。
“不知道。”许砚知说,“先查转换规则。”
教务信息员打开字段映射说明。risk_matrix里的reviewer被自动对应到当前系统的academic_advisor。旧表中XZ那一行的reviewer正是ZSONG,因此转换后出现赵嵩。
这可能是糟糕的数据迁移,不一定是有人手工选择许砚知。但任务为什么在昨天凌晨运行,仍没有解释。日志显示启动者来自临时质量管理角色LQ_admin_migrate,普通教务账号没有参与启动。
名称与三年前修改英文摘要的LQ_admin属于同一角色族。
信息办进一步说明,这个迁移角色本应在上学期完成系统升级后停用,昨天凌晨却被一次性重新激活,存活九分钟。审批单号为空,激活来源为“历史兼容任务”。
许砚知要求保全日志。信息办答应,但需要学院正式函件。沈砺川已经打开申请模板,又在填写前停住:“你来写申请目的,还是我?”
“我写涉及本人数据的部分。你写角色复用风险。”
两份说明分开提交,互不代签。
第二天早课前,坐在前排的同学把手机递给许砚知,问匿名帖里“核心实验室”到底指什么。对方没有恶意,只是被帖子带着以为他已经获得特殊科研名额。
许砚知没有讲旧案,也没有用“保密”堵住问题。他解释自己只是经授权提供异常记录,材料组权限限于指定副本,不包含实验室招募、项目名额和成绩认定。那名同学听完又问:“所以你现在也不算进组?”
“不算。”
“那帖子写得太夸张了。”
事情没有因此彻底澄清,但至少有一个误解在当面问答里被拆开。沈砺川坐在后排,从头到尾没插话。等同学离开,他才把许砚知桌边被碰歪的课程表扶正。
“我刚才差点想替你答。”他说。
“我知道。”
“你怎么知道?”
“你吸气了。”
沈砺川笑了一下,把手收回去:“下次争取连气都不抢。”
“可以呼吸。”许砚知翻开课本,“别抢回答。”
晚上九点,排名系统重新开放。错误加分已撤销,许砚知仍在前列,却不再是第一。班群里有人说“果然掉了”,也有人向他道歉。许砚知没有逐条回应,只转发教务复核结论:临时导入错误,不计入正式排名;涉及学生二十七人;完整成绩不公开。
沈砺川在自己的账号下发布学院授权流程,没有提许砚知的分数。他收到一条私信:“你这么护他,是不是因为你们一起查案?”
他把私信截进传播记录,用户名脱敏,然后回复:“我说明我参与的流程,不替他公开个人信息。”
许砚知看到这句时,没有说谢谢。他把沈砺川的回应标成“个人边界清楚,可留作传播处置示例”,又觉得这份评价太像检查表,最终只在聊天框里发了一句:看到了。
沈砺川回:嗯。
这段对话没有进入正式材料。固定搭档的作用,是在对方发言时守住不被打断的空间,而非替他作答。流言并未消失,但他们没有再用越界的保护制造新的问题。
许砚知关闭聊天框,把排名复核回执留在公开材料夹,个人成绩单仍留在自己的账户里。
几分钟后,教务信息员传来最后一份日志补充。LQ_admin_migrate激活前,系统曾读取一张当前学生名单,筛选条件绕开了排名和课程,直接使用“已访问coldlight_next_evidence”。
被筛出的学生只有两人。
许砚知,沈砺川。
那次错误导入不是随机扫到旧数据。有人先找到了他们,再让旧矩阵重新落到他们身上。