Diff

baseline p5-32-pump-baseline · 418cab89c192 against candidate p5-33-pump-offset-changed · b3d2209d89ba

Both runs' records agree. Every check behind this is on Proof

The short answer

The runs first differ at calibrate, where its configuration changed.

Every stage before it is the same. All 4 stages after it differ.

  1. readingsSame
  2. calibrateFirst difference
  3. featuresChanged after it
  4. anomaly_checkChanged after it
  5. decisionChanged after it
  6. work_orderChanged after it

Checked from the records. The same answer every time.

What may have happened

AI-generated, may be wrong · model anthropic:claude-sonnet-4-6

Hide the detailsShow the details
Lead (possible culprit)

The first difference originates at the `calibrate` node, where the candidate's `sensor-calibration` transform has a different config digest than the baseline, making it the most likely culprit for all downstream divergence.

Checks

onetrace can run these. A lead is confirmed or ruled out only by what they report. This demo runs none of them.

  • onetrace match b
  • onetrace diff a b --text --stage calibrate
  • onetrace reproduce b calibrate --runner <your runner>
6 claims checked against the record · 4 left out
  • 4 quotes a value its cites don't hold

Its record: explain/2026-10-25T13-39-09.069959Z/, onetrace-verify: 94 pass, 0 fail, 3 not-run -> PASS (exit 0)

What changed between the two runs

The two runs differ.

First difference: stage 2 · calibrate.

Stages identical before it: 1 of 1.

Both runs' records agree. readings was the same in both. calibrate's recorded configuration differs (see Details). Its output differs, and all 4 stages after it changed too.

onetrace diff runs/p5-32-pump-baseline runs/p5-33-pump-offset-changed --text

recorded as a straight line (no graph recorded)

A link shows which recorded output a stage read. It does not by itself prove that one stage caused the next.

Settings that changed

No readable setting differs; only a recorded fingerprint, under Details.

Details
StageSettingBaselineCandidate
calibrateconfig_digest
sha256:2ab67ce4…310d2dsha256:2ab67ce494b5a7f019cd1d1673f16547a7402d351fb101b36b5a27b2a6310d2d
sha256:dbe4d3ff…1c44f1sha256:dbe4d3ff497ce986a15f036767b8fecd6e695fe72a7940c9f087517c4a1c44f1

The first difference is at stage 2 · calibrate. No smaller set was reported.

The text diff

Shown with at most 200 lines per output (the SDK's default).

Open the text diff on its own page

first difference: calibrate — output text changed; settings changed

calibrate · First difference

settings: 1 changed

configuration fingerprint: differs, both values under Details

Details

config_digest: 2ab67ce494b5 → dbe4d3ff497c

calibrated.json application/json Baseline: verified Candidate: verified

48 lines removed · 48 added

11  {
22    "vibration_mg": [
3-     "0",
3+     "-40",
4-     "217",
4+     "177",
5-     "374",
5+     "334",
6-     "441",
6+     "401",
7-     "388",
7+     "348",
8-     "210",
8+     "170",
9-     "7",
9+     "-33",
10-     "-196",
10+     "-236",
11-     "-339",
11+     "-379",
12-     "-392",
12+     "-432",
13-     "-360",
13+     "-400",
14-     "-203",
14+     "-243",
15-     "14",
15+     "-26",
16-     "231",
16+     "191",
17-     "388",
17+     "348",
18-     "420",
18+     "380",
19-     "367",
19+     "327",
20-     "224",
20+     "184",
21-     "21",
21+     "-19",
22-     "-182",
22+     "-222",
23-     "-360",
23+     "-400",
24-     "-413",
24+     "-453",
25-     "-346",
25+     "-386",
26-     "-189",
26+     "-229",
27-     "28",
27+     "-12",
28-     "210",
28+     "170",
29-     "367",
29+     "327",
30-     "434",
30+     "394",
31-     "381",
31+     "341",
32-     "238",
32+     "198",
33-     "0",
33+     "-40",
34-     "-203",
34+     "-243",
35-     "-346",
35+     "-386",
36-     "-399",
36+     "-439",
37-     "-332",
37+     "-372",
38-     "-210",
38+     "-250",
39-     "7",
39+     "-33",
40-     "224",
40+     "184",
41-     "381",
41+     "341",
42-     "448",
42+     "408",
43-     "360",
43+     "320",
44-     "217",
44+     "177",
45-     "14",
45+     "-26",
46-     "-189",
46+     "-229",
47-     "-332",
47+     "-372",
48-     "-420",
48+     "-460",
49-     "-353",
49+     "-393",
50-     "-196"
50+     "-236"
5151    ]
5252  }

features · Changed after it

settings: none changed

input calibrated.json (operator-authored) changed: 9789629fd791 -> 0d9e5e383641; content not stored

features.json application/json Baseline: verified Candidate: verified

2 lines removed · 2 added

11  {
2-   "peak_mg": "448",
2+   "peak_mg": "460",
3-   "rms_mg": "296"
3+   "rms_mg": "297"
44  }

anomaly_check · Changed after it

settings: none changed

input features.json (operator-authored) changed: 0070711bff29 -> 592265ade339; content not stored

anomaly.json application/json Baseline: verified Candidate: verified

1 line removed · 1 added

11  {
22    "anomaly": true,
33    "limit_mg": "280",
4-   "rms_mg": "296"
4+   "rms_mg": "297"
55  }

decision · Changed after it

settings: none changed

input anomaly.json (operator-authored) changed: 0323cedc75fb -> 6e6485b7b121; content not stored

decision.json application/json Baseline: verified Candidate: verified

1 line removed · 1 added

11  {
22    "action": "inspect the pump",
3-   "reason": "RMS 296 mg against a limit of 280 mg",
3+   "reason": "RMS 297 mg against a limit of 280 mg",
44    "slot": "02:30"
55  }

work_order · Changed after it

settings: none changed

input decision.json (operator-authored) changed: 57336b041c55 -> 84f9a7d63b33; content not stored

work_order.json application/json Baseline: verified Candidate: verified

1 line removed · 1 added

11  {
22    "order": "inspect the pump",
3-   "reason": "RMS 296 mg against a limit of 280 mg",
3+   "reason": "RMS 297 mg against a limit of 280 mg",
44    "slot": "02:30"
55  }

Command: onetrace diff runs/p5-32-pump-baseline runs/p5-33-pump-offset-changed --text

Repeat this yourself:

onetrace diff runs/p5-32-pump-baseline runs/p5-33-pump-offset-changed

Other runs that recorded the same value

Matching rule: the same settings digest at stage 2 · calibrate, by exact equality:
sha256:dbe4d3ff497c….sha256:dbe4d3ff497ce986a15f036767b8fecd6e695fe72a7940c9f087517c4a1c44f1

1 of 4 stored runs in P5 recorded the same settings digest at stage 2 · calibrate, the candidate among them.

Nothing here says what the change did in those runs.

This record shows what was verified and evaluated at the time — not what was ultimately true.