The verification-before-completion gate covers the main failure — claiming without running the command. Over ~14 months of logged autonomous runs we kept hitting a second layer of failures that pass that gate: the agent did run a verification command, read the output, and was still wrong, because the instrument itself was the problem. We distilled them into eight short clauses, each traced to an actual incident, and published them as part of a verdict vocabulary (CC BY 4.0):
https://github.com/scos-lab/semantic-tension-language/blob/main/spec/eval-verdict-vocabulary.md (§6, V1–V8)
The ones that seem most directly useful to this skill:
- V2 Positive control — before acting on a zero/negative reading ("0 matches", "no change", "not found"), prove the instrument can produce a hit on a different input. Most of our false "clean" results were a grep that couldn't have matched anything. The inverse holds too: an alarming reading is more likely a broken reading — validate the instrument before fixing what it accuses.
- V4 Reported is not verified — a tool's return value is a claim by the tool; promoting it to "verified" requires an independent read of the changed state through a different path (an accessibility action that returned
True and did nothing; a type command that reported success with zero keystrokes). It's the general form of the "agent said success → check the diff" row the skill already has.
- V6 Coverage counts surfaces, not checks — two passing checks on the same surface prove one surface; our bug was in the CLI argument parsing nobody exercised. The closing move we use: run the exact real command, read the number it prints itself.
- V7 Silence is not success — a dead alarm and a healthy system emit the same signal. Monitors die silently; a checker that crashed reports no problems.
- V8 Absence needs a second instrument — "everything I produced exists in the source" is blind to deletion; sandboxed or filtered instruments are blind to what they can't see.
(V1 asymmetric evidence, V3 independent criteria, V5 records decay round it out.)
Each clause carries an "executable form" line — a yes/no check an agent can run — which is roughly the shape the gate table already uses. #614 ("require tool verification before asserting facts about external systems") is V4/V5 in different words, which is part of why we think these would slot in.
If useful, we're happy to PR a compact "Instrument failures" table into the skill in its existing style (Claim / Requires / Not sufficient, ~8 rows, no prose) — or just leave this here as a reference. Either is fine; the text is self-contained and CC BY, so there's no dependency to take on.
The
verification-before-completiongate covers the main failure — claiming without running the command. Over ~14 months of logged autonomous runs we kept hitting a second layer of failures that pass that gate: the agent did run a verification command, read the output, and was still wrong, because the instrument itself was the problem. We distilled them into eight short clauses, each traced to an actual incident, and published them as part of a verdict vocabulary (CC BY 4.0):https://github.com/scos-lab/semantic-tension-language/blob/main/spec/eval-verdict-vocabulary.md (§6, V1–V8)
The ones that seem most directly useful to this skill:
Trueand did nothing; atypecommand that reported success with zero keystrokes). It's the general form of the "agent said success → check the diff" row the skill already has.(V1 asymmetric evidence, V3 independent criteria, V5 records decay round it out.)
Each clause carries an "executable form" line — a yes/no check an agent can run — which is roughly the shape the gate table already uses. #614 ("require tool verification before asserting facts about external systems") is V4/V5 in different words, which is part of why we think these would slot in.
If useful, we're happy to PR a compact "Instrument failures" table into the skill in its existing style (Claim / Requires / Not sufficient, ~8 rows, no prose) — or just leave this here as a reference. Either is fine; the text is self-contained and CC BY, so there's no dependency to take on.