有效期阈值可配置这件事,卫越用了三天。
第四天早上,他发来一条消息:「我放了一个设置项,在报告设置里,叫「有效期提醒窗口」,用户可以填1到36个月,默认是6个月,改完下一次跑报告就生效。」
陆衍打开后台看了一下,是一个很简单的输入框,旁边跟了一行灰色小字:「此设置影响「标准传承提示」类别中的有效期相关条目。」
「提示语挺好,」陆衍说,「用户一眼知道改这个影响什么。」
「我想了一下要不要改成滑块,」卫越说,「但滑块有时候不精确,而且这个场景用户知道自己要几个月,输入框更直接。」
「输入框就好,」陆衍说,「简单的功能用简单的界面。」
「还有,」卫越说,「我加了一个校验:如果填的是0或者负数,提示「请填大于零的数字」;如果超过36,提示「建议设置在1到36个月之间」。」
「「建议」不是「必须」,」陆衍说。
「对,」卫越说,「超过36个月的情况理论上存在,我不想写死,就提示一下,还是让他们自己决定。」
陆衍把这个消息转给了吴庭,「有效期阈值现在可以自己设置了,在报告设置里找「有效期提醒窗口」,改成12个月就行。」
吴庭回得很快:「太好了,我刚好昨天跑完那个融资项目,用的是临时方案——自己在中置信度里手动筛有效期那条,筛出来14条,再手动看每条剩余时间,把6到12个月的单独标出来。」他停了一下,「有点繁,但是跑通了,对方今天看报告说「这几条他们已经在跟进续证了」,就没有别的问题了。」

「临时方案也走通了,」陆衍说,「新设置会更省一步。」
「嗯,」吴庭说,「等我下个项目开始改成可配置的用,这次先用临时方案的结论了。」
「没关系,」陆衍说,「结果是一样的。」
他把电话放下来,想了一下吴庭说的那句话:「对方说他们已经在跟进续证了。」
工具发现了有效期临界的证书,律师用报告和对方谈,对方回应说正在处理——这条链条里,工具是第一步,后面发生的事已经不在工具能看到的范围里了。陆衍做的这件事有没有用,要从后面那些步骤里才能看出来,而他通常是看不到的。
他没有往这个方向多想,把本子翻到今天那页,写了一行:
从工具跑出结论到结论被用上,中间发生了什么——通常看不见,不代表没有发生。
苏子墨的九十三份文件,比预期的多花了一天。
他发来报告的时候陆衍看了一眼,高置信度4条、中置信度11条,另外分类层级说明2条。高置信度那4条,3条是日期矛盾,1条是版本号不一致。
「这4条,」苏子墨说,「我让同事先去查了,3条日期矛盾里,2条是颁证日和申请日格式不同被工具误标,1条是真的有问题——证书日期是2020年,但引用的标准版本是2022年才发布的。」

「那1条是真实矛盾,」陆衍说。
「是,」苏子墨说,「我们去跟对方确认了,他们说当时申请的时候引用的是草案版本,最终证书出来的时候没有更新引用,」他停了一下,「这个解释听起来合理,但我们还是建议要他们出一份书面说明。」
陆衍听完,「那2条日期格式被误标的,」他说,「有没有影响你的判断?」
「有一点麻烦,」苏子墨说,「那2条我们要单独去查确认是格式问题,花了半天——如果工具能识别常见日期格式差异,可以少查一些。」
「我记下来,」陆衍说。
他把这件事发给卫越,「苏子墨那边遇到了日期格式被误标的情况——「2020年10月25日」和「2020-10-25」两种格式,工具把它们判成了不一致。」
「我知道,」卫越说,「这个问题之前贺林那边也出现过一次,我当时没有特别处理,一直在想要不要加一个日期格式归一化的步骤。」
「现在呢,」陆衍问。
「现在我觉得可以加,」卫越说,「在扫描之前先把所有日期字段归一化成同一格式,然后再比对——这样日期格式不同但实际日期相同的,就不会被误标了。」
「这个不复杂吗,」陆衍问。
「不复杂,」卫越说,「常见的格式就那几种,加一个预处理步骤,一两天可以做完。」

「那排进去,」陆衍说,「下个版本加。」
苏子墨那边最后的进展,陆衍是下午收到的。
「11条中置信度我们梳理了一遍,」苏子墨说,「6条是真实问题需要跟进,5条是信息不完整——证书上没有写某个字段,但不一定是问题,就是记录里缺一项。」他停了一下,「「未填写无法核验」那个类别,我觉得对我们这个项目很有用,因为能源行业的证书有时候填写规范不一样,有些字段在这家机构的模板里根本没有,所以工具说「无法核验」比工具说「有问题」要准确得多。」
「「无法核验」是比「有问题」更诚实的说法,」陆衍说,「工具不能凭文件没有某个字段就判矛盾,因为这个字段可能在这个行业根本不是必填的。」
「对,」苏子墨说,「这个逻辑你们想得比较清楚,我用的时候感觉出来了——工具给我的,是它能看到的,看不到的不乱说。」
这句话让陆衍在本子上记了第二行:
「工具给你的是它能看到的,看不到的它不乱说」——苏子墨说的,比我自己解释更准确。
晚上,冯树来电话,说起这几天的情况。
陆衍把苏子墨和吴庭的项目说了一遍,提到日期格式误标那件事,「卫越这两天要加日期归一化,下个版本修掉。」
「苏子墨花了半天去查,」冯树说,「半天是成本。」

「是,」陆衍说,「所以要改。」
「我想说的是,」冯树说,「不是「要改」,是「你们发现了、知道了、改了」——这件事本身是好事,不是麻烦。」
「有什么区别,」陆衍说。
「区别是心态,」冯树说,「每一个客户告诉你工具哪里不对,那是在帮你做测试,你们自己测不出来那么多行业情形的——你们的测试集就是这些客户,免费的,还帮你修掉的是真实问题,不是编出来的问题。」
陆衍把这个想法停了一下,「你是说把客户反馈当成测试用例。」
「不只是「当成」,」冯树说,「本来就是——贺林那边的简称全称,吴庭那边的有效期阈值,苏子墨那边的日期格式,每一条都是工具在真实项目里暴露出来的真实问题。这些问题你在实验室里设计不出来,因为你不知道每个行业的文件长什么样、哪里会出问题。」
「所以每个新行业进来,边界就往外扩一圈,」陆衍说。
「对,」冯树说,「这就是你们现在正在做的事。」
他把今天第三行写进本子,今天最后一行:
每个新行业、新用法进来,工具的边界往外扩一圈——这件事不是在补漏,是在成长。