← In the News

Cloudflare ran an agent triage pipeline on Astro for months and published the working code

How we built a software factory to drive Astro's GitHub issue count to zero · Matthew Phillips, Cloudflare · The Cloudflare Blog, August 4, 2026

Machine-readable Download Markdown

The pipeline reads incoming bug reports, reproduces them in sandboxes, diagnoses the root cause, and ships preview releases for the reporter to verify. First-party figures: open issues went from "over 200 to about 30," and Phillips expects zero "sometime in the next month," which "would be the first time this repository has seen zero open issues in its 5+ year history." He states what they did not do: "We didn't get there by declaring 'issue bankruptcy,' auto-closing cold tickets, or ignoring reports."

The triage skill runs four phases, reproduce, diagnose, verify, fix, each executed by a separate isolated subagent passing findings forward in a report.md file, chosen "to prevent the frequent LLM bias toward forcing a solution when a bug might not actually exist." The pipeline keeps no state of its own: it is a state machine driven by GitHub issue labels, and "beyond those label transitions" it "simply reads back through the issue's existing comments." Final verification goes to the person who filed the bug, via a pkg.pr.new preview release, not to a maintainer.

When an agent cannot find a correct fix, the team reads it as a signal about the repository and names three causes: opaque abstractions, missing documentation, insufficient testing. The worked example is a run of Hot Module Replacement bugs where the bot kept editing one if condition, fixing the target bug and breaking things elsewhere. Adding a comment explaining the logic stopped it. "Every time we chase down one of these failures and add the missing comment, test, or clearer boundary, the bot gets noticeably better at that part of the codebase, and so does the next human who works on it." The code is public as triagebot-action, pinned to kimi-k2.7-code for triage and kimi-k2.6 for verification, on a runtime called Flue.

Why it matters: This is months of production use on a repository you can read, with the failure cases named. An agent that cannot fix a bug is also measuring the repository's abstractions, docs and tests.