Skip to content

[Work Governance] Required evidence is doctrine with no runtime verification loop #58

Description

@Sequela02

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.

  1. 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.
  2. 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.
  3. Use repetitions, not single runs. The project already applies a strict pass^5 rule to write-route admission for the same reason.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions