Ivan's Inferences #8

Human-in-the-Loop Engineering

Max Heckel - Author profile picture
Max Heckel
· 5 min read
AI agentsEngineeringDeveloper productivityProcessCode review

AI can write code quickly. But shipping reliable software will, at least for the time being, remain a human endeavor.

At Ariso, I have been building a workflow around that idea. The goal is to let AI handle more of the implementation work while keeping engineering judgment, verification, and accountability with a person. Just as a manager is responsible for their team's output, you are responsible for your agents' output.

It starts with sprint planning

The process begins in sprint planning. Nothing to write home about here — it's very similar to what it's always been, maybe with some sprinkling of Ari decision making.

Once the planning is over, Ari automatically creates a project for it, and then to-dos appear on my dashboard. That dashboard becomes the starting point for the work I need to build. Instead of keeping a list in my head or jumping between disconnected systems, I can see the implementation work alongside the rest of the project context.

The dashboard after sprint planning: Ari's project and the to-dos it generated

Turning requirements into code with Ivan

From the dashboard, I take each item and rewrite it in my own words inside Ivan, our engineering utility for working with AI-generated code.

That rewrite matters. It forces me to clarify what I actually want before asking for an implementation. The task in the system may be useful for tracking, but my own description contains the technical context, constraints, and intended behavior that Ivan needs to produce a useful first pass.

Ivan takes that description and builds a draft pull request. From there, CodeRabbit reviews it and Ivan automatically addresses the first round of comments.

Ivan turning a rewritten task into a draft pull request

The dashboard keeps the review queue visible

Once Ivan opens the draft pull requests, custom dashboard widgets show me which ones are waiting for review. The widget currently focuses on draft pull requests opened by me, giving me a clear queue of AI-generated work that still needs human verification.

That visibility is important because the workflow only works if review is part of the system. A draft PR should not disappear into a repository and become someone's vague intention to look at it later. It needs to be visible, ordered, and easy to process.

The dashboard widget listing draft PRs waiting for human review

Ivan review prepares the human reviewer

Before I review the draft PRs, I run them all through the ivan review command in bulk. This utility prepares me to review the generated code as a human reviewer.

The purpose is not to ask another automated process to approve the change. It is to give me useful context before I open the diff: what changed, what the implementation is trying to accomplish, where the risky areas might be, and what I should pay attention to while reviewing.

This is not a code review in and of itself, but rather an outline for me to do the actual review.

The ivan review output on its local web server, previewing what changed and where the risk is

turbo-hot-cache makes testing practical

After the Ivan review step, I run turbo-hot-cache. turbo-hot-cache warms every relevant branch so the repo can build in seconds, not minutes, when I'm hopping between reviews.

turbo-hot-cache warming every relevant branch ahead of the review pass

The human review loop

With the context prepared and the branches warmed, I work through the draft PRs systematically.

For each PR, I:

  • Read Ivan's review prep on its local web server
  • Open the pull request and read the generated code
  • Compare the implementation with the original requirement
  • Look for incorrect assumptions, missing edge cases, and changes outside the intended scope
  • Run the code locally
  • Test the behavior manually
  • Make corrections or send the work back through Ivan when needed
  • Mark the PR as ready for review

The final status change is meaningful. Moving a PR from draft to ready for review says that a human has inspected the implementation and taken responsibility for presenting it to the rest of the team.

Marking a reviewed PR ready for review — the human checkpoint that moves it forward

Engineering with a human in the loop

This workflow treats AI-generated code as an input to engineering, not a replacement for engineering.

The system handles a lot of mechanical work: tracking projects, surfacing follow-ups, generating initial implementations, preparing review context, and reducing build wait time. I still decide whether the implementation is correct. I still run the software. I still verify that it matches the requirement.

That division of work lets AI increase the amount of code one engineer can produce without removing the parts of the job that require understanding and judgment.

Human-in-the-loop engineering is a practical operating model: let machines produce and organize more of the work, then build deliberate checkpoints where a human verifies the result before it moves forward.

Share this post
Max Heckel - Author profile picture
Max Heckel

Max Heckel is the founding engineer and CTO of Ariso. Before starting Ariso, he worked at Google, McGraw Hill, JupiterOne, and created SciSummary.

LinkedIn

Who's Ivan?

He writes half our code, and he's free to use. Check it out on npm or GitHub.

Ready to try Ari?

The AI player-coach that gives every employee the tools to lead themselves.

Try Ari Free