Objective
Kiln declares required evidence as doctrine and relies on the model to honor it. Published ablation evidence identifies the verification and recovery loop as the largest harness-level lever on task success. This issue proposes measuring one runtime verification component before adopting any.
Evidence
arXiv:2605.23950, "Stop Comparing LLM Agents Without Disclosing the Harness", runs a controlled 3x3 factorial: three models against three harnesses on a fixed 100-task SWE-bench Verified subset, two runs per cell, fixed step budget and timeout.
| Harness |
Adds |
GLM-5.1 |
GPT-5.4 |
Kimi K2.6 |
| H1 minimal |
none |
52.5 |
55.0 |
52.0 |
| H2 |
compressed context + structured retry |
56.5 |
58.5 |
59.0 |
| H3 |
self-checking, drift checks every 5 steps, anomaly middleware, output validation, checkpoint rollback |
65.5 |
63.5 |
60.5 |
Model choice at fixed harness moves 2.5–5.0pp. Either harness step exceeds that. The authors attribute the H2 to H3 gain to closing the verification and recovery loop.
Two limits worth stating. The H2 arm bundles context compression with retry, so those two are not separated by this experiment. Magnitudes vary by model (+9, +5, +1.5pp for the H3 step), so the ranking is directional rather than universal.
Supporting but weaker: adding a search subagent to otherwise fixed infrastructure yields +2.1–2.2pp, comparable to a routine model upgrade. Delegation is a smaller lever than verification.
Current state
workGovernance.requiredEvidence lists surface-map, risk-hypothesis, plan, tests, typecheck, and residual-risk. These are instructions in context. Nothing in the session loop verifies that a claimed step occurred, and nothing gates completion on it. A session that skips verification and reports success is indistinguishable at runtime from one that did not.
Proposal
Implement one component, measure it, and adopt only if it pays.
- Choose the cheapest component with the clearest signal: output validation plus a gate that blocks a completion claim until the declared verification has actually run.
- Measure with the existing benchmark harness (
packages/cli/src/application/benchmark-session-executor.ts, .kiln/benchmarks/). Hold model, prompt, and task set fixed; vary only the gate.
- Use repetitions, not single runs. The project already applies a strict pass^5 rule to write-route admission for the same reason.
- Promote to a runtime component only with a recorded number. If it does not measure, record the negative result and stop.
Non-goals
Required
- A measured comparison with repetitions between the current loop and the same loop plus one verification gate.
- A recorded decision, including a negative result if that is the outcome.
- If adopted, the component documented as runtime behavior rather than doctrine.
Objective
Kiln declares required evidence as doctrine and relies on the model to honor it. Published ablation evidence identifies the verification and recovery loop as the largest harness-level lever on task success. This issue proposes measuring one runtime verification component before adopting any.
Evidence
arXiv:2605.23950, "Stop Comparing LLM Agents Without Disclosing the Harness", runs a controlled 3x3 factorial: three models against three harnesses on a fixed 100-task SWE-bench Verified subset, two runs per cell, fixed step budget and timeout.
Model choice at fixed harness moves 2.5–5.0pp. Either harness step exceeds that. The authors attribute the H2 to H3 gain to closing the verification and recovery loop.
Two limits worth stating. The H2 arm bundles context compression with retry, so those two are not separated by this experiment. Magnitudes vary by model (+9, +5, +1.5pp for the H3 step), so the ranking is directional rather than universal.
Supporting but weaker: adding a search subagent to otherwise fixed infrastructure yields +2.1–2.2pp, comparable to a routine model upgrade. Delegation is a smaller lever than verification.
Current state
workGovernance.requiredEvidencelists surface-map, risk-hypothesis, plan, tests, typecheck, and residual-risk. These are instructions in context. Nothing in the session loop verifies that a claimed step occurred, and nothing gates completion on it. A session that skips verification and reports success is indistinguishable at runtime from one that did not.Proposal
Implement one component, measure it, and adopt only if it pays.
packages/cli/src/application/benchmark-session-executor.ts,.kiln/benchmarks/). Hold model, prompt, and task set fixed; vary only the gate.Non-goals
Required