DEFINITION OF DONE

Done should come from evidence the agent can't edit.

An agent can report that it finished. That tells you it stopped; the tests and the review tell you whether the work meets the requirement. Decide done from acceptance criteria written before the work started, tests that prove them and that you have seen fail, CI on the merged change, and a review by someone other than the author.

Apply to be a design partner

Why the agent's word isn't enough

Your agent says it's done and CI is green. What would actually convince you the requested behaviour works? If one agent writes the code, the tests and the definition of done, it can pass its own exam without doing what you meant. The criteria have to come from outside the task. Green tells you nothing failed. It doesn't tell you the right things ran.

A merge request might say "verified locally", "a known flaky test" or "only two files changed". On DynoInvoice, each of those was found untrue in review at least once and corrected.

A definition of done you can use today

  1. Write acceptance criteria before the agent starts, as outcomes someone can check on the running program.
  2. Map each criterion to a test that proves it. A criterion with no test is the first place to look.
  3. See each negative test fail before you trust it: break the thing it guards and watch it go red.
  4. Count what ran. Compare the test cases in the report with the test methods in the source, so skipped tests can't hide behind a green build. A log line saying the test task ran isn't evidence; the class's JUnit XML (tests, skipped, failures) is.
  5. Have someone other than the author review the change, including any change to the tests.
  6. Close the task from CI on the merged change, not from the agent's summary.

How Keel decides done

On a real system

How a team reviews is its own choice, not part of Keel. On DynoInvoice, a different agent in a separate session reviews every merge request.

Questions

Isn't green CI enough?

Green CI tells you the checks that ran passed. It doesn't tell you that the right tests exist, that they ran, or that they can fail. Pair CI with criteria written beforehand, tests you've seen go red, a check on how many cases ran, and an independent review.

Should the same agent write the code and the tests?

It can write both, but the acceptance criteria the tests must prove should come from outside the task, and someone else should review the change, including the tests. In Keel the coding agent can't change the criteria; on DynoInvoice, a different agent reviews every merge request.

Can I use Keel today?

Keel is open to a small group of design partners: engineering teams already building with coding agents. During the beta it's free, and we set up each team by hand. We ask for one real project and candid feedback.

Want done to mean done?

If that sounds like your team, apply to try Keel as a design partner. Beta access is free; we set up each team by hand and ask for one real project and candid feedback.

Apply for early access