loop-check repo=/tmp/hc/cc-agent entry='bash run.sh' running the entry point. Every run is in a throwaway copy of the repository. baseline exit=None (timed out) in 30.0s, 1 path(s) written note the baseline never ended on its own. The harness stopped it at the 30.0s --timeout, so that number, and not anything this entry point decided, is the length every run below is compared against. tools fail exit=3 in 2.0s, 1 path(s) written no output exit=None (timed out) in 30.0s, 1 path(s) written killed exit=-9 (killed mid run) in 15.0s, 1 path(s) written stop file exit=0 in 16.1s, 2 path(s) written PROBE MODE VERDICT WHAT IT FOUND ------------------------------------------------------------------------------ 1 Interrupted run leaves a trace ran pass the interrupted run had already written 1 path(s), so there is something for the next run to read baseline: exit=None (timed out) in 30.0s, 1 path(s) written killed at 15.0s: exit=-9 (killed mid run) in 15.0s, 1 path(s) written wrote before dying: prompt.md 2 Missing credentials are noticed ran unknown no credential shaped environment variable that this repository names by hand was set in this shell, so there was nothing to take away that the agent would have missed 3 Promises have a clock on them read unknown no time bounded promise language found in the repository 4 A failed run exits non zero ran pass the failing run exited 3 baseline: exit=None (timed out) in 30.0s, 1 path(s) written every underlying tool exits 3: exit=3 in 2.0s, 1 path(s) written every underlying tool exits 0 and prints nothing: exit=None (timed out) in 30.0s, 1 path(s) written 5 Work is saved as it goes ran pass something was on disk 0.1s in and the run was still going 30.0s later baseline ran 30.0s and wrote 1 path(s) 4 line(s) mention a budget or usage figure, first: README.md:15 the baseline never ended on its own; the harness stopped it at the 30.0s timeout, so there is no run length to express this as a fraction of 6 The stop switch stops it ran pass the baseline never ended on its own and was stopped by the 30.0s timeout; with .agent/DONE.md written at 15.0s the run ended by itself at 16.1s baseline: exit=None (timed out) in 30.0s, 1 path(s) written .agent/DONE.md written at 15.0s: exit=0 in 16.1s, 2 path(s) written 7 Instructions match the implementation read pass every file named in the instructions exists and nothing asks a memoryless run to remember something 0 failed, 5 passed, 2 could not be answered from what was given. An unknown is not a pass. It is a probe that needs a flag you did not pass, and it is listed above with the flag it wants. differential: running the same subject twice more, once identically and once with --stub-sleep 3.5 DIFFERENTIAL three passes over the same frozen subject A the pass above, --stub-sleep 2.0 A' identical to A. The noise control, without which a wobble and a finding look the same B --stub-sleep 3.5. The only thing changed ------------------------------------------------------------------------------ PROBE DECLARED MEASURED CLASS NOTE 1 moves fixed contra CONTRADICTION: declared to move with the stub and did not move at all, so something is holding it 2 fixed fixed causal every number was the same in all three passes 3 fixed fixed declared every number was the same in all three passes 4 moves moves causal 1 number(s) held still across two identical passes and moved when only the stub did A 2.00 A' 2.00 B 3.50 every underlying tool exits 3: exit=3 in 2.0 5 moves fixed contra CONTRADICTION: declared to move with the stub and did not move at all, so something is holding it 6 moves moves causal 2 number(s) held still across two identical passes and moved when only the stub did A 16.10 A' 16.10 B 17.50 the baseline never ended on its own and was A 16.10 A' 16.10 B 17.50 .agent/DONE.md written at 15.0s: exit=0 in 1 7 fixed fixed declared every number was the same in all three passes probe 1 Interrupted run leaves a trace CONTRADICTION: declared to move with the stub and did not move at all, so something is holding it probe 5 Work is saved as it goes CONTRADICTION: declared to move with the stub and did not move at all, so something is holding it 2 contradiction(s): exit 2. Read nothing in the table above as a fact about the subject until these are fixed. This is not a finding about the agent under test, it is a finding about this tool. the baseline never ended by itself in any of the three passes, so its length was the 30.0s --timeout every time. A number that is entirely decided by the harness does not move when the stub changes: this differential cannot see it, and the contradictions above are how it shows up instead. COVERAGE 3 of 5 probe(s) that run the subject were causally attributed causal 3 ran the subject, checked against its declaration across three passes, matched declared 2 never runs the subject: reads the repository text. No experiment can attribute these unqualif 0 noisy, so the declaration check could not fire either way. Escaped, not passed contra 2 checked and contradicted itself floor --min-attributed 1 evidence written to /tmp/hc-new.json exit 2: the instrument, not the subject. a contradicted declaration outranks a failing probe here because a failing probe is only worth reading if the numbers under it are the subject's.