Keel
Autonomous coding that lands as pull requests, never as merges.
- Agentic orchestration
- Cloud infrastructure
- Architecture & developer experience
- Data science & evaluation
A single-operator autonomous-coding and gated-deploy system. A Temporal orchestrator drains a cross-repo plan graph, executes each phase with a coding agent in an ephemeral worker, and lands the work as a pull request. Infrastructure changes pass a human-approved airlock.
The problem
Autonomous coding agents are easy to demo and hard to trust. What is missing is not model capability but the discipline around it: dependency ordering across repositories, an ephemeral execution boundary, a review gate that cannot be skipped, and an infrastructure path where the agent structurally cannot apply its own changes.
The approach
Never auto-merge. The agent’s output is a pull request, and the deploy airlock is enforced by IAM rather than by convention — the executor role cannot apply, so the control is structural instead of procedural. Status mirrors to the issue tracker as writer-of-record, so the plan and the work cannot drift apart.
How it works
- A Temporal workflow draining a cross-repo dependency graph authored as plan and phase files
- An ephemeral Fargate worker per phase, cloning the target repository
- A pluggable coding-agent arm, so the model harness is a choice rather than a dependency
- Pull request as the only output path — never auto-merge
- A Slack deploy airlock for infrastructure, with IAM-enforced no-apply on the executor role
- The issue tracker as writer-of-record for status
- A backend API with its own Terraform module
- An operator console in Next.js that ships as a native iOS app from the same codebase
- Benchmarking and measurement: A/B runs, gates, scorers, drain pass-rate and lag
Stack
Python with Temporal Cloud on Neon; AWS Fargate and Bedrock; 89 Terraform files; Playwright end-to-end. Console in Next.js and TypeScript with CSS Modules and design tokens, Supabase auth, and Capacitor with a Swift package for the iOS build.
Where it stands
- 577 test files across the orchestrator and console
- Sixteen of thirty-five use cases are demoable today, by the project’s own internal audit — the number we publish, rather than the roadmap