Get ThruLine

Specimen 05

A step with no result yet.

Step 60 started a check and has no result yet. A step with no result never counts as proof.

Recorded on ThruLine’s checkout-web demo record. No customer data. [swap in a corpus chain before launch]

The chain

Six questions, asked in order. Each answer is a line from the record of what the agent said and what actually ran, numbered step by step. A version is one exact commit of the code, like e71c5b0. Proof holds through ③, needs a re-check at ④, and stops at ⑤. Specimen 03, A file changed after the run, reads the same record at ④.

Claude Code said “Checkout total fixed.” “Tests pass.” · step 52 · demo record

Before the re-run

  1. ① Said

    What did the agent claim?

    "Tests pass." Claude Code · 16:03 step 52

  2. ② Rests on

    What is that claim based on?

    4 passed, 0 failed step 46 cited by the agent

  3. ③ Ran on

    Which version did that actually run on?

    version 9f2ad3e 1 version older

  4. ④ Since

    Did anything it depends on change after it?

    checkout/api.py changed · step 56 after the run

  5. ⑤ Re-checked

    Has anything checked it since?

    step 60 started a check no result yet

  6. ⑥ So
    Not proven

    So what do we actually know?

    version e71c5b0 the claim may be entirely true.

⑤ Re-checked · where proof stops

Has anything checked it since?

No result yet · step 60

Something started to. Step 60 started a check after the edit at step 56, and the record holds no result for it. A step with no result never counts as proof, so the thread does not pass through ⑤.

  1. step 46 · run on 9f2ad3e, needs a re-check
  2. step 56 · edit checkout/api.py
  3. step 60 · check no result yet
Read it left to right, in record order. Of the three checks ThruLine looked at, only step 60 came after the edit at step 56 — and it has no result.

Proof stops here

Nothing on e71c5b0 has run with checkout/api.py in scope.

What was looked at · 2 finished runs, 1 step with no result
Step Ran on Result Why it doesn’t count here
step 26 4b19a0c 1 failed, 3 passed An older version, and it failed.
step 46 9f2ad3e 4 passed, 0 failed It ran before the edit at step 56.
step 60 No result yet It started a check and has no result. A step with no result never counts.
Check it again

pytest -q tests/test_totals.py checkout/ on e71c5b0 · asks once for this project

The re-run

One press of Check it again runs the check again, on the version you are about to approve. It asks once per project, installs nothing and does not touch the network. In v0.2.0 the button runs cargo test; a pytest check like this one is re-run from a terminal with thruline check -- pytest …. Here it ran as step 62 and ended with exit 0, the code a command returns when it succeeds.

thruline ui · Change · Fix double-applied discount on checkout total After the re-run

1 · You press

Check it again

pytest -q tests/test_totals.py checkout/ on e71c5b0 · asks once for this project

2 · It runs

Passed

step 62 · exit 0 · on e71c5b0 3 passed, 0 failed

3 · ⑥ So

Proven · version e71c5b0 · tests/test_totals.py, checkout/

“Tests pass.” now rests on a run on this version.

  1. ① Said
  2. ② Rests on
  3. ③ Ran on
  4. ④ Since
  5. ⑤ Re-checked

    re-run · step 62 exit 0

  6. ⑥ So
    Proven

    version e71c5b0

What to notice: ⑤ is now answered by step 62 — a finished run, with a result, on e71c5b0 — not by step 60.

The receipt

A receipt is the record of exactly what ran: the command, the version it ran on, the exit code and the counts. A sha256 fingerprint covers the whole, so one changed byte no longer matches. “Proven” always points at a receipt: a recorded run, not a re-read. Step 60 has nothing to put on one yet — no exit code, no counts.

Receipt · step 62 · exit 0 · 3 passed, 0 failed · version e71c5b0

command
pytest -q tests/test_totals.py checkout/
scope
tests/test_totals.py, checkout/
outcome
Passed
record
checkout-web · demo record
sha256
[receipt sha256]

This is the checkout-web demo record, so its hash stays a placeholder. A real receipt is on the home page: ThruLine’s qualification run on a synthetic Python test project, signed with a sample key that is not a production identity.

What this shows

Starting a check is not the same as having a result. A step with no result proves nothing either way, so ThruLine never counts it as a link. Until a finished run on this version passes, it says “Not proven” — and the claim may be entirely true.

How a finished check can end

  • Passed
  • Failed
  • Ran, checked nothing (not a pass)
  • Cancelled by you
  • Interrupted
  • Tool not found
No result yet · step 60

is not one of the six, so it is not a link. Only Passed reads as a pass.