Introducing Kepler: autonomous development with evidence

Kepler turns a scoped engineering task into a reviewable, verified code change — without turning your repository into a black box.

Software teams have no shortage of tools that can suggest code. The harder problem is carrying a task from intent to a change an engineer can confidently review. Kepler is built for that complete path.

What Kepler does

You give Kepler a repository, a clear outcome, constraints, and the commands that define success. Kepler inspects the codebase, creates a plan, implements the change in an isolated workspace, and runs the verification contract before returning the result.

  • Scoped execution — The requested outcome and boundaries stay attached to the job.
  • Repository-aware work — Existing conventions, dependencies, and tests guide the implementation.
  • Evidence at handoff — The final diff arrives with the commands run and their results.

Autonomy needs boundaries

Kepler is designed to do substantial engineering work independently, but autonomy is not the same as unchecked access. Branch policy, runtime limits, verification commands, and human review remain explicit controls.

Our goal is straightforward: reduce the time between a well-defined task and a trustworthy implementation while keeping the engineering process visible.

How autonomous development works inside Kepler

A Kepler job is a controlled engineering loop: understand, plan, implement, verify, and package the evidence for review.

Autonomous development should be evaluated as a system, not as a single model response. The useful unit of work is the job: an isolated run with an explicit objective, known constraints, and a measurable completion contract.

The job lifecycle

  • Understand — Read the task, repository structure, relevant files, and project instructions.
  • Plan — Convert the request into concrete edits and identify risks before changing code.
  • Implement — Make the smallest coherent change that satisfies the requested behavior.
  • Verify — Run the repository's tests, linting, type checks, builds, or task-specific commands.
  • Review — Inspect the diff and verification output, then prepare the result for a human decision.
task + constraints + verify commands
                ↓
inspect → plan → implement → verify
                ↓
diff + command output + review summary

Failure is part of the loop

A failed check is not hidden or treated as a completed task. It becomes new evidence: Kepler diagnoses the failure, revises the implementation when the scope allows, and reruns the relevant checks. If the job cannot be completed safely, the unresolved blocker is surfaced with the work performed so far.

This is the practical difference between code generation and autonomous delivery: the output is judged against the repository's actual definition of working software.

Product update: clearer jobs, stronger verification, better visibility

This month's preview work focuses on making every autonomous run easier to define, inspect, and trust.

Kepler's June preview update strengthens the surfaces around the autonomous pipeline. The execution engine matters, but teams also need a clear way to describe work and understand exactly what happened during a run.

What's included

  • Task templates — Starting points for testing, documentation, refactoring, and code-quality jobs.
  • Verification-first quickstart — Documentation that treats success commands as part of the task, not an afterthought.
  • Job visibility — A consistent path from submitted work to status, logs, result, and reviewable artifacts.
  • Public product resources — New documentation, status, help, blog, and changelog pages.

What we're improving next

We are continuing to tighten task specification, failure reporting, and repository-specific verification. The standard remains the same: Kepler should show enough evidence for an engineer to understand the change without reconstructing the run.

Topics we cover