{
  "id": 8977382,
  "title": "Keep the Score Contract Out of the Agent's Write Set",
  "url": "https://urgent.news/2026/09/21/keep-the-score-contract-out-of-the-agents-write-set",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-21T18:20:54.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/datacpp_8185/keep-the-score-contract-out-of-the-agents-write-set-2j31"
  },
  "original_language": "en",
  "account": "The story emphasizes the importance of creating a contract file that binds various aspects of the testing process to prevent agents from manipulating test results. This contract should include details such as the parent SHA, fixture hashes, runner configuration hashes, property budget, assertion floor, collected test floor, and flake lease with an expiry date. The contract should be generated from the parent commit rather than the agent's branch to ensure consistency. Any changes to the contract, scorer, fixtures, or runner configuration should result in a denial of the score. The contract should be stored in a file named \"score_contract.json\" and include hashes of the relevant files to ensure that the inputs the scorer reads and the floors it must meet remain unchanged. Additionally, flake leases should be included in the contract with a valid expiry date to prevent the deletion of tests.",
  "summary": "A green CI job on an agent branch is not a score. It is a claim that the tree the agent left behind still exits zero. Those claims diverge as soon as the agent can delete tests, rewrite goldens, skip flakes without expiry, starve a property budget, or hide suites behind addopts . Bind the parent SHA, fixture bytes, runner config, property budget, assertion floor, collected-test floor, and…",
  "key_points": [
    "Contract file must bind testing process aspects",
    "Include parent SHA, fixture hashes, runner config hashes",
    "Contract generated from parent commit, not agent's branch"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}