跳到主要内容

S1 · 对照手册核查日志

挑战:你拿到一台机器的手册和两份日志。其中一份是机器验收时记录的,状态良好;另一份是最近的。最近这份日志和手册说的一致吗?把所有不一致的地方找出来,记录下来。

这节课不问为什么。 现象可能来自数据在采集、传输中出的问题,也可能来自机器本身。S1 只要求你把"看到了什么"记全、记准,分清来源是 S2 的事。

你拿到什么​

步骤​

S1:从手册到现象记录手册写成规则,规则先在验收日志上检验并修正,直到不再报警,再用于问题日志,记录现象并在回放页查看。有没有机器手册数据词典 · 动作顺序写成规则machine.yaml推出更多规则六类关系,可让 AI 提候选在验收日志上运行有报警?修改或放弃规则写下原因在问题日志上运行记录现象只描述,不解释在回放页上查看标出参照类型
规则先在验收日志上检验,报警就说明规则写错了;通过之后才用于问题日志。

1. 把手册写成规则​

把数据词典转成一份 YAML 文件:每一列的类型、取值范围、单位,每个位的含义,每个编码的含义。格式见交付规范。

然后把能直接写成检查的规定逐条写下来,例如"每 0.1 秒一行""T1 到 T6 在 0 到 6 之间"。

2. 从手册推出更多规则​

手册不会写出所有规则。还有一些是从机器的工作方式推出来的,比如球数不可能凭空增加两个。下面是六类可以去找的关系,每类至少写出一条:

类别问自己
时间时间戳应该怎样前进?
范围每一列允许的值是什么?
计数计数每一行最多能变多少?
守恒取走的球、落下的球、管里的球,数目之间有什么关系?
列与列之间同一件事会同时出现在哪几列?它们必须怎样对得上?
动作顺序按手册的动作顺序,一列的值可以从什么变到什么?

可以让 AI 帮你提候选规则,但每一条都要经过第 3 步检验,并且注明来源是你自己还是 AI。

3. 在验收日志上检验每条规则​

在验收日志上运行全部规则。验收日志是健康的,所以:

  • 一条规则没有报警:保留。
  • 一条规则报警了:规则写错了,或者条件太严。修改它,或者放弃它,并写下原因。

这一步做完,你得到一套在健康数据上不会误报的规则。

4. 在问题日志上运行,记录现象​

在问题日志上运行同一套规则。每一处报警是一条现象,写进现象记录:

字段内容
first_seen、last_seen现象开始和结束的时间
rows涉及的行(原始文件中的行号范围)
count出现了几次,或涉及几行
rule触发的规则
reference违反的是哪一类参照:手册规定、物理规律、列间关系,还是偏离验收日志的基线
phenomenon一句话描述你看到了什么
evidence证据:几行原始数据,或者一张回放页截图

只描述,不解释。 写"T3 在 08:12:04.1 这一行从 2 变成 4",不写"丢了一行"。

规则以外,再和验收日志比一比:停机的次数和时长、一个周期的时长。明显偏离的地方也是现象,reference 填"基线"。

5. 在回放页上查看每条现象​

把问题日志加载到回放页,跳到每条现象的时间,看机器在画面上表现成什么样,必要时截图放进 evidence。

有些现象在画面上一眼可见,比如手臂瞬移、计数跳变;有些看不出来,比如两行时间戳相同。看不出来不代表不存在,规则报警就要记录。

交付​

  • machine.yaml:你的数据词典和规则。
  • check-log skill:输入一份日志和 machine.yaml,输出现象记录。Python 脚本或 SKILL.md 均可,见交付规范。
  • 问题日志的现象记录,以及运行日志。

验收​

  • 你的规则在验收日志上不报警。
  • 老师给出的另一份问题日志上,你的 skill 不改代码就能跑通。
  • 问题日志里每一类问题都至少被一条现象覆盖。
  • 每条现象都有证据,并标出了参照类型。

示范:从手册的一句话到一条现象记录