Early-Stage · DevOps Field Note

The Caterpillar Loop

A tester taps a little green bug in the corner of the screen. Minutes later, an AI coding agent has opened a pull request to fix it. This is the pipeline that turns a junior QA's instinct into shipped code — and why it makes her one of the highest-leverage people on the project.

Stack Azure Functions · GitHub · Copilot Stage Early development · unannounced Status Live · both lanes proven

Tap → Issue → Agent → Ship

🐛

ReportHuman · QA

Claudia taps the floating caterpillar button and types what she saw. The app silently attaches everything an engineer would otherwise have to chase down.

⚙️

CaptureAzure

The tap hits POST /api/feedback — an Azure Function that packages the note with full context: screen, question, pack, chosen answer, live/offline, browser, time.

🎟️

IssueGitHub

A GitHub issue is filed in the private repo, auto-labeled bug + from-game. No ticket-writing, no triage meeting, no detail lost in the retelling.

🤖

AgentCopilot

Because the issue is already complete and contextual, GitHub Copilot's coding agent can pick it up, work the codebase, and open a pull request with a proposed fix.

ShipReview · Merge

A senior engineer reviews the pull request and merges. The fix goes live in the game — the same game Claudia was testing when she found it.

The merged fix ships back to the live app — closing the loop where it began.

Where feedback usually dies

On most teams, a bug spotted by a junior tester takes a long, lossy road to a fix: a note in a chat, a verbal hand-off, a triage meeting, a ticket written days later by someone who wasn't there. Detail leaks at every step. The person who saw the problem ends up three hands removed from the person who fixes it — and the fix is only as good as what survived the retelling.

The Caterpillar Loop deletes those hand-offs. The observation and the specification become the same act.

Two ways in, one inbox

Every report — whoever files it — lands as a labeled GitHub issue in one private repo. There are two front doors:

Lane 1 · In-game

The floating 🐛 caterpillar button sits in the corner of the web app. One tap opens a brand-styled report box; the app attaches the context automatically. Labeled from-game.

Lane 2 · Email

Anything sent to a dedicated bug inbox is polled every five minutes by an Azure Logic App and folded into the exact same pipeline. Labeled from-email.

What the tester never has to think about — captured on every in-game report:

The hand-off to Copilot

This is the hinge. Because each report arrives as a clean, fully-contextual GitHub issue, it's already in the exact shape GitHub Copilot's coding agent needs. Assign the issue to Copilot and it reads the context, works the code, and opens a pull request — a first draft of the fix, ready for review.

A junior QA and an AI junior developer, paired: she supplies the ground-truth observation, it supplies the first draft of the fix, and a senior review is all that stands between them and shipping.

Claudia, amplified

Claudia, our junior QA, testing on a laptop in the car
Claudia — junior QA, running a test session on the road.

Claudia is our junior QA. In a traditional shop, a junior tester's ceiling is "finds bugs and reports them" — and the value of that report decays with every hand-off it survives. Here, her report is the first domino in an automated chain that ends in a code change. She isn't handing work to the pipeline; she's the one who starts it.

Every tap is a fully-specified issue an AI agent can act on immediately — zero translation loss between what she saw and what gets fixed. That converts her hours into shipped improvements at a rate a junior role almost never reaches. She costs a fraction of a senior engineer and, inside this loop, lands a wildly outsized share of the impact.

It reframes what junior QA even is. She's not the bottom of a ticket queue. She's the sensor at the front of an automated delivery line — the human judgment that decides what's worth fixing, wired straight into the machinery that fixes it.

Proven, not theoretical. The in-game lane filed a real issue end-to-end with a correct auto-context table; the email lane is connected and live; and the Copilot coding agent has already produced reviewed pull requests from issues in the project's own repo.

Under the hood

Repository
Private GitHub repo (unannounced)
Entry points
In-game 🐛 button · dedicated bug inbox
Endpoint
POST /api/feedback — Azure Functions
Email poll
Azure Logic App, 5-minute cadence
Labels
bug · from-game · from-email
Agent
GitHub Copilot coding agent → pull requests
Secrets
Fine-grained, issues-only token in Azure Key Vault, read via managed identity — never in code, git, or logs

← hills & valleys / home