{
  "id": 2605731,
  "title": "Tooling every AI software harness should have",
  "url": "https://urgent.news/2026/08/22/tooling-every-ai-software-harness-should-have",
  "topic": "ai",
  "section": "AI",
  "published": "2026-08-22T16:08:43.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/grantps/tooling-every-ai-software-harness-should-have-4512"
  },
  "original_language": "en",
  "account": "Every AI software harness should include a comprehensive set of tools and checks. First and foremost, the quality thresholds have shifted. While 100% branch coverage was previously considered the standard, the focus is now on enforcing higher quality controls at a lower agent time cost. This means adjusting thresholds accordingly, with options ranging from 100% minimum line and branch coverage to 80%.\n\nMoreover, a tool's value is determined by whether it can be seen and acted on by the AI agent itself. For instance, a linter that fails in CI can only provide feedback after the agent has stopped, while a linter integrated within the agent's workflow allows for immediate fixes before being noticed by the agent.\n\nAll the suggested tools should be easily accessible through a single command, and fail in a manner that discourages ignoring them. Testing should be performed with a testing framework set to a minimum line and branch coverage of 100%, ensuring no important branches are left untested. Tools like RSpec and SimpleCov can help achieve this.\n\nMutation testing is another crucial tool. Instead of relying solely on coverage, which may overlook certain types of defects, mutation testing changes specific lines of code to detect if tests catch the modified behavior. Tools like Stryker and Mutant can be used for this purpose.\n\nType checking is a quick win that offers significant benefits. By catching type errors statically, agents can receive immediate feedback on erroneous code, rather than having to sift through stack traces. Tools like Sorbet and TypeScript can be employed for this task.\n\nLinters and custom linters are essential for identifying outdated or harmful patterns in code. With agents trained on outdated code, linters become even more critical. Frameworks like Rubocop, ERB Lint, ESLint, and Hadolint can help enforce best practices across various languages.\n\nSecurity checkers are also necessary to prevent insecure coding practices. By automatically detecting common security vulnerabilities, such as insecure queries or secret leakage, tools like Brakemanscanner, Gitleaks, and Zizmor can keep secure coding practices in check.\n\nDuplication detection is another important aspect of a robust harness. As agents tend to produce repetitive code, detectors like JSCPD and Flay can pinpoint duplicated code, helping maintain clean and efficient codebases.\n\nLastly, hooks should be utilized to integrate these checks at the earliest stages of the agent's workflow, ensuring the highest quality of generated code. By attaching checks at different stages - editing a file, committing, pushing - and leveraging the fact that early-stage checks are more cost-effective, agents can be forced to adhere to these standards.",
  "summary": "When an agent writes the code, you stop reading every line. You can pretend otherwise for a while, but on any real codebase you end up skimming a 600 line diff and approving it because nothing jumped out. Nothing jumping out is not the same as nothing being wrong. Documentation and a well tended CLAUDE.md only take you so far. The longer an agent runs, the more those instructions get crowded out…",
  "key_points": [
    "Every AI software harness must include comprehensive tools and checks.",
    "Tools should be accessible via a single command and fail to discourage ignoring.",
    "Mutation testing, type checking, and linters are crucial for code quality."
  ],
  "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."
}