直接回答:例外情况不要写成“特殊情况另行处理”,而要写成可判定的条件、可观察的证据和明确的默认动作。把人工经验转成脚本需求时,先为每个判断点固定一个默认规则,再列出触发例外的信号,最后写明遇到例外时脚本是跳过、标记待审还是按另一条规则执行。这样不同角色对同一事实的理解分歧,才能变成可以逐条核对的项目。
假设你负责把内容更新流程写成脚本:编辑认为某页正文已经过时,运营认为标题仍然有效,技术认为页面模板没变所以不用动。三个人说的其实不是同一件事,却都用了“这页要不要更新”这一句话。若直接把“编辑经验”写成脚本,脚本只能得到一个模糊指令,执行结果无法复核。
处理办法是先拆事实层级:正文段落是否仍匹配当前主题、标题是否仍能概括正文、模板字段是否影响展示。每一层分别给默认规则和例外条件,分歧就从立场争论变成字段核对。这一步不需要先争论谁对,只需要先确认三个人各自在描述哪一层。
“内容明显过时”无法执行,因为不同角色对“明显”的阈值不同。可改成:正文中引用的日期距今超过某一范围,且该段落后文没有补充说明。这里的范围是假设值,实际取值应由团队根据内容类型决定,不能直接照搬。
可观察信号通常来自三类证据:文本自身的变化、页面结构的变化、外部输入的变化。文本自身如标题与正文主题不一致;页面结构如正文模块被移除或替换;外部输入如人工标注表里新增了待处理标记。脚本只需要判断这些信号是否存在,不需要理解“过时”这种抽象判断。
动作与结果要连起来写:如果脚本发现标题与正文主题不一致,就跳过自动改写并输出待审记录;编辑看到待审记录后再决定是改标题还是改正文。这样下一步不是继续猜,而是有明确入口。
下面是一份假设的例外清单结构,用来把人工分歧转成可核对项目。每一行都必须能回答:什么条件触发、看到什么证据、默认做什么、什么情况下升级给人工。
这份清单的关键不是条目多,而是每条都能被另一个人独立复核。若一条例外只能由写脚本的人解释,它就不算可核对项目。
假设脚本第一轮运行后,待审记录从零变成若干条。这个变化不能单独证明脚本判断正确,也不能单独证明内容质量下降。合理解释至少有三种:标注口径变了、页面结构确实变了、脚本阈值设得过紧。要区分它们,需要同时看触发条件的分布,而不是只看总数。
比较改动前后时,要考虑季节和搜索需求变化、数据采集差异。例如同一批页面在需求旺季和淡季的表现本来就不同,不能把差异全部归给脚本。可行动作是:先固定一批页面作为对照,记录改动前的状态,再在相同采集口径下记录改动后的状态,最后按例外类型分组查看。若某一类例外集中出现,优先调整该类条件,而不是整体放宽阈值。
如果核对后发现多数待审记录来自标题与正文主题词无交集,下一步应先确认主题词表是否过时,而不是直接改脚本逻辑。这个动作的结果会决定后续是维护词表还是调整判断规则。
把这三件事写进需求后,编辑、运营和技术对同一页面的不同理解就有了共同核对对象:不是争论谁对,而是逐条确认默认动作是否触发、例外信号是否存在、升级路径是否走通。这样写出来的脚本需求,才更接近可执行、可复核的项目,而不是把人工经验换一种说法藏起来。