Let AI ship to your codebase.
Prove every change.
A code factory with a human in the loop
Astutely runs every AI-written change through the same workflow on the coding tool you already use: product spec, technical spec, implementation, review, QA and merge. Every check that ran is recorded, and you approve each phase.
Works with Claude Code, Codex, Cursor, Copilot and OpenCode. Runs on your GitHub repos.
Why not a rules file?
Guardrails for AI coding agents that check the work
A rules file tells your agent what to do. Astutely checks that it did.
Checks that actually ran
Every change shows which tests and checks ran and what they found, so you are not taking the agent's word for it.
A human at each phase
Approve, or send back with feedback, with a one-minute summary.
Retries with a reason
Attempts are capped. Every retry or timeout shows why.
Same process on any tool
Switch Claude Code, Codex, Cursor, Copilot or OpenCode. Keep the same phases.
The Loop
One workflow for every AI change, from PRD to merge
Each phase leaves a one-minute summary and waits for you. Nothing merges until the checks ran on the exact commit.
Illustrative example. Early access, details may change.
AI made verification the bottleneck
+156.6%
AI increased the capacity to produce change. The next constraint became our ability to verify it.
Across 535K bot and AI diffs at Meta, about 60% were auto-approved, with roughly a third of the revert rate of human diffs.
PRs up 4x, incidents down 42%, with about 10% of PRs skipping human review.
The teams getting this right earned their way to less review, change by change. Astutely is built to do that on your codebase.
Figures from each source. None of these teams use Astutely.
Control
Approve each phase, then loosen control as trust builds
Gates are on by default and per phase. Approve to move on, or send back with feedback.
Read
A short summary of what the AI did and why. Full detail and attempt history one click away.
Refine
Leave a note on the PRD, RFC, or a line of code, and the AI redoes that phase.
Decide
Approve to move on, or send back with your reason.
What we're building next
- Retros that improve your workflow over time
- Contract checks that catch drift before merge
- Token cost per change, with budgets and alerts
- Earned auto-merge and risk-based routing
- Incident revert or fix-forward
- Per-user keys
Who it's for
Built for engineering teams adopting AI coding
You already use AI to write code, and review cannot keep up. Astutely is for teams of 3 to 50 engineers who want the same process, human gates, and proof on every change.
Accountability
A human stays accountable for every merge
Every change has named approvers per phase, an intent record, and checks that ran on the exact commit.
Know why every change exists
Each change starts from an approved PRD and RFC, and its intent record stays attached after it merges.
See who approved what
Roles decide who can approve each phase, and every decision goes into an audit trail.
Astutely FAQ
Which AI coding tools does it work with?
Claude Code, Codex, Cursor, Copilot and OpenCode. Astutely talks to them through an open interface, so more can plug in.
Do I need a subscription to an AI coding tool?
Yes. Astutely runs on your team's own AI coding tool account and your own GitHub repos. You keep your tool, your model and your provider's terms.
How much does it cost?
Pricing isn't set yet. We're working it out with our first teams. Join early access and you'll hear about it before anyone else.
Will the AI change my code without me knowing?
No. By default every phase waits for a human to approve it before the next one starts. You can send a phase back with feedback. Automatic loosening as trust builds is on the Coming next list.
Where does my code go?
Connects to your GitHub. You choose which repos it can see. Astutely only reads your code while a change runs and never stores it, apart from short excerpts quoted in each change's intent document. Your AI tool's own data terms still apply.
Do I need tests or CI to get started?
No. Without CI, QA relies on the checks your agent can run and a human approves the merge. With CI, Astutely also waits for green CI on the exact commit.
Does Astutely merge on its own?
Only after QA is done and CI is green on the exact commit, and by default a human approves the merge phase.
Is it for solo developers?
You can use it alone, but it's built for teams of 3 to 50 engineers adopting AI coding.
Why not just build my own harness?
You can, and working alone, a few scripts and a rules file may be enough. Astutely covers the process layer that is tedious to maintain: phase gates, proof that checks ran, an intent record with attempt history, and the same workflow across tools. It works with the AI coding tool you already use, so nothing needs rewiring when models change.
Why not just use my AI tool's built-in code review?
Keep using it. Built-in review is good at catching bugs in a diff, and it works fine alongside Astutely. Astutely adds what comes before and after: phase gates from PRD through QA, proof that checks ran, and an audit trail. A human approves each phase. It works across Claude Code, Codex, Cursor, Copilot and OpenCode, so your process stays the same when the tool changes. Astutely does not replace code review.
How is this different from Cursor Projects or Spec Kit?
Those run or scaffold work inside one tool. Astutely adds phase gates, proof that checks ran, and an audit trail across tools.
Does it replace Cursor or Claude Code?
No. You keep the AI coding tool you already use and pay for. Astutely runs on top of it and takes each change through PRD, RFC, implementation, review and QA, with you approving along the way.
What about the PRs already open in my repo?
Astutely works on new changes, from the PRD onward. Your open PRs stay in GitHub as they are. Once your team starts changes in Astutely, each one arrives with its PRD and a one-minute summary.
Join early access
We're shaping Astutely with a few early teams. Join early access and your feedback decides what comes first.
Sent from the payment handler, not the webhook job (locked decision)
webhooks/retry.test.ts:28 passes