I run a feedback board for Standard Reader. People file bugs and feature requests, and my workflow has trended toward letting the AI do more and more. Until this point I've been at the helm, guiding architectural decisions, defining patterns. But I've come to a point where my AI is getting it right on the first shot and I have to watch it a lot less.
So I wired up a pipeline that takes me out of it. Now when I mark a piece of feedback "planned" on Standard Reader's userinput.app board, an autonomous coding agent picks it up, implements it, and opens a draft PR.
The only decisions left are the ones that should be human: Is this worth building? Does the user experience make sense?
The board is built on userinput.app, which I wrote about in a previous post. I have three labels set up: bug, feature, question.
To start the workflow for a piece of feedback, all I have to do is set its status to planned (typically from my phone).

To turn planned work into "do something" I use airglow.run, an IFTTT-style automation tool for the Atmosphere. It watches the firehose for records matching a rule and fires an action.
First we wait for an app.userinput.status record to show up in Standard Reader's repo.

Once that condition is met, we POST to a webhook that points at GitHub's repository_dispatch endpoint:

A GitHub Actions workflow listens for that feedback-planned event.
Once triggered we:
- Read the board and find every discussion currently marked planned
- Skip anything tagged
question— those want an answer from a person, not a PR - Skip anything already handled
- Create a branch for it to push to, then fire the actual agent
- Move the User Input item to
In Progress
Feedback comes from a user who is frustrated and trying to figure out something that's broken or missing. They're bound to be a little wrong in one way or another. The prompt has to account for that since I've given myself no room to add extra text.
The standing instructions tell the agent to:
- Expect wrong terminology. People describe screens and features in their own words, not the codebase's. Map what they said onto what the repo actually calls things.
- Verify every claim. Users assume things about how the app works that aren't true. Check the premise against the code first, and if the premise is wrong, say so in the PR instead of fixing a bug that doesn't exist.
- Treat proposed solutions as hints. The repo is the source of truth. If someone names a cause or a fix, go look at the real code path and do what's correct there, then explain the divergence in the PR.
- Take it all with a grain of salt. The signal is usually the underlying frustration, not the literal ask.
There's a security angle too, since these bodies are written by the public and the agent can push branches under my identity. The feedback is labeled untrusted input. It describes what to build, and it never carries instructions about how the agent should behave. Anything in a feedback body that reads like a directive to the agent gets ignored.
I'm lazy and I know I could probably use some better service, but hooking up your repo to https://claude.ai/code is super easy. The GitHub action triggers a "Routine" that contains the meaty parts of the prompt. It's really just a fancy session that I can trigger programmatically — I can even go in and chat if I want.
I don't just merge! I of course skim the code and make sure it looks good, but that isn't the important part.
The critical part of this is that I have full previews set up for PRs:
- The full infra is deployed in a PR env via https://railway.com
- A fork of the DB with https://neon.com is created for the PR and my migrations are applied
With this I can pull the PR up on my phone and check out the result of the work. If it's a bug, I verify it's fixed. If it's a feature, I critique the design and UX. When something needs to be changed, I can just pull up the routine and dictate my changes to it as I browse the app.
After I merge, the User Input item is moved to Implemented.
The nice thing about this is how little of it is new. Triage was already producing a record, GitHub already had a way to be poked, and the agent already knew how to write code. I just connected things that already existed.
Now triage and implementation are the same gesture.
Do you want to implement this? Go steal it from Standard Reader.
Enjoying the blog?
Subscribe to get new posts delivered straight to wherever you read standard.site publications.
Subscribe