<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai |</title><link>https://georgheiler.com/tags/ai/</link><atom:link href="https://georgheiler.com/tags/ai/index.xml" rel="self" type="application/rss+xml"/><description>Ai</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 14 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://georgheiler.com/media/icon_hu_2b4e40339850646.png</url><title>Ai</title><link>https://georgheiler.com/tags/ai/</link></image><item><title>The Bitter Lesson Stops at the Lab Door</title><link>https://georgheiler.com/2026/04/14/the-bitter-lesson-stops-at-the-lab-door/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://georgheiler.com/2026/04/14/the-bitter-lesson-stops-at-the-lab-door/</guid><description>&lt;p&gt;Rich Sutton&amp;rsquo;s
still holds.
General methods that scale with computation beat hand-crafted knowledge for &lt;em&gt;learning&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But the Bitter Lesson describes the direction of AI &lt;em&gt;research&lt;/em&gt;. It does not explain what happens when you try to make AI useful inside an actual organization.&lt;/p&gt;
&lt;p&gt;In deployment, deterministic code, typed interfaces, review steps, and domain constraints are not relics. They are the load-bearing structure around the model. The model handles what is fuzzy. Everything around it has to stay crisp enough that people can trust the result.&lt;/p&gt;
&lt;p&gt;The framing I keep coming back to is simple: &lt;strong&gt;Connection&lt;/strong&gt;, &lt;strong&gt;Context&lt;/strong&gt;, and &lt;strong&gt;Control&lt;/strong&gt;.
I first heard the idea on the
, and it has stuck with me because it points to where the real implementation work sits.&lt;/p&gt;
&lt;p&gt;If you want a rough map of where AI value is getting built now, this is mine: not only inside the model, but in the systems that connect it, ground it, and constrain it.
That is also why I am more interested in products that solve those layers than in yet another thin wrapper over the same model APIs.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="The 3C framework: Connection, Context, and Control bridge the gap between model capability and organizational deployment."
src="https://georgheiler.com/2026/04/14/the-bitter-lesson-stops-at-the-lab-door/3c-framework.svg"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="the-deployment-gap"&gt;The deployment gap&lt;/h2&gt;
&lt;p&gt;The numbers are imperfect, and most of them come from firms that also sell AI services. Even so, the directional signal is consistent.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deloitte&amp;rsquo;s 2025 reporting says roughly 95% of generative AI pilots still fail to reach production.&lt;/li&gt;
&lt;li&gt;Menlo Ventures reports that only 8.6% of organizations have AI agents in production.&lt;/li&gt;
&lt;li&gt;Deloitte also reports that many CEOs still say they have seen little or no value from AI adoption.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That should not be surprising. Most organizations were never designed to consume probabilistic output.&lt;/p&gt;
&lt;p&gt;If an LLM can summarize a document or extract a field, that is not yet a product. Somebody still has to decide where that output enters a system, how it is validated, what happens when it is wrong, who owns the exception path, and whether the surrounding business process can absorb it at all.&lt;/p&gt;
&lt;p&gt;Not every process should be turned into a model call.
If the task is stable, well-understood, and auditable, deterministic software is usually better. The pattern that works today is narrower: use models at the messy boundary, then hand off to structured systems as quickly as possible.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="The deployment pattern: AI parses unstructured input, a verifier enforces contracts at the boundary, and the deterministic pipeline handles the rest."
src="https://georgheiler.com/2026/04/14/the-bitter-lesson-stops-at-the-lab-door/deployment-pattern.svg"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The 3Cs are a way to think about that handoff.&lt;/p&gt;
&lt;h2 id="connection"&gt;Connection&lt;/h2&gt;
&lt;p&gt;Models live behind APIs. They do nothing on their own.
Someone has to connect them to the place where the problem actually lives: a workflow, a business system, an approval chain, a reviewer queue, a machine, or a human operator.&lt;/p&gt;
&lt;p&gt;Sometimes the connection layer is literal. In AI for science, models only become useful once they are connected to instruments, experiments, and domain workflows:&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;We’re thrilled to open-source LabClaw — the Skill Operating Layer for LabOS by Stanford-Princeton Team&lt;br&gt;&lt;br&gt;One command turns any OpenClaw agent into a full AI Co-Scientist.&lt;br&gt;&lt;br&gt;Demo: &lt;a href="https://t.co/TgGtKO2lxQ"&gt;https://t.co/TgGtKO2lxQ&lt;/a&gt;&lt;br&gt;Dragon Shrimp Army reporting for duty 🦞🔬&lt;a href="https://twitter.com/hashtag/AIforScience?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#AIforScience&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/OpenClaw?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#OpenClaw&lt;/a&gt; &lt;a href="https://t.co/lIpWVbuLO2"&gt;pic.twitter.com/lIpWVbuLO2&lt;/a&gt;&lt;/p&gt;&amp;mdash; AI4Science Catalyst (@AI4S_Catalyst) &lt;a href="https://twitter.com/AI4S_Catalyst/status/2031528955472392301?ref_src=twsrc%5Etfw"&gt;March 11, 2026&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;A model that extracts invoice line items is not valuable because the demo looks good. It becomes valuable when it is wired into authentication, field mapping, exception handling, observability, and the ERP system that actually decides what gets paid.&lt;/p&gt;
&lt;p&gt;The same is true in higher-stakes knowledge work. If a model helps parse complex source material, somebody still has to connect that output to the domain workflow that consumes it, the reviewer who checks edge cases, and the system of record that people trust.&lt;/p&gt;
&lt;p&gt;I
who spend much of their time on exactly this layer: connectors, orchestration, brittle upstream systems, and all the operational glue between a promising model and a useful system.&lt;/p&gt;
&lt;p&gt;This is why so many AI pilots stall between demo and deployment.
The missing piece is usually not intelligence. It is the connection layer: the integration work nobody sees in the benchmark, plus the organizational work required to get security, operations, and the budget owner to trust the system enough to use it.&lt;/p&gt;
&lt;h2 id="context"&gt;Context&lt;/h2&gt;
&lt;p&gt;Context is not just &amp;ldquo;give the model more tokens.&amp;rdquo;
The deeper problem is making an organization&amp;rsquo;s information legible enough that a model and the surrounding software can do something reliable with it.&lt;/p&gt;
&lt;p&gt;Most AI demos assume clean data and clear semantics.
Real organizations have PDFs, half-documented schemas, conflicting definitions, stale wikis, brittle jobs, and critical knowledge trapped in a few people&amp;rsquo;s heads.
The gap is not only retrieval. It is structure: lineage, dependencies, freshness, provenance, and the ability to explore safely.&lt;/p&gt;
&lt;p&gt;That makes &lt;code&gt;Context&lt;/code&gt; one of the most interesting infrastructure layers right now. I think
and
are a particularly good pair of examples because they attack different parts of the same problem.&lt;/p&gt;
&lt;p&gt;Bauplan is interesting because it treats exploration as a first-class concern. Its paper on supervaluationism for lakehouses points toward a world where agents can reason across branching or inconsistent data states instead of requiring one prematurely canonical view. That matters when you are still testing hypotheses and do not yet want the cost or rigidity of collapsing everything into one official version.&lt;/p&gt;
&lt;p&gt;Metaxy picks up the problem once change becomes operational. When a dataset changes, when a prompt changes, or when a model changes, you want to know exactly which downstream artifacts are affected and which ones are not. Without that, experimentation is slow and expensive: you rerun too much, you trust stale outputs, or you avoid testing ideas because the feedback loop is too costly.&lt;/p&gt;
&lt;p&gt;Metaxy&amp;rsquo;s lineage model attacks that directly. If you can trace the downstream impact of a change precisely, you can recompute only the affected slice instead of retraining or reprocessing everything. That is a cost win, but it is also a context win: it makes the system easier to reason about, easier to debug, and safer to evolve.&lt;/p&gt;
&lt;p&gt;Put differently: Bauplan makes exploration across uncertain states cheaper; Metaxy makes propagation of concrete changes cheaper. Together they point to a stronger version of context than &amp;ldquo;just retrieve more text.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Another way to say the same thing: making dependencies explicit is itself a form of context engineering.
Most organizations still have jobs that silently depend on other jobs, tables that break when upstream schemas change, and freshness assumptions that live in somebody&amp;rsquo;s head.&lt;/p&gt;
&lt;p&gt;That is why systems like
matter here. When dependencies become first-class, operational knowledge stops living only in tribal memory and starts living in the graph.
is a good example of that pattern: guardrails around IO, experimentation, and security emerged from the structure of the graph rather than from a checklist somebody had to remember.&lt;/p&gt;
&lt;p&gt;So when I say &lt;code&gt;Context&lt;/code&gt;, I do not just mean better retrieval.
I mean making the surrounding data system explicit enough that both humans and machines can ask, &amp;ldquo;What does this depend on?&amp;rdquo;, &amp;ldquo;What changed?&amp;rdquo;, and &amp;ldquo;What needs to be rerun?&amp;rdquo;
That is the layer where systems like Bauplan and Metaxy can become foundational. It is also where &lt;code&gt;Context&lt;/code&gt; starts reinforcing &lt;code&gt;Control&lt;/code&gt;: better provenance and cheaper exploration make the review loop cheaper to run.&lt;/p&gt;
&lt;h2 id="control"&gt;Control&lt;/h2&gt;
&lt;p&gt;Even with strong connection and good context, a system still fails if nobody can tell when the model is wrong.&lt;/p&gt;
&lt;p&gt;That is not a theoretical problem. In February 2026, reporting on AWS&amp;rsquo;s &lt;code&gt;Kiro&lt;/code&gt; coding tool described a 13-hour disruption affecting AWS Cost Explorer in one China region after the tool was allowed to make changes and reportedly chose to &amp;ldquo;delete and recreate&amp;rdquo; part of its environment. Amazon disputed the characterization and said the underlying issue was misconfigured access controls rather than an AI judgment failure. Either way, the lesson is the same: once an agent can act on production systems, the surrounding controls matter more than the demo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Control&lt;/code&gt; is about the surrounding mechanisms that make model behavior safe to use.
Not micromanaging the model, but building validation, traceability, escalation paths, human review, and feedback loops that improve the system over time.&lt;/p&gt;
&lt;p&gt;This is where
is a strong example.
What makes it interesting is not just that it uses AI on pharma patents. The interesting part is the operating model around the model: structured extraction, traceability back to source material, review of uncertain cases, and a path for reviewed corrections to improve future performance.
That is what turns model output into something a serious domain can actually use.&lt;/p&gt;
&lt;p&gt;That pattern is much more important than the buzzword layer around it.
In many real systems, uncertainty is not handled by one magical confidence score. It is estimated through a mix of model signals, validators, disagreement checks, heuristics, and domain-specific rules. The point is not the exact mechanism. The point is that uncertain outputs do not silently flow into downstream decisions.&lt;/p&gt;
&lt;p&gt;That is what makes human-in-the-loop systems economically and operationally viable.
The review step is not just a tax. Done well, it is a bootstrapping mechanism. You catch the cases that matter, create an audit trail, and turn corrections into training data or product improvements. Over time, the review burden can shrink because the system gets better on the cases that used to fail.&lt;/p&gt;
&lt;p&gt;This is also why vertical AI often looks stronger than generic &amp;ldquo;AI for everything&amp;rdquo; products.
In a domain with clear stakes, clear operators, and clear exception paths, Control can be designed into the product. In a vague horizontal workflow, trust usually breaks first.&lt;/p&gt;
&lt;p&gt;The EU AI Act pushes in the same direction for high-risk systems with its
, but regulation is only part of the story. Even where oversight is not mandated, unreliable output destroys trust faster than any product team can rebuild it.&lt;/p&gt;
&lt;h2 id="why-the-3cs-matter"&gt;Why the 3Cs matter&lt;/h2&gt;
&lt;p&gt;The easiest mistake in AI discourse is to assume that once the base models get better, this surrounding work disappears.
I do not think that is what happens.&lt;/p&gt;
&lt;p&gt;As models improve, some existing control points will shrink and some kinds of integration will get easier. But every capability jump also opens a new application surface, and that new surface brings fresh connection work, fresh context problems, and fresh control requirements.&lt;/p&gt;
&lt;p&gt;The 3Cs are useful because they tell you where the durable work sits after the demo, and where defensible product value can still be built even as base models improve.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Connection&lt;/code&gt; gets the model into the real system.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Context&lt;/code&gt; gives it something coherent to operate on.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Control&lt;/code&gt; makes the result trustworthy enough to use.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If I had to point to the kinds of products that fit this thesis, I would point to
on the context side and
on the control side.
Neither treats the model as the whole product.
Metaxy makes change legible; Jubust makes uncertainty operable.
They live in the gap between raw model capability and operational usefulness, and that gap is where a large share of the next AI infrastructure wave will be built.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rich Sutton,
(2019)&lt;/li&gt;
&lt;li&gt;Linear Digressions podcast,
&lt;/li&gt;
&lt;li&gt;Deloitte,
(2025)&lt;/li&gt;
&lt;li&gt;Menlo Ventures,
(2025)&lt;/li&gt;
&lt;li&gt;
— software-defined assets with dependency-first orchestration&lt;/li&gt;
&lt;li&gt;
— supervaluationism for lakehouses&lt;/li&gt;
&lt;li&gt;
— lineage-aware data and compute workflows&lt;/li&gt;
&lt;li&gt;
— structured extraction with traceability and review loops&lt;/li&gt;
&lt;li&gt;EU AI Act,
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Stacked PRs and AI Worktrees</title><link>https://georgheiler.com/2026/03/17/stacked-prs-and-ai-worktrees/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://georgheiler.com/2026/03/17/stacked-prs-and-ai-worktrees/</guid><description>&lt;p&gt;AI coding agents can shorten implementation time. They do not reduce the need for code review, branch management, or merge coordination. In practice, those activities often become the limiting factor once agents can produce changes quickly.&lt;/p&gt;
&lt;p&gt;Without a clear workflow, parallel sessions tend to create large diffs, overlapping branches, and avoidable merge conflicts. The problem is usually not model capability. It is the absence of a structure that keeps work small, traceable, and reviewable.&lt;/p&gt;
&lt;h2 id="review-remains-the-constraint"&gt;Review remains the constraint&lt;/h2&gt;
&lt;p&gt;Code review still determines how quickly code reaches the main branch. When a pull request grows while earlier feedback is pending, the reviewer receives a large mixed diff instead of one coherent change. That slows review and increases the chance that defects or unintended side effects are missed.&lt;/p&gt;
&lt;p&gt;AI-assisted development amplifies that pattern. A model can generate a substantial amount of code in a short period, which makes it easier to accumulate work faster than a team can review it. If teams keep using a single long-lived branch, output increases but review quality often declines.&lt;/p&gt;
&lt;p&gt;That pressure is now visible at the platform level as well. On January 27, 2026, GitHub
and said maintainers were spending substantial time reviewing submissions that often failed project guidelines, were abandoned, and were often AI-generated. Among the options GitHub said it was exploring were collaborator-only pull requests and disabling pull requests for specific repository use cases, which
as GitHub pondering a PR &amp;ldquo;kill switch.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The practical requirement is straightforward: keep units of change small enough that they can be reviewed independently.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="Monolithic PR vs. stacked PRs: one large branch compared with a sequence of smaller, reviewable pull requests."
src="https://georgheiler.com/2026/03/17/stacked-prs-and-ai-worktrees/stacked-prs.svg"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="stacked-prs-reduce-review-scope"&gt;Stacked PRs reduce review scope&lt;/h2&gt;
&lt;p&gt;
address that requirement by organizing work as a sequence of dependent branches rather than one large feature branch. A lower branch might introduce a schema change, the next branch might add API logic, and a later branch might update the user interface. Each pull request can then be reviewed on its own terms.&lt;/p&gt;
&lt;p&gt;This offers two practical advantages. Reviewers see a narrower diff, and authors can continue working while earlier pull requests are under review. Once the lower branch is merged, the next pull request can be retargeted or restacked onto the main branch.&lt;/p&gt;
&lt;p&gt;The trade-off is operational overhead. Managing dependent branches manually requires regular rebasing, careful branch targeting, and cleanup after merges. For stacked PRs to work consistently, the workflow needs tooling support.&lt;/p&gt;
&lt;h2 id="stax-as-a-supporting-tool"&gt;stax as a supporting tool&lt;/h2&gt;
&lt;p&gt;
is a Rust CLI for working with stacked branches and GitHub pull requests. It supports creating and submitting stacks, syncing and restacking branches, merging from the bottom of a stack, and recovering from risky history edits with &lt;code&gt;st undo&lt;/code&gt; and &lt;code&gt;st redo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For AI-assisted workflows, several functions are especially relevant:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;st resolve&lt;/code&gt; can assist with rebase conflicts by sending only the currently conflicted files to a configured AI agent.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;st generate --pr-body&lt;/code&gt; can draft pull request text from the branch diff.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;st submit --squash&lt;/code&gt; allows commit-heavy local iteration while still publishing a clean, one-commit pull request per branch.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;st standup --summary&lt;/code&gt; can generate a short status summary across recent work.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;st absorb&lt;/code&gt; helps route staged fixes back into the correct branch when review feedback spans multiple layers of a stack.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;st worktree&lt;/code&gt; / &lt;code&gt;st wt&lt;/code&gt; manage parallel worktrees that remain part of the normal stack model.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These features do not replace review or Git fundamentals. They reduce the overhead of keeping many small branches in order.&lt;/p&gt;
&lt;h2 id="agent-worktree-lanes"&gt;Agent worktree lanes&lt;/h2&gt;
&lt;p&gt;A useful part of the workflow is the
. Each lane is a separate Git worktree with its own tracked branch. That makes it possible to run multiple AI-assisted sessions in parallel without sharing a working directory or mixing unrelated edits.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Create a lane for a test stability task&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;st wt c fix-tests --agent claude -- &lt;span class="s2"&gt;&amp;#34;fix the flaky integration tests in tests/api/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Create a second lane for a feature task&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;st wt c add-export --agent codex -- &lt;span class="s2"&gt;&amp;#34;add CSV export to the /reports endpoint&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Inspect active lanes and their branches&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;st wt ll
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;st ls
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In practice, each lane:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;runs in its own worktree, which reduces interference between concurrent sessions,&lt;/li&gt;
&lt;li&gt;uses a normal branch that appears in &lt;code&gt;st ls&lt;/code&gt; and can be restacked or submitted like other stack entries,&lt;/li&gt;
&lt;li&gt;can be re-entered later with &lt;code&gt;st wt go&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;can be combined with tmux for persistent long-running sessions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="AI worktree lanes: multiple isolated AI-assisted sessions managed as tracked branches within one stacked workflow."
src="https://georgheiler.com/2026/03/17/stacked-prs-and-ai-worktrees/ai-worktree-lanes.svg"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;A typical loop looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create lanes for independent tasks.&lt;/li&gt;
&lt;li&gt;Re-enter a lane later to inspect progress or continue work.&lt;/li&gt;
&lt;li&gt;Sync or restack lanes when the trunk branch moves, for example with &lt;code&gt;st wt rs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Submit the resulting branches as pull requests.&lt;/li&gt;
&lt;li&gt;Remove the lane when the work is merged.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="roborev-as-a-review-companion"&gt;roborev as a review companion&lt;/h2&gt;
&lt;p&gt;
works at commit time: install a post-commit hook, commit frequently, and let it review each new commit in the background. Stacked PR workflows operate at a different level. In a stack, the unit that reviewers ultimately merge is the branch or pull request, not the individual commit.&lt;/p&gt;
&lt;p&gt;That difference used to make the pairing feel awkward. roborev tends to encourage many small commits during the fix-and-review loop, while stacked PR workflows usually want a clean branch boundary. With the merged &lt;code&gt;stax&lt;/code&gt; integration work, that boundary is now explicit instead of improvised.&lt;/p&gt;
&lt;p&gt;In practice, the combined workflow is straightforward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;let roborev review incremental local commits while the branch is still in progress,&lt;/li&gt;
&lt;li&gt;publish the stack with &lt;code&gt;st submit --squash&lt;/code&gt; so each branch is presented upstream as one clean commit,&lt;/li&gt;
&lt;li&gt;use &lt;code&gt;st modify&lt;/code&gt; when you want review-driven edits folded back into the current branch before submission,&lt;/li&gt;
&lt;li&gt;use &lt;code&gt;st absorb&lt;/code&gt; when staged fixes belong to different branches in the stack.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result is a better division of labor. roborev provides fast feedback during local iteration. &lt;code&gt;stax&lt;/code&gt; remains responsible for branch structure, restacking, and presenting reviewable pull requests at the right granularity. The tools still optimize for different layers of the workflow, but they now integrate cleanly enough to use together on the same stack.&lt;/p&gt;
&lt;h2 id="why-this-matters-for-ai-assisted-development"&gt;Why this matters for AI-assisted development&lt;/h2&gt;
&lt;p&gt;The main effect of AI coding tools is higher output volume. That makes branch structure and review discipline more important, not less. Teams still need a way to isolate changes, understand dependencies, and integrate work without turning every update into a large pull request.&lt;/p&gt;
&lt;p&gt;Stacked PRs address review scope. Worktree lanes address parallelism and isolation. Used together, they provide a practical way to keep AI-assisted development compatible with normal engineering controls: smaller diffs, clearer sequencing, and more predictable merges.&lt;/p&gt;
&lt;p&gt;This is less about any single tool than about workflow design. If AI-generated changes are going to be useful in a team setting, they need to arrive in a form that other engineers can review and merge without unnecessary friction.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
— the stacked PRs workflow pattern&lt;/li&gt;
&lt;li&gt;
— Rust CLI for stacked branches with AI agent support&lt;/li&gt;
&lt;li&gt;
— stax documentation on parallel AI coding sessions&lt;/li&gt;
&lt;li&gt;
— adds &lt;code&gt;st submit --squash&lt;/code&gt; and documents roborev integration patterns&lt;/li&gt;
&lt;li&gt;
— commit-based continuous review for coding agents&lt;/li&gt;
&lt;li&gt;
— another stacking tool (CLI + web UI)&lt;/li&gt;
&lt;li&gt;
— GitHub community discussion opened on January 27, 2026&lt;/li&gt;
&lt;li&gt;
— The Register coverage of GitHub&amp;rsquo;s discussion on low-quality, often AI-generated pull requests&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>